var racine = '/';
var image_ko = '<img src="' + racine + 'templates/images/zone_ko.png" alt="" />';
var image_ok = '<img src="' + racine + 'templates/images/zone_ok.png" alt="" />';

var x = 0;
var y = 0;
var posx = 0;
var posy = 0;

function mouseMove (evt)
{
  var scrolltop=0; var scrollleft=0;
  if (document.layers) {
    x=evt.x; y=evt.y;
  }
  if (document.all) {
    x=event.clientX; y=event.clientY;
  } else {
    if (document.getElementById) {
      x=evt.clientX; y=evt.clientY;
    }
  }

  if (document.documentElement && document.documentElement.scrollTop)
  {
    scrolltop = document.documentElement.scrollTop;
    scrollleft = document.documentElement.scrollLeft;
  }
  else if (document.body)
  {
    scrolltop = document.body.scrollTop;
    scrollleft = document.body.scrollLeft;
  }

  posx = scrollleft + x;
  posy = scrolltop + y;
}

function popup(location, width, height)
{
  var middle_x = (screen.width - width) / 2;
  var middle_y = (screen.height - height) / 2;

  window.open(location, 'Fermens', 'resizable=yes,scrollbars=yes,width=' + width + ',height=' + height + ',top=' + middle_y + ',left=' + middle_x);
}

function select_row(elem, prev_style)
{
  elem.className = (elem.className == 'row_selected') ? prev_style : 'row_selected';
}

function select_row_by_id(elem_id, prev_style)
{
  var elem = document.getElementById(elem_id);
  elem.className = (elem.className == 'row_selected') ? prev_style : 'row_selected';
}

function switch_zone( id_elem )
{
  var elem = document.getElementById( id_elem );
  elem.style.display = elem.style.display == 'none' ? 'block' : 'none';
}

function chk(elem)
{
  document.getElementById(elem).checked = !document.getElementById(elem).checked;
}

function init_focus()
{
  if(document.forms[0] != null && document.forms[0].elements[0] != null)
    document.forms[0].elements[0].focus();
}

function verifier_nombre( id_elem, longueur_nombre, requis )
{
  var zone_etat = document.getElementById( 'etat_' + id_elem );
  var elem = document.getElementById( id_elem );

  if( elem.value != '' )
  {
    if( elem.value.length != longueur_nombre || isNaN( elem.value ) )
    {
      zone_etat.innerHTML = image_ko;
      return 2;
    }
    else
    {
      zone_etat.innerHTML = image_ok;
      return 0;
    }
  }
  else
  {
    if( requis )
    {
      zone_etat.innerHTML = image_ko;
      return 1;
    }
    else
    {
      zone_etat.innerHTML = '';
      return 0;
    }
  }
}

