
    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");

        // szakma, időpont, szaknyelv
        if ($(f.szakma).getSelected()[0].get('value') == "semmi") { alert("Kérjük válasszon szakmát!"); f.szakma.focus(); return; }
        
        if (checkSzaknyelv() == 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; }
            if ($(f.tanfolyam_szaknyelv_egyeb).get('value') != "")  { f.tanfolyam_szaknyelv[2].checked = true; }
        }
      
        // 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_anyjaszulnev.value) { alert("Kérjük adja meg az édesanyja születési nevét!"); f.szemely_anyjaszulnev.focus(); return; }
        //if (!f.szemely_email.value) { alert("Kérjük adja meg az e-mail címét!"); f.szemely_email.focus(); return; }
        //if (checkEmail(f.szemely_email.value) == false) { alert("Hibás e-mail címet adott meg, kérjük javítsa!"); f.szemely_email.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; }

        // munkahelyi adatok
        //if (!f.munkahely_nev.value) { alert("Kérjük adja meg a munkahelye nevét!"); f.munkahely_nev.focus(); return; }
        //if (!f.munkahely_cim.value) { alert("Kérjük adja meg a munkahelye címét!"); f.munkahely_cim.focus(); return; }
        //if (f.munkahely_telefonszam1.value == "") { alert("Kérjük adja meg a munkahelye telefonszámát!"); f.munkahely_telefonszam1.focus(); return; }
        //if (f.munkahely_telefonszam2.value == "") { alert("Kérjük adja meg a munkahelye telefonszámát!"); f.munkahely_telefonszam2.focus(); return; }

        // képzettség
        if ($(f.vegzettseg).getSelected().get('value') == "semmi") { alert("Kérjük adja meg a végzettségét!"); f.vegzettseg.focus(); return; }

        // állandó lakcím
        f.cim_allando_irszam.value = f.cim_allando_irszam.value.toInt();
        if (f.cim_allando_irszam.value == "NaN") f.cim_allando_irszam.value = "";
        if (f.cim_allando_irszam.value == "") { alert("Kérjük adja meg az állandó lakcíme irányítószámát!"); f.cim_allando_irszam.focus(); return; }
        if (f.cim_allando_varos.value == "") { alert("Kérjük adja meg az állandó lakcíme városát!"); f.cim_allando_varos.focus(); return; }
        if (f.cim_allando_utca.value == "") { alert("Kérjük adja meg az állandó lakcíme utcáját!"); f.cim_allando_utca.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; }
        
        // számlázási cím
        if (f.cim_szamlazasi_nev.value == "") { alert("Kérjük adja meg a számlázási adatokat!"); f.cim_szamlazasi_irszam.focus(); return; }
        f.cim_szamlazasi_irszam.value = f.cim_szamlazasi_irszam.value.toInt();
        if (f.cim_szamlazasi_irszam.value == "NaN") f.cim_szamlazasi_irszam.value = "";
        if (f.cim_szamlazasi_irszam.value == "") { alert("Kérjük adja meg a számlázási adatokat!"); f.cim_szamlazasi_irszam.focus(); return; }
        if (f.cim_szamlazasi_varos.value == "") { alert("Kérjük adja meg a számlázási adatokat!"); f.cim_szamlazasi_varos.focus(); return; }
        if (f.cim_szamlazasi_utca.value == "") { alert("Kérjük adja meg a számlázási adatokat!"); f.cim_szamlazasi_utca.focus(); return; }
        
        // költségviselő neve, számlázási adatai
        if (!f.koltsegviselo_adatai[0].checked && !f.koltsegviselo_adatai[1].checked)  { alert("Kérjük válaszoljon arra a kérdésre, hogy a számlázási címe megegyezik-e a jelentkező állandó lakcímével!"); f.koltsegviselo_adatai[0].focus(); return; }
        
        // fizetés módja
        if (!f.fizetes_modja[0].checked && !f.fizetes_modja[1].checked && !f.fizetes_modja[2].checked) { alert("Kérjük válassza ki, milyen módon szeretne fizetni!"); f.fizetes_modja[0].focus(); return; }
        if (!f.fizetes_modja_hogyan[0].checked && !f.fizetes_modja_hogyan[1].checked && !f.fizetes_modja_hogyan[2].checked && !f.fizetes_modja_hogyan[3].checked) { alert("Kérjük válassza ki, milyen módon szeretne fizetni!"); f.fizetes_modja_hogyan[0].focus(); return; }
        
        // üdülési csekknél nem lehet havi részletfizetést választani
        if (f.fizetes_modja[2].checked && f.fizetes_modja_hogyan[1].checked) { alert("Üdülési csekkel nem lehet havi részletben fizetni, kérjük válasszon fizetési módot."); return; }
        
        // felnőttképzési szolgáltatások
        if (f.elozetes_tudasmeres_nyelv.value != "") $("felnottkepzesi_szolgaltatasok3").checked = true;
        if (f.elozetes_tudasmeres_targy.value != "") $("felnottkepzesi_szolgaltatasok4").checked = true;

        // nyilatkozatok elfogadása
        if ($("elfogadom0").checked == false) { alert("Kérjük fogadja el a nyilatkozatokat!"); f.elfogadom0.focus(); return; }
        if ($("elfogadom1").checked == false) { alert("Kérjük fogadja el a nyilatkozatokat!"); f.elfogadom1.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();
      
    }

    function checkEmail(email) {
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(email)) {
            return false;
        } else {
            return true;
        }
    }
    
    function allandoEsErtesitesiCimUgyanaz() {
    
        var f = $("form");

        f.cim_ertesitesi_irszam.value = f.cim_allando_irszam.value;
        f.cim_ertesitesi_varos.value = f.cim_allando_varos.value;
        f.cim_ertesitesi_utca.value = f.cim_allando_utca.value;
    
    }
    
    function koltsegviseloAdataiMegegyeznek(ertek) {
        if (ertek == "igen") {

            //$('szamlazasi_adatok__egyezik').setStyle('display','block');
            $('szamlazasi_adatok__nem_egyezik').setStyle('display','none');

            var f = $("form");

            f.cim_szamlazasi_nev.value = f.szemely_nev.value;
            f.cim_szamlazasi_irszam.value = f.cim_allando_irszam.value;
            f.cim_szamlazasi_varos.value = f.cim_allando_varos.value;
            f.cim_szamlazasi_utca.value = f.cim_allando_utca.value;
        
        } else {
        
            //$('szamlazasi_adatok__egyezik').setStyle('display','none');
            $('szamlazasi_adatok__nem_egyezik').setStyle('display','block');

        }
    }
    
    var kivalasztottSzakmaID;
    // szakma kiválasztása utána
    function checkSzaknyelv() {
    
        var kijeloltSzakmaID = $("szakma").getSelected()[0].get("value").toInt();

        if (kivalasztottSzakmaID != kijeloltSzakmaID) {
            kivalasztottSzakmaID = kijeloltSzakmaID;
            var div = $("tanfolyamidopontok");
            div.set("html", "");
            idopontok[kijeloltSzakmaID].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';
            });
        }
        
        // *******************************************************-

        // 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", "");
		}
	}