/*******************************************************************************
* +--------------------------[ File Revision Info ]--------------------------+ *
* | $Revision::                                                           $: | *
* | $Date::                                                               $: | *
* | $Author::                                                             $: | *
* +--------------------------------------------------------------------------+ *
* | $Id::                                                                 $: | *
* +--------------------------------------------------------------------------+ *
*******************************************************************************/

var debugMap = false;

function regionover(event) 
{
  var target = getSource(event);
  if(debugMap) {
    var body = document.getElementsByTagName("body")[0];
    body.appendChild(document.createElement("div"));
    body.lastChild.appendChild(document.createTextNode("showing: " + target.id));
  }
  if(typeof(nameDisplay) != "undefined") {
    nameDisplay.data = target.getAttribute("title");
  }
  document.getElementById(target.id + "-img").style.display = "block";
}

function regionout(event) 
{
  var target = getSource(event);
  if(debugMap) {
    var body = document.getElementsByTagName("body")[0];
    body.appendChild(document.createElement("div"));
    body.lastChild.appendChild(document.createTextNode("hiding: " + target.id));
  }
  if(typeof(nameDisplay) != "undefined") {
    nameDisplay.data = '';
  }
  document.getElementById(target.id + "-img").style.display = "none";
}

function regionclick(event) 
{
	
}

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

jQuery(document).ready(function() 
{	
	if ($state != '')
	{
		$jQ('#map'+$state).css("background","#000");
	}
	
	$jQ('#area').click(

	);
	
	$jQ('#closedetail').click(
		function()
		{
			$jQ('#entityDetail').hide();
		}
	);
	
	$jQ('#showMap').mouseover(
		function()
		{
			$jQ('#stateMap').slideDown('normal');
		}
	);
	
	$jQ('#showMap').click(
		function()
		{
			$jQ('#stateMap').slideUp();
		}
	);
	
	if ($jQ('#ajaxCats').attr("id"))
	{
		// VIDEOS BY ISSUE
		if ($jQ('#issueVideo').attr("id"))
		{
			setDetailWindowEvents("video");
			
			// Get first batch of data
			getEntityByState("video", $jQ('#stateID').attr("value"), 0);
		}
		
		// DOCS BY ISSUE
		if ($jQ('#issueDoc').attr("id"))
		{
			setDetailWindowEvents("doc");

			getEntityByState("doc", $jQ('#stateID').attr("value"), 0);
		}
		
		// AUDIO BY ISSUE
		if ($jQ('#issueAudio').attr("id"))
		{
			setDetailWindowEvents("audio");
			
			getEntityByState("audio", $jQ('#stateID').attr("value"), 0);
		}
		
		// IMAGES BY ISSUE
		if ($jQ('#issueImage').attr("id"))
		{
			setDetailWindowEvents("image");
			
			getEntityByState("image", $jQ('#stateID').attr("value"), 0);
		}
		
		// WEBSITES BY ISSUE
		if ($jQ('#issueWebsite').attr("id"))
		{
			setDetailWindowEvents("website");
			
			getEntityByState("website", $jQ('#stateID').attr("value"), 0);
		}
		
		// BOOKS BY ISSUE
		if ($jQ('#issueBook').attr("id"))
		{
			setDetailWindowEvents("book");
			
			getEntityByState("book", $jQ('#stateID').attr("value"), 0);
		}
		
		// CAMPAIGNS BY ISSUE
		if ($jQ('#issueCampaign').attr("id"))
		{
			setDetailWindowEvents("campaign");
			
			getEntityByState("campaign", $jQ('#stateID').attr("value"), 0);
		}
		
		// ACTIONS BY ISSUE
		if ($jQ('#issueAction').attr("id"))
		{
			setDetailWindowEvents("action");
			
			getEntityByState("action", $jQ('#stateID').attr("value"), 0);
		}
		
		// EVENTS BY ISSUE
		if ($jQ('#issueEvent'))
		{
			setDetailWindowEvents("event");
			
			getEntityByState("event", $jQ('#stateID').attr("value"), 0);
		}
		
		// NEWS BY ISSUE
		if ($jQ('#issueNews').attr("id"))
		{
			setDetailWindowEvents("news");
			
			getEntityByState("news", $jQ('#stateID').attr("value"), 0);
		}
		
		// ORGS BY ISSUE
		if ($jQ('#issueOrg').attr("id"))
		{
			setDetailWindowEvents("org");
			
			getEntityByState("org", $jQ('#stateID').attr("value"), 0);
		}
		
		// USER BY ISSUE
		if ($jQ('#issueUser').attr("id"))
		{
			setDetailWindowEvents("user");
			
			getEntityByState("user", $jQ('#stateID').attr("value"), 0);
		}
	}
});

