var form_errmsg = '';
var reValidEmail = new RegExp('^[a-z0-9\.\_\%\+\-]+@([A-Z0-9-]+\.)+[a-z]{2,6}$', 'i');

function validate_contact_form(form) {
	if (is_empty(form.name.value)) {
		form_errmsg = form_errmsg + "\nUpišite ime.";
		form.name.focus();
		return -1;
	}
	if (!is_email(form.email.value)) {
		form_errmsg = form_errmsg + "\nUpišite email adresu.";
		form.email.focus();
		return -2;
	}
	if (is_empty(form.subject.value)) {
		form_errmsg = form_errmsg + "\nUpišite naslov poruke.";
		form.subject.focus();
		return -3;
	}
	if (is_empty(form.body.value)) {
		form_errmsg = form_errmsg + "\nUpišite tekst poruke.";
		form.body.focus();
		return -4;
	}
	return 0;
}

function validate_comment_form(form) {
	if (is_empty(form.name.value)) {
		form_errmsg = form_errmsg + "\nUpišite svoje ime.";
		form.name.focus();
		return -1;
	}
	if (is_empty(form.comment.value)) {
		form_errmsg = form_errmsg + "\nUpišite tekst komentara.";
		form.comment.focus();
		return -2;
	}
	return 0;
}

function contact_form_submit(form, divID, callback_f) {
	var errcode;
	trim_all_elements(form);
	if (errcode = validate_contact_form(form)) {
		alert(trim(form_errmsg));
		form_errmsg = '';
	} else {
		$('input[@type=submit]', form).attr('disabled', true).css({
			opacity: '0.8'
		});
		$(function() {
			$(form).ajaxSubmit({
				target	: divID,
				success	: function(data) {
					if (callback_f) callback_f(data);
				}
			});
		});
	}
}

function comment_post(form, divID, callback_f) {
	var errcode;
	trim_all_elements(form);
	if (errcode = validate_comment_form(form)) {
		alert(trim(form_errmsg));
		form_errmsg = '';
	} else {
		$('input[@type=submit]', form).attr('disabled', true).css({
			opacity: '0.8'
		});
		$(function() {
			$(form).ajaxSubmit({
				target	: divID,
				success	: function(data) {
					if (callback_f) callback_f(data);
				}
			});
		});
	}
}


function dummy(response) {}

/****** utility functions ********/

function is_email(str) {
	return reValidEmail.test(str);
}

function is_empty(str) {
	return (typeof(str) == 'undefined') || !str;
}

function ltrim(str) {
	return str.replace(/^\s*/, '');
}

function rtrim(str) {
	return str.replace(/\s*$/, '');
}

function trim(str) {
	return ltrim(rtrim(str));
}

function trim_all_elements(form) {
	var el = $('input', form);
	for (var i = 0; i < el.length; i++) {
		if (el[i].type != 'file')
			el[i].value = trim(el[i].value);
	}
}

