﻿// Fichier JScript
var selectedItems;

function initFormulaire(){
loadObjects();
initFileUploads();
initSelectSecteur();
initSelectDiplome();
}

function initSelectDiplome(){
    var oDip = document.getElementById('comboDipOptique');
    var oAutre = document.getElementById('txtAutreDip');
    var oEncours = document.getElementById('comboDipEnCours');
   

    var starAnnee = document.getElementById('RequireAnnee');
    var starAnneeAutre = document.getElementById('RequireAnneeAutre');   

    if (typeof(oDip) != 'undefined' && oDip != null ){   
        if(oDip.options[oDip.selectedIndex].value != ""){
             starAnnee.style.display = 'inline';
         } 
        oDip.onchange= function(){
         
            var dipSelected  = false;
            if(this.options[this.selectedIndex].value != ""){
                starAnnee.style.display = 'inline';
                dipSelected = true;
            } else {
                starAnnee.style.display = 'none';
            }
            var txtAnnee = document.getElementById('txtAnneeObtention');
            
            var oAutre = document.getElementById('txtAutreDip');
            var oEncours = document.getElementById('comboDipEnCours');
            var diplomeTyped = (oAutre.value  != '' ) || (oEncours.options[oEncours.selectedIndex].value != "") || dipSelected;

            this.onblur = function(){VerifyData(!diplomeTyped,this);}
            oAutre.onblur = function(){VerifyData(!diplomeTyped,this);}
            oEncours.onblur = function(){VerifyData(!diplomeTyped,this);}
        
            VerifyData(document.getElementById('RequireAnnee').style.display == 'inline',txtAnnee,null,'[0-9]{4}');
            VerifyData(!diplomeTyped,oAutre);
            VerifyData(!diplomeTyped,oEncours);
        }
    }
    
     if (typeof(oAutre) != 'undefined' && oAutre != null ){  
        if(oAutre.value != ""){
           starAnneeAutre.style.display = 'inline';
        }  
        oAutre.onchange= function(){
         
            var dipSelected  = false;
            if(this.value != ""){  
                starAnneeAutre.style.display = 'inline';
                dipSelected = true;
            } else {
                starAnneeAutre.style.display = 'none';
            }
            
            var txtAnnee = document.getElementById('txtAnneeObtentionAutre');
             
            var oDip = document.getElementById('comboDipOptique');
            var oEncours = document.getElementById('comboDipEnCours');
            var diplomeTyped =  (oDip.options[oDip.selectedIndex].value != "") || (oEncours.options[oEncours.selectedIndex].value != "") || dipSelected;

            oEncours.onblur = function(){VerifyData(!diplomeTyped,this);}
            oDip.onblur = function(){VerifyData(!diplomeTyped,this);}
            this.onblur = function(){VerifyData(!diplomeTyped,this);}
            
        
            VerifyData(!diplomeTyped,oEncours);
            VerifyData(!diplomeTyped,oDip);
            VerifyData(document.getElementById('RequireAnneeAutre').style.display == 'inline',txtAnnee,null,'[0-9]{4}');
           
       }
    }  
    
    if (typeof(oEncours) != 'undefined' && oEncours != null ){    
        oEncours.onchange= function(){
        
            var dipSelected  = false;
            if(this.options[this.selectedIndex].value != ""){
              
                dipSelected = true;
            }
            
          
            
            var oDip = document.getElementById('comboDipOptique');
            var oAutre = document.getElementById('txtAutreDip');
         
            var diplomeTyped = (oDip.options[oDip.selectedIndex].value != "") || (oAutre.value  != '' ) || dipSelected;

            oDip.onblur = function(){VerifyData(!diplomeTyped,this);}
            oAutre.onblur = function(){VerifyData(!diplomeTyped,this);}
            this.onblur = function(){VerifyData(!diplomeTyped,this);}
            
         
            VerifyData(!diplomeTyped,oDip);
            VerifyData(!diplomeTyped,oAutre);
        }
    }  

}
//Initialisation des input type file
function initFileUploads(){
	var x = document.getElementsByTagName('input');
	for (var i=0;i<x.length;i++) {
		if (x[i].type == 'file'){
		  
		    var relatedId;
		    switch(x[i].id){
		        case 'FileLM':
		             document.getElementById('imgLM').style.cursor = 'pointer';
		             x[i].onchange = function () {
			            document.getElementById('txtLM').value = this.value; 
			            VerifyData(false,document.getElementById('txtLM'),'txtLM',null,null,'checkFileExtension');
			            }
		            break;
		        case 'FileCV':
		             document.getElementById('imgCV').style.cursor = 'pointer';
		             x[i].onchange = function () {
			            document.getElementById('txtCV').value = this.value; 
			            VerifyData(false,document.getElementById('txtCV'),'txtCV',null,null,'checkFileExtension');
			            }
		            break;
		    }
		}
	}
}

