﻿//Liste des fonctions Javascript
var FieldName;
function $(id){
    //fonction de raccourci
    return document.getElementById(id); 
}

function showBulle(id,texte){    
    $(id).style.display="block"    
   $(id).innerHTML='<p class="titniv003">Intitulé du devoir</p>\n<p><img src="Images/Devoirs.png" class="ico" align="absmiddle"/>' + texte +'</p>' ;
}


function hideBulle(id){
    $(id).style.display="none"    
}

function IsExists(obj) {
    // test d'existence de l'objet
    return (typeof(obj) != "undefined") && (obj != null) && (obj != 'object');
}

function DisplayDiv(id) {
    // Affichage ou masque une zone    
	$(id).style.display=="block"?"none":"block";  
}
function DisplayDivBlock(id){
    // Affichage  une zone
	$(id).style.display="block";
}
function DisplayDivImg(id, imgId, imgBloc, imgNone) {
    // Affichage ou masque une zone
    $(id).style.display = $(id).style.display == "block" ? "none" : "block";    
	if ($(id).style.display=="block"){
	   $(imgId).src=imgNone
	}
	else {
	    $(imgId).src = imgBloc
	}    
}
function CompareWord(id,id1){
    var Word=$(id).value;
    var Word1=$(id1).value;
    
    if (Word==Word1){
        return true     
    }    
    else{        
        return false
    }
}

 function GetPosition(id, type){
    // Calcul la position de l'objet
     var iVal = 0;
     var oObj = $(id);
     var sType = 'oObj.offset' + type;
     while (oObj && oObj.tagName != 'BODY') {
      iVal += eval(sType);
      oObj = oObj.offsetParent;      
     }
    return iVal;
}

function DrillDownUp(id){
    // Affichage ou masque une zone
	$(id).style.display=$(id).style.display=="block"?"none":"block";  	
}

function GetNum(e){
    // Function Saisie numerique
    var Touche=e.charCode? e.charCode : e.keyCode //suivant le type de navigateur
    
    if (Touche!=8 &&  Touche!=46 && Touche!=118 && Touche!=99 && Touche!=37){ //touche espace
    if (Touche<48||Touche>57) //Code 
    return false //désactive le key press
    }
}

function GetNumDec(e){
    // Function Saisie Decimal
    var Touche=e.charCode? e.charCode : e.keyCode //suivant le type de navigateur    
    if (Touche!=8 && Touche!=44 && Touche!=46 && Touche!=118 && Touche!=99 && Touche!=37){ //touche espace
        if (Touche<48||Touche>57) //Code 
            return false //désactive le key press
    }
}

function GetEnter(e,sub){
    // Declechement sur touche enter
    var touche=e.keyCode? e.keyCode : e.charCode
    if (touche==13){
        if (sub !=''){
            eval(sub);
        }
        else{
            return true ;
        }        
    } 
    else{
        return false; 
    }
}

function Focus(id) {
    // Focus sur le champ
    id=id.replace("$","_").replace("$","_");    
    if (IsExists($(id))){ 
        $(id).focus();
    }   
}

