/*******************************************************************************
* +--------------------------[ File Revision Info ]--------------------------+ *
* | $Revision::                                                           $: | *
* | $Date::                                                               $: | *
* | $Author::                                                             $: | *
* +--------------------------------------------------------------------------+ *
* | $Id::                                                                 $: | *
* +--------------------------------------------------------------------------+ *
*******************************************************************************/
var debugMap = false;

/************************* JQUERY ONLOAD ACTIONS *****************************/
var $jQ = jQuery.noConflict();
var $state = gup('state');

jQuery(document).ready(function() 
{	
	var bindPageFilterBehaviors = function(scope) 
	{		
		// PAGE FILTER CLICK EVENT TO OPEN SPECIFIC FILTER FORM
		$jQ('.pageFilter').click(function() {

			// TOGGLES THE SPECIFIC FILTER DETAIL
			$filterType = $jQ(this).attr('id').substr('pageFilter'.length);
	
			if ($filterType == 'None')
			{
				// CLOSE POPUP IF IT HAPPENS TO BE OPEN
				$jQ('#pageFilterPopup').hide();	
				
				// 
				clearFilters();
				
				clearPageFilters();
				
				// REFRESH
				updatePageFilters();
			}
			else
			{
				// TOGGLE THIS FILTER
				if($jQ('#filterContent'+$filterType).css('display') == 'block')
				{
					$jQ('#filterContent'+$filterType).hide();
					$jQ('#pageFilterPopup').hide();	
				}
				else
				{
					$jQ('#filterContent'+$filterType).show();
					$jQ('#pageFilterPopup').show();	
				}
			}
		});

		// SEARCH FILTER FORM SUBMIT EVENT
		$jQ('#searchFilterSubmit').click(function(){
			// CLOSE WINDOWS
			$jQ('#pageFilterPopup').hide();
			$jQ('#filterContentSearch').hide();

			// CLEAR ALPHA FILTER
			$jQ('.alphaFilter').removeClass('filterActive');

			$jQ('#search').val($jQ('#searchFilterInput').val());

			// REFRESH
			return updatePageFilters();
		});

		// SEARCH FILTER FORM CANCEL EVENT
		$jQ('#searchFilterCancel').click(function(){
			// CLEAR INPUTS
			$jQ('#searchFilterInput').val('');
			
			// CLOSE WINDOWS
			$jQ('#pageFilterPopup').hide();	
			$jQ('#filterContentSearch').hide();
		});
		
		// ZIP FILTER FORM SUBMIT EVENT
		$jQ('#zipFilterSubmit').click(function(){

			// CLOSE WINDOWS
			$jQ('#pageFilterPopup').hide();
			$jQ('#filterContentZip').hide();

			$jQ('#zip').val($jQ('#filterZipInputZip').val());
			$jQ('#radius').val($jQ('#filterZipInputZipRadius').val());

			// REFRESH
			return updatePageFilters();
		});

		// ZIP FILTER FORM CANCEL EVENT
		$jQ('#zipFilterCancel').click(function(){
			// CLEAR ZIP
			$jQ('#filterZipInputZip').val('');
			$jQ('#filterZipInputZipRadius').val('');
			
			// CLOSE WINDOWS
			$jQ('#pageFilterPopup').hide();	
			$jQ('#filterContentZip').hide();
		});

		// ISSUE FILTER FORM SUBMIT EVENT
		$jQ('#issueFilterSubmit').click(function(){
			$jQ('#pageFilterPopup').hide();
			$jQ('#filterContentIssue').hide();

			$jQ('#issues').val(getFilteredIssues());

			// REFRESH
			return updatePageFilters();
		});

		// ISSUE FILTER FORM CANCEL EVENT
		$jQ('#issueFilterCancel').click(
			function()
			{
				// CLEAR INPUTS
				$jQ('.issueFilterInput').removeClass('filterActive');
				
				// CLOSE WINDOWS
				$jQ('#pageFilterPopup').hide();	
				$jQ('#filterContentIssue').hide();
			}
		);
		
		// ISSUE TAG CLICK
		$jQ('.issueFilterInput').click(
			function()
			{
				if ($jQ(this).hasClass("filterActive"))
				{
					$jQ(this).removeClass("filterActive");
				}
				else
				{
					$jQ(this).addClass("filterActive");					
				}
			}
		);

		// ALPHA FILTER SELECT EVENT
		$jQ('.alphaFilter').click(
			function()
			{
				$alpha = $jQ(this).attr('id').substr('alphaFilterInput'.length);
				$jQ('.alphaFilter').removeClass('filterActive');
				$jQ(this).addClass('filterActive');
				
				// CLOSE WINDOWS
				$jQ('#pageFilterPopup').hide();
				$jQ('#filterContentAlpha').hide();
				
				// CLEAR SEARCH FIELD
				$jQ('#searchFilterInput').val('');
				$jQ('#search').val('');
				
				$jQ('#alpha').val($jQ(this).attr('innerHTML'));
				
				// REFRESH
				return updatePageFilters();
			}
		);
		
		$jQ('.stateFilter').click(
			function()
			{
				$state = $jQ(this).attr('id').substr('filterStateInput'.length);

				$jQ(this).addClass('filterActive');
				$jQ('#pageFilterPopup').hide();
			}
		);
	};
	
	// RESOURCE TYPE ON SCREEN SORTS...ie AUDIO, VIDEO, IMAGE, DOC, WEBSITE, BOOK
	$jQ('.filterResourceType').click(function(){
		if ($jQ(this).hasClass('linkText'))
		{
			$jQ(this).removeClass('linkText');

			$jQ('.resourceListItem').show();
		}
		else
		{
			$jQ('.filterResourceType').removeClass('linkText');

			$jQ(this).addClass('linkText');

			$jQ('.resourceListItem').show();

			var $type = $jQ(this).attr('innerHTML');

			$jQ('.resourceListItem').each(
				function()
				{
					if (!$jQ(this).hasClass($type.toLowerCase() + 'ResourceEntity'))
					{
						$jQ(this).hide();
					}
				}
			);
		}
	});
	
	// ORG TYPE ON SCREEN SORTS...ie NATIONAL, STATE, LOCAL
	$jQ('.filterOrgType').click(function(){
		if ($jQ(this).hasClass('linkText'))
		{
			$jQ(this).removeClass('linkText');

			$jQ('.orgListItem').show();
		}
		else
		{
			$jQ('.filterOrgType').removeClass('linkText');

			$jQ(this).addClass('linkText');

			$jQ('.orgListItem').show();

			var $type = $jQ(this).attr('innerHTML');

			$jQ('.orgListItem').each(
				function()
				{
					if (!$jQ(this).hasClass($type.toLowerCase() + 'OrgEntity'))
					{
						$jQ(this).hide();
					}
				}
			);
		}
	});	
	
	// STATE MAP EVENTS
	$jQ('.mapPiece').hover(
		function(){
			// display
			var $state = $jQ(this).attr('id').substr("map".length);

			$jQ('#map' + $state + '-img').css('display', 'block');
		},
		function(){
			// hide
			var $state = $jQ(this).attr('id').substr("map".length);

			$jQ('#map' + $state + '-img').css('display', 'none');
		}
	);
	
	$jQ('.mapPiece').click(
		function()
		{
			$state = $jQ(this).attr('id').substr("map".length);
		
			// CLEAR ALL PREVIOUS STATE FILTERS
			$jQ('.stateFilterInput').removeClass('filterActive');

			// ADD STATE FILTER FOR THIS CLICK
			$jQ('#stateFilterInput' + $state).addClass('filterActive');

			// HIDE STATE FIELD
			$jQ('#filterContentState').hide();
			$jQ('#pageFilterPopup').hide();

			// REFRESH
			updatePageFilters();
		}
	);

	// Now bind the Events
	bindPageFilterBehaviors();
});

