_currPage = 1;

function nextPage()
{
    if(_currPage < 4)
        {
        // On valide la page
        if(eval('checkPage'+_currPage+'()'))
            {
            // On enlève les éléments actifs de la page courante
            $('situation-etape-'+_currPage).removeClassName('current');
            $('etape-'+_currPage).setStyle({display : 'none'});

            // On va à la prochaine page
            _currPage++;
            $('situation-etape-'+_currPage).addClassName('current');
            $('etape-'+_currPage).setStyle({display : 'block'});
            updateNavigationButtons();
        }
    }
}

function previousPage()
{
    if(_currPage > 1)
        {
        // On valide la page
        // TODO

        // On enlève les éléments actifs de la page courante
        $('situation-etape-'+_currPage).removeClassName('current');
        $('etape-'+_currPage).setStyle({display : 'none'});

        // On va à la prochaine page
        _currPage--;
        $('situation-etape-'+_currPage).addClassName('current');
        $('etape-'+_currPage).setStyle({display : 'block'});
        updateNavigationButtons();
    }
}

function updateNavigationButtons()
{
    switch(_currPage)
    {
        case 1:
        {
            $('btn_previous').setStyle({display : 'none'});
            $('btn_next').setStyle({display : 'inline'});
            $('btn_send').setStyle({display : 'none'});
        }
        break;

        case 2:
        {
            $('btn_previous').setStyle({display : 'inline'});
            $('btn_next').setStyle({display : 'inline'});
            $('btn_send').setStyle({display : 'none'});
        }
        break;

        case 3:
        {
            $('btn_previous').setStyle({display : 'inline'});
            $('btn_next').setStyle({display : 'inline'});
            $('btn_send').setStyle({display : 'none'});
        }
        break;

        case 4:
        {
            $('btn_previous').setStyle({display : 'inline'});
            $('btn_next').setStyle({display : 'none'});
            $('btn_send').setStyle({display : 'inline'});
        }
        break;
    }
}

function checkPage1()
{
    var pageOk = true;
    var fields = new Array(
    'ENTLogin',
    'ENTName',
    'ENTAddress',
    'ENTZip',
    'ENTCity',
    'ENTPhone',
    'ENTCountry'
    );


    // Controle général des champs
    for(var i = 0; i < fields.length; i++)
        {
        // On enlève le class error
        $(fields[i]).up(1).down('div.title').removeClassName('error');
        if(!validateField($(fields[i])))
            {
            // On ajoute le class error s'il y a des erreurs
            $(fields[i]).up(1).down('div.title').addClassName('error');
            pageOk = false;
        }
    }

    // On vérifie que l'email pour le login soit correctement formaté
    if(!testEmail($F('ENTLogin')))
    {
        $('ENTLogin').up(1).down('div.title').addClassName('error');
        pageOk = false;
    }

    // On vérifie si les mots de passe correspondent ou pas
    $('ENTPassword1').up(1).down('div.title').removeClassName('error');
    $('ENTPassword2').up(1).down('div.title').removeClassName('error');
    if( ($F('ENTPassword1').blank() || $F('ENTPassword2').blank()) || ($F('ENTPassword1') != $F('ENTPassword2')) )
        {
        $('ENTPassword1').up(1).down('div.title').addClassName('error');
        $('ENTPassword2').up(1).down('div.title').addClassName('error');
        pageOk = false;
    }

    return pageOk;
}

function checkPage2()
{
    var pageOk = true;
    var fields = new Array(
    'ENTContactLastname',
    'ENTContactFirstname',
    'ENTContactSexM',
    'ENTContactPhone',
    'ENTContactEmail'
    );


    // Controle général des champs
    for(var i = 0; i < fields.length; i++)
        {
        // On enlève le class error
        $(fields[i]).up(1).down('div.title').removeClassName('error');
        if(!validateField($(fields[i])))
            {
            // On ajoute le class error s'il y a des erreurs
            $(fields[i]).up(1).down('div.title').addClassName('error');
            pageOk = false;
        }
    }

    // Controle spécifique pour certains champs
    // Email
    if(!testEmail($F('ENTContactEmail')))
        {
        $('ENTContactEmail').up(1).down('div.title').addClassName('error');
        pageOk = false;
    }

    return pageOk;
}

