/*
* 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(){

	/*
	* definuje cestu k výkonému skriptu
	*/
	var urlAjax = "";

	/*
	* zobrazí formulár prihlášky jednotlivca
	*/
	$("a[name='prihlaskaJ']").click(function(){
		showWait();
		// nastavý cestu k výkonému skriptu
		urlAjax = "/ajax/prihlaskaJ.php";
		// načítam nadpis z akcie
		$("#popisHrac").html($(this).parents("div").children("h2").html());
		// načíta uložené hodnoty z cookie
		$("#hracMeno").val($.cookie("hracMeno"));
		$("#hracPriezvisko").val($.cookie("hracPriezvisko"));
		$("#hracKlub").val($.cookie("hracKlub"));
		$("#hracMesto").val($.cookie("hracMesto"));
		$("#JselStat option[value='" + $.cookie("JselStat") + "']").attr("selected", "selected");
		$("#hracTel").val($.cookie("hracTel"));
		$("#hracEmail").val($.cookie("hracEmail"));
		$("#formularJ").removeClass();
		$("#msgJ").removeClass().addClass("msgNone").html("");

		showEdit ($("#vpravo"), $("#prihlaskaHrac"));
	});

	/*
	* zobrazí formulár prihlášky družstva
	*/
	$("a[name='prihlaskaD']").click(function(){
		showWait();
		// nastavý cestu k výkonému skriptu
		urlAjax = "/ajax/prihlaskaD.php";
		// načítam nadpis z akcie
		$("#popisTeam").html($(this).parents("div").children("h2").html());
		// načíta uložené hodnoty z cookie
		$("#teamKlub").val($.cookie("teamMeno"));
		$("#teamMesto").val($.cookie("teamMesto"));
		$("#DselStat option[value='" + $.cookie("DselStat") + "']").attr("selected", "selected");
		$("#vedouciMeno").val($.cookie("vedouciMeno"));
		$("#vedouciPriezvisko").val($.cookie("vedouciPriezvisko"));
		$("#vedouciTel").val($.cookie("vedouciTel"));
		$("#vedouciEmail").val($.cookie("vedouciEmail"));
		$("#teamMeno1").val($.cookie("teamMeno1"));
		$("#teamPriezvisko1").val($.cookie("teamPriezvisko1"));
		$("#teamMeno2").val($.cookie("teamMeno2"));
		$("#teamPriezvisko2").val($.cookie("teamPriezvisko2"));
		$("#teamMeno3").val($.cookie("teamMeno3"));
		$("#teamPriezvisko3").val($.cookie("teamPriezvisko3"));
		$("#teamMeno4").val($.cookie("teamMeno4"));
		$("#teamPriezvisko4").val($.cookie("teamPriezvisko4"));
		// zobrazí formulár
		$("#formularD").removeClass();
		// skryje hlášky
		$("#msgD").removeClass().addClass("msgNone").html("");

		showEdit ($("#vpravo"), $("#prihlaskaTeam"));
	});

	/*
	* pridá hráča do družstva
	*/
	$("#addHrac").click(function(){
		var poslednyHrac = $(".hraciD:last");
		var id = poslednyHrac.attr("id");
		if ($("#teamPriezvisko" + id, novyHrac).val() != ""){
			var newID = id + 1;
			var novyHrac = poslednyHrac.clone(true);
			regexp = new RegExp(id,"gi");
			novyHrac
				.html(novyHrac.html().replace(regexp, newID))
				.attr("id", newID)
				.appendTo("#hraciD");
			$("#teamMeno" + newID).focus();
		} else {
			$("#teamMeno" + id, novyHrac).focus();
		}
	});

	/*
	* skusí odoslať prihlášku e-mailom
	*/
	function sendPrihlaska (dataForm){
		$.ajax({
			async: false,
			url: urlAjax,
			contentType: "application/x-www-form-urlencoded; utf-8",
			scriptCharset: "utf-8",
			type: 'POST',
			cache: false,
			timeout: 5000,
			dataType: 'json',
			data: dataForm,
			error: function(XMLHttpRequest, textStatus, errorThrown){
				var chyba = ""
				switch (textStatus){
					case "parsererror":
						chyba = XMLHttpRequest.responseText;
						break;
					default:
						chyba = textStatus;
				}
				if (urlAjax == "/ajax/prihlaskaD.php" ){
					var msg = $("#msgD");
				} else {
					var msg = $("#msgJ");
				}
				msg
					.text(chyba)
					.removeClass()
					.addClass("msgError");
			},
			success: function(jsonData, textStatus){
				if (jsonData.status == "OK"){
					if (urlAjax == "/ajax/prihlaskaD.php" ){
						var formular = $("#formularD");
						var msg = $("#msgD");
					} else {
						var formular = $("#formularJ");
						var msg = $("#msgJ");
					}
					formular
						.removeClass()
						.addClass("msgNone");
					msg
						.html(jsonData.msg)
						.removeClass()
						.addClass("msgOK");
				} else {
					msg
						.html(jsonData.chyba)
						.removeClass()
						.addClass("msgError");

				}
			}
		})
	}

	/*
	* skontroluje formulár prihlášky jednotlivca pred odoslaním
	*/
	$("#hracForm").validate({
		rules: {
			hracMeno: "required",
			hracPriezvisko: "required",
			hracMesto: "required",
			hracTel: "phone",
			hracEmail: "email"
		},
   	submitHandler: function(form) {
// 			$("#chyba").hide();
			if ($("#hracMed").val() == ""){
				var med = $("#hracMed").html();
				var akcia = $(".nadpis").html();
				var meno = $("#hracMeno").val();
				var priezv = $("#hracPriezvisko").val();
				var klub = $("#hracKlub").val();
				var mesto = $("#hracMesto").val();
				var tel = $("#hracTel").val();
				var email = $("#hracEmail").val();
				var stat = $("#JselStat").val();
				// uloží hodnoty do cookie
				$.cookie("hracMeno", meno);
				$.cookie("hracPriezvisko", priezv);
				$.cookie("hracKlub", klub);
				$.cookie("hracMesto", mesto);
				$.cookie("JselStat", stat);
				$.cookie("hracTel", tel);
				$.cookie("hracEmail", email);
				var dataForm = "akcia=" + akcia + "&med=" + med + "&meno=" + meno + "&priezv=" + priezv + "&klub=" + klub + "&mesto=" + mesto + "&tel=" + tel + "&email=" + email + "&stat=" + stat;
				sendPrihlaska(dataForm);
   		} else {
				hideEdit();
   		}
   	},
   	invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (!errors) {
				hideError();
			}
		},
		errorElement: "span",
		wrapper: "span",  // a wrapper around the error message
		errorPlacement: function(error, element) {
			var pos = element.position();
			var wElement = 0;
			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, 'top': pos.top, 'width': wError, "z-index": 10});
		}
  });

	/*
	* skontroluje formulár prihlášky jednotlivca pred odoslaním
	*/
	$("#teamForm").validate({
		rules: {
			teamKlub: "required",
			teamMesto: "required",
			vedouciPriezvisko: "required",
			vedouciTel: "phone",
			vedouciEmail: "email",
			teamPriezvisko1: "required"
		},
   	submitHandler: function(form) {
// 			$("#chyba").hide();
			if ($("#teamMed").val() == ""){
				var med = $("#teamMed").html();
				var akcia = $(".nadpis", "#prihlaskaTeam").html();

				var pocet = $(".hraciD:last").attr("id");

				// uloží hodnoty do cookie
				$.cookie("teamMeno", $("#teamKlub").val());
				$.cookie("DselStat", $("#DselStat").val());
				$.cookie("teamMesto", $("#teamMesto").val());
				$.cookie("vedouciMeno", $("#vedouciMeno").val());
				$.cookie("vedouciPriezvisko", $("#vedouciPriezvisko").val());
				$.cookie("vedouciTel", $("#vedouciTel").val());
				$.cookie("vedouciEmail", $("#vedouciEmail").val());
				var dataForm = "akcia=" + akcia + "&pocet=" + pocet  + "&med=" + med + "&team=" + $("#teamKlub").val() + "&mesto=" + $("#teamMesto").val() + "&stat=" + $("#DselStat").val() + "&vmeno=" + $("#vedouciMeno").val() + "&vpriezv=" + $("#vedouciPriezvisko").val() + "&tel=" + $("#vedouciTel").val() + "&email=" + $("#vedouciEmail").val() ;

				for (i = 1; i <= pocet; i++){
					$.cookie("teamMeno" + i, $("#teamMeno" + i).val());
					$.cookie("teamPriezvisko" + i, $("#teamPriezvisko" + i).val());
					dataForm = dataForm +  "&meno" + i + "=" + $("#teamMeno" + i).val() + "&priezv" + i + "=" + $("#teamPriezvisko" + i).val()
				}

				sendPrihlaska(dataForm);
   		} else {
				hideEdit();
   		}
   	},
   	invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (!errors) {
				hideError();
			}
		},
		errorElement: "span",
		wrapper: "span",  // a wrapper around the error message
		errorPlacement: function(error, element) {
			var pos = element.position();
			var wElement = 0;
			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, 'top': pos.top, 'width': wError, "z-index": 10});
		}
  });

// koniec jQuery
});