/*global $, document */

function post_form(oForm) {
	var bSubmit = false;
	
	var iFormId = $(oForm).attr('id').replace('tbn_static_', '');
	
	var oFields = new Object();
	
	var bContinue = true;
	
	$(oForm).find(':input').each(
		function(i) {
			if(bContinue) {
				var sType = this.tagName.toLowerCase();
				
				var oField = $(this);
				var sFieldName = oField.attr('name');
				var sFieldId = oField.attr('id');
				
				if(sType === 'input') {
					if(oField.attr('type') === 'text') {
						var sVal = oField.val();
						
						if(! validate_field(sFieldId, sVal)) {
							bContinue = false;
						}
						
						oFields[sFieldName] = sVal;
					}
				} else if(sType === 'textarea') {
					var sVal = oField.val();
					
					if(! validate_field(sFieldId, sVal)) {
						bContinue = false;
					}
					
					oFields[sFieldName] = sVal;
				}
			}
		}
	);
	
	if(bContinue) {
		oFields['iFormId'] = iFormId;
		
		$.post('/static_pages_ajax/handle_form', oFields, 
			function(data) {
				if(data.sError) {
					$.prompt(data.sError);
				} else if(data.sPage) {
					location.href = '/static/thankyou/'+data.sPage;
				}
			}, 
			'json'
		);
	}
}

function validate_field(sFieldId, sVal) {
	if(sFieldId.indexOf(':required_email') >= 0) {
		
		if(! validate_required(sVal)) {
			
			$.prompt(oSiteMessages.label_static_form_complete_required);//Please complete the required field
			return false;
		}
		
		if(! validate_email(sVal)) {
			$.prompt(oSiteMessages.label_static_form_complete_email);//Please enter a valid email address
			return false;
		}
		
	} else if(sFieldId.indexOf(':required') >= 0) {
		
		if(! validate_required(sVal)) {
			$.prompt(oSiteMessages.label_static_form_complete_required);
			return false;
		}
		
	} else if(sFieldId.indexOf(':email') >= 0) {
		
		if(! validate_email(sVal)) {
			$.prompt(oSiteMessages.label_static_form_complete_email);
			return false;
		}
		
	}
	
	return true;
}

function validate_required(sVal) {
	if(sVal === '' || sVal.length == 0) {
		return false;
	}
	
	return true;
}

function validate_email(sVal) {
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	
	return sVal.match(re);
}
