﻿$(document).ready(function() {
	// reg form validation / show&hide delegate names
	function showHideNameBoxes() {
		var $selectedOption = $nameSelectBoxOptions.filter(':selected');
		selectedIndex = $nameSelectBoxOptions.index($selectedOption);

		$nameListItems.hide();
		for (var i = 0; i <= selectedIndex; i++) {
			$nameListItems.eq(i).show();
		}
	}

	var $formBuilder = $('#RegFormBox .RegFormBuilder');
	var $nameSelectBox = $formBuilder.find('ul li.delegateDropDown select');
	var $nameSelectBoxOptions = $nameSelectBox.children('option');
	var $submitButton = $formBuilder.find('input.submit-button');
	var $nameListItems = $formBuilder.find('ul li.delegateTextBox');
	var selectedIndex;

	showHideNameBoxes();

	$nameSelectBox.change(function () {
		showHideNameBoxes();
	});

	// add validation spans
	$nameListItems.each(function () {
		$rfvSpan = $('<span class="rfv">*</span>').css('color', 'Red').css('visibility','hidden');
		$(this).append($rfvSpan);
	});

	// validate name fields
	$submitButton.click(function () {
		var $errors = '';

		for (var i = 0; i <= selectedIndex; i++) {
			var $item = $nameListItems.eq(i);
			var $nameInput = $.trim($item.find('input').val());
			var $nameLabel = $item.find('label').text();
			if ($nameInput.length == 0) {
				$errors += '- ' + $nameLabel + ' is a required field\n';
				$item.find('span.rfv').css('visibility','visible');
			}
		}

		if ($errors.length > 0) {
			alert('Please resolve the following problems:\n' + $errors);
			return false;
		}
		else
			return true;
	});
	
	// form modal
	$('.formModal').formModal();
});

