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

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

jQuery(document).ready(function() 
{
	// HIDING USER FEATURE BOXES
	$jQ('#help').hide();
	$jQ('#profile').hide();
	$jQ('#favorites').hide();
	$jQ('#messages').hide();
	$jQ('#contacts').hide();
	$jQ('#campaigns').hide();
	$jQ('#personals').hide();
	$jQ('#settings').hide();
	$jQ('#search').hide();
	$jQ('#searchOrgs').hide();
	$jQ('#searchUsers').hide();
	$jQ('#uploadResource').hide();
	$jQ('#contactEntry').hide();
	$jQ('#contactDetail').hide();
	$jQ('#campaignDetail').hide();
	$jQ('#campaignSummary').hide();
	$jQ('#resourceDetail').hide();
	$jQ('#resourceUploadSuccess').hide();	
	$jQ('#timer').hide();	
	$jQ('#returnMsg').hide();	

	// TAB SETUP
	$jQ('#profileContent').tabs({ fxFade: true, fxSpeed: 'fast' });
	$jQ('#messagesContent').tabs({ fxFade: true, fxSpeed: 'fast' });
	$jQ('#favoritesContent').tabs({ fxFade: true, fxSpeed: 'fast' });
	$jQ('#campaignsContent').tabs({ fxFade: true, fxSpeed: 'fast' });
	//$jQ('#personalsContent').tabs({ fxFade: true, fxSpeed: 'fast' });
	$jQ('#settingsContent').tabs({ fxFade: true, fxSpeed: 'fast' });

	var bindTableBehaviors = function(scope) {
		$jQ("tr.tableData").hover(function(){
			$jQ(this).unbind("hover");
			
			$jQ("tr.tableData").filter(".tableDataHighlight").removeClass("tableDataHighlight");
			$jQ(this).addClass("tableDataHighlight");
			
			bindTableBehaviors(this);
		});
		
		$jQ("tr.tableData").click(function(){
			$jQ("tr.tableData").filter(".tableDataSelect").removeClass("tableDataSelect");
			$jQ(this).addClass("tableDataSelect");
			if ($jQ(this).attr("id").substring(0,6) == "message")
				getSelectedMessage();
		 });
		 
	/*
		$jQ("tr.tableData").dblclick(function(){
			$jQ(this).unbind("dblclick");
		

			// DOES ID HAVE ROOT OF "CAMPAIGN"?
			if ( ($jQ(this).attr("id").substring(0,7)) == "message" ) {
				$jQ("tr.tableData").filter(".tableDataSelect").removeClass("tableDataSelect");
				$jQ(this).addClass("tableDataSelect");
				$jQ('#readBtn').click();
			} else {
				// STRIP OFF CAMPAIGN ID
				_campaignID = $jQ(this).attr("id").substring(8);
				$jQ("tr.tableData").filter(".tableDataSelect").removeClass("tableDataSelect");
				$jQ(this).addClass("tableDataSelect");
				
				getCampaignSummary(_campaignID);
			}
			
			bindTableBehaviors(this);
		 });
	*/
	
		$jQ(".block").draggable();
	}
	
	
	//$jQ(".stripeMe tr").mouseover(function(){$jQ(this).addClass("over");}).mouseout(function(){$jQ(this).removeClass("over");});
	//$jQ(".stripeMe tr:even").addClass("alt");
	
	var bindWindowBehaviors = function(scope) {		
		$jQ('.closeBtn').click(function(){
			$jQ(this).unbind("click");
			
			// Find index of "minimizeBtn" in ID and get the section context
			_sectionName = $jQ(this).attr("id").substring(5);
	
			bindWindowBehaviors(this);
			
			$jQ('.maximizeBtn').click();
			$jQ('#'+_sectionName).fadeOut('fast');
		});
		
		$jQ('.minimizeBtn').click(function(){
			$jQ(this).unbind("click");
			
			// Find index of "minimizeBtn" in ID and get the section context
			_sectionName = $jQ(this).attr("id").substring("minimize".length);
	
			// change Btn to maximize img
			$jQ(this).attr( { src: '../images/user/plus.png', id: 'maximize'+_sectionName, title: 'Maximize '+_sectionName });
			$jQ(this).addClass('maximizeBtn').removeClass('minimizeBtn');

			bindWindowBehaviors(this);
						
			// close the small window toolbar
			$jQ('#subtoolbar'+_sectionName).hide();
			
			//minimize Content section
			$jQ('#'+_sectionName+'Content').fadeOut('fast');
		});
		
		$jQ('.maximizeBtn').click(function(){	
			$jQ(this).unbind("click");

			// Find index of "minimizeBtn" in ID and get the section context
			_sectionName = $jQ(this).attr("id").substring("minimize".length);
			
			// change Btn to minimize img
			$jQ(this).attr( { src: '../images/user/minus.png', id: 'minimize'+_sectionName, title: 'Minimize '+_sectionName });
			$jQ(this).addClass('minimizeBtn').removeClass('maximizeBtn');
			
			bindWindowBehaviors(this);
			
			// 
			$jQ('#subtoolbar'+_sectionName).fadeIn('fast');
			
			//maximize Content section
			$jQ('#'+_sectionName+'Content').fadeIn('fast');
		});
		
		$jQ('.titleBar').click(function(){
			$jQ(this).unbind("click");
			
			bindWindowBehaviors(this);
			_sectionName = $jQ(this).attr("id").substring("title".length);
			showAtTop(_sectionName);
		});
	}

	var bindButtonBehaviors = function(scope) {
		// BINDING FOR HOVER EVENT FOR BUTTONS
		$jQ('.smallBtn').hover(function() {
			$jQ(this).addClass('buttonHover');
		}, function() {
			$jQ(this).removeClass('buttonHover');
		});

		$jQ('.mediumBtn').hover(function() {
			$jQ(this).addClass('buttonHover');
		}, function() {
			$jQ(this).removeClass('buttonHover');
		});
	}
	
	var bindToolbarBehaviors = function(scope) {
		$jQ('#profileBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#profile');
			bindToolbarBehaviors(this);
		});	

		$jQ('#favoritesBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#favorites');
			bindToolbarBehaviors(this);
		});	

		$jQ('#messagesBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#messages');
			bindToolbarBehaviors(this);
		});	

		$jQ('#campaignsBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#campaigns');
			bindToolbarBehaviors(this);
		});	

		$jQ('#personalsBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#personals');
			bindToolbarBehaviors(this);
		});
		
		$jQ('#searchBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#search');
			getTagCloud();
			bindToolbarBehaviors(this);
		});	

		$jQ('#settingsBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#settings');
			bindToolbarBehaviors(this);
		});	

		$jQ('#helpBtn').click(function(){
			$jQ(this).unbind("click");
			showAtTop('div#help');
			bindToolbarBehaviors(this);
		});
	}
	
	$jQ('.specialCheckBox').click(function()
	{	
		_id = $jQ(this).attr("id");
		if ( $jQ(this).children().attr("checked") )
		{
			$jQ(this).addClass("boxed");
			$jQ(this).addClass("checked");
		}
		else
		{
			$jQ(this).addClass("boxed");
			$jQ(this).removeClass("checked");
		}
	});
	
	$jQ('.helpBtn').click(function(){
		$jQ(this).parent().children(".adminHelp").toggle("hide");
	});
	
	$jQ('#publishBtn').click(
		function()
		{
			_userID = $jQ('#USER_ID').attr("value");
			
			$jQ.ajax({
				type: "POST",
				url:  "../includes/ajax/user-publish.php",
				data: "userID="+_userID,
				success: function(data){
					window.location= '../users/?user-id=' + _userID;

				},
				error:function(){
					$jQ.prompt('Your page is published.');
				}
			});
		}
	);
	
	// TRIGGER EVENT FUNCTIONS
	//$jQ('#addOrg').submit(function() { getOrgs();$jQ('#searchOrgs').fadeIn('fast'); })
	//$jQ('#addUser').submit(function() { getUsers();$jQ('#searchUsers').fadeIn('fast'); })
	//$jQ('#addCampaign').submit(function() { getCampaigns();$jQ('#searchCampaigns').fadeIn('fast'); })
	
	// Now bind the Events
	bindWindowBehaviors();
	bindButtonBehaviors();
	bindToolbarBehaviors();
});


