// Need to match constants in constants.php
var COMPANY_SOURCE_DB = 1;
var COMPANY_SOURCE_SEARCH = 2;
var COMPANY_SOURCE_BBG = 3;

// Need to match CompanyNotice->notice_type
var NOTICE_TYPE_MOVE = 1;
var NOTICE_TYPE_ORDER = 2;
var NOTICE_TYPE_CANCEL = 3;

var _formFieldEntryPostAction = null;

function getCompanies(cat,pageIndex,searchText,getMostUsed)
{
	// Hide sub-containers
	hideSubContainers();
	
	// Get data
	if (cat > 0)
	{
		if (getMostUsed != null && getMostUsed == true)
			getPage('get_companies_from_db.php?cat='+ cat +'&page='+ pageIndex +'&search='+ searchText +'&pri=1', 'companyPriContainer');
	}
	else
	{
		document.getElementById('companyPriContainer').style.display = 'none';
	}
	
	getPage('get_companies_from_db.php?cat='+ cat +'&page='+ pageIndex +'&search='+ searchText, 'companyContainer');
}

function externalCompanySearch()
{
	// Hide sub-containers
	hideSubContainers();
	
	// Get data
	var searchText = document.getElementById('txtSearch').value;
	getPage('get_companies_from_search.php?n='+ searchText, 'companyContainer');
}

function addRemoveCompany(companyId)
{
	var noticeType = document.getElementById('noticeType['+ companyId +']').value;
	var useRefNo = document.getElementById('useRefNo['+ companyId +']').value;
	var formId = document.getElementById('formId['+ companyId +']').value;

	if (noticeType == 0)
	{
		// Do not notify
		
		if (useRefNo == '1')
		{
			// Remove the ref no in list
			document.getElementById('txtMyRef['+ companyId +']').value = '';
		}

		// Set negative id to remove
		companyId = companyId * -1;

		// De-register the ref no
		registerCompanyRefNo(companyId, noticeType, 0, COMPANY_SOURCE_DB, 0);
	}
	else
	{
		// Notify as Move, Order or Cancellation
		
		if (useRefNo == '1')
		{
			// Open input dialog
			document.getElementById('currentCompanyNo').value = companyId;
			container = document.getElementById('customerNumberContainer');
			container.style.display = 'block';
			
			// Set focus
			document.getElementById('companyRefNo').focus();
		}
		else if (formId > 0 && document.getElementById('formFieldContainer') != null)
		{
			_formFieldEntryPostAction = "registerCompanyRefNo("+ companyId +", "+ noticeType +", '', "+ COMPANY_SOURCE_DB +", "+ formId +");";
			viewForm(formId, "registerCompanyFormValues("+ formId +");", "document.getElementById('noticeType["+ companyId +"]').checked = false;");
		}
		else
		{
			// Register the company without any customer ref
			registerCompanyRefNo(companyId, noticeType, '', COMPANY_SOURCE_DB, 0);
		}
	}
}

function registerCompanyFormValues(formId)
{
	postPage('frmEntry', _JF_ROOT_URL+ 'mover/manage_selected_company_forms.php?id='+ formId, null, null, 'receiveRegisterCompanyFormValuesResult')
}

function receiveRegisterCompanyFormValuesResult(result)
{
	if (result.length > 0)
	{
		alert(result);
	}
	else
	{
		closeForm();
		eval(_formFieldEntryPostAction);
	}
}

function setCompanyRefNo()
{
	// Get company id and customer ref no
	var companyId = document.getElementById('currentCompanyNo').value;
	var companyRefNo = document.getElementById('companyRefNo').value;
	var noticeType = document.getElementById('noticeType['+ companyId +']').value;
	
	// Register the ref no
	registerCompanyRefNo(companyId, noticeType, companyRefNo, COMPANY_SOURCE_DB, 0);
	
	// Hide input dialog
	document.getElementById('customerNumberContainer').style.display = 'none';
	
	// Set the ref no in list
	document.getElementById('txtMyRef['+ companyId +']').value = companyRefNo;
}

function cancelCompanyRefNoInput()
{
	// Tick off checkbox
	companyId = document.getElementById('currentCompanyNo').value;
	document.getElementById('cbxInclude['+ companyId +']').checked = false;
	
	// Hide input dialog
	document.getElementById('customerNumberContainer').style.display = 'none';
}

function addRemoveSearchCompany(companyId)
{
	var noticeType = document.getElementById('noticeType['+ companyId +']').value;

	if (noticeType == 0)
	{
		// Set negative id to remove
		companyId = companyId * -1;

		// De-register
		registerCompanyRefNo(companyId, noticeType, 0, COMPANY_SOURCE_SEARCH, 0);
	}
	else
	{
		// Register the company without any customer ref
		registerCompanyRefNo(companyId, noticeType, '', COMPANY_SOURCE_SEARCH, 0);
	}
}

function addRemoveBBGCompany(companyId, add)
{
	var noticeType = NOTICE_TYPE_ORDER;

	if (add)
	{
		// Register the company without any customer ref
		registerCompanyRefNo(companyId, noticeType, '', COMPANY_SOURCE_BBG, 0);
	}
	else
	{
		// Set negative id to remove
		companyId = companyId * -1;

		// De-register the ref no
		registerCompanyRefNo(companyId, noticeType, 0, COMPANY_SOURCE_BBG, 0);
	}
}

function registerCompanyRefNo(companyId, noticeType, ref, dataSource, formId)
{
	// Get name
	var companyName = '';
	var el = document.getElementById('name['+ companyId +']');
	if (el != null)
		companyName = el.value;
		
	getPage('manage_selected_companies.php?id='+ companyId +'&nt='+ noticeType +'&ref='+ ref +'&source='+ dataSource +'&name='+ companyName +'&fid='+ formId, 'leftSideContainer');
}

function hideSubContainers()
{
	var customerNumberContainer = document.getElementById('customerNumberContainer');
	var campaignContainer = document.getElementById('campaignContainer');
	var messageContainer = document.getElementById('messageContainer');
	var agreementContainer = document.getElementById('agreementContainer');
	var helpContainer = document.getElementById('helpContainer');

	if (customerNumberContainer != null)
		customerNumberContainer.style.display = 'none';
	if (campaignContainer != null)
		campaignContainer.style.display = 'none';
	if (messageContainer != null)
		messageContainer.style.display = 'none';
	if (agreementContainer != null)
		agreementContainer.style.display = 'none';
	if (helpContainer != null)
		helpContainer.style.display = 'none';
		
	removeCurtain();
}

function getCampaigns(companyId, isBBG)
{
	getPage('get_campaigns.php?id='+ companyId +'&use=1&bbg='+ isBBG, 'campaignContainer');
	showCurtain();
}

function addRemoveCampaign(campaignId, add, campaignTable, companySource)
{
	if (!add) {
		// Set negative id to remove
		campaignId = campaignId * -1;
		campaignTable.className = '';
	} else {
		campaignTable.className = 'selectedCampaign';
	}
	
	getPage('manage_selected_campaigns.php?id='+ campaignId +'&source='+ companySource, 'messageContainer');
}
