


function submitForm(containerID) {
	var container = $('#'+containerID);
	if(!container[0]) return;

	var f = container.find('form');
	if(!f[0]) return;

	container.find('div.form-error').css('display', 'none');
	container.find('.error').removeClass('error');

	var err = [];
	var data = { 'ajax':1, 'json_return': 1, 'contact_subscribed': 1 };


	var response = '';

	var remail = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	switch(f[0].name) {
		case 'contact':
			data.db = 'contact';
			if( !remail.test( $(f[0].email).val() ) ) err.push('email');
			if($(f[0].firstname).val() == '') err.push('firstname');
			if($(f[0].lastname).val() == '') err.push('lastname');

			responseMsg = 'Thank you for your feedback, we will respond as soon as possible.';
			break;

		case 'subscribe':
			data.db = 'newsletter';
			if( !remail.test( $(f[0].email).val() ) ) err.push('email');
			if($(f[0].firstname).val() == '') err.push('firstname');
			if($(f[0].lastname).val() == '') err.push('lastname');

			responseMsg = 'Thank you, you have been subscribed to our mailing list.';
			break;

		case 'friend':
			data.db = 'friend';

			if( !remail.test( $(f[0].sender_email).val() ) ) err.push('sender_email');
			//if($(f[0].sender_name).val() == '') err.push('sender_name');

			if( !remail.test( $(f[0].recipient_email).val() ) ) err.push('recipient_email');
			//if($(f[0].recipient_name).val() == '') err.push('recipient_name');

			responseMsg = 'Your message has been sent.';
			break;


		default: return;
	}

	if(err.length > 0) {
		// show error message and highlight error fields
		var ediv = container.find('div.form-error');

		if(ediv[0]) {
			ediv.css('display', 'block');
			ediv.html('There is a problem with your submission.<br>Please correct the highlighted fields above and try again.');
		}
		else alert('There is a problem with your submission. Please review the highlighted fields above.');

		for(var i=0; i<err.length; ++i) {
			$(f[0][err[i]]).addClass('error');
		}

		container.find('div.scroll-pane').jScrollPane(window.__jScrollPaneOptions);
		container.find('div.scroll-pane')[0].scrollTo(container.find('div.scroll-pane')[0].scrollHeight);
	}
	else {
		// looks good, submit the data
		f.find('img.throbber').css('display', 'inline');
		f.find('input, select, textarea').addClass('disabled');

		var formdata = f.serialize() + '&' + $.param(data);

		$.post('/site/~forms/insert', formdata, function(response) {
			container.find('div.form-content').css('display', 'none');
			container.find('div.form-message').css('display', 'block').html('<br><br><br><br>'+responseMsg+'<br><br><input type="button" value="OK" onclick="resetForm(\''+containerID+'\')">');

			container.find('div.scroll-pane').jScrollPane(window.__jScrollPaneOptions);
			container.find('div.scroll-pane')[0].scrollTo(0);
		}, 'json');
	}
}

function resetForm(containerID) {
	var container = $('#'+containerID);
	if(!container[0]) return;

	var f = container.find('form');
	if(!f[0]) return;

	container.find('div.form-error').css('display', 'none');
	container.find('.error').removeClass('error');
	f.find('img.throbber').css('display', 'none');

	container.find('div.form-message').css('display', 'none');
	container.find('div.form-content').css('display', 'block');
	f.find('input, select, textarea').removeClass('disabled');
	f[0].reset();

	container.find('div.scroll-pane').jScrollPane(window.__jScrollPaneOptions);
}





