$(function() {
	var panelistTable = $('#cp-panelists');
	if(panelistTable.length > 0) {
		$('#cp-add').click(function(event) {
			event.preventDefault();
			var row = $('<tr><td><input type="text" name="panelist_full_name[]" /></td>' +
						'<td><input type="text" name="panelist_email[]" /></td>' +
						'<td><input type="text" name="panelist_company[]" /></td>' +
						'<td><input type="text" name="panelist_title[]" /></td>' +
						'<td><select name="panelist_role[]"><option value="moderator">Moderator</option><option value="panelist">Panelist</option></select></td></tr>');
			$('#cp-panelists tbody').append(row);
		});
	}
	
	var panelPanelistButtons = $("input.addPanelist");
	if(panelPanelistButtons.length > 0) {
		panelPanelistButtons.click(function(event) {
			event.preventDefault();
			var currRowCount = $(event.target).parents('form').find('tbody tr').length;
			var row = $('<tr class="newPanelist"><td><input type="text" class="vp-edit" name="panelist_full_name[]" /></td>' +
						'<td><input type="text" class="vp-edit" name="panelist_email[]" /></td>' +
						'<td><input type="text" class="vp-edit" name="panelist_company[]" /></td>' +
						'<td><input type="text" class="vp-edit" name="panelist_title[]" /></td>' +
						'<td><select name="panelist_role[]" class="vp-edit"><option value="moderator">Moderator</option><option value="panelist">Panelist</option></select></td>' +
						'<td><input type="hidden" name="panelist_id[]" value="-1" /><input type="checkbox" class="vp-edit" name="panelist_delete[]" /></td></tr>');
			var form = $(event.target).parents('form');
			form.find('.bottom tbody').append(row);
			row.find("input[name='panelist_delete[]']").val(currRowCount);
		});
	}
	
	var panelSaveButtons = $("input.savePanel");
	if(panelSaveButtons.length > 0) {
		panelSaveButtons.click(function(event) {
			event.preventDefault();
			var form = $(event.target).parents('form');
			form.find("input[type='checkbox']").each(function(idx, elt) {
				if($(elt).val() != 'on') { $(elt).val("off"); }
			});
			form.submit();
		});
	}
	
	/* // DEPRECATED
	var panelEditButtons = $("input.editPanel");
	if(panelEditButtons.length > 0) {
		panelEditButtons.click(function(event) {
			event.preventDefault();
			var form = $(event.target).parents('form');
			form.find(".vp-view").hide();
			form.find(".vp-edit").not("input[type='button'], input[type='checkbox'], input[type='submit']").each(function(idx, elt) {
				var content = $(elt).siblings("p, span").text();
				$(elt).val(content);
			});
			form.find("input[name='panelist_delete[]']").removeAttr("checked");
			form.find(".vp-edit").show();
		});
	}
	*/
	
	var panelUpdateButtons = $("input.saveChanges");
	if(panelUpdateButtons.length > 0) {
		panelUpdateButtons.click(function(event) {
			event.preventDefault();
			var form = $(event.target).parents('form');
			form.find('label').removeClass('error');
			$(".messageBox").remove();
			// find title, desc, all panelists
			var missingRequiredInput = false;
			var validPanelists = 0;
			var requiredInputs = form.find("input[name='title'], textarea[name='description'], input[name='panelist_full_name[]']");
			requiredInputs.each(function(idx, elt) {
				var jqElt = $(elt);
				var val = $.trim(jqElt.val());
				if(jqElt.attr('name') == 'panelist_full_name[]') {
					if(val != '') { validPanelists++; }
				} else {
					if(val == '') {
						jqElt.siblings('label').addClass('error');
						missingRequiredInput = true;
					}
				}
			});
			var errors = [];
			if(missingRequiredInput) {
				errors.push("Please fill in all required fields.");
			}
			if(validPanelists == 0) {
				errors.push("At least one panelist with a full name must be provided.");
			}
			if(errors.length > 0) {
				var errorBox = $("<div class='messageBox errorBox'></div>");
				for(var i = 0; i < errors.length; i++) {
					errorBox.append($('<p></p>').text(errors[i]));
				}
				// you are a bad person.
				$('.subsection').first().before(errorBox);
			} else {
				form.submit();
			}
		});
	}
	
	// TODO: confirm then redirect to /main/index
	var panelDiscardButtons = $("input.discardChanges");
	if(panelDiscardButtons.length > 0) {
		panelDiscardButtons.click(function(event) {
			event.preventDefault();
			var form = $(event.target).parents('form');
			form.find("tr.newPanelist").remove();
			form.find(".vp-edit").hide();
			form.find(".vp-view").show();
		});
	}
	
	var panelDeleteButtons = $("input.deletePanel");
	if(panelDeleteButtons.length > 0) {
		panelDeleteButtons.click(function(event) {
			event.preventDefault();
			var title = $(event.target).parents("div.panelDisplay").find("input[name='title']").val();
			var response = confirm("Are you sure you want to delete the panel \"" + title + "\"?");
			if(response) {
				$(event.target).parents("form").submit();	
			}
		});
	}
});
