// JavaScript Document

function submit_form(form, controller, method) {
	
	if(method == undefined || method == null || method == '') {
		
		method = 'submit';
		
	}
	
	var $form = $('#' + form);
	// validate
	var valid = true;
	$('#' + form + ' input:text').each( function() {
		if(! validate_field(this, this.value, $(this).attr('data-validate'))) {
			valid = false;
		}
	});
	
	if(!valid) {
		return false;	
	}
	
	$form.fadeOut(100, function() {
		$('#' + form + '_loading').fadeIn();
	
		// send
		var qs = $form.serialize();
		
		$.post( '/' + controller + '/' + method , qs, function(data) {
			
			if(data.status == 1) {
				
				$('#' + form + '_loading').fadeOut(100, function() {
					$('#' + form + '_sent').fadeIn();												 
				});
				
			} else {
				
				
				$('#' + form + '_loading').fadeOut( function() {
					$form.fadeIn();										
				});
				
			}
			
			
		}, 'json');
	});
	
}

// simple field validation
function validate_field(field, value, rule) {
	
	switch(rule) {
		
		case 'required' :
			if(value == '' || value == 'Field Required') {
				field.value = 'Field Required';
				$(field).focus();
			} else {
				return true;	
			}
		break;
		
		case 'email' :
			var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		    var address = value
		    if(reg.test(address) == false) {
				field.value = 'Valid email address required';
				$(field).focus();
		    } else {
				return true;   
		   	}
		break;
		
		default :
			// no validation required
			return true;
		break;
	}
	
}

