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

/************************* JQUERY ONLOAD ACTIONS *****************************/
jQuery(document).ready(function()
{	
	$jQ('.website').hover(
		function () {
			$id = $jQ(this).attr("id").substring("website".length);
			$jQ('#websiteDesc'+$id).removeClass("hide");
		},
      	function () {
			$id = $jQ(this).attr("id").substring("website".length);
			$jQ('#websiteDesc'+$id).addClass("hide");
	    }
	);
	
	if ($jQ('#ajaxCats'))
	{
		// VIDEOS BY ISSUE
		if ($jQ('#issueVideo'))
		{
			setDetailWindowEvents("video");
			
			// Get first batch of data
			getEntityByIssue("video", $jQ('#issueID').attr("value"), 0);
		}
		
		// DOCS BY ISSUE
		if ($jQ('#issueDoc'))
		{
			setDetailWindowEvents("doc");

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

// 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)
			{
				getEntityByIssue($lowerType, $jQ('#issueID').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)
			{
				getEntityByIssue($lowerType, $jQ('#issueID').attr("value"), $startIndex);
			}
		}
	);
}

// HELPER FUNCTION TO CALL THE PROPER ENTITY FUNCTION
function getEntityByIssue($type, $issueID, $start)
{
	switch($type) 
	{
		case "user":
			getUsersByIssue($issueID, $start);
			break;
		case "org":
			getOrgsByIssue($issueID, $start);
			break;
		case "action":
			getActionsByIssue($issueID, $start);
			break;
		case "news":
			getNewsByIssue($issueID, $start);
			break;
		case "event":
			getEventsByIssue($issueID, $start);
			break;
		case "campaign":
			getCampaignsByIssue($issueID, $start);
			break;
		case "audio":
			getAudioByIssue($issueID, $start);
			break;
		case "image":
			getImagesByIssue($issueID, $start);
			break;
		case "video":
			getVideoByIssue($issueID, $start);
			break;
		case "website":
			getWebsitesByIssue($issueID, $start);
			break;
		case "doc":
			getDocsByIssue($issueID, $start);
			break;
		default:
			break;
	}
}

// 
function getTagRelatedToIssue(_tagID, _tagName) 
{
	var _userID = 0;
	var _sortBy = '';
	var _limit = 30;
	var _bundle = '';
	var _tagType = '';

	//$jQ.prompt('User='+_options['userID']+', SortBy='+_options['sortBy']+', Limit='+_options['limit']+', TagType='+_options['tagType']+', Bundle='+_options['bundle']);

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-related.php",
		data: "userID="+_userID+"&sortBy="+_sortBy+"&limit="+_limit+"&bundle="+_bundle+"&tagType="+_tagType+"&tagID="+_tagID+"&tagName="+_tagName,
   		success: 
   			function(data)
			{
				if (data) {
					$jQ("#relatedTags").html(data);
				} else {
					$jQ("#relatedTags").html("");
				}
			}
	});
}

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

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-org.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID,
   		success: 
   			function(data)
			{
				$jQ("#detailOrgContent").html(data);
				
				$jQ('.issueOrgsName').mouseover(function(){

					//FIX ME
					// $jQ('#orgDetail').show();

				});

				$jQ('#orgDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#orgDetailCountHigh").html(parseInt(_start) + $jQ('.miniOrgDetail').length);
			}
	});
}

// 
function getUsersByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-user.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID,
   		success: 
   			function(data)
			{
				$jQ("#detailUserContent").html(data);

				$jQ('#userDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#userDetailCountHigh").html(parseInt(_start) + $jQ('.miniUserDetail').length);
			}
	});
}

// 
function getCampaignsByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = 1;   // 1 = audio
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-campaign.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailCampaignContent").attr("innerHTML",data);

				$jQ('#campaignDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#campaignDetailCountHigh").html(parseInt(_start) + $jQ('.miniCampaignDetail').length);
			}
	});
}

// 
function getAudioByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = 1;   // 1 = audio
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-resource.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailAudioContent").attr("innerHTML",data);
				
				$jQ('#audioDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#audioDetailCountHigh").html(parseInt(_start) + $jQ('.miniAudioDetail').length);
			}
	});
}

// 
function getImagesByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = 2;   // 2 = images
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-resource.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailImageContent").attr("innerHTML",data);
				
				$jQ('#imageDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#imageDetailCountHigh").html(parseInt(_start) + $jQ('.miniImageDetail').length);
			}
	});
}

