var list_body_id = 'list_body';
var list_content_id = 'list_content';
var mng_content_id = 'mng_content';

var def_list_tab_id = 'tab_list';
var def_form_tab_id = 'tab_manage';

var pageInfo = null;

/// LIST CONTROL ///

function sortList(header, field, url)
{
	var dir = ($(header).hasClass('asc'))?('desc'):('asc');
	
	$('.lh_col').removeClass('asc');
	$('.lh_col').removeClass('desc');
	
	$(header).addClass(dir);
	
	var params = new Object();
	params['sort_' + field] = dir;	
	reloadListBody(url, params)
}//sortList

function loadPrevPage(url)
{
	var cur_page = Number($('.onPage').html());
	loadListPage(cur_page - 1, url);	
}//loadPrevPage

function loadNextPage(url)
{
	var cur_page = Number($('.onPage').html());
	loadListPage(cur_page + 1, url);
}//loadNextPage

function loadPage(page_link, url)
{
	var cur_page = Number($(page_link).html());
	loadListPage(cur_page, url);
}//loadPage

function loadListPage(page_num, url)
{
	if(url == undefined)url = pageInfo.pageTarget;
	reloadListBody(url, {page:page_num});	
}//loadListPage

function setLoading(on)
{
	setAjaxLoading(on);
}//setLoading

function reloadListBody(url, params)
{	
	if(params == undefined)params = new Object();
	if(url == undefined && pageInfo != null)url = pageInfo.pageTarget;
	params['part'] = 'body';

	setLoading(true);
	
	loadJSON(url, params, onListBodyReload, onListReloadError);
}//reloadListBody

function onListReloadError(XMLHttpRequest, textStatus, errorThrown)
{
	alert('ERRO: ' + textStatus + "\n TENTE NOVAMENTE OU REPORTE O PROBLEMA PARA O DESENVOLVEDOR DO SITE.");
	setLoading(false);	
}//onListReloadError

function onListBodyReload(obj)
{		
	if(obj['body'] != undefined && obj['pageInfo'] != undefined)
	{
		$('#' + list_body_id).html(obj['body']);
		
		setLoading(false);
		backToList();
			
		setPageInfo(obj['pageInfo']);
	}//if ok
	else
	{
		alert("ERRO AO RECEBER LISTA: TENTE NOVAMENTE OU REPORTE O PROBLEMA PARA O DESENVOLVEDOR DO SITE.");
		setLoading(false);
	}//else erro
}//onListBodyReload

function onReloadList(obj)
{
	$('#' + list_content_id).html(obj['content']);
	$('#' + list_body_id).html(obj['body']);
}//onReloadList

function setPageInfo(obj)
{
	if(pageInfo == null)pageInfo = obj;
	else if(pageInfo.total != obj.total)
	{
		pageInfo = obj;
		rebuildPageList();
	}//if page num changed
	else pageInfo = obj;
	
	$('#l_prev_page').show();
	$('#l_next_page').show();	
	
	if(pageInfo.current == 1)$('#l_prev_page').hide();
	if(pageInfo.current == pageInfo.total || pageInfo.total == 0)$('#l_next_page').hide();
	
	if(pageInfo.total > 0)$('.ultimoAcesso').show();
		else $('.ultimoAcesso').hide();
	
	$('.l_page').removeClass('onPage');
	$('#l_page_' + pageInfo.current).addClass('onPage');
	
	$('#l_first_row').html(pageInfo.ini_row);
	$('#l_last_row').html(pageInfo.last_row);
	$('#l_total').html(pageInfo.total_rows);
	$('#search_total').html(pageInfo.total_rows);
}//setPageInfo

function rebuildPageList()
{
	var page_link = $('#l_page_dummy').clone(true);	
	$('.l_page').remove();
	//return;
	for(var p = pageInfo.total; p >= 1; p--)
	{	
		page_link.attr('id', 'l_page_' + p);				
		page_link.html(p);
		page_link.addClass('l_page');
		
		$('#l_prev_page').after(page_link);
		page_link = page_link.clone(true);
	}//for p	
}//reload

function onChangeFilterDate(min_id, max_id)
{	
	if(min_id == undefined)min_id = 'filter_date_min';
	if(max_id == undefined)max_id = 'filter_date_max';	

	if($('#' + min_id).val() != '' && $('#' + max_id).val() != '')
	{
		filterFormSubmit(document.getElementById(max_id).form);
	}//if min !empty
}//onChangeFilterDate

function filterFormSubmit(form)
{
	var options = {success:onListBodyReload, dataType:'json'};	
	setLoading(true);	
	$(form).ajaxSubmit(options);
}//filterFormSubmit

/// TAB NAV ///

function changeTab(tab, opentab)
{
	$('.listTab').removeClass('menuItemActiveSingle');
	$('.listTab').addClass('menuItemNormal');
	
	$(tab).parent().removeClass('menuItemNormal');
	$(tab).parent().addClass('menuItemActiveSingle');
	
	if(opentab === false)return;
	
	if(tab != undefined)
	{
		if(tab.id == def_list_tab_id)
		{
			$('#' + list_content_id).show();
			$('#' + mng_content_id).hide();
			setLoading(false);
		}//if tab_list
		else
		{			
			setLoading(true);
		}//else
	}//if tab
	else
	{
		$('#' + list_content_id).show();
		$('#' + mng_content_id).hide();
		setLoading(false);
	}//else
}//changeTab

function selectTab(tab_id, opentab)
{
	var tab = $('#' + tab_id);
	changeTab(tab[0], opentab);
}//selectTab

function backToList()
{
	selectTab(def_list_tab_id);
}//backToList

// LIST ACTIONS

function deleteBox(url)
{
	switchBox('confirma_box', true);
	$('#delete_link').attr('href', url);
}//deleteBox

function deleteBoxAjax(url)
{
	switchBox('confirma_box', true);
	$('#delete_link').attr('href', url);
	
	$('#delete_link').unbind('click', doDeleteAjax);
	$('#delete_link').click(doDeleteAjax);
}//deleteBoxAjax

function doDeleteAjax()
{
	switchBox('confirma_box', true);
	setLoading(true);
	loadJSON($(this).attr('href'), null, function(){reloadListBody()});
	
	return false;	
}//doDeleteAjax

function manageAjax(url, tab_id)
{
	if(tab_id == undefined)tab_id = def_form_tab_id;
		
	changeTab('#' + tab_id);	
	loadManageForm(url);
}//manageAjax