// 
function updateDomainLogo($hotAreaTag)
{
	_state = $jQ($hotAreaTag).attr("id").substr("map".length);
	
	$jQ.getJSON("../includes/ajax/domain-info.php/?", { state: _state, ajax: 'true'}, 
	    function(json)
	    {
			if (json[0].DomainLogo != 'undefined') 
				$jQ('#domainLogo').attr("src", json[0].DomainLogo);
			
			if (json[0].DomainName != 'undefined') 
				$jQ('#domainName').attr("innerHTML", json[0].DomainName);
			
			if (json[0].StateNames != 'undefined') 
				$jQ('#stateName').attr("innerHTML", json[0].StateNames);
		}
	);
}

// SETS THE MORE/LESS CONTROLS TO RETRIEVE MORE DETAIL ITEMS
function setDetailWindowEvents($type)
{	
	var $upperType = toUpperEachWord($type);
	var $lowerType = $type.toLowerCase();
    var $startIndex = 0;

	// Define Click event for Category AJAX controls: NEXT
	$jQ('#next' + $upperType + 'Detail').click(
		function()
		{
			var $low   = parseInt($jQ('#' + $lowerType + 'DetailCountLow').html());
			var $high  = parseInt($jQ('#' + $lowerType + 'DetailCountHigh').html());
			var $total = parseInt($jQ('#' + $lowerType + 'DetailCountTotal').html());
			var $limit = parseInt($jQ('#maxItems').val());
			
			if ($high < $total)
			{
				getEntityByState($lowerType, $jQ('#stateID').attr("value"), $high);
			}
		}
	);
	// Define Click event for Category AJAX controls: PREVIOUS
	$jQ('#prev' + $upperType + 'Detail').click(
		function()
		{
			var $low   = parseInt($jQ('#' + $lowerType + 'DetailCountLow').html());
			var $high  = parseInt($jQ('#' + $lowerType + 'DetailCountHigh').html());
			var $total = parseInt($jQ('#' + $lowerType + 'DetailCountTotal').html());
			var $limit = parseInt($jQ('#maxItems').val());
			
			var $startIndex = (($low - $limit) <= 1) ? 0 : $low - $limit - 1;
			
			if ($low > 1)
			{
				getEntityByState($lowerType, $jQ('#stateID').attr("value"), $startIndex);
			}
		}
	);
}

// HELPER FUNCTION TO CALL THE PROPER ENTITY FUNCTION
function getEntityByState(_type, _stateID, _start)
{
	switch(_type) 
	{
		case "user":
			getUsersByState(_stateID, _start);
			break;
		case "org":
			getOrgsByState(_stateID, _start);
			break;
		case "action":
			getActionsByState(_stateID, _start);
			break;
		case "news":
			getNewsByState(_stateID, _start);
			break;
		case "event":
			getEventsByState(_stateID, _start);
			break;
		case "campaign":
			getCampaignsByState(_stateID, _start);
			break;
		case "audio":
			getAudioByState(_stateID, _start);
			break;
		case "image":
			getImagesByState(_stateID, _start);
			break;
		case "video":
			getVideoByState(_stateID, _start);
			break;
		case "website":
			getWebsitesByState(_stateID, _start);
			break;
		case "doc":
			getDocsByState(_stateID, _start);
			break;
		default:
			break;
	}
}

// HELPER FUNCTION TO CALL THE PROPER ENTITY FUNCTION
function getEntityDetail(_type, _id, _fullid)
{
	switch(_type) 
	{
		case "user":
			getUserDetail(_id);
			break;
		case "org":
			getOrgDetail(_id);
			break;
		case "action":
			getActionDetail(_id);
			break;
		case "news":
			getNewsDetail(_id);
			break;
		case "event":
			getEventDetail(_id);
			break;
		case "campaign":
			getCampaignDetail(_id);
			break;
		case "audio":
			getAudioDetail(_id);
			break;
		case "image":
			getImageDetail(_id);
			break;
		case "video":
			getVideoDetail(_id);
			break;
		case "website":
			getWebsiteDetail(_id);
			break;
		case "doc":
			getDocDetail(_id);
			break;
		case "book":
			getBookDetail(_id);
			break;
		default:
			break;
	}
}

// 
function getUserDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-user-detail.php",
		data: "userID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getOrgDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-org-detail.php",
		data: "orgID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getActionDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-action-detail.php",
		data: "actionID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getNewsDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-news-detail.php",
		data: "newsID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getEventDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-event-detail.php",
		data: "eventID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getCampaignDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-campaign-detail.php",
		data: "campaignID="+_id,
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getAudioDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=1",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getImageDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=2",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getVideoDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=5",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getWebsiteDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=6",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getDocDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=3,4,7",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

