String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function checkForm(f) {
	err = "";
	var _focus = -1;
	for (i=0; i<f.elements.length; i++) {
		if (f.elements[i].id != "") {
			var el = $("#"+f.elements[i].id);
			if (el.hasClass("required") && !el.attr("disabled") && el.css("display")!="none") {
				lbl = $("#l_"+f.elements[i].id).html();
				title = $("#"+f.elements[i].id).attr('title');
				if ($("#"+f.elements[i].id).val() == title) {
					$("#"+f.elements[i].id).val('');
				}
				if (el.attr("type") == "checkbox") {
					if (el.attr("checked") == false) {
						if (_focus == -1) _focus = i;
						err += "      - "+removeHTMLTags(lbl.replace(":*", "").replace(":", ""))+"\n";
					}
				} else {
					if (el.val() == "") {
						if (_focus == -1) _focus = i;
						err += "      - "+removeHTMLTags(lbl.replace(":*", "").replace(":", ""))+"\n";
					}
				}
				if ($("#"+f.elements[i].id).val() == '') {
					$("#"+f.elements[i].id).val(title);
				}
			}
		}
	}
	if (_focus != -1) f.elements[_focus].focus();
	if (err != "") {
		alert("Nezadali ste tieto údaje:\n"+err);
		return false;
	} else {
		return true;
	}
}

function submitForm() {
	var calc_data = $('#calc_form').serialize();
	var order_data = $('#order_form').serialize();
	$.ajax({
		type: "POST",
		url: "htdocs/submit.php",
		data: "action=submit&"+calc_data+"&"+order_data,
		dataType: "html",
		success: function(data){
			if (data == 'OK') {
				$("#order_form").html("Formulár bol úspešne odoslaný.");
			} else {
				alert("Pri odosielaní vznikla chyba.");
			}
		}
	}); 					
}

function removeHTMLTags(str) {
	str = str.replace(/&(lt|gt);/g, function (strMatch, p1) {
		return (p1 == "lt")? "<" : ">";
	});
	str = str.replace(/<\/?[^>]+(>|$)/g, " ");
	return str.toString().trim();
}

function sendForm(subject) {
	$("#subject").val(removeHTMLTags(subject));
	var f = document.forms.order_form;
	if (checkForm(f)) {
		submitForm();
	}
}

function sleep(milliseconds) {
	var start = new Date().getTime();
	for (var i = 0; i < 1e7; i++) {
		if ((new Date().getTime() - start) > milliseconds) {
			break;
		}
	}
}


