var errors = ''
function CheckRegForm() {
        var rules = [
//              ['gender',              /.+/,           'Vul alsjeblieft in of je een jongen of een meisje bent.'],
//              ['avatar',              /.+/,           'Vink alsjeblieft aan hoe je eruit wilt zien.'],
//              ['age',                 /[0-9]+/,       'Vul alsjeblieft je leeftijd in.'],
                ['name',                /.+/,           'Please, enter your name.'],
                ['nick',                /.+/,           'Please, enter your nickname.'],
                ['email',               /.+@.+\.+/,     'Please, enter your e-mail address.'],
                ['password',    /.+/,           'Please, enter your password.']
        ];



        errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                el = document.getElementById(field)
                if (el && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill out all obligatory fields. They are marked purper.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else if(el) {
                        el.style.backgroundColor = '';
                }
        }

        if (document.getElementById('password').value != document.getElementById('password2').value) {
                errors += 'Please, enter your password here again.\n';
                document.getElementById('password2').style.backgroundColor = '#663399';
        }
        else {
                document.getElementById('password2').style.backgroundColor = '';
        }

        if (!document.getElementById('male').checked && !document.getElementById('female').checked && 
                        !document.getElementById('mother').checked && !document.getElementById('father').checked &&
                        !document.getElementById('grandmother').checked && !document.getElementById('grandfather').checked) {
                errors += 'Please, indicate if you are a boy, girl, father, mother, grandfather or grandmother.\n';
        }

        index=0;
        var found = false;

        while (el = document.getElementById('avatar_'+index++)) {
                if (el.checked) {
                        found = true;
                        break;
                }
        }

        if (!found) {
                errors += 'Please, indicate how you want to look like.\n';
        }

        if (!document.getElementById('disclamer').checked) {
                errors += 'To be registered you must indicate that you meet our conditions.\n';
        }


        //
        //      Check nick.
        //      Error codes see in "/system/check_nick.php" file
        //
        if (document.getElementById('nick')) {
                var nick = document.getElementById('nick').value
                var params = 'nick='+nick;
                var myAjax = new Ajax.Request('/system/check_nick.php' , 
                        { method: 'post' , parameters: params , onComplete: _checkNick}
                );
        }

        return false;
}

function _checkNick(originalRequest)
{
        var checkNick = 0;
        var x = originalRequest.responseXML.documentElement;
        var response = x.getElementsByTagName('response');
        if (response && response.item(0) && response.item(0).firstChild) {
                checkNick = parseInt(response.item(0).firstChild.nodeValue);
        }
        else {
                checkNick = 1;
        }

        if (checkNick == 2) {
                errors += 'I don\'t here a name like that very often, my friend, but this time I heard it already before: please, choose another name.\n';
                $('nick').style.backgroundColor = '#663399';
        }
        else if (checkNick == 3) {
                $('nick').style.backgroundColor = '#FFFFFF';
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }
        else {
                $('mainRegForm').submit();
                return true;
        }
}

