NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
W3C = (document.getElementById) ? 1 : 0;

// recupere les informations sur le navigateur
var navig_agt=navigator.userAgent.toLowerCase();

// detecte le navigateur installe
var navig_fox=(navig_agt.indexOf("firefox")!=-1);

if (document.getElementById){
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function SwitchMenu(obj){
	if(document.getElementById){
	        var el = document.getElementById(obj);
	        var ar = document.getElementById("masterdiv").getElementsByTagName("span");
                if (el) {
		if(el.style.display != "block"){
			for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu")
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
		}
	}
}

function montre(object) {
  if (document.layers && document.layers[object]) { 
    document.layers[object].visibility = 'visible';
  } else if (document.all) {
    document.all[object].style.visibility = 'visible';
    document.all[object].style.zIndex = 100;
  } else if (document.getElementById) {
    document.getElementById(object).style.visibility = 'visible';
    document.getElementById(object).style.zIndex = 100; 
  } 
}

function cache(object) {
  if (document.layers && document.layers[object]) { 
    document.layers[object].visibility = 'hidden';
  } else if (document.all) { 
    document.all[object].style.visibility = 'hidden';
  } else if (document.getElementById) {
    document.getElementById(object).style.visibility = 'hidden'; 
  } 
}
  

function show ( evt, name ) {
  if (IE4) {
    evt = window.event;  //is it necessary?
  }

  var currentX,		//mouse position on X axis
      currentY,		//mouse position on X axis
      x,		//layer target position on X axis
      y,		//layer target position on Y axis
      docWidth,		//width of current frame
      docHeight,	//height of current frame
      layerWidth,	//width of popup layer
      layerHeight,	//height of popup layer
      ele;		//points to the popup element

  // First let's initialize our variables
  if ( W3C ) {
    ele = document.getElementById(name);
    currentX = evt.clientX,
    currentY = evt.clientY;
    docWidth = document.width;
    docHeight = document.height;
    layerWidth = ele.style.width;
    layerHeight = ele.style.height;

  } else if ( NS4 ) {
    ele = document.layers[name];
    currentX = evt.pageX,
    currentY = evt.pageY;
    docWidth = document.width;
    docHeight = document.height;
    layerWidth = ele.clip.width;
    layerHeight = ele.clip.height;

  } else {	// meant for IE4
    ele = document.all[name];
    currentX = evt.clientX,
    currentY = evt.clientY;
    docHeight = document.body.offsetHeight;
    docWidth = document.body.offsetWidth;
    //var layerWidth = document.all[name].offsetWidth;
    // for some reason, this doesn't seem to work... so set it to 200
    layerWidth = 200;
    layerHeight = ele.offsetHeight;
  }

  // Then we calculate the popup element's new position
  if ( ( currentX + layerWidth ) > docWidth ) {
    x = ( currentX - layerWidth );
  }
  else {
    x = currentX;
  }
  if ( ( currentY + layerHeight ) >= docHeight ) {
     y = ( currentY - layerHeight - 20 );
  }
  else {
    y = currentY + 2;
  }
  if ( IE4 ) {
    x += document.body.scrollLeft;
    y += document.body.scrollTop;
  } else if ( NS4)  {
  } else {
    x += window.pageXOffset;
    y += window.pageYOffset;
  }
// (for debugging purpose) alert("docWidth " + docWidth + ", docHeight " + docHeight + "\nlayerWidth " + layerWidth + ", layerHeight " + layerHeight + "\ncurrentX " + currentX + ", currentY " + currentY + "\nx " + x + ", y " + y);

  // Finally, we set its position and visibility
  if ( NS4 ) {
    //ele.xpos = parseInt ( x );
    ele.left = parseInt ( x );
    //ele.ypos = parseInt ( y );
    ele.top = parseInt ( y );
    ele.visibility = "show";
  } else {  // IE4 & W3C & Mozilla
    ele.style.left = parseInt ( x ) + "px";
    ele.style.top = parseInt ( y ) + "px";
    ele.style.visibility = "visible";
  }
}

function hide ( name ) {
  if (W3C) {
    document.getElementById(name).style.visibility = "hidden";
  } else if (NS4) {
    document.layers[name].visibility = "hide";
  } else {
    document.all[name].style.visibility = "hidden";
  }
}

function unhide ( name ) {
  if (W3C) {
    document.getElementById(name).style.visibility = "visible";
  } else if (NS4) {
    document.layers[name].visibility = "show";
  } else {
    document.all[name].style.visibility = "visible";
  }
}

var textealert = "";

function MM_validateFormuser() {  //validation formabo.jsp
  textealert = ""
  document.MM_returnValue = true;
  testerpassword(document.inscription.mot_de_passe1);
  testerpassword(document.inscription.mot_de_passe);
  testEqualsPass();
  testerlogin(document.inscription.login);
  tmp =document.inscription.fax.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testerfax(document.inscription.fax);
  }
  tmp =document.inscription.telephone.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testertelephone(document.inscription.telephone);
  }
  isEmail(document.inscription.email);
  isZIPCode(document.inscription.cp);
  formValidator_isNotEmpty(document.inscription.ville);
  formValidator_isNotEmpty(document.inscription.adresse);
  formValidator_isNotEmpty(document.inscription.prenom);
  formValidator_isNotEmpty(document.inscription.nom);
  //formValidator_isChecked(document.inscription.civilite);
  verifCheck(textealert);
}

