_currPage = 1;

var nbrUploadLine = 1;

var _tplHTMLUploadFile = new Template(' \
<div class="line"> \
<div class="title" id="cvFile_#{id}_title">File #{id}</div> \
<div class="cell" style="width: 400px;"><input style="height: 20px;" type="file" name="cvFile[]" /> (file size max 4Mo)</div> \
</div><!-- End of line -->');

function addUploadLine()
{
    if(nbrUploadLine < 10)
        {
        nbrUploadLine++;
        //var params = {id : nbrUploadLine};

        $('cvLine-'+nbrUploadLine).setStyle({display: 'block'});
        //$('cvLines').innerHTML += _tplHTMLUploadFile.evaluate(params);
    }
    
    // Hidding the upload line.. not letting the user uploading more then 10 files
    if(nbrUploadLine >= 10)
    {
        $('addUploadLine').style.display = 'none';
    }

}

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 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(
    'ETULastname',
    'ETUFirstname',
    'ETUBirthdayDay',
    'ETUBirthdayMonth',
    'ETUBirthdayYear',
    'ETUEmail',
    'ETUNationality',
    'ETUSexM',
    'ETUPhone',
    'ETUMobile',
    'ETUAddress',
    'ETUZip',
    'ETUCity',
    'ETUCountry'
    );


    // 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('ETUEmail')))
        {
        $('ETUEmail').up(1).down('div.title').addClassName('error');
        pageOk = false;
    }


    return pageOk;
}

function checkPage2()
{
    var pageOk = true;
    var fields = new Array(
    'ETUMotherTongue',
    'ETUSchoolUniversity',
    'ETUStudies',
    'ETUStudyYears',
    'ETUGraduationDateDay',
    'ETUGraduationDateMonth',
    'ETUGraduationDateYear'
    );


    // 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 checkPage3()
{
    var pageOk = true;
    var fields = new Array(
    'ETUAvailableFromDay',
    'ETUAvailableFromMonth',
    'ETUAvailableFromYear',
    'ETUAvailableNbrMonth'
    );

    // 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 checkPage4()
{
    var pageOk = true;
    var nbrSentFiles = 0;
    var cvFile = document.getElementsByName('cvFile[]');
    for(var i = 0; i < cvFile.length; i++)
    {
        $('cvFile_'+(i+1)+'_title').style.color = '#000000';
        if(!(cvFile[i].value.blank()))
        {
            if(/(\.doc|\.docx|\.pdf|\.txt|\.jpg|\.png)$/i.test(cvFile[i].value)) 
            {
                nbrSentFiles++;
            }
            else
            {
                alert("Invalid file type: "+cvFile[i].value);
                pageOk = false;
                $('cvFile_'+(i+1)+'_title').style.color = '#990000';
            }
        }

    }
    
    if(nbrSentFiles < 5)
    { 
        pageOk = false;
        alert('You must send at least the five required files')
    }

    return pageOk;
}

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

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;
    }
}