function CheckProfileForm() {
        var rules = [
                ['nick',                /.+/,           'Please, enter here your nickname.'],
                ['email',       /.+@.+\.+/,     'Please, enter here your e-mail address.']
        ];

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                if ((el = document.getElementById(field)) && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else {
                        el.style.backgroundColor = '';
                }
        }

        if (document.getElementById('password').value != '' && document.getElementById('password').value != document.getElementById('password2').value) {
                errors += 'Please, enter your password here again.\n';
        }

        index=0;
        var found = false;

        while (el = document.getElementById('avatar_'+index++)) {
                if (el.checked) {
                        found = true;
                        break;
                }
        }

        if (!found) {
                errors += 'Please, indicate how you would like to look like.\n';
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}

function CheckSendForm() {
        var rules = [
                ['from',        /.+@.+\.+/,     'Please, enter a correct e-mail address.'],
                ['to',          /.+@.+\.+/,     'Please, enter a correct e-mail address.'],
                ['text',        /.+/,           'Please, enter a message here.']
        ];

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                if ((el = document.getElementById(field)) && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else {
                        el.style.backgroundColor = '';
                }
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}

function SetZodiac() {
        var zodiacs = [
                //start day, start month, zodiac, days in month
                [ 1,  1, 'capricorn',            31],
                [21,  1, 'aquarius',            31],
                [20,  2, 'pisces',                      29],
                [21,  3, 'aries',                         31],
                [21,  4, 'taurus',                       30],
                [22,  5, 'gemini',          31],
                [22,  6, 'cancer',                      30],
                [23,  7, 'leo',                       31],
                [24,  8, 'virgo',                       31],
                [23,  9, 'libra',          30],
                [23, 10, 'scorpio',          31],
                [22, 11, 'sagittarius',        30],
                [22, 12, 'capricorn',            31],
                [99, 99, 'capricorn',            31]
        ];

        var sign;

        var m_el = document.getElementById('month');
        var d_el = document.getElementById('day');
        var img_el = document.getElementById('zodiac_image');
        
        // alert([m_el, d_el, img_el])

        if (m_el && d_el && img_el) {
                var m = m_el.options[m_el.selectedIndex].value;
                var d = d_el.options[d_el.selectedIndex].value;

                var found = false;

                for (var index in zodiacs) {
                        sign = zodiacs[index];

                        if (m == sign[1] && d >= sign[0] && sign[0] >= 20) {
                                found = true;
                                break;
                        }
                        else if (m < sign[1]) {
                                sign = zodiacs[index-2];
                                found = true;
                                break;
                        }
                }
                
                if (!found) {
                        sign = zodiacs[12];
                        m_el.selectedIndex = 0;
                        d_el.selectedIndex = 0;
                }

                if (d > sign[3]) {
                        img_el.alt = 'date is incorrect';
                        img_el.src = '/images/zodiac_signs/_invalid.gif';
                }
                else {
                        document.getElementById('zodiac_field').value = sign[2];
                        img_el.alt = sign[2];
                        img_el.src = '/images/zodiac_signs/aanmeld_' + sign[2] + '.gif';
                }
        }
}



function CheckFreeShopForm()
{
        var rules = [
                ['name',                /.+/,                                   'Please, enter your name.'],
                ['voornaam',    /.+/,                                   'Please, enter your first name.'],
                ['straat',              /.+/,                                   'Please, enter your address.'],
                ['postcode',    /^\d{4}\s*[a-z]{2}$/i,  'Please, enter your zip code.'],
                ['plaats',              /.+/,                                   'Please, enter your town.']
        ];



        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                if ((el = document.getElementById(field)) && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else {
                        el.style.backgroundColor = '';
                }
        }

        var stones = document.getElementsByName('stone_name[]');
        var checkedStones = 0;
        if(stones && stones.length>0) {
                for(i=0; i < stones.length; i++) {
                        if(stones[i].checked) {
                                checkedStones++
                        }
                }
                if(checkedStones != 3) {
                        errors += 'Please, mark three stones.' + '\n';
                }
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }
        
        return true;
}

function CheckThreadForm() {
        var rules = [
                ['title',               /.+/,                                   'Please, enter your subject.'],
                ['text',                /.+/,                                   'Please, enter your message.']
        ];

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                if ((el = document.getElementById(field)) && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else {
                        el.style.backgroundColor = '';
                }
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}

function CheckPostForm() {
        var rules = [
                ['text',                /.+/,                                   'Please, enter your message.']
        ];

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                if ((el = document.getElementById(field)) && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else {
                        el.style.backgroundColor = '';
                }
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}



function CheckEmail() {
        var rules = [
                ['email',               /.+@.+\.+/,     'Please, enter your e-mail address.']
        ];

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                el = document.getElementById(field)
                if (el && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += 'Please, fill in all obligatory fields. They are marked purple.' + '\n';
                        }
                        el.style.backgroundColor = '#663399';
                }
                else if(el) {
                        el.style.backgroundColor = '';
                }
        }

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}


function CheckPartyForms() {
        var rules = [
                ['Voor1',               /.+/,   'I need the following data about you:'],
                ['Voornaam',    /.+/,   'Please, enter your first name.'],
                ['Miyu_naam',   /.+/,   'Please, enter your MiYu name.'],
                ['Huisnummer',  /.+/,   'Please, enter your MiYu house number.'],
                ['Jouw1',               /.+/,   'Please, enter your apprentice name.'],
                ['Achternaam',  /.+/,   'Please, enter your christian name..'],
                ['Straat',              /.+/,   'Please, enter your address.'],
                ['PC',                  /^[0-9]{4}\s*[a-z]{2}$/i,       'Please, enter your PC.'],
                ['Plaats',              /.+/,   'Please, enter your town.'],
                ['Tel',                 /.+/,   'Please, enter your telephone.'],
                ['Email',               /.+@.+\.+/,     'Please, enter your e-mail address.'],
                ['Email2',              /.+@.+\.+/,     'Please, enter your e-mail address.'],
                ['nick',                /.+/,   'Please, enter your MiYu name.'],

                ['Naamschool',  /.+/,   'Please, enter the name of your school.'],
                ['Adresschool', /.+/,   'Please, enter the address of your school.'],
                ['Naamlerares', /.+/,   'Please, enter the name of your teacher.'],
                ['Telefoonnrschool',    /.+/,   'Please, enter the telephone number of your school.'],
                ['Hoeveel',             /.+/,   'Please, enter how many children there are in your group.'],

                ['Hoeveel2',            /.+/,   'Please, enter how many children you will invite.'],
                ['EenGrote',            /.+/,   'Please, enter of which consists a Great Magic MiYu Box.'],
                
                ['CodeVerz',    /^.+/i, 'Please, enter the code of your collectioners\' box.'],
                
                ['Geboortedatum_day',    /^.+/i,        'Day of birth'],
                ['Geboortedatum_month',    /^.+/i,      'Month of birth'],
                ['Geboortedatum_year',    /^.+/i,       'Year of birth'],
                ['Dagspreekbeurt_day',    /^.+/i,       'Day of speech'],
                ['Dagspreekbeurt_month',    /^.+/i,     'Day of speech'],
                ['Dagspreekbeurt_year',    /^.+/i,      'Day of speech']

//              , ['Opmerkingen',       /.+/,   'Vul alsjeblieft je Opmerkingen, wensen, suggesties, vragen in.']
        ];
        
        var errorBase = 'Please, fill in all obligatory fields. They are marked purple.' + '\n'; 

        var errors = '';

        for (var index in rules) {
                var field       = rules[index][0];
                var rx          = rules[index][1];
                var msg         = rules[index][2];

                el = document.getElementById(field)
                if (el && !rx.test(el.value)) {
//                      errors += msg + '\n';
                        if (!errors) {
                                errors += errorBase;
                        }
                        el.style.backgroundColor = '#663399';
                }
                else if(el) {
                        el.style.backgroundColor = '';
                }
        }

        if (document.getElementById('Email') && document.getElementById('Email2')) {
                if (document.getElementById('Email').value != document.getElementById('Email2').value) {
                        if (!errors) {
                                errors += errorBase;
                        }
                        document.getElementById('Email').style.backgroundColor = '#663399';
                        document.getElementById('Email2').style.backgroundColor = '#663399';
                }
                else if (document.getElementById('Email').value != "") {
                        document.getElementById('Email').style.backgroundColor = '';
                        document.getElementById('Email2').style.backgroundColor = '';
                }
        } 

        if (errors.length > 0) {
                alert(errors);
                return false;
        }

        return true;
}
