//- Version 20030225

function isValidAlphaNum(Value) {
   return isValidChar(Value, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 '-,/");
}
//------------------------------------------------------------------------------------------
function isValidAlpha(Value) {
   return isValidChar(Value, "ABCDEFGHIJKLMNOPQRSTUVWXYZ '-");
}
//------------------------------------------------------------------------------------------
function isValidNum(Value) {
   if (Value == "") { return false };
   return isValidChar(Value, "0123456789");
}
//------------------------------------------------------------------------------------------
function isValidMontant(Value) {
   if (Value == "") { return false };
   return isValidChar(Value, "0123456789,");
}

//------------------------------------------------------------------------------------------
function isValidEmail(Value) {
   return (Value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,}$/) != -1);          
}
//------------------------------------------------------------------------------------------
function isValidChar(Value, Valid) {
   var Ok = true;
   for (var i=0; ((i < Value.length) && Ok); i++) { Ok = (Valid.indexOf(Value.substring(i, i+1)) >= 0); }
   return Ok;
}
//------------------------------------------------------------------------------------------
function isValidDate(Value) {
   var maxjour = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
   if ((Value.length!=10) || !isValidAlphaNum(Value)) return false;
  // vMois = Value.substring(4,2); if ((vMois<"01") || (vMois>"12")) return false;
   //vAnnee = Value.substring(7,4);
   //if ((vAnnee % 400 == 0) || ((vAnnee % 4 ==0) && (vAnnee % 100 !=0))) { maxjour[1] ="29"; }
   //vJour = Value.substring(0,2); if ((vJour<"01") || (vJour>maxjour[vMois-1])) return false;
   return true;
}
function ValidDateCrte(Value) {
   if ((Value.length!=7) || !isValidAlphaNum(Value)) return false;
   vMois = Value.substring(0,2); if ((vMois<"01") || (vMois>"12")) return false;
  
   return true;
}
function getDate(input, Name, Format) {
if (Format=="d") return input.elements["Mois"+Name].value + input.elements["Annee"+Name].value;
else return input.elements["Jour"+Name].value + input.elements["Mois"+Name].value + input.elements["Annee"+Name].value;
}
function ageDate(Value) {
   var Today = new Date();
   var Tmp = new String(Value);
   if (Today.getYear()<1900)
      { annee = 1900 + Today.getYear(); }
   else { annee = Today.getYear(); }
   return (annee -Tmp.substring(4,8))*12+(1+Today.getMonth()-Tmp.substring(2,4))-((Today.getDate()-Tmp.substring(0,2))<0?1:0);
}
//------------------------------------------------------------------------------------------
// *** controle si c'est un numéro de téléphone Fixe ***
  function isValidTel(chaine)
  {  if (chaine == "") { return false };
     return (chaine.search(/^[0][1-5][0-9]{8}$/) != -1 );
  }
// *** controle si c'est un numéro de téléphone Portable ***
  function isValidPort(chaine)
  {  if (chaine == "") { return true };
     return (chaine.search(/^[0][6][0-9]{8}$/) != -1 );
  }
//------------------------------------------------------------------------------------------
function sansdecimales(input, Name) {
   result = new String(input.elements[Name].value);
   posdec = result.indexOf(",");
   if (posdec >= 0) { result = result.substr(0, posdec); }
   else { posdec = result.indexOf("."); if (posdec >= 0) { result = result.substr(0, posdec); }}
   input.elements[Name].value = result;
   return result;
}
//---------------------------------------------------------------------------------------
function remplacecar(doc) {
var text = doc;
    text = replace(text,unescape('%C0'),'A');
    text = replace(text,unescape('%C1'),'A');
    text = replace(text,unescape('%C2'),'A');
    text = replace(text,unescape('%C3'),'A');
    text = replace(text,unescape('%C4'),'A');
    text = replace(text,unescape('%C5'),'A');
    text = replace(text,unescape('%C6'),'E');
    text = replace(text,unescape('%C7'),'C');
    text = replace(text,unescape('%C8'),'E');
    text = replace(text,unescape('%C9'),'E');
    text = replace(text,unescape('%CA'),'E');
    text = replace(text,unescape('%CB'),'E');
    text = replace(text,unescape('%CC'),'I');
    text = replace(text,unescape('%CD'),'I');
    text = replace(text,unescape('%CE'),'I');
    text = replace(text,unescape('%CF'),'I');
    text = replace(text,unescape('%D0'),'D');
    text = replace(text,unescape('%D1'),'N');
    text = replace(text,unescape('%D2'),'O');
    text = replace(text,unescape('%D3'),'O');
    text = replace(text,unescape('%D4'),'O');
    text = replace(text,unescape('%D5'),'O');
    text = replace(text,unescape('%D6'),'O');
    text = replace(text,unescape('%D7'),'O');
    text = replace(text,unescape('%D8'),'O');
    text = replace(text,unescape('%D9'),'U');
    text = replace(text,unescape('%DA'),'U');
    text = replace(text,unescape('%DB'),'U');
    text = replace(text,unescape('%DC'),'U');
    text = replace(text,unescape('%DD'),'Y');
    text = replace(text,unescape('%DE'),'P');
    text = replace(text,unescape('%DF'),'B');
    text = replace(text,unescape('%E0'),'a');
    text = replace(text,unescape('%E1'),'a');
    text = replace(text,unescape('%E2'),'a');
    text = replace(text,unescape('%E3'),'a');
    text = replace(text,unescape('%E4'),'a');
    text = replace(text,unescape('%E5'),'a');
    text = replace(text,unescape('%E6'),'e');
    text = replace(text,unescape('%E7'),'c');
    text = replace(text,unescape('%E8'),'e');
    text = replace(text,unescape('%E9'),'e');
    text = replace(text,unescape('%EA'),'e');
    text = replace(text,unescape('%EB'),'e');
    text = replace(text,unescape('%EC'),'i');
    text = replace(text,unescape('%ED'),'i');
    text = replace(text,unescape('%EE'),'i');
    text = replace(text,unescape('%EF'),'i');
    text = replace(text,unescape('%F0'),'&');
    text = replace(text,unescape('%F1'),'n');
    text = replace(text,unescape('%F2'),'o');
    text = replace(text,unescape('%F3'),'o');
    text = replace(text,unescape('%F4'),'o');
    text = replace(text,unescape('%F5'),'o');
    text = replace(text,unescape('%F6'),'o');
    text = replace(text,unescape('%F7'),'o');
    text = replace(text,unescape('%F8'),'o');
    text = replace(text,unescape('%F9'),'u');
    text = replace(text,unescape('%FA'),'u');
    text = replace(text,unescape('%FB'),'u');
    text = replace(text,unescape('%FC'),'u');
    text = replace(text,unescape('%FD'),'y');
    text = replace(text,unescape('%FE'),'p');
    text = replace(text,unescape('%FF'),'y');
    text = replace(text,unescape('%27'),' ');
    doc = text;
return doc;
}
//---------------------------------------------------------------------------------------
function replace(Value, Text, By) {
if (Value.length<=0) return Value;
var re = new RegExp(Text,"g");
return Value.replace(re, By);
}
//---------------------------------------------------------------------------------------
function suppblancs(strText) {
// suppression des blancs en tête de texte     
while (strText.substring(0,1) == ' ')
        strText = strText.substring(1, strText.length);  
// suppression des blancs en fin de texte    
while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);
return strText;
}

