<script language="javascript">
function peuplermodeleelement(l1) {  //element.class
  var l2 = document.getElementsByName("idmodele");
  var index = l1.selectedIndex;   
  if(index < 1)   
    l2[0].options.length = 0;   
  else {   
    var xhr_object = null;   
            
    if(window.XMLHttpRequest) // Firefox   
      xhr_object = new XMLHttpRequest();   
    else if(window.ActiveXObject) // Internet Explorer   
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   
    else { // XMLHttpRequest non supporté par le navigateur   
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");   
      return;   
    }   
   
    if (document.f2)  //si sousformdyn 
    var data = "nature="+escape(l1.options[index].value)+"&form="+f2.name+"&select=idmodele";
    else   //sinon form
    var data = "nature="+escape(l1.options[index].value)+"&form="+f1.name+"&select=idmodele";

    xhr_object.open("POST", "../spg/dynselectmodele.php", true);
       
    xhr_object.onreadystatechange = function() {   
      if(xhr_object.readyState == 4) {   
        eval(xhr_object.responseText);
       //alert("transfert fini"+l2(0).value);
       }   
    }   
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");   
    xhr_object.send(data);   
  }   
}
function fdateelement(champ){
if(champ.value.lastIndexOf("/")==-1){
if (champ.value.substring(0,2)>32){
   champ.value="";
   alert("jour > 32")
   return
}
if (champ.value.substring(2,4)>13){
   champ.value="";
   alert("mois > 12")
   return
}
if(champ.value.length==6)
champ.value=champ.value.substring(0,2)+"/"+champ.value.substring(2,4)+"/19"+champ.value.substring(4,6);
if(champ.value.length==8)
champ.value=champ.value.substring(0,2)+"/"+champ.value.substring(2,4)+"/"+champ.value.substring(4,8);
}
}
function traiteretat(champ) {
var s2=document.getElementsByName("idutilisateur")[0];
//alert("traiteretat");
if (!document.f2.elements[0] && champ.selectedIndex > 1) {
//alert("raz service et batiment");
  document.getElementsByName("utilisateur")[0].value="";
  if (s2.options) {
     //alert("raz user");
     s2.options.length = 0;
     s2.options[0] = new Option("",0);
     s2.selectedIndex=0;
  }
  document.getElementsByName("idservice")[0].selectedIndex=0;
  document.getElementsByName("idbatiment")[0].selectedIndex=0;   
  //alert("fin raz service et batiment");
//  document.getElementsByName("idstation")[0].value=0;   //impossible pour periphstation id necessaire pour retour
}
}
</script>
<?php
/*
$Id: element.class.php,v 1.18 2008-04-08 09:56:58 fgiva Exp $
*/
require_once ("formulaireparc.class.php");
require_once ("dbformparc.class.php");    
//les formulaires générés en ajax ne reconnaissent pas les fonctions java
//internes à ces formulaires d'où la necessité de les déclarer ici 
require_once ("intervention.class.php");