function MM_validateFormuser2() { // validation forminscabo.jsp et formreabo.jsp
  textealert = ""
  document.MM_returnValue = true;
  tmp =document.inscription.fax.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testerfax(document.inscription.fax);
  }
  tmp =document.inscription.telephone.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testertelephone(document.inscription.telephone);
  }
  isEmail(document.inscription.email);
  isZIPCode(document.inscription.cp);
  formValidator_isNotEmpty(document.inscription.ville);
  formValidator_isNotEmpty(document.inscription.adresse);
  formValidator_isNotEmpty(document.inscription.prenom);
  formValidator_isNotEmpty(document.inscription.nom);
  //formValidator_isChecked(document.inscription.civilite);
  verifCheck(textealert);
}

function MM_validateForm1user() { // validation de forminsc.jsp
  textealert = ""
  document.MM_returnValue = true;
  testerpassword(document.inscription.mot_de_passe1);
  testerpassword(document.inscription.mot_de_passe);
  testEqualsPass();
  testerlogin(document.inscription.login);
  //formValidator_isEmail(document.inscription.email);
  isEmail(document.inscription.email);
  tmp =document.inscription.fax.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testerfax(document.inscription.fax);
  }
  tmp =document.inscription.telephone.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     testertelephone(document.inscription.telephone);
  }
  tmp =document.inscription.cp.value.replace(/(^ *)|( *$)/g, '');
  if (tmp.length>0) {
     //testercodepostal(document.inscription.cp);
     isZIPCode(document.inscription.cp);
  }
  if (textealert.length > 0) alert(textealert);
}