function checkAll(name,checked){
    var allcheckBoxes = document.getElementsByName(name);
    for (i=0; i<allcheckBoxes.length;i++){
        allcheckBoxes[i].checked = checked;
    }
}
function VerifyAllchecked(name){
   
    var allChecked = true;
    var allcheckBoxes = document.getElementsByName(name);
    if (allcheckBoxes.length> 1){
         var chkAll = document.getElementById('chkAll');
         for (i=0; i<allcheckBoxes.length;i++){
            if(!allcheckBoxes[i].checked){
                allChecked = false;
                break;
            }
        }
       chkAll.checked = allChecked;
    }
   
}

function chargeListDepts(){
    document.getElementById('IMGdivDeparts').style.display = 'none';
    document.getElementById('divDeparts').className ='noerrorfield';
     var lstRegions = document.getElementById('lstRegion');
    var allIds ='';
    var isAllSelected  = false;
    for (i = 0; i < lstRegions.options.length;i++){
        if (lstRegions.options[i].selected){
            if (lstRegions.options[i].value == 0){
               isAllSelected = true; 
            }
 
            if (isAllSelected && lstRegions.options[i].value != 0){
                 lstRegions.options[i].selected = false;
            } else {
                if (allIds != ''){
                    allIds +=",";
                }
                allIds += lstRegions.options[i].value;
            }
        }
    }
     
    new Ajax.Updater(
		'divDeparts',
		'ajax/getInfosBySecteur.aspx', 
		{
			'asynchronous': false,
			'method' : 'post',
			'evalScripts':true,
			'parameters' : 'Type=Region&Ids=' + allIds
		}	
	);
}

function initSelectSecteur(){
   //Initialisation de la liste des pays
   var lstRegions = document.getElementById('lstRegion');
     if (typeof(lstRegions) != 'undefined' && lstRegions != null ){    
       //Initialisation de la liste des regions
        lstRegions.onchange = function(){
            chargeListDepts();
        } 
     }
}

function lTrim(chaine){
    var regExpBeginning = /^\s+/;
     return chaine.replace(regExpBeginning, "");
}
function checkFileExtension(value){
    var allElems= value.split('.');
   
    allpossibleExtensions = new Array('txt','TXT','doc','DOC','pdf','PDF','rtf','RTF');

    if(allElems.length >=2){
       
        var extension = allElems[allElems.length-1];
        for (var i = 0; i != allpossibleExtensions.length -1; i++){
            if (extension == allpossibleExtensions[i]){
                return "";
            }
        }
    } else {
        return 'le format du fichier n\'est pas correct\nLe nom soit l\'extension du fichier sont inccorects';
    }
    return 'L\'extenstion du fichier n\'est pas correcte';
}
function checkDate(value){
    var Message = "";
   
    var ObjetDate = new Date();
    if (value.length == 10){
        var jour = value.substr(0,2);
        var mois = value.substr(3,2);
        var annee = value.substr(6,4);
        
        var MaxJour;
        
        var temp = parseInt(mois);
        
        //Cas du mois de février
        if(temp == 2){
            if (annee % 4 == 0){
                MaxJour = 29;
            }else{
                MaxJour = 28;
            }
        } else {
            if(temp > 7){
                temp = (temp % 8) + 1;
            }
            
            if (temp % 2 == 0){
                MaxJour = 30;
            } else {
                MaxJour = 31;
            }
        }
       if (jour  <= 0 || jour > MaxJour){
            Message += "Le jour de la date doit être compris entre 1 et " +MaxJour +"<br>";
       }
       if (mois  <= 0 || mois > 12){
            Message += "Le mois de la date doit être compris entre 1 et 12<br>";
       }
      
       if (annee < 1753 || annee  > ObjetDate.getFullYear()){
            Message += "L'année de la date doit compris entre 1753 et l'année actuelle\n";
       }
    } else {
        Message +=  "Date incorrecte!"
    }
    return Message;
}