function CheckObjetsFiche(Form) {           
    ////////////////////////////////////////////////////
    // Tous les zones ont un champs de type hidden: 
    // Ce champ à une propriete title 
    // Elle contient :  Format(fieldType) + (Mandatory) + Longueur de champs
    // Parametres        
    // Form : Nom de la form
    ////////////////////////////////////////////////////
    var nom; 
    var nbObjets;
    var MessageFormat;        
    var i;
    var FormatField; //FormatField[0] : Nom du champs ;FormatField[1] : Format(fieldType); FormatField[2](Mandatory); FormatField[3]: Longueur de champs
    var expr;
              
    // Nombre d'objets
    nbObjets=document.forms[Form].elements.length;      
    for (i=0;i<nbObjets;i=i+1) {
        // Recupere le nom   
        nom = document.forms[Form].elements[i].name;     
        // Mode Compare
         if (nom.substr(0,5)=='COMP_'){  
           //Obligatoire
           if ($(nom).title=='O'){
              // Champ 1 et Champ 2
              
              FormatField=$(nom).value.split("|");
              if ($(FormatField[0]).value !=$(FormatField[1]).value){
                        $('m_C_MesSta').innerHTML=FormatField[2]                                                                
                        DisplayDivBlock('m_C_MesSta');
                        $(FieldName).focus();
                        return false;
              }
            }     
          } 
        // value : Message en cas d'erreur
        if (nom.substr(0,6)=='FIELDS'){        
            // Construction du field à tester 
            if (CheckExistObjet(nom.substr(7))){                           
                    // propriete titre : format
                    FormatField=$(nom).title.split("|");                                                                                    
                    if (FormatField[1]=='N'){// Format numerique
                            expr="^[0-9]";                                
                            if (FormatField.length>0) {expr ="^[0-9]{1," + FormatField[3]+ "}"}
                            MessageFormat = '- Format numérique '                                 
                        }                     
                    else if  (FormatField[1]=='d') {   // Format decimal
                            $(FieldName).value= $(FieldName).value.toString().replace(",",".")
                            expr="^[0-9]"; 
                            if (FormatField.length>0) {expr ="^[0-9]{1," + FormatField[3]+ "}"}
                            MessageFormat = '- Format décimal exemple : 12,25 '                        
                        }                    
                    else if  (FormatField[1]=='D') {   // Format date
                            expr="^[0-9]{2}[/]{1}[0-9]{2}[/]{1}[0-9]{2}$";
                            MessageFormat = '- Format date exemple : 12/12/01' 
                        }
                    else if  (FormatField[1]=='T') {
                            // On autorise tous les  caractères sauf <>                            
                            expr = "^[^<>]{1," + FormatField[3]+ "}$";                            
                            //expr = "^[a-zA-Z0-9 âÂûÛêÊÀÉÈÙàéùè'\\s\\.\\,\\?\\!\\:\\\\-\\\\\\r\\\\\\n\\@\\*\\[\\]\\_\\'\)\(]{1," + FormatField[2]+ "}$"; 
                            MessageFormat = '- Format texte sans balises HTML(<>).\n- Longueur du texte : ' + FormatField[3]                        
                        }
                    else if  (FormatField[1]=='TB' || FormatField[1]=='M' || FormatField[1]=='C' || FormatField[1]=='TE') {
                            // On autorise tous caractères
                            //expr = ".{1," + FormatField[1]+ "}$";                                
                            MessageFormat = '- Format texte.\n- Longueur du texte : ' + FormatField[3]     
                            expr = ".{1}";                                
                        }
                    else if  (FormatField[1]=='C') {
                            // Check du champ code et sa longueur du file(Key)
                            // Il doit être en majuscule
                            expr ="^[a-zA-Z0-9]{1," + FormatField[3]+ "}$";
                            $(FieldName).value= UpperToString($(FieldName).value);
                            MessageFormat = '- Format texte sans caractères spéciaux.\n- Longueur du texte : ' + FormatField[3]

                        } 
                       
                    // Zone obligatoire // Mandatory
                    if (FormatField[2]=='O'){
                        if ($(FieldName).value==''){                                                               
                                $('m_C_MesSta').innerHTML='Veuillez renseigner la zone ' + $(nom).value                                                                
                                DisplayDivBlock('m_C_MesSta');
                                $(FieldName).focus();
                                return false;
                            }
                    }
                    
                    // Verifier le format 
                    if ($(FieldName).value !=''){                                           
                        // check l'expression
                        exprReg = new RegExp(expr,'g');                                               
                        // Message format incorrect                    
                        if(!exprReg.test($(FieldName).value))
                            {//Message, focus, retourne false;
                                $('m_C_MesSta').innerHTML='Le format de la zone '  + $(nom).value +' est incorrect.'                                 
                                DisplayDivBlock('m_C_MesSta');
                                $(FieldName).focus();
                                return false;		                
                            }
    	                
                        // Check supplementaire pour les numeriques et decimal
                        if (FormatField[1]=='N' ||  FormatField[1]=='d'){
                                if (isNaN($(FieldName).value)){
                                       $('m_C_MesSta').innerHTML='Le format de la zone ' + $(nom).value +' est incorrect.'                                        
                                        DisplayDivBlock('m_C_MesSta');
                                        $(FieldName).focus();
                                        return false 
                                    }  
                            }
        	                	        	                
                        //  Verifier la validite de la date
                        if  (FormatField[1]=='D') {        	                
                            if (!CheckDate($(FieldName).value)){	                        
                                    $('m_C_MesSta').innerHTML='La date de la zone  ' + $(nom).value +' est incorrecte.'                                     
                                    DisplayDivBlock('m_C_MesSta');
                                    $(FieldName).focus();
                                    return false;
                                }
                            }  
                        // Check supplementaire type email
                        if (FormatField[1]=='TE'){
                            if (!CheckEmail($(FieldName).value)) {
                                $('m_C_MesSta').innerHTML='Le format de la zone ' + $(nom).value + ' est incorrect'
                                DisplayDivBlock('m_C_MesSta');
                                $(FieldName).focus();
                                return false;
                                }
                        }    
                    }       
                }      
            }                    
        }      
        
        // Test OK
        return true;
    } 	
