/* Form ellenorzo
**  A submitCheck fuggveny: 
**    Submitkor ellenoriz bizonyos dolgokat a formon (onSubmit), ha rendben van, true val tér vissza, ha valami hibás, 
**    akkor kiirja tetelesen a form errorMessages-jaba a hibakat, es false van ter vissza.
**  isNameFree es isMailFree fuggvenyek:
**    Az username es email cim mezok valtozasara hivodnak meg, es ezen adatok foglaltsaganak ellenorzeset szolgaljak.
*/


//AJAX hivashoz
function getUrlPrefix(url) {
    if (url.indexOf("?") != -1) {
        return url.substring(0, url.indexOf("?"));
    } else {
        return url;
    }
}
nameIsFree = true;
mailIsFree = true;
//param== xmlbol visszakapott username. ha ez ures, akkor most regel, ha van benne vmi, profilt modosit, ennek megfeleloen van nehany dolog ellenorizve.
function submitCheck(param, parammail) {
    var usernameObj = document.getElementById('authusername');
    var firstnameObj = document.getElementById('firstname');
    var lastnameObj = document.getElementById('lastname');
    var emailObj = document.getElementById('authemail');
    var passwordObj = document.getElementById('authpasswd');
    var repeatpasswordObj = document.getElementById('repeatpassword');
    var leftbestObj = document.getElementById('leftbest');
    var rightbestObj = document.getElementById('rightbest');
    var leftworstObj = document.getElementById('leftworst');
    var rightworstObj = document.getElementById('rightworst');
    var errorMessagesObj = document.getElementById('autherrorMessages');
    var errorstring = new Array();
    var counter = 0;



    //leellenorzi, hogy az username, firstname, lastname, es az email ki van -e toltve
    if (usernameObj.value == '' || emailObj.value == '') { errorstring[counter] = getLocString('profileedit.submitcheck.error.reqfieldempty'); counter = counter + 1; }

    var isEmailCorrect = true;
    //figyelmeztet, ha az email tartalmaz www-t
    if (emailObj.value.indexOf('www') != -1) {
        isEmailCorrect = window.confirm(emailObj.value + ": " + getLocString('profileedit.submitcheck.confirm.emailcorrect'));
    }

    //leellenorzi, hogy most regisztralo user kitoltotte-e a password mezoket
    if (param == '' && (passwordObj.value == '' || repeatpasswordObj.value == '')) { errorstring[counter] = getLocString('profileedit.submitcheck.error.reg.passempty'); counter = counter + 1; }

    //leellenorzi, hogy modositottak -e az usernamet vagy a mailcimet profileeditkor
    if (param != '' && param != usernameObj.value) { errorstring[counter] = getLocString('profileedit.submitcheck.error.nonreg.usernamemailchanged'); counter = counter + 1; } /*|| parammail!=emailObj.value)*/

    //leellenorzi, hogy a password=repeatpassword
    if (passwordObj.value != repeatpasswordObj.value) { errorstring[counter] = getLocString('profileedit.submitcheck.error.nonregreg.passrepeat'); counter = counter + 1; }

    //password legalabb 6 karakter hosszu, es van benne nagybetu es szam
    var re = new RegExp("([A-Z]+.*[0-9]+)|([0-9]+.*[A-Z]+)"); //ez mar nem ellenorizve
    if (passwordObj.value != '' && !(passwordObj.value.length >= 6)) { errorstring[counter] = getLocString('profileedit.submitcheck.error.passweak'); counter = counter + 1; }

    //regisztracional az usernamet ellenorzi, hogy szabad-e
    if (param == '' && nameIsFree == false) { errorstring[counter] = getLocString('profileedit.submitcheck.error.usernameoccupied'); counter = counter + 1; }

    //regisztracional az usernamet ellenorzi, hogy szabad-e
    if (param == '' && mailIsFree == false) { errorstring[counter] = getLocString('profileedit.submitcheck.error.mailoccupied'); counter = counter + 1; }

    //kartyak ellenorzese: ha valamelyik nincs beallitva, vagy ha a favhand = worsthand, akkor kinullazza mindet, de nem false-val fog visszaterni
    if (leftbestObj.value == '' || rightbestObj.value == '' || leftworstObj.value == '' || rightworstObj.value == '') { leftbestObj.value = ''; rightbestObj.value = ''; leftworstObj.value = ''; rightworstObj.value = ''; }
    if ((leftbestObj.value == leftworstObj.value && rightbestObj.value == rightworstObj.value) || (leftbestObj.value == rightworstObj.value && rightbestObj.value == leftworstObj.value)) { leftbestObj.value = ''; rightbestObj.value = ''; leftworstObj.value = ''; rightworstObj.value = ''; }

    //ha volt hiba, akkor falseval ter vissza es kiirja azokat
    if (errorstring != '') {
        errorMessagesObj.style.display = "block";
        if (errorMessagesObj.hasChildNodes()) {
            while (errorMessagesObj.childNodes.length >= 1) {
                errorMessagesObj.removeChild(errorMessagesObj.firstChild);
            }
        }

        if (counter != 0) {
            for (i = 0; i < counter; i++) {
                newNote = document.createElement("div");
                newNote.setAttribute("class", "message");
                newNote.innerHTML = errorstring[i];
                errorMessagesObj.appendChild(newNote);
            }
            window.scroll(0, 0);
            return false;
        }
    }
    if (isEmailCorrect == false) {
        return false;
    }

    //ha nem volt hiba, akkor trueval ter vissza
    return true;
}