// 
function getVideoByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = 5;   // 5 = video
	var _limit = $jQ('#maxItems').val();
	var items = '';
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-resource.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailVideoContent").attr("innerHTML",data);
				
				$jQ('#videoDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#videoDetailCountHigh").html(parseInt(_start) + $jQ('.miniVideoDetail').length);
			}
	});
}

// 
function getWebsitesByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = 6;   // 6 = websites
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-resource.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailWebsiteContent").attr("innerHTML",data);
				
				$jQ('#websiteDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#websiteDetailCountHigh").html(parseInt(_start) + $jQ('.miniWebsiteDetail').length);
			}
	});
}

// 
function getDocsByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _typeID = '3,4,7';   // 3,4,7 = all docs (pdf,word,excel)
	var _limit = $jQ('#maxItems').val();
	var items = '';
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-resource.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID+"&typeID="+_typeID,
   		success: 
   			function(data)
			{
				$jQ("#detailDocContent").attr("innerHTML",data);
				
				$jQ('#docDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#docDetailCountHigh").html(parseInt(_start) + $jQ('.miniDocDetail').length);
			}
	});
}

// 
function getActionsByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	var items = '';

	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-action.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID,
   		success: 
   			function(data)
			{
				$jQ("#detailActionContent").attr("innerHTML",data);
				
				$jQ('#actionDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#actionDetailCountHigh").html(parseInt(_start) + $jQ('.miniActionDetail').length);
			}
	});
}

// 
function getEventsByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	var items = '';
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-event.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID,
   		success: 
   			function(data)
			{
				$jQ("#detailEventContent").html(data);
				
				$jQ('#eventDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#eventDetailCountHigh").html(parseInt(_start) + $jQ('.miniEventDetail').length);
			}
	});
}

// 
function getNewsByIssue(_tagID, _start)
{
	var _sortBy = '';
	var _limit = $jQ('#maxItems').val();
	var items = '';
	
	$jQ.ajaxSync({
		type: "POST",
		url:  "../includes/ajax/issue-news.php",
		data: "sortBy="+_sortBy+"&start="+_start+"&limit="+_limit+"&tagID="+_tagID,
   		success: 
   			function(data)
			{
				$jQ("#detailNewsContent").html(data);
				
				$jQ('#newsDetailCountLow').html(parseInt(_start) + 1);
				$jQ("#newsDetailCountHigh").html(parseInt(_start) + $jQ('.miniNewsDetail').length);
			}
	});
}

// GETS COMMA DELIMITED STRING OF TAG NAMES CHECKED BY USER
function getIssueNames() 
{
	var $issueTagList = '';
	var $foundCount = 0;
	
	$jQ('.interestTag').each(function(){
		if ($jQ(this).attr("checked")) {
			if ($foundCount != 0) $issueTagList += ',';
			$issueTagList += $jQ(this).attr("value");
			$foundCount++;
		}
	});
	return $issueTagList;
}

// GETS COMMA DELIMITED STRING OF TAG IDS CHECKED BY USER
function getIssueIDs() {
	$issueIndexes = '';
	$foundCount = 0;
	
	$jQ('.interestTag').each(function(){
		if ($jQ(this).attr("checked")) {
			if ($foundCount != 0) $issueIndexes += ',';
			$issueIndexes += $jQ(this).attr("id").substring("issue".length);
			$foundCount++;
		}
	});
	return $issueIndexes;
}

// GETS COMMA DELIMITED STRING OF TAG NAMES CHECKED BY USER
function getTagNameFromIssues() {
	$issueTagList = '';
	$foundCount = 0;
	
	$jQ('.interestTag').each(function(){
		if ($jQ(this).attr("checked")) {
			if ($foundCount != 0) $issueTagList += ', ';
			$issueTagList += $jQ(this).attr("value");
			$foundCount++;
		}
	});

	return $issueTagList;
}

// GETS COMMA DELIMITED STRING OF TAG IDS CHECKED BY USER
function getTagIDs() {
	$issueIndexes = '';
	$issueList = $jQ('#issueTags').val();
	$issueArray = $issueList.split(',');
	$userTags = $jQ('#profileTags').val();
	$tagArray = $userTags.split(', ');
	$foundCount = 0;
	
	for ($i=0; $i<$tagArray.length; $i++) {
		for ($j=0; $j<$issueArray.length; $j++) {
			if ($tagArray[$i] == $issueArray[$j]) {
				if ($foundCount != 0) $issueIndexes += ',';
				$issueIndexes += $j+1;
				$foundCount++;
				break;
			}
		}
	}

	return $issueIndexes;
}