//---------------------------------------------------------------------------------------
//----- Methode UpperCase
//---------------------------------------------------------------------------------------
function upperCase(object) {
	var doc = remplacecar(object.value);
	doc = suppblancs(doc);
	object.value = doc.toUpperCase();
}


//------------------------------------
// ------ affiche aide formulaire
var ToolTip = {
    toolTipElem: null,
    
    show: function(e, elemId) {
        var target      = ( e.target ) ? e.target : e.srcElement;
        var toolTipElem = document.getElementById(elemId);
        
        if( e.type == 'mouseover' )
        {
            target.onmousemove = ToolTip.move;
        }
        
        ToolTip.setPosition(e, toolTipElem);
        toolTipElem.style.display = 'block';
        toolTipElem.displayed     = true;
        target.toolTipElem = toolTipElem;
    },
    
    hide: function(e) {
        var target = ( e.target ) ? e.target : e.srcElement;
        var toElem = ( e.relatedTarget ) ? e.relatedTarget : e.toElement;
        
        if( arguments.length > 1 )
        {
            var elemId = arguments[1];
            var toolTipElem = document.getElementById(elemId);
            var test = false;
            
            if( toolTipElem != null && toolTipElem != toElem )
            {// toElem != null rajouté à cause d'IE 5.01 (??)
                while( toElem != null && toElem.nodeType != 9 )
                {
                    if( toolTipElem == toElem )
                    {
                        test = true;
                        break;
                    }
                    
                    toElem = toElem.parentNode;
                }
                
                if( test == false )
                {
                    toolTipElem.style.display = 'none';
                }
            }
        }
        else if( typeof(target.toolTipElem) != 'undefined' && target.toolTipElem.displayed == true && toolTipElem != toElem )
        {
            target.toolTipElem.style.display = 'none';
            target.toolTipElem.displayed = false;
            target.onmousemove = null;
        }
    },
    
    move: function(e) {
        if( !e ) e = window.event;
        var target = ( e.target ) ? e.target : e.srcElement;
        
        if( target.toolTipElem.displayed == false )
        {
            return;
        }
        
        ToolTip.setPosition(e, target.toolTipElem);
    },
    
    setPosition: function(e, toolTipElem) {
        var posX = 0, posY = 0;
        
        if( typeof(e.pageX) != 'undefined' )
        {
            posX = e.pageX;
            posY = e.pageY;
        }
        else
        {
            if( typeof(document.documentElement) != 'undefined' 
                && (document.documentElement.scrollLeft != 0 || document.documentElement.scrollTop != 0 ) )
            {
                posX = (e.clientX + document.documentElement.scrollLeft);
                posY = (e.clientY + document.documentElement.scrollTop);
            }
            else
            {
                posX = (e.clientX + document.body.scrollLeft);
                posY = (e.clientY + document.body.scrollTop);
            }
        }
        
        var computedWidth = 30;
        var ecart = -15;
        if( e.type != 'click' )
        {
            if( typeof(window.getComputedStyle) != 'undefined' )
            {
                computedWidth = window.getComputedStyle(toolTipElem, null).getPropertyValue('width');
            }
            else
            {
                computedWidth = toolTipElem.offsetWidth;
            }
            
            computedWidth = (parseInt(computedWidth)/2) + 120;
            ecart = 20;
        }
        
        toolTipElem.style.left = (posX - computedWidth) + 'px';
        toolTipElem.style.top  = (posY + ecart) + 'px';
    }
};