function checkPage3()
{
    var pageOk = true;
    var fields = new Array(
    'ENTPlacementDescription',
    'ENTPlacementSalary',
    'ENTDatesErliestDay',
    'ENTDatesErliestMonth',
    'ENTDatesErliestYear',
    'ENTDatesLatestDay',
    'ENTDatesLatestMonth',
    'ENTDatesLatestYear'
    );

    // Si on insère un superviseur on controle les champs
    if($F('ENTSupervisor') == 2)
        {
        fields = new Array(
        'ENTPlacementDescription',
        'ENTPlacementSalary',
        'ENTDatesErliestDay',
        'ENTDatesErliestMonth',
        'ENTDatesErliestYear',
        'ENTDatesLatestDay',
        'ENTDatesLatestMonth',
        'ENTDatesLatestYear',
        'ENTSupervisorLastname',
        'ENTSupervisorFirstname',
        'ENTSupervisorSexM',
        'ENTSupervisorPhone',
        'ENTSupervisorEmail'
        );
    }

    // Controle général des champs
    for(var i = 0; i < fields.length; i++)
        {
        // On enlève le class error
        $(fields[i]).up(1).down('div.title').removeClassName('error');
        if(!validateField($(fields[i])))
            {
            // On ajoute le class error s'il y a des erreurs
            $(fields[i]).up(1).down('div.title').addClassName('error');
            pageOk = false;
        }
    }

    // Controle spécifique pour certains champs
    // Email
    if(($F('ENTSupervisor') == 2) && !testEmail($F('ENTSupervisorEmail')))
        {
        $('ENTSupervisorEmail').up(1).down('div.title').addClassName('error');
        pageOk = false;
    }

    return pageOk;
}

function checkPage4()
{
    var pageOk = true;
    var fields = new Array(
    'ENTJobField',
    'ENTLinguisticSkills',
    'ENTTechnicalSkills'
    );

    // Controle général des champs
    for(var i = 0; i < fields.length; i++)
        {
        // On enlève le class error
        $(fields[i]).up(1).down('div.title').removeClassName('error');
        if(!validateField($(fields[i])))
            {
            // On ajoute le class error s'il y a des erreurs
            $(fields[i]).up(1).down('div.title').addClassName('error');
            pageOk = false;
        }
    }

    return pageOk;
}

function sendForm()
{
    if(checkPage4())
        {
        $('frm_cv').submit();
    }
}

function changePlacementFor(placement)
{
    if(placement == 2)
        {
        $('fieldStudents_line').hide();
        $('fieldApprentis_line').show();
    }
    else
        {
        $('fieldStudents_line').show();
        $('fieldApprentis_line').hide();
    }
}

function changeSupervisor()
{

    if($F('ENTSupervisor') == 2)
        {
        $('supervisorInfoBlock').show();
    }
    else
        {
        $('supervisorInfoBlock').hide();
    }
}

function validateField(element)
{
    switch(element.type)
    {

        case 'text':
        {
            if(element.value.blank())
                {
                element.value = element.value.trim();
                return false;
            }
            else
                {
                return true;
            }
        }
        break;

        case 'textarea':
        {
            if(element.value.blank())
                {
                element.value = element.value.trim();
                return false;
            }
            else
                {
                return true;
            }
        }
        break;

        case 'select-one':
        {
            if(element.value == '0')
                {
                return false;
            }
            else
                {
                return true;
            }
        }
        break;

        case 'radio':
        {

            var t = document.getElementsByName(element.name); // On va trouver tout les radio de ce nom
            var checked = false;
            for(var i = 0; i < t.length && !checked; i++) // On parcour tout les radio pour voir si il y en a un checked
                {
                if(t[i].checked)
                    {
                    checked = true;
                }
            }

            if(checked)
                {
                return true;
            }
            else
                {
                return false;
            }
        }
        break;

        default:
            alert('Unknown type: '+element.type);

    }
}

// Tels us if we entered a number or not allows anything
function isNumeric(text)

{
    var validChars = "0123456789.";
    var isNumber = true;
    var aChar = '';


    for (i = 0; i < text.length && isNumber == true; i++)
        {
        aChar = text.charAt(i);
        if (validChars.indexOf(aChar) == -1)
            {
            isNumber = false;
        }
    }
    return isNumber;

}

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}

function testEmail (my_email)
{
    var new_string = new String(my_email);
    if (!new_string.match('^[-_\.0-9a-zA-Z]{1,}@[-_\.0-9a-zA-Z]{1,}[\.][0-9a-zA-Z]{2,}$')) {
        return false;
    }
    else {
        return true;
    }
}