// REMOVES ANY FILTERS
function clearFilters()
{
	// CLEAR ALPHA
	$jQ('.alphaFilter').removeClass('filterActive');
	
	// CLEAR ISSUES
	$jQ('.issueFilterInput').removeClass('filterActive');

	// CLEAR STATES
	$jQ('.stateFilterInput').removeClass('filterActive');

	// CLEAR SEARCH
	$jQ('#searchFilterInput').val('');
	
	// CLEAR ZIP
	$jQ('#zipFilterInputZip').val('');
	$jQ('#zipFilterInputZipRadius').val('');
}

// REMOVES ANY FILTERS
function clearPageFilters()
{		
	// CLEAR START
	$jQ('#start').val('0');

	// CLEAR ALPHA
	$jQ('#alpha').val('');
	
	// CLEAR SEARCH
	$jQ('#search').val('');
	
	// CLEAR ZIP
	$jQ('#zip').val('');
	$jQ('#radius').val('');
	
	// CLEAR STATES
	$jQ('#state').val('');
	
	// CLEAR ISSUES
	$jQ('#issues').val('');
	
	// CLEAR TAGS
	$jQ('#tags').val('');
	
	// CLEAR TYPE
	$jQ('#type').val('');
}

// 
function updatePageFilters()
{
	$jQ('#start').val('0');	

	$jQ('#pageContainerForm').submit();
}