function creer_requete( )
{
  if (window.XMLHttpRequest)
  {
   xmlhttpreq = new XMLHttpRequest();
  }
  else if (window.ActiveXObject)
  {
   try {
     xmlhttpreq = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e)
   {
     try {
       xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (e){}
   }
  }

  return xmlhttpreq;
}

function mois( mois, annee )
{
  var calendrier = document.getElementById( 'calendrier' );
  var req = creer_requete( );
  req.open( 'POST', racine + 'calendrier.php', true );

  req.onreadystatechange = function( )
  {
    if( req.readyState == 4 )
    {
      calendrier.innerHTML = req.responseText;
    }
  }

  req.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  req.send( 'mois=' + mois + '&annee=' + annee );

}

function verifier_email( id_elem )
{
  var etat_email = document.getElementById( 'etat_email' );
  var elem = document.getElementById( id_elem );

  if( elem.value == '' )
  {
    etat_email.innerHTML = image_ko;
    return 1;
  }

  var req = creer_requete( );
  req.open( 'POST', racine + 'membres.php?mode=verifier_email', true );

  req.onreadystatechange = function( )
  {
    if( req.readyState == 4 )
    {
      switch( req.responseText )
      {
        case '1' :
          etat_email.innerHTML = image_ko;
          return 4;
          break;

        case '2' :
          etat_email.innerHTML = image_ko + ' Cette adresse est déjà prise';
          return 3;
          break;

        default :
          etat_email.innerHTML = image_ok;
          return 0;
          break;
      }
    }
  }

  req.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
  req.send( "email=" + elem.value );
  return 0;
}

function verifier_password( )
{
  var champ1 = document.getElementById( 'password1' );
  var champ2 = document.getElementById( 'password2' );

  var etat_champ1 = document.getElementById( 'etat_password1' );
  var etat_champ2 = document.getElementById( 'etat_password2' );

  if( champ1.value != '' && champ2.value != ''  )
  {
    if( champ1.value != champ2.value )
    {
      etat_champ1.innerHTML = image_ko;
      etat_champ2.innerHTML = image_ko;
      return false;
    }
    else
    {
      etat_champ1.innerHTML = image_ok;
      etat_champ2.innerHTML = image_ok;
    }
  }
  else
  {
    etat_champ1.innerHTML = '';
    etat_champ2.innerHTML = '';
  }

  return true;
}

function verifier_correspondance( id_champ1, id_champ2 )
{
  var champ1 = document.getElementById( id_champ1 );
  var champ2 = document.getElementById( id_champ2 );

  return champ1.value == champ2.value;
}

function verifier_vide( id_elem )
{
  var zone_etat = document.getElementById( 'etat_' + id_elem );
  var elem = document.getElementById( id_elem );

  if( elem.value == '' )
  {
    zone_etat.innerHTML = image_ko;
    return false;
  }
  else
  {
    zone_etat.innerHTML = image_ok;
  }

  return true;
}

function erreur_champ( nom, id_erreur )
{
  switch( id_erreur )
  {
    case 1 :
      return "Vous n'avez pas rempli le champ " + nom + "\n";
      break;
    case 2 :
      return "Le contenu du champ " + nom + " est incorrect\n";
      break;
    case 3 :
      return "L'adresse e-mail entrée est déjà prise\n";
      break;
    case 4 :
      return "L'adresse e-mail entrée n'est pas valide\n";
      break;
    case 5 :
      return "Les mots de passe ne correspondent pas\n";
      break;
  }
}

function verifier_champs( )
{
  var message = '';
  var erreur = 0;

  if( !verifier_vide( 'nom' ) )
    message = erreur_champ( 'nom', 1 );

  if( !verifier_vide( 'prenom' ) )
    message += erreur_champ( 'prénom', 1 );

  if( !verifier_vide( 'adresse' ) )
    message += erreur_champ( 'adresse', 1 );

  if( !verifier_vide( 'ville' ) )
    message += erreur_champ( 'ville', 1 );

  if( ( erreur = verifier_nombre( 'npa', 4, true ) ) != 0)
    message += erreur_champ( 'npa', erreur );

  if( ( erreur = verifier_nombre( 'telephone', 10, false ) ) != 0)
    message += erreur_champ( 'téléphone', erreur );

  if( ( erreur = verifier_nombre( 'fax', 10, false ) ) != 0)
    message += erreur_champ( 'fax', erreur );

  if( ( erreur = verifier_email( 'email' ) ) != 0)
  {
    message += erreur_champ( 'e-mail', erreur );
  }

  if( !verifier_correspondance( 'password1', 'password2' ) )
    message += erreur_champ( 'mot de passe', 5 );

  if( message != '' )
  {
    alert( message );
    return false;
  }

  return true;
}

function jour( id_elem )
{
  for( i = 1 ; i <= 31 ; i++ )
  {
    if( document.getElementById( 'j' + i ) != null )
      document.getElementById( 'j' + i ).className = 'jour';
  }

  var elem = document.getElementById( 'j' + id_elem );
  elem.className = 'jour_selectionne';
}

function getAddr(ext, dom, name)
{
  var charAt = '@';
  name = name.replace(/[0-9]/g, '');
  dom = dom.replace(/:/g, '');
  return 'mailto:' + name + charAt + dom + '.' + ext;
}

function place_popup()
{
  var layer = document.getElementById('image_popup');

  if((x + layer.clientWidth) >= document.documentElement.clientWidth)
    layer.style.left = (posx - layer.clientWidth) + 'px';
  else
    layer.style.left = (posx + 10) + 'px';

  if((y + layer.clientHeight + 20) >= document.documentElement.clientHeight)
    layer.style.top = (posy - layer.clientHeight) + 'px';
  else
    layer.style.top = posy+10 + 'px';
}

function show_popup(image, ratio)
{
  var layer = document.getElementById('image_popup');

  layer.innerHTML = '<img src="/images/produits/' + image + '" width="200" height="' + (200 * ratio) + '" />';
  place_popup();
  layer.style.display = 'block';
}

function hide_popup()
{
  document.getElementById('image_popup').style.display = 'none';
}

function set_focus(element)
{
  document.getElementById(element).focus();
}

if (document.layers)
  document.captureEvents(Event.MOUSEMOVE);

if (document.layers || document.all)
  document.onmousemove = mouseMove;

if (document.addEventListener)
  document.addEventListener('mousemove', mouseMove, true);

