﻿var currentRegions = Array();
var currentProfessionalGroups = Array();
var currentEventTypes = Array();
var currentLanguages = Array();

function addToCurrentRegions(id)
{
	currentRegions.push(id);
}

// remove an region from the master list
function removeFromCurrentRegions(id)
{
	var size = currentRegions.length;
	
	for (var i = 0; i < size; i++) {
		
		if (currentRegions[i] == id) {
			currentRegions.splice(i,1);
			break;
		}
	}
}

// take the list of regions and create hidden inputs
// so that the region ids can be posted
function postRegions()
{
	var size = currentRegions.length;
	
	var form = document.getElementById("eventForm");

	// add each region id to the form		
	for (var i = 0; i < size; i++) {
	
		var hidden = document.createElement("input");
		hidden.setAttribute("type","hidden");
		hidden.setAttribute("name","regionList[]");
		hidden.setAttribute("value",currentRegions[i]);
		form.appendChild(hidden);
	}
}

// add a region to the master list and create a new table row
function addRegion()
{
	var regionID = document.getElementById("regionID").value;
	
	var size = currentRegions.length;
	
	var found = false;
	var blank = false;
	
	if (regionID == '#') {
		blank = true;
	}
	
	// see if the region has already been added
	for (var i = 0; i < size; i++) {
		if (currentRegions[i] == regionID) {
			found = true;
			break;
		}
	}			
	
	// if it has then display a message		
	if (found || blank) {
		if (found) {
			alert('You cannot add the same region twice.');
		}
		else {
			alert('Please select a region to add.');
		}
	}
	
	// otherwise add it to the region list and create a new table row
	else {

		addToCurrentRegions(regionID);
		
		var name = document.eventForm.regionID.options[document.eventForm.regionID.selectedIndex].innerHTML;

		var table = document.getElementById("regionTable");
		
		var noRegionsMessage = document.getElementById("noRegionsMessage");
		
		var row = table.insertRow(1);
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		// for moz
    	table.setAttribute("style","inline-block");
    	// for ie
    	table.style.display = "inline-block";
    
		noRegionsMessage.style.display = "none";
		
		row.id = "region_row_"+regionID;

		var remove = document.createElement("input");
		remove = "<a title=\"Remove\" onclick=\"removeRegion('"+regionID+"')\"><span>Remove</span></a>";

		td2.innerHTML = remove;

		td1.innerHTML = name;

		row.appendChild(td1);
		row.appendChild(td2);
		
		var region = document.getElementById("region");
		region.appendChild(table);
	}
}

function removeRegion(id)
{
	var size = currentRegions.length;

	removeFromCurrentRegions(id);

	// hide the table if there are no regions in it
	if (currentRegions.length < 1) {
		var table = document.getElementById("regionTable");
		table.style.display = "none";
		
		var noRegionsMessage = document.getElementById("noRegionsMessage");
		noRegionsMessage.style.display = "block";
	}
	
	var table = document.getElementById('regionTable');
						
	var numRows = table.rows.length;
	
	// loop through the table rows and delete the row once it's found
	for (var j = 0; j < numRows; j++) {
		if (table.rows[j].id == "region_row_"+id) {
			table.deleteRow(j);
			break;
		}
	}
}

function addToCurrentProfessionalGroups(id)
{
	currentProfessionalGroups.push(id);
}

// remove an professional group from the master list
function removeFromCurrentProfessionalGroups(id)
{
	var size = currentProfessionalGroups.length;
	
	for (var i = 0; i < size; i++) {
		
		if (currentProfessionalGroups[i] == id) {
			currentProfessionalGroups.splice(i,1);
			break;
		}
	}
}

// take the list of professional groups and create hidden inputs
// so that the professional group ids can be posted
function postProfessionalGroups()
{
	var size = currentProfessionalGroups.length;
	
	var form = document.getElementById("eventForm");

	// add each professional group id to the form		
	for (var i = 0; i < size; i++) {
	
		var hidden = document.createElement("input");
		hidden.setAttribute("type","hidden");
		hidden.setAttribute("name","professionalGroupList[]");
		hidden.setAttribute("value",currentProfessionalGroups[i]);
		form.appendChild(hidden);
	}
}

