var currentPage = 1;

$(document).ready(function() {
   addOnClickToFilters();
   hideAdditionalPages(MENU_DEFAULT);
   updatePagination(MENU_DEFAULT,1);
   getAdwordsCommerce(locationid, 'geoaccommodation');
});

function addOnClickToFilters()
{
	$('#filter_apartments_condos').click(function(){return filterByType(MENU_APARTMENT_CONDO,1);});
	$('#filter_b_and_b').click(function(){return filterByType(MENU_BED_AND_BREAKFAST,1);});
	$('#filter_campgrounds').click(function(){return filterByType(MENU_CAMPGROUNDS,1);});
	$('#filter_hostels').click(function(){return filterByType(MENU_HOSTEL,1);});
	$('#filter_vacation_homes').click(function(){return filterByType(MENU_VACATION_HOMES,1);});
	$('#filter_villa_chalets').click(function(){return filterByType(MENU_VILLA_CHALET,1);});
	$('#filter_safari').click(function(){return filterByType(MENU_SAFARI,1);});
	$('#filter_default').click(function(){return filterByType(MENU_DEFAULT,1);});
	$('#filter_default').hide();
}

function updatePagination(menuId)
{
	var container = '.pagination_container';
	var pagination_container = '.pagination_links_container';
	var nbPages = accommodationTypePages[menuId];

	$(container).empty();

	if(nbPages <= 1)
	{
		return;
	}

	var pageInfo = new jQuery('<span />');
	pageInfo.addClass('pagination_information');
	pageInfo.html(nbPages + ' Pages: ');
	$(container).append(pageInfo);

	var nbPageSpan = new jQuery('<span />');
	nbPageSpan.addClass('pagination_links_container');
	$(container).append(nbPageSpan);
	

	if(currentPage == 1)
	{//first page
		for (i = 1; i <= 3; i++)
		{
			if(nbPages >= i)
			{
				if(currentPage == i)
				{
					createPageSpan(pagination_container, i, i, 'pagination_current_page', menuId);
				}
				else
				{
					createPageSpan(pagination_container, i, i, 'pagination_page', menuId);
				}
			}
		}

		if(nbPages > 3)
		{
			createPageSpan(pagination_container, '&raquo;', (currentPage+1), 'pagination_page_up', menuId);
		}
	}
	else if(currentPage == nbPages)
	{//last page

		if(nbPages > 3)
		{
			createPageSpan(pagination_container, '&laquo;', (currentPage-1), 'pagination_page_down', menuId);
		}

		for (i = 3;i >= 0; i--)
		{
			var pageNumber = currentPage - i;

			if(pageNumber >= 1)
			{
				if(currentPage == pageNumber)
				{
					createPageSpan(pagination_container, pageNumber, pageNumber, 'pagination_current_page', menuId);
				}
				else
				{
					createPageSpan(pagination_container, pageNumber, pageNumber, 'pagination_page', menuId);
				}
			}
		}
	}
	else
	{
		if(nbPages > 3 && currentPage >= 2)
		{
			createPageSpan(pagination_container, '&laquo;', (currentPage - 1), 'pagination_page_down', menuId);
		}

		//previous page
		createPageSpan(pagination_container, (currentPage -1), (currentPage - 1), 'pagination_page', menuId);

		//current page
		createPageSpan(pagination_container, (currentPage), (currentPage),'pagination_current_page', menuId);

		//next page
		createPageSpan(pagination_container, (currentPage+1), (currentPage + 1),'pagination_page', menuId);
		
		if(nbPages > 3)
		{
			createPageSpan(pagination_container, '&raquo;', (currentPage + 1), 'pagination_page_up', menuId);
		}
	}

}

function createPageSpan(container, display, page, cssClass, menuId)
{
	var uniqueClass = page+'_'+cssClass+'_'+menuId;
	var span = new jQuery('<span />');
	span.addClass(cssClass);
	span.addClass(uniqueClass);
	span.html(display);

	$(container).append(span);

	$('.'+uniqueClass).click(function(){
		var lpage = page;
		filterByType(menuId, lpage);
		return false;
	});
}


function filterByType(menuId, pageNumber)
{
	var showAll = false;
	var filterTitle = "";
	currentPage =  pageNumber;

	switch(menuId)
	{
		case MENU_APARTMENT_CONDO:
			filterTitle = 'Apartment/Condos';
		break;
		
		case MENU_BED_AND_BREAKFAST:
			filterTitle = 'Bed &amp; Breakfasts';
		break;
		
		case MENU_CAMPGROUNDS:
			filterTitle = 'Campgrounds';
		break;
		
		case MENU_HOSTEL:
			filterTitle = 'Hostels';
		break;
		
		case MENU_VACATION_HOMES:
			filterTitle = 'Vacation Homes';
		break;
		
		case MENU_VILLA_CHALET:
			filterTitle = 'Villa Chalet';
		break;
		
		case MENU_SAFARI:
			filterTitle = 'Safaris';
		break;

		default:
			showAll = true;
			filterTitle = 'All';
	}

	$('#results_title').html(filterTitle + ' Results');

	if(showAll)
	{
		$('.accommodation_pagination_container').show();
		hideAdditionalPages(menuId);
		$('#filter_default').hide();
		updatePagination(menuId)
	}
	else
	{
		$('.accommodation_pagination_container').hide();
		$('.menu'+menuId + '.section_page'+pageNumber).show();
		$('#filter_default').show();
		updatePagination(menuId)
	}

	return false;
}

function hideAdditionalPages(menuId)
{
	var nbPages = accommodationTypePages[menuId];

	if(nbPages > 1)
	{
		for (i = 1; i <= nbPages; i++)
		{
			if(i != currentPage)
			{
				$('.page'+i).hide();
			}
		}
	}
}