function ShowiFrame(iFrame,src){
        // Affiche iframe 
        //iFrame : Nom de l'iframe
        //src : nom de la page aspx             
        frames[iFrame].location=src;
    }
function RedirectPage(src){
        // Retourne à la page sur le même target
        //src : nom de la page aspx             
        window.location.href=src;  
    }
function CheckCode(iFrame,src) {
        // Vérifie le code en passant par une iFrame    
        //src : nom de la page aspx
        //iFrame : Nom de l'iframe             
        parent.frames[iFrame].location=src;  
    }
function SetPage(form,src, PostBack){
         // Post la page au serveur avec demande d'enregistrement ou non     
         // form : nom de la form
         // src : nom de la page aspx        
         var fs = document.forms[form];
         fs.action=src;
         //fs.__VIEWSTATE.disabled=true;                
         fs.submit();    
    }
function HideCalendar(id){
    // Cache le ou les Calendriers
    if (IsExists($(id))){
        $(id).style.display="none";  
    }    
}
function CheckMemo(id){
    // check l'expression
    if(trim($(id).value)!=''){
        return true; 
    }
    return false;
}

function ClearId(id){
    //   
   if (window.RegExp){
        var IdInscrit=$(id).value;
        var regClearId= new RegExp("[^0-9]","g")          
        $(id).value=IdInscrit.replace(regClearId,'');                         
   }
}



function ShowCalendar(parentId,iFrame,idDate){
        // Affiche le calendrier //Jour,Mois,Annee
        // parentId : Nom du conteneur
        // iFrame : Nom de l'iframe
        // idDate : Nom du champs date
	    // Si la frame est caché, on l'affiche	     
	    $(parentId).style.display=$(parentId).style.display=="block"?"none":"block";  
	    // dimension de la page 
	    if ($(parentId).style.display=='block'){			    
			    $(iFrame).style.position='absolute';
			    $(iFrame).style.height="200px";
			    $(iFrame).style.width="220px";			    
			    $(iFrame).src='FrmCalVis1.aspx?NameDate='+ idDate +'&NameDiv='+ parentId;			    			    			    
		    }        
	}
function ConvertDate(intDate){
    // Convert la date int en format date
    if (intDate.length>7){        
       var an   =intDate.substring(0,4)    
       var mois =intDate.substring(4,6)	
       var jour =  intDate.substring(6,8)	 
      return  jour + '/' + mois +'/' + an 
     }
    return ''
}	