class element extends dbFormparc {

var $table="element";
var $clePrimaire= "idelement";
var $typeCle= "N" ;

function message($val){ //surcharge pour test val(numero) wmi
  if (isset($val))
    if (array_key_exists("station",$val))
      if (strstr($val["station"],"WMI"))
        $this->msg.="<br>Saisie d'éléments interdite pour les stations sans numéro Mairie!";
  parent::message();
}

function bouton($maj,$val){ //surcharge pour test val(numero) wmi
if(file_exists("../dyn/custom/var.inc")) {
   include("../dyn/custom/var.inc");
}
else {
  include("../dyn/var.inc");
}
//*
if (!$this->correct){
   if ($maj == 2) //supprimer
       $bouton = "Supprimer";
   else
       if ($maj == 1) // modifier   
           $bouton = "Modifier";
       else // ajouter
           $bouton = "Ajouter";
   echo "<tr><td><br></td></tr><tr><td colspan=2><center><input type='submit' value='".
        $bouton." ".ucwords($this->table)."' style=".$styleBouton;
   if (!strstr($val["station"],"WMI") || $maj>1) //si station enregistrée ou suppression
     echo " >";
   else
     echo " disabled=true >";
}}

function ajouter($val,&$db,$DEBUG){  //surcharge pour verifier($db)
// parametrage
$this->msg="";
// valF
    $this->setValFAjout($val);
    $this->setValF($val);
    $this->verifier($db);  //ajout fred  $db necessaire  
    $this->verifierAjout();
if ($this->correct){
    $this->setId($db); // id automatique
    $this->triggerajouter(0/*$id*/,$db,$val,$DEBUG);
    $res= $db->autoExecute($this->table,$this->valF,DB_AUTOQUERY_INSERT);
     if (DB :: isError($res))
           $this->erreur_db($res->getDebugInfo(),$res->getMessage(),'');
           else{
           if ($DEBUG == 1)
           echo "La requête de mise à jour est effectuée.<br>";
           $this->msg=$this->msg."<br>Enregistrement ".
           $this->valF[$this->clePrimaire]." de la table ".
           $this->table." [".$db->affectedRows().
              " enregistrement ajouté]" ;
           } // requete maj
}
else
$this->msg=$this->msg. "<br> non enregistré";
}

function modifier($val,&$db,$DEBUG){  //surcharge pour verifier($db)
 // valF
    $id=$val[$this->clePrimaire];
    $this->setValF($val);
    $this->verifier($db);  //ajout fred  $db necessaire 
 if ($this->correct){
    $this->triggermodifier($id,$db,$val,$DEBUG);
    if($this->typeCle=="A")
           $cle= $this->clePrimaire." = '".$id."'";
    else
           $cle= $this->clePrimaire." = ".$id;
    $res= $db->autoExecute($this->table,$this->valF,DB_AUTOQUERY_UPDATE,$cle);
        if (DB :: isError($res))
              $this->erreur_db($res->getDebugInfo(),$res->getMessage(),'');
              else{
              if ($DEBUG == 1)
              echo "La requête de mise à jour est effectuée.<br>";
              $this->msg=$this->msg."Enregistrement ".$id." de la table ".
              $this->table." [".$db->affectedRows().
              " enregistrement mis à jour]" ;
              } // requete maj
}}

function setvalF($val){
$this->valF['idelement'] = $val['idelement'];
if (array_key_exists("idmodele",$val)) $this->valF['idmodele'] = $val['idmodele'];
echo "<br>".$val['idmodele'];
}
 
// NE SURTOUT PAS EFFACER SINON HERITAGE DES FONCTIONS DE CLASSE DBFORM DIFFERENTES
// pas d initialisation valF pour la cle primaire
function setValFAjout($val){  //pas de récupération cleprim car non fixe encore
}
// initialisation valF pour la cle primaire
function verifierAjout(){   //pas de verif cleprim car non fixee encore
}

function setId($db){ //affectation de l'identifiant composant
// id automatique nextid
$this->valF['idelement'] = $db->nextId($this->table);
}

function verifier(){
$this->correct=True;
// obligatoire
if ($this->valF['idmodele']==0 || !$this->valF['idmodele']){
   $this->correct=false;
   $this->msg= $this->msg."<br>Modèle obligatoire";
}
}//verifier

function setType(&$form,$maj) {
  if ($maj < 2) { //ajouter et modifier
    if ($maj == 0) {
      $form->setType('idelement', 'hidden');
      $form->setType('typeelement', 'select');
      $form->setType('idmodele', 'select');
      $form->setType('libmodele', 'hidden');
    } else {   //maj==1  modifier  
      $form->setType('idelement', 'hiddenstatic');
      $form->setType('typeelement', 'hiddenstatic');
      $form->setType('idmodele', 'hidden');
      $form->setType('libmodele', 'hiddenstatic');
    }
  } elseif ($maj==2)  { // supprimer
     $form->setType('idelement', 'hiddenstatic');
     $form->setType('typeelement', 'hiddenstatic');
     $form->setType('idmodele', 'hidden');
     $form->setType('libmodele', 'hiddenstatic');
  }  else {
     $form->setType('idelement', 'hidden');
     $form->setType('typeelement', 'hidden');
     $form->setType('idmodele', 'hidden');
     $form->setType('libmodele', 'hidden');
  }
  $form->setType('station', 'hidden');    //numero station
  $form->setType('numserie', 'hidden'); 
  $form->setType('notag', 'hidden');
  $form->setType('idstation', 'hidden');
  $form->setType('numero', 'hidden');    //numero periph
  $form->setType('nomelement', 'hidden');
  $form->setType('idutilisateur', 'hidden');
  $form->setType('utilisateur', 'hidden');
  $form->setType('idservice', 'hidden');
  $form->setType('idbatiment', 'hidden');
  $form->setType('edateachat', 'hidden');
  $form->setType('dateatelier','hidden');
  $form->setType('datescan','hidden');
  $form->setType('garantie', 'hidden');
  $form->setType('idfournisseur', 'hidden');
  $form->setType('bc', 'hidden');
  $form->setType('adressemac', 'hidden');
  $form->setType('fax', 'hidden');
  $form->setType('scanner', 'hidden');
  $form->setType('boitierext', 'hidden');
  $form->setType('version', 'hidden');
  $form->setType('idorganisme', 'hidden');
  $form->setType('idetatelement', 'hidden');
}

function setLib(&$form,$maj) {
$form->setLib('idmodele',' Modèle');
$form->setLib('libmodele',' Modèle');
$form->setLib('numserie',' No Serie');
$form->setLib('typeelement','Type');
$form->setLib('edateachat','Date d\'achat');
$form->setLib('idstation','Numero Station');
$form->setLib('idetatelement','Etat');
$form->setLib('notag','Numero TAG');
}

//
function setOnchange(&$form,$maj){
$form->setOnchange("edateachat","fdateelement(this)");
$form->setOnchange("typeelement","peuplermodeleelement(this)");
}

}// fin de classe
?>