/*
* pridá do validátora pravidlo na kontrolu telefónneho čísla
*/
$.validator.addMethod(
	'phone',
	function(value, element, param ) {
		var cisla = value.match(/\d/g);
		var pocet = false;
		if (cisla != null) {
			cisla = cisla.length
			pocet = cisla >= 9 && cisla <= 20;
		};
		var platne = value.match(/^(\+){0,2}(\d|\s|\(|\)){9,20}$/);
		if (platne == null){
			platne = false;
		} else {
			platne = true;
		}
/*		alert("pocet: " + pocet + "\n" + "platne: " + platne + "\n" + "cislic: " + cisla);*/
		return (this.optional(element) || pocet && platne);
		},
	'Please enter a valid phone number'
);

$(document).ready(function(){
	/*
	* po neplatnej validácii a zmene dátumu cez kalendár nastaví fokus na
	* dátumové pole a aby sa vymazal chybový štýl tak odoberie fokus a zase
	* sa vráti
	*/
	function setFocus(calendar){
		var inField = calendar.params.inputField;
		calendar.hide();
		calendar.params.inputField.focus();
		$("#dospely_f").focus();
		calendar.params.inputField.focus();
	}
	/*
	* vytvorí kalendár na dátumu nástupu
	*/
	calOd = new	Calendar.setup({
				inputField: "od_f",
				ifFormat	: "%d.%m.%Y",
				button    : "od_b",
				showsTime	: false,
				onClose	: setFocus
			}
		);
	/*
	* vytvorí kalendár na dátumu odjazdu
	*/
	calDo = new	Calendar.setup({
				inputField: "do_f",
				ifFormat  : "%d.%m.%Y",
				button    : "do_b",
				showsTime	: true,
				onClose	: setFocus
			}
		);
	/***********************************************************
	* nastaví hodnoty cookies
	************************************************************/
	/*
	* uloží data do cookies
	*/
	function setCookie(nazov, hodnota, expiredays){
		var c_exdate = "";
		if (expiredays != null){
			var exdate = new Date();
			exdate.setDate(exdate.getDate() + expiredays);
			c_exdate = ";expires=" + exdate.toUTCString();
		}
		document.cookie = nazov + "=" + escape(hodnota) + c_exdate;
		return true;
	}
	/*
	* načíta data z cookies
	*/
	function getCookie(nazov){
		if (document.cookie.length > 0){
			c_start = document.cookie.indexOf(nazov + "=");
			if (c_start != -1){
				c_start = c_start + nazov.length + 1;
				c_end = document.cookie.indexOf(";", c_start);
				if (c_end == -1){
					c_end = document.cookie.length;
				}
				return unescape(document.cookie.substring(c_start, c_end));
			}
		}
		return '';
	}
	/*
	* vyplní formulár s uloženými cookies
	*/
	$("#meno_f").val(getCookie("meno_f"));
	$("#priezv_f").val(getCookie("priezv_f"));
	$("#ulica_f").val(getCookie("ulica_f"));
	$("#cislo_f").val(getCookie("cislo_f"));
	$("#psc_f").val(getCookie("psc_f"));
	$("#mesto_f").val(getCookie("mesto_f"));
	$("#posta_f").val(getCookie("posta_f"));
	$("#tel_f").val(getCookie("tel_f"));
	/*
	* nastaví fokus do prvého poľa
	*/
	$("#meno_f").focus();
	/*
	* pri zmene dat formulára skryje prípadné chybové hláška
	*/
	$("input").keyup(function(event){
		$(".msgError")
			.addClass("msgNone")
			.removeClass("msgError");
		$(".msgOK")
			.addClass("msgNone")
			.removeClass("msgOK");
	})

	$(".datum").focus(function(event){
		$(".msgError")
			.addClass("msgNone")
			.removeClass("msgError");
		$(".msgOK")
			.addClass("msgNone")
			.removeClass("msgOK");
	})
	/*
	* skontroluje formulár a keď je v poriadku tak ho odošle
	*/
	$("#objednavka").validate({
		onfocus: false,
		rules: {
			meno_f: "required",
			priezv_f: "required",
			ulica_f: "required",
			cislo_f:"required",
			psc_f: "required",
			mesto_f: "required",
			posta_f: {
				email: true,
				required: function(element){
					return $("#tel_f:filled").length == 0
				}
			},
			tel_f: {
				phone: true,
				required: function(element){
					return $("#posta_f:filled").length == 0
				}
			},
			od_f: {
					required: true,
					dateDE: true
			},
			do_f: {
					required: true,
					dateDE: true
			},
			dospely_f: {
					required: true,
					digits: true
			},
			deti_f: {
					digits: true
			},
			apart_f: {
					required: true,
					digits: true
			},
			cela_f: {
					required: function(element) {
						if ($("#i4_f:blank").length != 0 && $("#i3_f:blank").length != 0 && $("#i5_f:blank").length != 0)
							return true;
						else
							return false;
					}
			},
			i3_f: {
					digits: true,
					required: function(element) {
						if ($("#i4_f:blank").length != 0 && $("#i5_f:blank").length != 0 && !$("#cela_f:checked"))
							return true;
						else
							return false;
					}
			},
			i4_f: {
					digits: true,
					required: function(element) {

						if ($("#i3_f:blank").length != 0 && $("#i5_f:blank").length != 0 && !$("#cela_f:checked"))
							return true;
						else
							return false;
					}
			},
			i5_f: {
					digits: true,
					required: function(element) {
						if ($("#i4_f:blank").length != 0 && $("#i3_f:blank").length != 0 && !$("#cela_f:checked") )
							return true;
						else
							return false;
					}
			}
		},
/*   	invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (!errors) {
				$("#chyba").hide();
			}
		},*/
		errorElement: "span",
		wrapper: "span",  // a wrapper around the error message
		errorPlacement: function(error, element) {
			var pos = element.position();
			var wElement = 0;
			if (element.attr("name") == "od_f"){
				error.insertAfter("#od_b");
				pos = $("#od_b").position();
				wElement = $("#od_b").outerWidth();
			} else if (element.attr("name") == "do_f") {
				error.insertAfter("#do_b");
				pos = $("#do_b").position();
				wElement = $("#do_b").outerWidth();
			} else {
				error.insertAfter(element);
				wElement = element.outerWidth();
			}
			error.addClass('message');  // add a class to the wrapper
			error.css('position', 'absolute');
			var wError = error.width();
			error.css({'left': pos.left + wElement + 2, 'top': pos.top + 1, 'width': wError});
		},
   	submitHandler: function(form) {
			$("#chyba").hide();
			// uloží nové hodnoty do cookies
			setCookie('meno_f', $("#meno_f").val(), 10000);
			setCookie('priezv_f', $("#priezv_f").val(), 10000);
			setCookie('ulica_f', $("#ulica_f").val(), 10000);
			setCookie('cislo_f', $("#cislo_f").val(), 10000);
			setCookie('psc_f', $("#psc_f").val(), 10000);
			setCookie('mesto_f', $("#mesto_f").val(), 10000);
			setCookie('posta_f', $("#posta_f").val(), 10000);
			setCookie('tel_f', $("#tel_f").val(), 10000);
			// odošle data na server kde sa pokusí odoslať email
			$.ajax({
				url: "./ajax/objednavka.php",
				type: 'POST',
				cache: false,
				timeout: 5000,
				dataType: 'json',
				data: $("#objednavka").serialize(),
				error: function(XMLHttpRequest, textStatus, errorThrown){
					switch (textStatus){
						case "timeout":
							$("#errorTimeout").removeClass("msgNone")
								.addClass("msgError");
							break;
						default:
							$("#errorUnspec").removeClass("msgNone")
								.addClass("msgError");
							$("#ajaxError").text(textStatus);
					}
				},
				success: function(data, textStatus){
					$("#msgSpravca").html(data.spravca);
					if (data.errorS == "true"){
						$("#msgSpravca").removeClass("msgNone")
							.addClass("msgError");
					} else {
						$("#msgSpravca").removeClass("msgNone")
							.addClass("msgOK");
						$("#msgZakaznik").html(data.zakaznik);
						if (data.errorZ == "true"){
							$("#msgZakaznik").removeClass("msgNone")
								.addClass("msgError");
						} else {
							$("#msgZakaznik").removeClass("msgNone")
								.addClass("msgOK");
						}
					}
				}
			});
		}
	});

});