function getBookDetail(_id)
{
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/entity-resource-detail.php",
		data: "resourceID="+_id+"&typeID=8",
   		success: 
   			function(data)
			{
				$jQ('#entityDetailContent').attr('innerHTML', data);
				$jQ('#entityDetail').show();
			}
	});
}

// 
function getUsersByState(_stateID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-users.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueUsers').hide();
				}
				else
				{
					$jQ("#detailUserContent").html(data);
	
					$jQ('.userGetDetail').click(
						function()
						{
							getEntityDetail($type,  $jQ(this).attr("id").substr($type.length), $jQ(this).attr("id"));
						}
					);
	
					$jQ('#userDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#userDetailCountHigh").html(parseInt(_start) + $jQ('.miniUserDetail').length);
				
					$jQ('#issueUsers').show();
				}
			}
	});
}

// 
function getOrgsByState(_stateID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-orgs.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueOrgs').hide();
				}
				else
				{
					$jQ("#detailOrgContent").html(data);
					
					$jQ('.orgGetDetail').click(
						function()
						{
							getEntityDetail("organization",  $jQ(this).attr("id").substr("organization".length), $jQ(this).attr("id"));
						}
					);
	
					$jQ('#orgDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#orgDetailCountHigh").html(parseInt(_start) + $jQ('.miniOrgDetail').length);
				
					$jQ('#issueOrgs').hide();
				}
			}
	});
}

//
function getActionsByState(_stateID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-actions.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueAction').hide();
				}
				else
				{
					$jQ("#detailActionContent").attr("innerHTML",data);
					
					$jQ('.actionGetDetail').click(
						function()
						{
							getEntityDetail("action",  $jQ(this).attr("id").substr("action".length), $jQ(this).attr("id"));
						}
					);
					
					$jQ('#actionDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#actionDetailCountHigh").html(parseInt(_start) + $jQ('.miniActionDetail').length);
				
					$jQ('#issueAction').show();
				}
			}
	});
}

// 
function getNewsByState(_stateID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-news.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueNews').hide();
				}
				else
				{
					$jQ("#detailNewsContent").html(data);
					
					$jQ('.newsGetDetail').click(
						function()
						{
							getEntityDetail("news",  $jQ(this).attr("id").substr("news".length), $jQ(this).attr("id"));
						}
					);
					
					$jQ('#newsDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#newsDetailCountHigh").html(parseInt(_start) + $jQ('.miniNewsDetail').length);
					
					$jQ('#issueNews').show();
				}
			}
	});
}

// 
function getEventsByState(_stateID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-events.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueCalendar').hide();
				}
				else
				{
					$jQ("#detailCalendarContent").html(data);
					
					$jQ('.eventGetDetail').click(
						function()
						{
							getEntityDetail("event",  $jQ(this).attr("id").substr("event".length), $jQ(this).attr("id"));
						}
					);
					
					$jQ('#calendarDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#calendarDetailCountHigh").html(parseInt(_start) + $jQ('.miniEventDetail').length);
				
					$jQ('#issueCalendar').show();
				}
			}
	});
}

// 
function getCampaignsByState(_stateID, _start)
{
	var _sortBy = '';
	var _typeID = 1;   // 1 = boycott
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/filtered-campaigns.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&state="+_stateID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				var retVal = String(data);
				if (retVal.match('not found') || retVal.match('Sorry') || retVal.match('Error')) 
				{
					$jQ('#issueCampaign').hide();
				}
				else
				{
					$jQ("#detailCampaignContent").attr("innerHTML",data);
	
					$jQ('.campaignGetDetail').click(
						
						function()
						{
							getEntityDetail("campaign",  $jQ(this).attr("id").substr("campaign".length), $jQ(this).attr("id"));
						}
					);
	
					$jQ('#campaignDetailCountLow').html(parseInt(_start) + 1);
					$jQ("#campaignDetailCountHigh").html(parseInt(_start) + $jQ('.miniCampaignDetail').length);
					
					$jQ('#issueCampaign').show();
				}
			}
	});
}

//
function getAudioByState(_stateID, _start)
{

}

//
function getImagesByState(_stateID, _start)
{

}

// 
function getVideoByState(_stateID, _start)
{
	
}

// 
function getWebsitesByState(_stateID, _start)
{
	
}

// 
function getDocsByState(_stateID, _start)
{
	
}