//az username field valtozasara hivodik meg, ellenorzi, hogy foglalt-e
function isNameFree() {
    var username = document.getElementById('authusername').value;
    var usermail = '';
    var registrationUrl = getUrlPrefix(document.URL);
    req = portal.Services.AjaxService.createRequest(registrationUrl + '?ajaxrequest=CheckRegistrationAjaxRequest&username=' + username + '&email=' + usermail, acceptedName, null, 'GET', null);
    if (username != '') req.makeRequest();
    else { nameIsFree = true; document.getElementById('usernamestatus').style.display = 'none'; }
}

//az email field valtozasara hivodik meg, ellenorzi, hogy foglalt-e
function isMailFree() {
    var username = '';
    var usermail = document.getElementById('authemail').value;
    var registrationUrl = getUrlPrefix(document.URL);
    req = portal.Services.AjaxService.createRequest(registrationUrl + '?ajaxrequest=CheckRegistrationAjaxRequest&username=' + username + '&email=' + usermail, acceptedMail, null, 'GET', null);
    if (usermail != '') req.makeRequest();
    else { mailIsFree = true; document.getElementById('emailstatus').style.display = 'none'; }
}

//az isNameFree hivja meg, ha az ajax keres eredmenye false, akkor megjeleniti, hogy foglalt.
function acceptedName(a) {
    try {
        rXML = a.responseXML.documentElement;
        if (rXML.getElementsByTagName("result")[0].childNodes[0].nodeValue == "success") {
            nameIsFree = true;
            document.getElementById('usernamestatus').style.display = 'none';
        }
        else { document.getElementById('usernamestatus').style.display = 'block'; nameIsFree = false; }

    } catch (e) {
        // Do nothing
    }
}

//az isMailFree hivja meg, ha az ajax keres eredmenye false, akkor megjeleniti, hogy foglalt.
function acceptedMail(a) {
    try {
        rXML = a.responseXML.documentElement;

        if (rXML.getElementsByTagName("result")[0].childNodes[0].nodeValue == "success") {
            mailIsFree = true;
            document.getElementById('emailstatus').style.display = 'none'
        }
        else { document.getElementById('emailstatus').style.display = 'block'; mailIsFree = false; }

    } catch (e) {
        // Do nothing
    }
}

//betoltes utan kitorli a password mezot, hogy a bongeszo ne szemeteljen bele
function clearPassField() {
    document.getElementById('authpasswd').value = '';
}

if (isRegistering) {
    addLoadEvent(isNameFree);
    addLoadEvent(isMailFree);
}
addLoadEvent(clearPassField);

