    /***************************************************************************************************/

    // ebben tárolunk mindenféle hasznos funkciót
    var CommonFunctions = {

        // email validation
        emailValidation: function(str) {
            if (str == "") return false;

            var at = "@";
            var dot = ".";
            var lat = str.indexOf(at);
            var lstr = str.length;
            var ldot = str.indexOf(dot);

            if (str.indexOf(at)==-1) return false;
            if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
            if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
            if (str.indexOf(at,(lat+1))!=-1) return false;
            if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
            if (str.indexOf(dot,(lat+2))==-1) return false;
            if (str.indexOf(" ")!=-1) return false;

            return true;
        },

        // ha üres egy input, akkor kap egy "red" class-t is, ezzel jelezve, hogy ki kell tölteni
        checkRegFormInput: function(w) {

            w.className = (w.value != '') ? 'input' : 'input red';

        },
        
        // néhány menüpontnak felül van rollover almenüje, de simán csak menu li:hover -ként az explorer nem tudja kezelni
        // ezért rá kell tennünk egy eseményfigyelést mindegyikre
        menuInit: function() {

            var menupontok = $ES(".menuli", "menu");
            menupontok.each(

                function(element) {
                  
                      element.onmouseover = function() {
                        
                          this.addClass("over");

                      },

                      element.onmouseout = function() {

                          this.removeClass("over");

                      }


                }

            );
            
        },
        
        swfHeaderInit: function(flash, randomflash) {

            var dir = url+"files/header/";
            if (randomflash) dir += "random_flash/";
            var so = new SWFObject(dir+flash+".swf", "swfheader", "700", "107", "5", "#855b31");
            so.addParam("wmode", "transparent");
            so.addParam("salign", "t");
            so.write("swfheader");
        }  

    }

    /***************************************************************************************************/

    // Közös user funkciók
    var CommonUserFunctions = {

        // ha beikszeli a "látszódjon gépeléskor a jelszó" checkboxot, akkor le kell az állapottól függően
        // le kell cserélnünk az input-ot
        switchPassVisibility: function(checked) {

            // ha beikszelte, akkor mutatni kell a jelszót
            if (checked == true) {

                $('hiddenpass1').style.display = 'none';
                $('showedpass1').style.display = 'inline';
                $('showedpass1').value = $('hiddenpass1').value;
                $('showedpass1').focus();

                $('hiddenpass2').style.display = 'none';
                $('showedpass2').style.display = 'inline';
                $('showedpass2').value = $('hiddenpass2').value;

            } else {

                $('hiddenpass1').style.display = 'inline';
                $('showedpass1').style.display = 'none';
                $('hiddenpass1').value = $('showedpass1').value;
                $('hiddenpass1').focus();

                $('hiddenpass2').style.display = 'inline';
                $('showedpass2').style.display = 'none';
                $('hiddenpass2').value = $('showedpass2').value;

            }

        },

        // a submit button-t visszaállítjuk
        activateSubmitBtn: function() {

            var submitbtn = $("submitbtn");
            submitbtn.value = translate.buttons.submit;
            submitbtn.disabled = false;

        },

        // deactivate submit button
        // a form elküldése előtt szoktam használni
        deactivateSubmitBtn: function() {

            var submitbtn = $("submitbtn");
            submitbtn.value = translate.buttons.kerem_varjon;
            submitbtn.disabled = true;
            submitbtn.blur();

        },

        // szükséges mezők ellenőrzése
        // regisztrációnál és jelszóváltoztatásnál
        checkRequiredFields: function(required_fields) {

            // return true;
            
            // az esetek többségében a jelszót is ellenőrizni kell, és az macerásabb
            // viszont van olyan eset is, amikor nem kell, ilyenkor a jelszó ellenőrző lépéseket ki kell hagyni
            var withpass = false;
            if (required_fields.contains("pass")) withpass = true;

            if (withpass == true) {

                // ie miatt $() funkcióval kell az inputokat használni, mert ha csak simán
                // formname.fieldname.addClass()-t szeretnék, akkor kiakad...
                /// $(fieldname).addClass-ként már jó
                pass = $("hiddenpass1");
                pass2 = $("hiddenpass2");
                showedpass1 = $("showedpass1");
                showedpass2 = $("showedpass2");

                // a jelszavakat az eredeti "pass" mezőben fogjuk felhasználni, szóval ha az most éppen rejtve van,
                // akkor belepakoljuk a látható jelszót
                if ($('showthepass').checked == true) {
                    pass.value = showedpass1.value;
                    pass2.value = showedpass2.value;
                }

            }

            // végigmegyünk a kötelezően kitöltendő mezőkön, és ha valamelyiket nem adta meg, akkor balhézunk
            var balhevan = false; // ha ez true lesz, akkor alertezünk
            var field = "";
            required_fields.each(
                function(fieldname) {
    
                    field = "";
                    if (fieldname == "pass") field = pass;
                    if (fieldname == "pass2") field = pass2;
                    if (!field) field = $(eval("document.userform."+fieldname));

                    // ha esetleg előzőleg már raraktuk a piros keretet, de már kitöltötte a mezőt, akkor levesszük
                    if (field.hasClass("red") && field.value != "") field.removeClass("red");

                    // ha hiányzik, akkor balhét csapunk
                    if (field.value == "") {

                        field.addClass("red");
                        if (fieldname == "pass") showedpass1.addClass("red");
                        if (fieldname == "pass2") showedpass2.addClass("red");
                        balhevan = true;

                    }

                }
            );

            if (balhevan == true) alert(translate.user.missing_input);

            if (withpass == true) {

                // ha a két jelszó nem egyezik, akkor azért külön szólunk
                if (balhevan == false && pass.value != pass2.value) {
    
                      pass.addClass("red");
                      pass2.addClass("red");
                      showedpass1.addClass("red");
                      showedpass2.addClass("red");
    
                      balhevan = true;
                      alert(translate.user.mistyped_passwords);
    
                }
    
                // ha egyezik végre a kettő, akkor levesszük a jelszavakról a keretet, hogy ne virítson annyira
                if (balhevan == false && pass.value == pass2.value) {
    
                      pass.removeClass("red");
                      pass2.removeClass("red");
                      showedpass1.removeClass("red");
                      showedpass2.removeClass("red");
    
                }
                
            }

            // fordítottat küldünk vissza
            // tehát ha VAN (true) hiba, akkor NEM OKÉ (false) az ellenőrzés
            return !balhevan;

        },

        // form submit
        submitForm: function() {

            this.deactivateSubmitBtn();
            document.forms.userform.submit();

        }

    }

    /***************************************************************************************************/

