/**
*
*/
function loadProducts() 
{
	buildProductList("Select Product Line...", "Select");
	buildProductList("AgriPlan/BizPlan", "Agbiz");
	buildProductList("COBRAToday", "Cobra");
	buildProductList("DirectPay", "DirectPay");
	buildProductList("FlexSystem", "Flex");
}

/**
*
*/
function buildProductList(product,value)
{
	var selectElement = document.getElementById('productInput');
	
	var newOption = document.createElement('option');
	newOption.setAttribute("value", value);
	newOption.innerHTML = product;
	selectElement.appendChild(newOption);
}

/**
*
*/
function processSelectedProduct()
{
	TopicView.getInstance().updateView();
}


/**
*
*/
function Topic(name)
{
	this.name = name;
}

/**
*
*/
function TopicView()
{

}

TopicView.prototype.createOptions=function()
{
	var selectedProduct = document.getElementById('productInput').value;
	
	var topicsList = Topic.AVAILABLE_TOPICS[selectedProduct];
	
	return topicsList;
}

TopicView.prototype.updateView=function()
{
	clearTopicListOptions();
	
	var topicOptions = this.createOptions();
	
	var selectElement = document.getElementById('topicsList');
	
	for(var i in topicOptions)
	{
		var optionElement = document.createElement('option');
		optionElement.setAttribute("value", topicOptions[i].name);
		optionElement.innerHTML = topicOptions[i].name;
		selectElement.appendChild(optionElement);
	}
}

TopicView.getInstance=function()
{
	if(TopicView.instance == null)
	{
		TopicView.instance = new TopicView();
	}
	
	return TopicView.instance;
}

/**
*
*/
function clearTopicListOptions()
{
	var list = document.getElementById('topicsList');
   
   while(list.options.length > 0)
   {
       list.remove(0);
   }
}

/****************************************************************************
*																			*
*						List items and definitions							*
*																			*
*****************************************************************************/

//topics
Topic.SELECT = new Topic("Select Topic...");
Topic.ADMINISTRATION_FEE_INVOICES = new Topic("Administration Fee Invoices");
Topic.BENEFIT_CARD_QUESTIONS = new Topic("Benefit Card Questions");
Topic.CHANGE_COMPANY_INFORMATION = new Topic("Change Company Information");
Topic.CHANGE_EMPLOYEE_INFORMATION = new Topic("Change Employee Information");
Topic.CLIENT_ADMINISTRATION_FEE_INVOICES = new Topic("Client Administration Fee Invoices");
Topic.CLIENT_ENROLLMENT_MANAGEMENT = new Topic("Client Enrollment Management");
Topic.CLIENT_PLAN_MANAGEMENT = new Topic("Client Plan Management");
Topic.CLIENT_PLAN_FUNDING = new Topic("Client Plan Funding");
Topic.CLIENT_PLAN_FUNDING_PVR = new Topic("Client Plan Funding/Payroll Verification Report (PVR)");
Topic.CLIENT_UPDATE_DEMOGRAPHICS_CONTACT = new Topic("Update Client Demographics or Primary Contact");
Topic.PARTICIPANT_AVAILABLE_FUNDS = new Topic("Participant Available Funds");
Topic.PARTICPANT_CHANGES_ANNUAL_ELECTIONS = new Topic("Participant Changes to Annual Elections");
Topic.PARTICIPANT_DEPENDANT_CLAIM_CARD  = new Topic("Participant or Dependant Claim Card");
Topic.PARTICIPANT_ELIGIBLE_EXPENSES = new Topic("Participant Eligible Expenses");
Topic.PARTICIPANT_RFR = new Topic("Participant Request For Reimbursement (claims)");
Topic.PARTICIPANT_UPDATE_INFORMATION = new Topic("Update Participant Personal Information");
Topic.OTHER = new Topic("Other");
Topic.PQB_QUESTIONS = new Topic("Primary Qualified Beneficiary (PQB) Questions or Information");
Topic.TRANSMITTAL = new Topic("Transmittal");
Topic.REQUEST_ID_PIN = new Topic("Request TASC ID and PIN");
Topic.CLIENT_REQUEST_ID_PIN = new Topic("Client Request TASC ID and PIN");
Topic.PARTICIPANT_REQUEST_ID_PIN = new Topic("Participant Request TASC ID and PIN");


Topic.AVAILABLE_TOPICS = {
	"Agbiz" : [
		Topic.SELECT,
		Topic.ADMINISTRATION_FEE_INVOICES,
		Topic.BENEFIT_CARD_QUESTIONS,
		Topic.CHANGE_COMPANY_INFORMATION,
		Topic.CHANGE_EMPLOYEE_INFORMATION,
		Topic.REQUEST_ID_PIN,
		Topic.TRANSMITTAL,
		Topic.OTHER],
	"Cobra" : [
		Topic.SELECT,
		Topic.CLIENT_ADMINISTRATION_FEE_INVOICES,
		Topic.CLIENT_PLAN_MANAGEMENT,
		Topic.CLIENT_REQUEST_ID_PIN,
		Topic.PARTICIPANT_REQUEST_ID_PIN,
		Topic.PQB_QUESTIONS,
		Topic.CLIENT_UPDATE_DEMOGRAPHICS_CONTACT,
		Topic.OTHER],
	"DirectPay" : [
		Topic.SELECT,
		Topic.CLIENT_ADMINISTRATION_FEE_INVOICES,
		Topic.CLIENT_ENROLLMENT_MANAGEMENT,
		Topic.CLIENT_PLAN_MANAGEMENT,
		Topic.CLIENT_PLAN_FUNDING,
		Topic.CLIENT_REQUEST_ID_PIN,
		Topic.CLIENT_UPDATE_DEMOGRAPHICS_CONTACT,
		Topic.PARTICIPANT_AVAILABLE_FUNDS,
		Topic.PARTICIPANT_ELIGIBLE_EXPENSES,
		Topic.PARTICIPANT_RFR,
		Topic.PARTICIPANT_REQUEST_ID_PIN,
		Topic.PARTICIPANT_UPDATE_INFORMATION,
		Topic.OTHER],
	"Flex" : [
		Topic.SELECT,
		Topic.CLIENT_ADMINISTRATION_FEE_INVOICES,
		Topic.CLIENT_ENROLLMENT_MANAGEMENT,
		Topic.CLIENT_PLAN_MANAGEMENT,
		Topic.CLIENT_PLAN_FUNDING_PVR,
		Topic.CLIENT_REQUEST_ID_PIN,
		Topic.CLIENT_UPDATE_DEMOGRAPHICS_CONTACT,
		Topic.PARTICIPANT_AVAILABLE_FUNDS,
		Topic.PARTICPANT_CHANGES_ANNUAL_ELECTIONS,
		Topic.PARTICIPANT_DEPENDANT_CLAIM_CARD,
		Topic.PARTICIPANT_ELIGIBLE_EXPENSES,
		Topic.PARTICIPANT_REQUEST_ID_PIN,
		Topic.PARTICIPANT_RFR,
		Topic.PARTICIPANT_UPDATE_INFORMATION,
		Topic.OTHER]
};