// add a professional group to the master list and create a new table row
function addProfessionalGroup()
{
	var professionalGroupID = document.getElementById("professionalGroupID").value;
	
	var size = currentProfessionalGroups.length;
	
	var found = false;
	var blank = false;
	
	if (professionalGroupID == '#') {
		blank = true;
	}
	
	// see if the professional group has already been added
	for (var i = 0; i < size; i++) {
		if (currentProfessionalGroups[i] == professionalGroupID) {
			found = true;
			break;
		}
	}			
	
	// if it has then display a message		
	if (found || blank) {
		if (found) {
			alert('You cannot add the same professional group twice.');
		}
		else {
			alert('Please select a professional group to add.');
		}
	}
	
	// otherwise add it to the professional group list and create a new table row
	else {

		addToCurrentProfessionalGroups(professionalGroupID);
		
		var name = document.eventForm.professionalGroupID.options[document.eventForm.professionalGroupID.selectedIndex].innerHTML;

		var table = document.getElementById("professionalGroupTable");
		
		var noProfessionalGroupsMessage = document.getElementById("noProfessionalGroupsMessage");
		
		var row = table.insertRow(1);
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		// for moz
    	table.setAttribute("style","inline-block");
    	// for ie
    	table.style.display = "inline-block";
    
		noProfessionalGroupsMessage.style.display = "none";
		
		row.id = "professionalGroup_row_"+professionalGroupID;

		var remove = document.createElement("input");
		remove = "<a title=\"Remove\" onclick=\"removeProfessionalGroup('"+professionalGroupID+"')\"><span>Remove</span></a>";

		td2.innerHTML = remove;

		td1.innerHTML = name;

		row.appendChild(td1);
		row.appendChild(td2);
		
		var profesionalGroup = document.getElementById("professionalGroup");
		profesionalGroup.appendChild(table);
	}
}

function removeProfessionalGroup(id)
{
	var size = currentProfessionalGroups.length;

	removeFromCurrentProfessionalGroups(id);

	// hide the table if there are no professional groups in it
	if (currentProfessionalGroups.length < 1) {
		var table = document.getElementById("professionalGroupTable");
		table.style.display = "none";
		
		var noProfessionalGroupsMessage = document.getElementById("noProfessionalGroupsMessage");
		noProfessionalGroupsMessage.style.display = "block";
	}
	
	var table = document.getElementById('professionalGroupTable');
						
	var numRows = table.rows.length;
	
	// loop through the table rows and delete the row once it's found
	for (var j = 0; j < numRows; j++) {
		if (table.rows[j].id == "professionalGroup_row_"+id) {
			table.deleteRow(j);
			break;
		}
	}
}

function addToCurrentEventTypes(id)
{
	currentEventTypes.push(id);
}

// remove an eventType from the master list
function removeFromCurrentEventTypes(id)
{
	var size = currentEventTypes.length;
	
	for (var i = 0; i < size; i++) {
		
		if (currentEventTypes[i] == id) {
			currentEventTypes.splice(i,1);
			break;
		}
	}
}

// take the list of eventTypes and create hidden inputs
// so that the eventType ids can be posted
function postEventTypes()
{
	var size = currentEventTypes.length;
	
	var form = document.getElementById("eventForm");

	// add each eventType id to the form		
	for (var i = 0; i < size; i++) {
	
		var hidden = document.createElement("input");
		hidden.setAttribute("type","hidden");
		hidden.setAttribute("name","eventTypeList[]");
		hidden.setAttribute("value",currentEventTypes[i]);
		form.appendChild(hidden);
	}
}

// add a eventType to the master list and create a new table row
function addEventType()
{
	var eventTypeID = document.getElementById("eventTypeID").value;
	
	var size = currentEventTypes.length;
	
	var found = false;
	var blank = false;
	
	if (eventTypeID == '#') {
		blank = true;
	}
	
	// see if the eventType has already been added
	for (var i = 0; i < size; i++) {
		if (currentEventTypes[i] == eventTypeID) {
			found = true;
			break;
		}
	}			
	
	// if it has then display a message		
	if (found || blank) {
		if (found) {
			alert('You cannot add the same event type twice.');
		}
		else {
			alert('Please select an event type to add.');
		}
	}
	
	// otherwise add it to the eventType list and create a new table row
	else {

		addToCurrentEventTypes(eventTypeID);
		
		var name = document.eventForm.eventTypeID.options[document.eventForm.eventTypeID.selectedIndex].innerHTML;

		var table = document.getElementById("eventTypeTable");
		
		var noEventTypesMessage = document.getElementById("noEventTypesMessage");
		
		var row = table.insertRow(1);
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		// for moz
    	table.setAttribute("style","inline-block");
    	// for ie
    	table.style.display = "inline-block";
    
		noEventTypesMessage.style.display = "none";
		
		row.id = "eventType_row_"+eventTypeID;

		var remove = document.createElement("input");
		remove = "<a title=\"Remove\" onclick=\"removeEventType('"+eventTypeID+"')\"><span>Remove</span></a>";

		td2.innerHTML = remove;

		td1.innerHTML = name;

		row.appendChild(td1);
		row.appendChild(td2);
		
		var eventType = document.getElementById("eventType");
		eventType.appendChild(table);
	}
}

