﻿var currentSort = 0;
var currentFilter = new Array();
var currentPage = 1;
var client = 0;

$(parseHash);

function parseHash()
{
	var hash = window.location.hash;
    if(hash.indexOf('#') == 0)
    {
        hash = hash.length > 1 ? hash.substring(1) : null;
    }	
	
	if(hash)
	{
		var params = hash.split("&");
		var len = params.length;
		for(var i = 0; i < len; i++)
		{
			var pos = params[i].indexOf('=');
			if (pos > 0) 
			{
				var key = params[i].substring(0,pos);
				var val = params[i].substring(pos+1);
				switch(key)
				{
					case "sort":
						currentSort = val;
						break;
					case "filter":
						var filters = val.split(",");
						for(var j = 0; j < filters.length; j++)
						{
							
							addFilter(filters[j]);
						}
						break;
					case "page":
						currentPage = val;
						break;
					case "client":
						client = val;
						break;
				}
			}
		}
	}
	sendUpdateProjectsRequest();	
}

function updateHash(sort, filter, page)
{
	var hash = "sort=" + sort;
	hash += ("&filter=" + filter);
	hash += ("&page=" + page);
	hash += ("&client="+client);
	window.location.hash = hash;
}

function changeSort(sort)
{
	currentSort = sort;
	currentPage = 1;
	sendUpdateProjectsRequest();
}
function addFilter(filter)
{
	//Adding a filter clears all other filters	-	http://jira:8080/browse/APMJK-74
	currentFilter = new Array();
	if(filter.length > 0)
	{
	    currentFilter.push(filter);
	}
}
function changeFilter(filter)
{
	//Add a filter
	currentPage = 1;
	addFilter(filter);	
	sendUpdateProjectsRequest();
}

function changePage(page)
{
	currentPage = page;
	sendUpdateProjectsRequest();
}

function clearFilter(filter)
{
	currentPage = 1;
	var newAry = new Array();
	for(var i = 0; i < currentFilter.length; i++)
	{
		if(currentFilter[i] != filter)
		{
			newAry.push(currentFilter[i]);
		}
	}
	currentFilter = newAry;
	sendUpdateProjectsRequest();
}
function clearFilters()
{
	currentFilter = new Array();
	currentPage = 1;
	client = 0;
	sendUpdateProjectsRequest();
}
function changeClient(newClientID)
{
	currentFilter = new Array();
	currentPage = 1;
	client = newClientID;
	sendUpdateProjectsRequest();
}
function sendUpdateProjectsRequest()
{
	updateHash(currentSort, currentFilter, currentPage);
	AtomicPlaypen.AjaxAPI.AtomicPlaypenAjax.UpdateProjectTags(currentSort, currentFilter, currentPage, client, Callback_UpdateProjectTags);
	AtomicPlaypen.AjaxAPI.AtomicPlaypenAjax.UpdateProjects(currentSort, currentFilter, currentPage, client, Callback_UpdateProjects);
}

function Callback_UpdateProjectTags(res)
{
	if (res.error)
	{
		//alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
	}
	else
	{
		var results = res.value;
		$(".FilterList").html(results);
		tagListSifr();
	}
}
function Callback_UpdateProjects(res)
{
	if (res.error)
	{
		//alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
	}
	else
	{
	    document.title = 'Work';
	    window.scroll(0,0);
		var results = res.value;
		
		//Replace the html
		var workListingDiv = $(".workListingDiv");
		workListingDiv.html(results);

		//$(".wrapperWithDivider").css("float", "left");	//IE6 Fix
		
		$(".workListSort").removeClass("activeSort");
		switch(parseFloat(currentSort))
		{
			default:
			case 0:
				$("#dateSortType").addClass("activeSort");
				break;
			case 1:
				$("#projectSortType").addClass("activeSort");
				break;
			case 2:
				$("#clientSortType").addClass("activeSort");
				break;
		}
		convertFeaturedItems();
		featuredWorkSifr();
		clientSortSifr();
		$(".wrapperWithDivider").css("float", "none");	//IE6 Fix
	}
}
