$(document).ready(function(){
	$('.fe_form_submit').bind('click', function(){
		var form_container = $(this).parent().parent();
		var form_id = form_container.attr('id').replace('fe_form_', '');
		
		var data = {
			'form_id' : form_id
		};
		
		var all_ok = true;
		
		form_container.find('.fe_form_element').each(function(){
			var element_id = $(this).attr('id');
			var element = $('[name="'+element_id+'"]');
			var element_value = element.val();
			
			var required = $(this).find('.form_element_required').text() == '*' ? true : false;
			var accessible = (element.attr('disabled') == true || element.parent().parent().parent().css('display') == 'none') ? false : true;
			
			if(element_id != '' && element_value != undefined) {
				var element_type = element.get(0).tagName;
				element_tag = element_type.toLowerCase();
				switch (element_tag) {
					case 'select':
						var submitted_value = $('[name="'+element_id+'"] :selected').val();
						break;
					case 'checkbox':
						var submitted_value = '';
						var submitted_values = new Array();
						$('[name="'+element_id+'"]:checked').each(function(){
							submitted_values.push($(this).val());
						});
						submitted_value = submitted_values.join(" | ");
						break;
					case 'textarea':
						var submitted_value = element_value;
						break;
					default:
						var element_type = element.attr('type');
						element_type = element_type.toLowerCase();
						if(element_type == 'checkbox') {
							var submitted_value = '';
							var submitted_values = new Array();
							$('[name="'+element_id+'"]:checked').each(function(){
								submitted_values.push($(this).val());
							});
							submitted_value = submitted_values.join(" | ");
						} else if(element_type == 'radio') {
							var submitted_value = $('[name="'+element_id+'"]:checked').val();
						} else {
							var submitted_value = element_value;
						}
						break;
				}
				
				if(accessible && required && (submitted_value == '' || submitted_value == undefined)) {
					all_ok = false;
				}
				
				data[element_id] = submitted_value;
			}
		});
		
		if(all_ok === false) {
			alert('Please complete all required fields.');
			
			return;
		}
		
		$.post('/ajax/dynamic_forms/submit', data, function(data){
			if(data.iSubmissionId > 0 && data.sRedirect) {
				window.location = data.sRedirect;
			}
		}, 'json');
	});
});

