function echeck(str) {

    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    var regexMail=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

    if (!regexMail.test(str)){
        return false
    }
    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;
}

function dateOfBirth(){
    var valid = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    var d = document.getElementById('day').value;
    var m = document.getElementById('month').value;
    var y = document.getElementById('year').value;

    var date = new Date();
    var bDay = new Date(y,m-1,d);
    var major = new Date (parseInt(y)+18, m-1, d);

    var is_major = 1;
    if ((date.getTime() - major.getTime()) <=0){
        is_major = 'nu';
        return is_major;
    }

    if (d.length < 2 ){
        d = "0"+d;
    }
    if (m.length < 2){
        m = "0" + m;
    }
    var birthString = d+'/'+ m +'/'+y;

    if (!valid.test(birthString)){
        return false;
    }
    if (isNaN(d) || isNaN(m) || isNaN(y)){
        return false;
    }
    if ( (m == 02 || m == 2) && d > 29){
        return false;
    }
    if (d > 31 || m > 12 || y > date.getFullYear()) {
        return false;
    }
    if (d < 0 || m < 0 || y < 1940){
        return false;
    }

    if (date.getTime() < bDay.getTime()){
        return false;
    }
    
}
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function validateInput(){
     
    var regexNum = /\d/;
    var regexLetter = /[a-zA-z]/;
    var nume = document.getElementById('nume').value;
    var nume_prenume= trim(nume).split(' ');
    
    var valid_nume;
    var valid_email;
    var valid_telefon;
    var valid_data;
    var valid_job;
    var valid_tema;
    var valid_training;
    var valid_experience;
    var valid_comp;
    var valid_file;
    var valid_captcha;

    if (nume == ''){
        document.getElementById('error_nume').innerHTML= 'Vă rugăm introduceţi un nume';
        valid_nume = 0;
    }
    
    else if(regexNum.test(nume) || !regexLetter.test(nume) || nume.match(/[\<\>!@.#\$%^&\*,]+/i)){
        document.getElementById('error_nume').innerHTML= 'Introduceţi un nume valid!';
        valid_nume = 0;
    }
    else if (nume_prenume.length < '2'){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume =0;
    }
    else if (nume_prenume[1] == '' || nume_prenume[1] == 'undefined' || nume_prenume[1].length < '2' || nume_prenume[0] == ''){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume= 0;
    }
    else if (nume_prenume[2] == 'undefined' || nume_prenume[2]==''){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume= 0;
    }
    else {
        document.getElementById('error_nume').innerHTML= '';
        valid_nume = 1;
    }

    var emailID=document.getElementById('email').value;

    if ((emailID == null)||(emailID == "")){
        document.getElementById('error_email').innerHTML= "Vă rugăm introduceţi un email";
        valid_email = 0;
    }
    else if (echeck(emailID) == false){
        emailID = "";
        document.getElementById('error_email').innerHTML= "Email invalid";
        valid_email = 0;
    }
    else {
        document.getElementById('error_email').innerHTML = '';
        valid_email = 1;
    }

    var telephone = document.getElementById('telephone').value;

    if (telephone == '' || telephone == null){
        document.getElementById('error_telephone').innerHTML= 'Vă rugăm introduceţi un număr de telefon';
        valid_telefon=0;
    }

    else if(isNaN(telephone) || !regexNum.test(telephone) || regexLetter.test(telephone) || telephone.substr(0, 1) != '0' || telephone.length != '10'){
        document.getElementById('error_telephone').innerHTML= 'Introduceţi un număr de telefon valid!';
        valid_telefon=0;
    }
    else {
        document.getElementById('error_telephone').innerHTML= '';
        valid_telefon=1;
    }

    var old = dateOfBirth();
    if (old == 'nu'){
        document.getElementById('error_date').innerHTML= 'Pentru a putea aplica trebuie sa aveţi minimum 18 ani!';
        valid_data = 0;
    }
    else if (dateOfBirth() == false){
        document.getElementById('error_date').innerHTML= 'Introduceţi o dată de naştere validă!';
        valid_data = 0;
    }
    else{
        document.getElementById('error_date').innerHTML= '';
        valid_data=1;
    }

    var flag = document.getElementById('flag_field').value;

    if (flag == 'job'){
    var job = document.getElementById('job').value;
    if (job == '0' || job == null){
        document.getElementById('error_job').innerHTML= 'Selectaţi jobul pentru care aplicaţi!';
        valid_job = 0;
    }
    else{
        document.getElementById('error_job').innerHTML= '';
        valid_job = 1;
    }
    
    if (job == 'custom'){
                var customJob = document.getElementById('customJobField').value;
                var valid_customJobField;
                if (customJob == '' || customJob== null){
                    document.getElementById('error_customJobField').innerHTML= 'Completaţi jobul pentru care aplicaţi!';
                    valid_customJobField = 0;
                }
                else {
                    document.getElementById('error_customJobField').innerHTML= '';
                    valid_customJobField = 1;
                }
    }
    else {
       valid_customJobField = 1;
    }
    }
    else if (flag == 'practica'){
            var tema = document.getElementById('tema').value;

            if (tema == '0' || tema == null){
                document.getElementById('error_tema').innerHTML= 'Selectaţi tema de practică pentru care aplicaţi!';
                valid_tema = 0;
            }
            else{
                document.getElementById('error_tema').innerHTML= '';
                valid_tema = 1;
                valid_customJobField = 1;
            }
    }
    else if (flag == 'training'){
            var training = document.getElementById('training').value;

            if (training == '0' || training == null){
                document.getElementById('error_training').innerHTML= 'Selectaţi trainingul pentru care aplicaţi!';
                valid_training = 0;
            }
            else{
                document.getElementById('error_training').innerHTML= '';
                valid_training = 1;
            }
            if (training == 'custom'){
                        var customTraining = document.getElementById('customTrainingField').value;
                        var valid_customTrainingField;
                        if (customTraining == '' || customTraining== null){
                            document.getElementById('error_customTrainingField').innerHTML= 'Completaţi training-ul pentru care doriţi să aplicaţi!';
                            valid_customTrainingField = 0;
                        }
                        else {
                            document.getElementById('error_customTrainingField').innerHTML= '';
                            valid_customTrainingField = 1;
                        }
            }
                        else {
                        valid_customTrainingField = 1;
            }
    }
    else {
            var job = document.getElementById('job').value;
    if (job == '0' || job == null){
        document.getElementById('error_job').innerHTML= 'Selectaţi jobul pentru care aplicaţi!';
        valid_job = 0;
    }
    else{
        document.getElementById('error_job').innerHTML= '';
        valid_job = 1;
    }

    if (job == 'customJob'){
                var customJob = document.getElementById('customJobField').value;
                var valid_customJobField;
                if (customJob == '' || customJob== null){
                    document.getElementById('error_customJobField').innerHTML= 'Completaţi jobul pentru care aplicaţi!';
                    valid_customJobField = 0;
                }
                else {
                    document.getElementById('error_customJobField').innerHTML= '';
                    valid_customJobField = 1;
                }
    }
    else {
       valid_customJobField = 1;
    }
    }

    var experience = document.getElementById('experience').value;

    if (experience == '0' || experience == null){
        document.getElementById('error_experience').innerHTML= 'Selectaţi nivelul de experienţă!';
        valid_experience = 0;
    }
    else{
        document.getElementById('error_experience').innerHTML= '';
        valid_experience = 1;
    }

    var comp = document.getElementById('comp').value;

    if (comp == '' || comp == null){
        document.getElementById('error_comp').innerHTML = 'Vă rugăm completaţi competenţele tehnice!';
        valid_comp = 0;
    }
    else{
        document.getElementById('error_comp').innerHTML= '';
        valid_comp = 1;
    }
    
    var file=document.getElementById('uploaded').value;
    var dot = file.lastIndexOf(".");
    var l = file.length;
    var extension = file.substr(dot,l);
    var c;
    
    if (extension == '.doc' || extension == '.pdf' || extension == '.docx'){
        c = true;
    }

    else {
        c = false
    }
    
    if (file == ''){
        document.getElementById('error_file').innerHTML = 'Vă rugăm să ataşaţi fişierul cu CV-ul dvs.';
        valid_file = 0;
    }


    else if(c == false){
        document.getElementById('error_file').innerHTML = 'Fişierul ataşat trebuie să fie în format .doc, .docx sau .pdf';
        valid_file = 0;
    }
    else {
        document.getElementById('error_file').innerHTML = '';
        valid_file = 1;
    }
    var captcha = document.getElementById('security_code').value;
    
    if (captcha == ''){
        document.getElementById('error_captcha').innerHTML = 'Introduceţi codul de verificare';
        valid_captcha  = 0;
    }
    else{
        document.getElementById('error_captcha').innerHTML = '';
        valid_captcha = 1;
    }


  
 if (valid_nume == 1 && valid_email== 1 && valid_telefon== 1 && valid_data == 1 && (valid_job == 1 || valid_tema == 1 || valid_training == 1) && (valid_customJobField == 1 || valid_customTrainingField == 1) &&
     valid_experience == 1 && valid_comp == 1 && valid_file == 1 && valid_captcha == 1){
        return true;
    }
  else {

        return false;
    }
}

function validateContactForm(){
    var regexNum = /\d/;
    var regexLetter = /[a-zA-z]/;
    var nume = document.getElementById('nume').value;
    var nume_prenume= trim(nume).split(' ');

    var emailID = document.getElementById('mail').value;
    var telefon = document.getElementById('telefon').value;
    var subiect = document.getElementById('subiect').value;
    var mesaj = document.getElementById('mesaj').value;
    var captcha = document.getElementById('security_code').value;

   
    var valid_nume;
    var valid_email;
    var valid_telefon;
    var valid_subiect;
    var valid_mesaj;
    var valid_captcha;


    if (nume == ''){
        document.getElementById('error_nume').innerHTML= 'Vă rugăm introduceţi un nume';
        valid_nume = 0;
    }

    else if(regexNum.test(nume) || !regexLetter.test(nume) || nume.match(/[\<\>!@.#\$%^&\*,]+/i)){
        document.getElementById('error_nume').innerHTML= 'Introduceţi un nume valid!';
        valid_nume = 0;
    }
    else if (nume_prenume.length < '2'){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume =0;
    }
    else if (nume_prenume[1] == '' || nume_prenume[1] == 'undefined' || nume_prenume[1].length < '2' || nume_prenume[0] == ''){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume= 0;
    }
    else if (nume_prenume[2] == 'undefined' || nume_prenume[2]==''){
        document.getElementById('error_nume').innerHTML = 'Vă rugăm introduceţi numele in format: "&#60nume&#62 &#60prenume&#62"';
        valid_nume= 0;
    }
    else {
        document.getElementById('error_nume').innerHTML= '';
        valid_nume = 1;
    }

    if ((emailID == null)||(emailID == "")){
        document.getElementById('error_mail').innerHTML= "Vă rugăm introduceţi un email";
        valid_email = 0;
    }
    else if (echeck(emailID) == false){
        emailID = "";
        document.getElementById('error_mail').innerHTML= "Email invalid";
        valid_email = 0;
    }
    else {
        document.getElementById('error_mail').innerHTML = '';
        valid_email = 1;
    }

    
    if (telefon == '' || telefon == null){
        document.getElementById('error_telefon').innerHTML= 'Vă rugăm introduceţi un număr de telefon';
        valid_telefon=0;
    }

    else if(isNaN(telefon) || !regexNum.test(telefon) || regexLetter.test(telefon) || telefon.substr(0, 1) != '0' || telefon.length != '10'){
        document.getElementById('error_telefon').innerHTML= 'Introduceţi un număr de telefon valid!';
        valid_telefon=0;
    }
    else {
        document.getElementById('error_telefon').innerHTML= '';
        valid_telefon=1;
    }

    if(subiect == '' || subiect == null){
        document.getElementById('error_subiect').innerHTML = 'Câmpul subiect nu poate fi gol';
        valid_subiect=0;
    }
    else {
        document.getElementById('error_subiect').innerHTML = '';
         valid_subiect=1;
    }

    
    if(mesaj == '' || mesaj == null){
        document.getElementById('error_mesaj').innerHTML = 'Introduceţi mesajul dumneavoastră';
        valid_mesaj=0;
    }
    else {
        document.getElementById('error_mesaj').innerHTML = '';
         valid_mesaj=1;
    }


    
    if(captcha == '' || captcha == null){
        document.getElementById('error_captcha').innerHTML = 'Introduceţi un cod valid';
        valid_captcha=0;
    }
    else {
        document.getElementById('error_captcha').innerHTML = '';
         valid_captcha=1;
    }


    if (valid_nume == 1 && valid_email == 1 && valid_telefon == 1 &&  valid_subiect == 1 && valid_mesaj == 1 && valid_captcha == 1){
        return true;
    }
    else {
        return false;
    }
}