function VerifyData(RequireField,control,IdCible,RegMatch,name,functionName){
  
    if(name == null || typeof(name) == 'undefined'){
        name = '';
    }
    if(functionName == null || typeof(functionName) == 'undefined'){
        functionName = '';
    }
 
  
   if(typeof(IdCible) != 'undefined' && IdCible != ''){
        if (IdCible == null){
            cible = control;
        } else {
            cible = document.getElementById(IdCible);
        }  
   } else {
       cible = control;
   }
 
   var imgPuce = document.getElementById('IMG' + cible.id);
   var bulleInfo = document.getElementById('BULLE' + cible.id);
   if(bulleInfo == null || typeof(bulleInfo) == 'undefined'){
    alert('pas de bulle pour :' +cible.id +' et ' +control.id );
   }
   var bulleMessage = document.getElementById('MSG' + bulleInfo.id);
   var TypeControl = 'none';
   var reg = null;
   if(typeof(RegMatch) != 'undefined' && RegMatch != '' ){
        reg = new RegExp(RegMatch, 'g');
   }
   
   switch(control.nodeName){
        case 'INPUT':
            TypeControl = control.type.toUpperCase();
            break;
        case 'SELECT':
        case 'TEXTAREA':
            TypeControl = control.nodeName;
            break;
   }
   var Errors  = false;
   if (RequireField || RegMatch != null || name != '' || functionName !=''){
      
       switch (TypeControl){
            case 'TEXT':  
            case 'TEXTAREA':  
                if(RequireField){
                    if(lTrim(control.value) != ''){
                       if(reg != null){
                            if(!reg.test(control.value)){
                                Errors= true;
                                Message = "La valeur de ce champ est dans un format incorrect!";
                            }
                        }
                    } else {
                        Errors= true;
                        Message = "Le champ ne doit pas être vide!";
                    }
                } 
                if(typeof(functionName) != 'undefined' && functionName != ''){
                                        
                    Message = eval(functionName+"('" +cible.value.replace("'","\\'") + "');");
                    if (Message != ""){
                        Errors= true;
                    }
                }
                break;
           case 'SELECT':
                if (control.selectedIndex != -1 ){
                    if(control.options[control.selectedIndex].value != '' && RequireField){
                    } else {
                        Errors= true;
                        Message = "Vous devez selectionner<br />une valeur de la liste!";
                    }
                } else {
                     Errors= true;
                     Message = "Veuillez sélectionner une valeur";
                }
                break;
           case 'CHECKBOX':
                if (RequireField){
                    var AtLeastOnce = false;
                    if (name != null){
                        var AllElems = document.getElementsByName(name);
                        for (i=0; i<AllElems.length;i++){
                            if(AllElems[i].checked ){
                                AtLeastOnce = true;
                                break;
                            } 
                        }
                        if (!AtLeastOnce){
                             Errors= true;  
                             Message = "Vous devez cocher au moins une case!";
                        }
                    }              
                }
       }
   }
  
  if(typeof(bulleInfo) != 'undefined' ||bulleInfo != null){
      if (Errors){
            imgPuce.src = 'images/puceNOK.gif';  
            cible.className='errorfield';
            //bulleInfo.style.display ='inline';
            bulleMessage.innerHTML = Message;
       } else {
            imgPuce.src = 'images/puceOK.gif';
            cible.className='noerrorfield';
            bulleInfo.style.display ='none';
            bulleMessage.innerHTML = '';
       }
  }
   
   imgPuce.style.display= 'inline';
}

function HideBulle(IdCible){
    var bulleInfo = document.getElementById('BULLE' + IdCible);
   
    if(typeof(bulleInfo) != 'undefined' && bulleInfo != null){
        bulleInfo.style.display ='none';
    }
}

function HasErrors(control,IdCible,Orientation){
    var cible;
    
    if(typeof(IdCible) != 'undefined' && IdCible != ''){
        if (IdCible == null){
            cible = control;
        } else {
            cible = document.getElementById(IdCible);
        }  
   } else {
       cible = control;
   }
 
    if (typeof(Orientation) == 'undefined' || Orientation == null){
        if (Orientation == ''){
            Orientation = "Right";
        }
    }
    var bulleInfo = document.getElementById('BULLE' + cible.id);
    if(typeof(bulleInfo) != 'undefined' ||bulleInfo != null){
        if(cible.className == 'errorfield'){
            var temp = bulleInfo.style.display;
            bulleInfo.style.display ='inline';
            if(temp != 'inline'){
                PositionBulle(bulleInfo.id,cible.id,Orientation);
            }
           
           
        } else {
             bulleInfo.style.display ='none';
        }
     
     }
    
}   