function bindTableEvents() 
{
	$jQ("tr.tableData").hover(function(){
		$jQ("tr.tableData").filter(".tableDataHighlight").removeClass("tableDataHighlight");
		$jQ(this).addClass("tableDataHighlight");
	},function(){ true; });
	
	$jQ("tr.tableData").click(function(){
		$jQ(this).addClass("tableDataSelect");
		$jQ("tr.tableData").filter(".tableDataSelect").removeClass("tableDataSelect");
		$jQ(this).addClass("tableDataSelect");
		
		if ( $jQ(this).attr("id").substring(0,7) == "message" ) 
		{
			$jQ('#readBtn').click();
		}
	});
}

function getCurrentUser() {
	return $jQ('#hiddenUserID').attr("title");
}

function getCurrentUserType() {
	return $jQ('#hiddenUserType').attr("title");
}


/******************* AJAX DATA HELPER FUNCTIONS *********************/
function showAtTop(_sectionDiv) 
{
	refreshUserData(_sectionDiv);
	$jQ(_sectionDiv).siblings().appendTo("div#userHomeContainer");
	$jQ(_sectionDiv).fadeIn('fast');
	$jQ(_sectionDiv+'Content').fadeIn('fast');
}

function refreshUserData(_sectionDiv) 
{
	switch (_sectionDiv) {
		case "div#profile":
			getMyProfile('Info');
			getMyProfile('Contact');
			getMyProfile('Avatar');
			getMyProfile('Personal');
			getMyProfile('Interests');
			getMyProfile('Password');
			break;
		case "div#favorites":
			getFavoriteOrgs();
			getFavoriteUsers();
			getFavoriteImages();
			getFavoriteVideo();
			getFavoriteAudio();
			getFavoriteDocs();
			getFavoriteWebsites();
			break;
		case "div#messages":
			getMessagesByType(1);  /* USER */ 
			getMessagesByType(2);  /* ORG */
			getMessagesByType(3);  /* NETWORK */
/*			getMessagesByType(4);  /* DRAFTS */
			getMessagesByType(5);  /* SENT */
			break;
		case "div#campaigns":
			getMyCampaigns('Fundraiser');
			getMyCampaigns('Petition');
			getMyCampaigns('Boycott');
			getMyCampaigns('Eletter');
			//getMyCampaigns('Personal');
			break;
		case "div#personals":
			getPersonalCampaigns('Current');
			getPersonalCampaigns('Old');
			break;
		case "div#settings":
			getMySettings('Homepage');
			getMySettings('Messaging');
			getMySettings('Privacy');
			getMySettings('Alerts');
		default:
			break;
	}
}

function getElementIDFromID(_idString, _string) 
{
	return parseInt(_idString.substring(_string.length));
}