
    window.addEvent("load", function() {
      
        $("form").addEvent("submit", function(event) {
              event.stop();
              doSubmit();
        });
      
        $("submitbtn").disabled = false;
        $("submitbtn").value = "Jelentkezés elküldése";

        var textArea = $("megjegyzes");
        var maxChars = textArea.get("data-maxChars");
        
        // create a custom focused property so that we only capture keystrokes when it is
        textArea.addEvents({
            focus: function() {
                this.focused = true;
            },
            blur: function() {
                this.focused = false;
            }
        });
        
        // attach a key listener
        window.addEvent("keyup", function(e) {
            if (textArea.focused) {
                // should really compare e.key against alpha numerics and whatever allowed chars we have 
                // so it does not fire when they backspace or delete or use arrow keys to move

                // current count is...
                var chars = textArea.get("value").trim().length;

                // allowed?
                if (chars >= maxChars) {
                    // kill keyboard event...
                    // e.stop();
                    
                    // inform them its full!
                    $("left").set("html", "<strong>Nem írhat többet a mezőbe, elérte a maximum karakterszámot!</strong>");
                    
                    // remove surplus chars
                    textArea.set("value", textArea.get("value").substring(0,maxChars));
                }
                else {
                    // inform how much left
                    $("left").set("text", (maxChars-chars)+" karaktert írhat még a mezőbe");
                }
            }
        });
        
    });

    function doSubmit() {
      
        var f = $("form");
		
		if ($("szaknyelv_sor2").getStyle("display") == "none") {
			if ($(f.tanfolyam_szaknyelv_egyeb).get('value') != "")  { f.tanfolyam_szaknyelv[2].checked = true; }
			if (!f.tanfolyam_szaknyelv[0].checked && !f.tanfolyam_szaknyelv[1].checked && !f.tanfolyam_szaknyelv[2].checked) { alert("Kérjük válasszon szaknyelvet!"); f.tanfolyam_szaknyelv[0].focus(); return; }
			if (f.tanfolyam_szaknyelv[2].checked && f.tanfolyam_szaknyelv_egyeb.get('value') == "")  { alert("Az 'egyéb szaknyelvet' jelölte meg, de nem adta meg a nyelvet!"); f.tanfolyam_szaknyelv_egyeb.focus(); return; }
		}
      
        // választott-e időpontot
        if ($$("#tanfolyamidopontok input[checked]").length == 0) { alert("Kérjük válasszon időpontot!"); $("ti0").focus(); return; }
        
        // személyes adatok
        if (!f.szemely_nev.value) { alert("Kérjük adja meg a nevét!"); f.szemely_nev.focus(); return; }
        if (!f.szemely_szulnev.value) { alert("Kérjük adja meg a születési nevét!"); f.szemely_szulnev.focus(); return; }
        if (!f.szemely_szulhely.value) { alert("Kérjük adja meg a születési helyét!"); f.szemely_szulhely.focus(); return; }
        
        if (f.szemely_szulido_ev.selectedIndex == 0) { alert("Kérjük adja meg a születési idejét!"); f.szemely_szulido_ev.focus(); return; }
        if (f.szemely_szulido_honap.selectedIndex == 0) { alert("Kérjük adja meg a születési idejét!"); f.szemely_szulido_honap.focus(); return; }
        if (f.szemely_szulido_nap.selectedIndex == 0) { alert("Kérjük adja meg a születési idejét!"); f.szemely_szulido_nap.focus(); return; }
        
        if (f.szemely_telefonszam1.value == "") { alert("Kérjük adja meg a telefonszámát!"); f.szemely_telefonszam1.focus(); return; }
        if (f.szemely_telefonszam2.value == "") { alert("Kérjük adja meg a telefonszámát!"); f.szemely_telefonszam2.focus(); return; }

        // képzettség
        if (f.vegzettseg.selectedIndex == 0) { alert("Kérjük adja meg a végzettségét!"); f.vegzettseg.focus(); return; }

        // értesítési cím
        f.cim_ertesitesi_irszam.value = f.cim_ertesitesi_irszam.value.toInt();
        if (f.cim_ertesitesi_irszam.value == "NaN") f.cim_ertesitesi_irszam.value = "";
        if (f.cim_ertesitesi_irszam.value == "") { alert("Kérjük adja meg az értesítési címe irányítószámát!"); f.cim_ertesitesi_irszam.focus(); return; }
        if (f.cim_ertesitesi_varos.value == "") { alert("Kérjük adja meg az értesítési címe városát!"); f.cim_ertesitesi_varos.focus(); return; }
        if (f.cim_ertesitesi_utca.value == "") { alert("Kérjük adja meg az értesítési címe utcáját!"); f.cim_ertesitesi_utca.focus(); return; }
        
        // fizetés módja
        if (f.fizetes_modja.selectedIndex == 0) { alert("Kérjük válassza ki, milyen módon szeretne fizetni!"); f.fizetes_modja.focus(); return; }

		// átutalásos? ha igen, akkor a számlázási címet is meg kell adnia
		var ertek = $("fizetes_modja").getSelected()[0].get('value').split('-')[1];
		if (ertek == "atutalas") {
			if ($("cim_szamlazasi_nev").get("value") == "") { alert("Kérjük adja meg számlázási adatait!"); $("cim_szamlazasi_nev").focus(); return; }
			if ($("cim_szamlazasi_irszam").get("value") == "") { alert("Kérjük adja meg számlázási adatait!"); $("cim_szamlazasi_irszam").focus(); return; }
			if ($("cim_szamlazasi_varos").get("value") == "") { alert("Kérjük adja meg számlázási adatait!"); $("cim_szamlazasi_varos").focus(); return; }
			if ($("cim_szamlazasi_utca").get("value") == "") { alert("Kérjük adja meg számlázási adatait!"); $("cim_szamlazasi_utca").focus(); return; }
		}
		
        // nyilatkozatok elfogadása
        if ($("elfogadom0").checked == false) { alert("Kérjük fogadja el a nyilatkozatokat!"); f.elfogadom0.focus(); return; }
        if ($("elfogadom2").checked == false) { alert("Kérjük fogadja el a nyilatkozatokat!"); f.elfogadom2.focus(); return; }
      
        // submit
        var submitbtn = $("submitbtn");
        submitbtn.blur();
        submitbtn.disabled = true;
        submitbtn.value = "Egy kis türelmet...";
        
        f.submit();
      
    }
	
	// ha átutalásos fizetést választ, be kell kapcsolni a számlázási cím mezőt
	function changedFizetesMod() {
		var ertek = $("fizetes_modja").getSelected()[0].get('value').split('-')[1];
		if (ertek != "atutalas") {
			$("szamlazasi_cim_div").setStyle("display", "none");
			$("cim_szamlazasi_nev").set("value", "");
			$("cim_szamlazasi_irszam").set("value", "");
			$("cim_szamlazasi_varos").set("value", "");
			$("cim_szamlazasi_utca").set("value", "");
		} else {
			$("szamlazasi_cim_div").setStyle("display", "block");
			$("cim_szamlazasi_nev").set("value", $("szemely_nev").get("value"));
			$("cim_szamlazasi_irszam").set("value", $("cim_ertesitesi_irszam").get("value"));
			$("cim_szamlazasi_varos").set("value", $("cim_ertesitesi_varos").get("value"));
			$("cim_szamlazasi_utca").set("value", $("cim_ertesitesi_utca").get("value"));
		}
		
	}

    // szakma kiválasztása után beállítjuk az elérhető időpontokat és nyelveket
    function checkSzaknyelv() {
    
        var kijeloltSzakmaID = $("szakma").value.toInt();

		var div = $("tanfolyamidopontok");
		div.set("html", "");
		if (idopontok.length > 1) {
		idopontok.each(function(o, i) {
			div.innerHTML += '<input type="radio" name="tanfolyam_idopont" id="ti'+i+'" value="'+idopontszovegek[o][0]+'" /> <label for="ti'+i+'">'+idopontszovegek[o][1]+'</label><br />\n';
		});
		} else {
			div.innerHTML += '<input type="radio" name="tanfolyam_idopont" id="ti0" value="'+idopontszovegek[idopontok[0]][0]+'" checked style="display: none"/> <label for="ti0">'+idopontszovegek[idopontok[0]][1]+'</label><br />\n';
		}
        
        // *******************************************************-

        // nem minden tanfolyamhoz tartozik szaknyelvi képzés
        // ha kiválaszt egyet a user, akkor megnézzük, hogy meg kell-e jeleníteni a nyelvválasztást vagy sem
        var ezeknelvan = [
            70, // Nemzetközi szállítmányozási ügyintéző tanfolyam
            71, // Logisztikai ügyintéző tanfolyam
            77, // Marketing- és reklámügyintéző tanfolyam
            79, // Külgazdasági ügyintéző tanfolyam
            80, // Kereskedelmi ügyintéző tanfolyam
            82, // Idegenvezető tanfolyam
            83, // Protokollügyintéző tanfolyam
            84, // Utazásügyintéző tanfolyam
            86, // Idegennyelvi titkár tanfolyam
            88, // PR ügyintéző tanfolyam
            89, // Külkereskedelmi üzletkötő tanfolyam
           119, // Hirdetésügyintéző tanfolyam
		   132, // Rendezvény és konferenciaszervező kombinált tanfolyam
		   133  // Utazásszervező menedzser kombinált tanfolyam
        ];
                
        var van = ezeknelvan.contains(kijeloltSzakmaID);
        if (van == false) {
        
            // ha a kijelölt szakmánál nincs nyelv..
            // nullázuk az esetleg kijelölt szaknyelveket
            $("tanfolyam_szaknyelv1").checked = false;
            $("tanfolyam_szaknyelv2").checked = false;
            $("tanfolyam_szaknyelv3").checked = false;
            $("tanfolyam_szaknyelv_egyeb").set("value", "");

            // ki is kapcsoljuk őket
            $("tanfolyam_szaknyelv1").disabled = true;
            $("tanfolyam_szaknyelv2").disabled = true;
            $("tanfolyam_szaknyelv3").disabled = true;
            $("tanfolyam_szaknyelv_egyeb").disabled = true;
            
            // majd megjelenítjük az információs szöveget
            $("szaknyelv_sor1").addClass("disabled");
            $("szaknyelv_sor2").setStyle("display", "block");

        } else {
        
            // ha a kijelölt szakmánál van nyelv
            // bekapcsoljuk a radiokat
            $("tanfolyam_szaknyelv1").disabled = false;
            $("tanfolyam_szaknyelv2").disabled = false;
            $("tanfolyam_szaknyelv3").disabled = false;
            $("tanfolyam_szaknyelv_egyeb").disabled = false;
            
            // és elrejtjük az információs szöveget
            $("szaknyelv_sor1").removeClass("disabled");
            $("szaknyelv_sor2").setStyle("display", "none");
            
        }
        
        return van;
    
    }
	
	function checkVegzettseg(_s) {
		if (_s.selectedIndex > 0) {
			$("vegzettseg_megnevezese").setStyle("display", "block");
		} else {
			$("vegzettseg_megnevezese").setStyle("display", "none");
			$("vegzettseg_megnevezese").getElement("input").set("value", "");
		}
	}