// GET FILTERS FORMATTED AS PARAM LIST FOR AJAX CALL
function getPageFilterParams($pageFilterType)
{	
	var $paramList = '';
	var $itemCount = 0;

	// ALPHA FILTERS
	if ($jQ('.alphaFilter.filterActive') && $pageFilterType != 'alpha')
	{
		var $alphaFilter = '';

		$jQ('.alphaFilter.filterActive').each(
			function ()
			{
				if ($itemCount++ > 0) $alphaFilter += ',';
				$alphaFilter += $jQ(this).attr('id').substr('alphaFilterInput'.length);
			}
		);
		if ($alphaFilter != '')
		{
			$paramList += '&alpha=' + $alphaFilter;
		}
	}
	
	// SEARCH FILTERS
	if ($jQ('#searchFilterInput').val() && $pageFilterType != 'search')
	{
		var $searchFilter = $jQ('#searchFilterInput').val();
		$paramList += '&search=' + $searchFilter;
	}

	// STATE FILTERS	
	if ($jQ('.stateFilterInput.filterActive') && $pageFilterType != 'state')
	{
		$paramList += '&state=' + getFilteredState();
	}
	
	// ZIP FILTERS
	if ($jQ('#filterZipInputZip').val() && $pageFilterType != 'zip')
	{		
		$zipFilter = $jQ('#filterZipInputZip').val();
		$zipRadiusFilter = $jQ('#filterZipInputZipRadius').val();
		$paramList += '&zip=' + $zipFilter + "&radius=" + $zipRadiusFilter;
	}
	
	// ISSUE FILTERS
	if ($jQ('.issueFilterInput.filterActive') && $pageFilterType != 'issueID')
	{
		$paramList += '&issueID=' + getFilteredIssues();
	}
	
	// DOMAIN FILTERS
	if ($jQ('#currentDomainID').val() && $pageFilterType != 'domainID')
	{
		$paramList += '&domainID=' + $jQ('#currentDomainID').val();
	}
	
	// PAGE TAGS FILTERS
	if ($jQ('#pageTags').val() && $pageFilterType != 'tags')
	{
		$paramList += '&tags=' + $jQ('#tagIDs').val();
	}
	
	return $paramList;
}

// 
function getFilteredIssues()
{
	$itemCount = 0;
	var $issueFilter = '';
	
	$jQ('.issueFilterInput.filterActive').each(
		function()
		{
			if ($itemCount++ > 0) $issueFilter += ',';
			$issueFilter += $jQ(this).attr('id').substr('issueFilterInput'.length);
		}
	);
	
	return $issueFilter;
}

function getFilteredState()
{
	$itemCount = 0;
	var $stateFilter = '';

	$jQ('.stateFilterInput.filterActive').each(
		function()
		{
			if ($itemCount++ > 0) $stateFilter += ',';
			$stateFilter += $jQ(this).attr('id').substr('stateFilterInput'.length);
		}
	);
}