function removeEventType(id)
{
	var size = currentEventTypes.length;

	removeFromCurrentEventTypes(id);

	// hide the table if there are no eventTypes in it
	if (currentEventTypes.length < 1) {
		var table = document.getElementById("eventTypeTable");
		table.style.display = "none";
		
		var noEventTypesMessage = document.getElementById("noEventTypesMessage");
		noEventTypesMessage.style.display = "block";
	}
	
	var table = document.getElementById('eventTypeTable');
						
	var numRows = table.rows.length;
	
	// loop through the table rows and delete the row once it's found
	for (var j = 0; j < numRows; j++) {
		if (table.rows[j].id == "eventType_row_"+id) {
			table.deleteRow(j);
			break;
		}
	}
}

function addToCurrentLanguages(id)
{
	currentLanguages.push(id);
}

// remove an language from the master list
function removeFromCurrentLanguages(id)
{
	var size = currentLanguages.length;
	
	for (var i = 0; i < size; i++) {
		
		if (currentLanguages[i] == id) {
			currentLanguages.splice(i,1);
			break;
		}
	}
}

// take the list of languages and create hidden inputs
// so that the language ids can be posted
function postLanguages()
{
	var size = currentLanguages.length;
	
	var form = document.getElementById("eventForm");

	// add each language id to the form		
	for (var i = 0; i < size; i++) {
	
		var hidden = document.createElement("input");
		hidden.setAttribute("type","hidden");
		hidden.setAttribute("name","languageList[]");
		hidden.setAttribute("value",currentLanguages[i]);
		form.appendChild(hidden);
	}
}

// add a language to the master list and create a new table row
function addLanguage()
{
	var languageID = document.getElementById("languageID").value;
	
	var size = currentLanguages.length;
	
	var found = false;
	var blank = false;
	
	if (languageID == '#') {
		blank = true;
	}
	
	// see if the language has already been added
	for (var i = 0; i < size; i++) {
		if (currentLanguages[i] == languageID) {
			found = true;
			break;
		}
	}			
	
	// if it has then display a message		
	if (found || blank) {
		if (found) {
			alert('You cannot add the same language twice.');
		}
		else {
			alert('Please select a language to add.');
		}
	}
	
	// otherwise add it to the language list and create a new table row
	else {

		addToCurrentLanguages(languageID);
		
		var name = document.eventForm.languageID.options[document.eventForm.languageID.selectedIndex].innerHTML;

		var table = document.getElementById("languageTable");
		
		var noLanguagesMessage = document.getElementById("noLanguagesMessage");
		
		var row = table.insertRow(1);
		var td1 = document.createElement("td");
		var td2 = document.createElement("td");
		
		// for moz
    	table.setAttribute("style","inline-block");
    	// for ie
    	table.style.display = "inline-block";
    
		noLanguagesMessage.style.display = "none";
		
		row.id = "language_row_"+languageID;

		var remove = document.createElement("input");
		remove = "<a title=\"Remove\" onclick=\"removeLanguage('"+languageID+"')\"><span>Remove</span></a>";

		td2.innerHTML = remove;

		td1.innerHTML = name;

		row.appendChild(td1);
		row.appendChild(td2);
		
		var language = document.getElementById("language");
		language.appendChild(table);
	}
}

function removeLanguage(id)
{
	var size = currentLanguages.length;

	removeFromCurrentLanguages(id);

	// hide the table if there are no languages in it
	if (currentLanguages.length < 1) {
		var table = document.getElementById("languageTable");
		table.style.display = "none";
		
		var noLanguagesMessage = document.getElementById("noLanguagesMessage");
		noLanguagesMessage.style.display = "block";
	}
	
	var table = document.getElementById('languageTable');
						
	var numRows = table.rows.length;
	
	// loop through the table rows and delete the row once it's found
	for (var j = 0; j < numRows; j++) {
		if (table.rows[j].id == "language_row_"+id) {
			table.deleteRow(j);
			break;
		}
	}
}


