//// HANDLERS

function addMyLibraryItem( p_nItemId, p_nItemType ) {
	l_axArgs = [];
	l_axArgs.data = "a=addMyLibraryItem&item_id="+p_nItemId+"&item_type="+p_nItemType;
	
	InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArgs, onMyLibraryItemAdded);
}

function removeMyLibraryItem( p_nItemId, p_nItemType, p_nPage ) {
		l_axArgs = [];
		l_axArgs.data = "a=removeMyLibraryItem&item_id="+p_nItemId+"&item_type="+p_nItemType+"&page="+p_nPage;

		InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArgs, onMyLibraryItemRemoved);	
}

function removeDropdownLibraryItem( p_nItemId, p_nItemType, p_nPage ) {
	l_axArgs = [];
	l_axArgs.data = "a=removeDropdownLibraryItem&item_id="+p_nItemId+"&item_type="+p_nItemType+"&page="+p_nPage;

	InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArgs, onDropdownLibraryItemRemoved);
	
}

function removeAllMyLibraryItems() {
	if (confirm("Are you sure you want to remove ALL of your Library items?")) {
		l_axArgs = [];
		l_axArgs.data = "a=removeAllMyLibraryItems";

		InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArgs, onAllMyLibraryItemsRemoved);
	}
}

function getMyLibraryItems( p_nPage ) {
	l_axArgs = [];
	l_axArgs.data = "a=getMyLibraryItems&page="+p_nPage;
	BaseAjax.setLoaderOverlay("#library_list");
	InterviewAjax.makeAjaxCall("/ajax/ajax.php", l_axArgs, onMyLibraryItemsRetrieved);
}



//// CALLBACKS

function onMyLibraryItemAdded( p_nAccountId ) {
	l_sMessage = (p_nAccountId > 0) ? "Added" : "Please Sign In First"; 
	
	// TODO: Reconsider this UI, may want to bring back Add To Library link if not logged in	
	holderRef = $("#action_bar div.library");
	$(holderRef).find('a').fadeOut(
		function() {
	 		$(holderRef).html(l_sMessage);
			$(holderRef).css("cursor", "default")
	    });
}


function onMyLibraryItemRemoved( p_sJsonResponse ) {
	var l_xResponse = eval("(" + p_sJsonResponse + ")");
	var l_nItemId = l_xResponse.item_id;
	var l_nPage = l_xResponse.page; // page request was made from


	// Checking if item removed was last one on the page, and redirecting to previous page if so
	
	var l_aMyLibKids = $('#library_entry_list').children(".library_entry");

	if ((l_aMyLibKids.length == 1) && (l_nPage != 1)) {
		var l_nPrevpage = (l_nPage == 2) ? '' : (l_nPage-1);
		var l_sHost = window.location.host;
		var l_sRedirectUrl = 'http://'+ l_sHost +'/mylibrary/'+ l_nPrevpage;
		window.location = l_sRedirectUrl;	
	}
	else {
		// Updating listing
		var l_sRange = new String();

		var l_xListing = $('#lib_subheader p.listing').children();
		l_sRange = l_xListing[0].innerHTML;
		var l_nTotal = l_xListing[1].innerHTML;
		var l_aSplitRange = l_sRange.split("-");
		var l_nRangeStart = l_aSplitRange[0];
		var l_nRangeEnd = l_aSplitRange[1];
	
		if (l_nTotal == 1) { onAllMyLibraryItemsRemoved(); }
	
		l_nRangeEnd -= 1;
		l_nTotal -= 1;
		
		l_sListingsHtml = 'Showing <span class="listing_number">'+l_nRangeStart+'-'+l_nRangeEnd+'</span> of <span class="listing_number">'+l_nTotal+'</span>';
		
		$('#lib_subheader p.listing').html(l_sListingsHtml);
	}
	
		$('#item_'+l_nItemId).fadeOut('slow',
			function() {
	 			$('#item_'+l_nItemId).remove();
	 		});
	
}


function onDropdownLibraryItemRemoved( p_sJsonResponse ) {
	var l_xResponse = eval("(" + p_sJsonResponse + ")");
	var l_nItemId = l_xResponse.item_id;
	var l_nPage = l_xResponse.page; // page request was made from

	var l_aLibKids = $('#library_list').children();
	if ( l_aLibKids.length == 2 ) { //if last item is removed, show prev page 
		l_nPage -= 1;
	}
	
	getMyLibraryItems(l_nPage);
	
// 	l_sItemDivs = '#item_'+l_nItemId+', #dd_item_'+l_nItemId;
// 	holderRef = $(l_sItemDivs);
// //	holderRef = $('#item_'+p_nItemId);
// 	
// 	$(holderRef).fadeOut('slow', 
// 		function() {
// 	 		$(holderRef).remove();
// 			getMyLibraryItems();
// 			l_aLibKids = $('#library_list').children();
// 			if ( l_aLibKids.length == 1 ) { //if only listing+remove all div is left, refresh 
// 				getMyLibraryItems();	
// 			}
// 	    });
}


function onAllMyLibraryItemsRemoved() {
	// MyLib Dropdown: #library_list, #lib_links_container
	// MyLib Page: #lib_subheader, #library_entry_list
	
	holderRef = $('#library_list, #lib_links_container, #lib_subheader, #library_entry_list');
	holderRef.fadeOut('slow',
	 	function() {
	 		$('#lib_null, #empty_lib_subheader, #empty_library').show();
	 	});
}



function onMyLibraryItemsRetrieved( p_sItemsHtml ) {
	holderRef = $('#library_list, #lib_links_container');
	if (p_sItemsHtml == '') {
		$(holderRef).remove();
		$('#lib_null').show();
	}
	else {
		$('#library_list').html(p_sItemsHtml);
		$('#library_list_container').height( $('#library_list_container').height() ); // jankiness to keep eight the same while hiding lib_list
		$('#library_list').hide();
		$('#library_list_container').height('auto');
		// setTimeout(function(){
		// 		$('#library_list').fadeIn();
		// 		$('#library_list_container').height('auto');
		// }, 100);
		$('#lib_links_container').show();
		$('#library_list').fadeIn();
	}
	// $(holderRef).fadeIn('slow', 
	// 	function() {
	//  		$(holderRef).html(p_sItemsHtml);
	//     });
}