// Check whether string s is empty.
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isWhitespace (s) {
   var i;
   var whitespace = " \t\n\r";
    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function isInteger (s)
{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}


function isZIPCode (texte) {
  s = texte.value;
  if (!isEmpty(s) && isInteger(s) && (s.length == 5)) {
     texte.className="inputgreen";
  } else {
     textealert = "Votre code postal doit avoir 5 chiffres !\n"+textealert;
     texte.className="inputred";
     document.MM_returnValue = false;
     if (!navig_fox) {
        texte.focus();
     }
  }
}
function testerlogin(texte){
  var iMinChars=6;
  var iMaxChars=10;
  s = texte.value;
  var i;
  var b = true;
  for (i = 0; i < s.length; i++) {   
      var c = s.charAt(i);
      if (! (isLetter(c) || isDigit(c) ) )
      b = false;
  }
  if (!isEmpty(s) && b && texte.value.length>=iMinChars && texte.value.length<=iMaxChars ) {
        texte.className="inputgreen";
  } else {
        texte.className="inputred";
        textealert = "Votre nom d\'utilisateur doit avoir entre 6 et 10 lettres.\n"+textealert;
        document.MM_returnValue = false;
        if (!navig_fox) {
           texte.focus();
        }
        return false;
  }
}
function testerpassword(texte){
  var iMinChars=6;
  var iMaxChars=10;
  s = texte.value;
  var i;
  var b = true;
  for (i = 0; i < s.length; i++) {   
      var c = s.charAt(i);
      if (! (isLetter(c) || isDigit(c) ) )
      b = false;
  }
  if (!isEmpty(s) && b && texte.value.length>=iMinChars && texte.value.length<=iMaxChars ) {
        texte.className="inputgreen";
  } else {
        texte.className="inputred";
        textealert = "Votre mot de passe doit avoir entre 6 et 10 lettres.\n"+textealert;
        document.MM_returnValue = false;
        if (!navig_fox) {
           texte.focus();
        }
        return false;
  }
}

function testEqualsPass() {
    if(document.inscription.mot_de_passe1.value == document.inscription.mot_de_passe.value) {
	;
    } else {
	document.MM_returnValue = false;
        document.inscription.mot_de_passe.className="inputred";
        document.inscription.mot_de_passe1.className="inputred";
        textealert = "Vos 2 mots de passe sont différents !\n"+textealert;
        if (!navig_fox) {
            document.inscription.mot_de_passe1.focus();
        }
    }
}

String.prototype.isNoTel = function() {
    return /^(0\d{9}|0\d{1}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
}

String.prototype.isNoPort = function() {
    return /^(06\d{8}|06[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
}
String.prototype.isNoPort07 = function() {
    return /^(07\d{8}|07[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(this);
}

function testerfax(texte) {
  texte.className="inputblue";
  if (texte.value.isNoTel() && texte.value.length>0){
    texte.className="inputgreen";
  } else {
    textealert = "Votre numero de FAX n\'est pas bon ! ( 0102030405 ou 01 02 03 04 05 )\n"+textealert;
    texte.className="inputred";
    document.MM_returnValue = false;
    if (!navig_fox) {
      texte.focus();
    }
    return false;  
  }
}

function testertel01(texte) {
  texte.className="inputblue";
  if (texte.value.isNoTel() && texte.value.length>0){
    texte.className="inputgreen";
  } else {
    textealert = "Votre numero de téléphone n\'est pas bon ! ( 0102030405 ou 01 02 03 04 05 )\n"+textealert;
    texte.className="inputred";
    document.MM_returnValue = false;
    if (!navig_fox) {
      texte.focus();
    }
    return false;  
  }
}

function testertelephone(texte) {
  texte.className="inputblue";
  if ((texte.value.isNoPort()||texte.value.isNoPort07()) && texte.value.length>0){
    texte.className="inputgreen";
  } else {
    textealert = "Votre numero de SMS n\'est pas bon ! ( 0602030405 ou 06 02 03 04 05 )\n"+textealert;
    texte.className="inputred";
    document.MM_returnValue = false;
    if (!navig_fox) {
      texte.focus();
    }
    return false;  
  }
}

function isEmail (texte){
  s = texte.value;
  var b = true;
  texte.className="inputblue";

    var i = 1;
    var sLength = s.length;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) b = false;
    else i += 2;
    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) b = false;

   if (!isEmpty(s) && b && !isWhitespace(s)) {
     texte.className="inputgreen";
  } else {
     textealert = "Votre adresse email n\'est pas correcte !\n"+textealert;
     texte.className="inputred";
     document.MM_returnValue = false;
     if (!navig_fox) {
        texte.focus();
     }
  }
}

function isEmail2 (texte){
  s = texte.value;
  var b = true;
  texte.className="inputblue";

    var i = 1;
    var sLength = s.length;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) b = false;
    else i += 2;
    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) b = false;

   if (!isEmpty(s) && b && !isWhitespace(s)) {
     texte.className="inputgreen";
  } else {
     alert("Votre adresse email n\'est pas correcte !");
     texte.className="inputred";
     if (!navig_fox) {
        texte.focus();
     }
  }
  return b;
}

function formValidator_isNotEmpty(oInput) {
	var bReturnValue;

	oInput.value=oInput.value.replace(/(^ *)|( *$)/g, '');

	if (oInput.value.length>0) { bReturnValue=true; }
	else { bReturnValue=false; }

	if (!bReturnValue){
            //alert ("Cette adresse mail n'est pas valide !");
            oInput.className="inputred";
            document.MM_returnValue = false;
            if (!navig_fox) {
               oInput.focus();
            }
        } else {
            oInput.className="inputgreen";
        }
}


function formValidator_isChecked(oInput) {
	var bReturnValue;

	var iCpt=0;
	bReturnValue=false;

	while (iCpt<oInput.length && !bReturnValue) {
		if (oInput[iCpt].checked) { bReturnValue=true; }
		iCpt++;
	}
        iCpt=0;
	if (!bReturnValue){
            while (iCpt<oInput.length) {
		oInput[iCpt].className="inputred";
                document.MM_returnValue = false;
                iCpt++;
	    }
        } else {
            while (iCpt<oInput.length) {
		oInput[iCpt].className="inputgreen";
                iCpt++;
	    }
        }
}