// Check la validitité de la date saisie
function CheckDate(StrDate)
    {
        // Date vide 
        if (StrDate == "" || StrDate.length!= 8) 
            {
                StrDate = "";
                return false;
            }
        else      
  		    {
		        var jour =  parseInt(StrDate.substring(0,2),10)
		        var bar1 =  StrDate.substring(2,3)
		        var mois =  parseInt(StrDate.substring(3,5),10)
		        var bar2 =  StrDate.substring(5,6)
		        var an   =  parseInt(StrDate.substring(6),10)
	            
	            an=2000+an;
	            
	            if ((bar1 != "/") || (bar2 != "/")) return false;
		        		        
	            if ((an >= 0) && (an < 1900)) return false;
	            
	            if ((mois > 12) || (mois == 0)) return false;
		        
			    if ((jour > 31) || (jour == 0)) return false;
				        
			    if (((mois==4) || (mois==6) || (mois==9) || (mois==11)) && (jour > 30))  return false;
			    
			    // Mois Fevrier
			    if (mois == 2) 
				    {
					    bi = (an % 4)
						if (bi == 0)
						    {jmax = 29;}
						else
						    {jmax = 28;}
						if (jour > jmax) 
						    {
						        return false;
						    }
				    }
		    }	                       
        return true;                      
    } 
    
    // Check Email
function CheckEmail(StrEmail){ 
  if (window.RegExp) 
  {
    StrEmail=trim(StrEmail)
    
   var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
   var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";   
   var reg1 = new RegExp(reg1str);
   var reg2 = new RegExp(reg2str);   
    if (!reg1.test(StrEmail) && reg2.test(StrEmail))     
    {
      return true;
    }
    return false;
  } 
  else 
  {
    if(StrEmail.indexOf("@") >= 0)
    {
      return true;
    }
    return false;
  }
}   	 	
function trim (str) { 
    return str.replace(/^\s+/g,'').replace(/\s+$/g,'') 
} 
  // Paramètres Email //        
function UpperToString(strValeur) {
    var i=0;
    aAccents = new Array(String.fromCharCode(224), String.fromCharCode(233), String.fromCharCode(232), String.fromCharCode(231), String.fromCharCode(228), String.fromCharCode(235), String.fromCharCode(239), String.fromCharCode(246), String.fromCharCode(252), String.fromCharCode(249), String.fromCharCode(226), String.fromCharCode(234), String.fromCharCode(238), String.fromCharCode(244), String.fromCharCode(251));
    aSansAccents = new Array("a", "e", "e", "c", "a", "e", "i", "o", "u", "u","a","e","i","o","u");
    for (i=0;i<aAccents.length;i++) {
        var reg=new RegExp(aAccents[i], "g");
        strValeur = strValeur.replace(reg,aSansAccents[i]);
        } 
    strValeur = strValeur.toUpperCase();
    return strValeur;
} 	
function GetParEma(email,objet,text){           
    // Affiche la boite mail 
    var reg1 = new RegExp("!", "g");  
    text=text.replace(reg1,'%0A') 
    document.location.href   ='mailto:'+ email +'?subject='+UpperToString(objet) +'&body='+UpperToString(text);
   }  	
   

function CheckExistObjet(Field){
    ///////////////////////////////////
    // Verifier l'existence des objets	
    ///////////////////////////////////   
    FieldName=Field    
    var rNull=$(FieldName);     
    if (rNull == null) {
            // Evaluation du champs
            FieldName='m_C_' + Field                                            
            rNull=$(FieldName);            
            if (rNull ==null)return false;            
        }    
        return true ;    
    }
    //Telechargement
    $j(document).ready(function() {    
        $j("#m_C_LinkDigital").click(function() {
            $j("#m_C_TelDigEdi").attr('value', 1)
            $j('form').submit();
        })        

        $j('.TelDigEdi').click(function() {
            alert("Avant de télécharger le pdf, merci d\'installer Digital Edition.\nLien de téléchargement disponible en haut de cette page.")
        });
    })    
    
    

