<?php 
// $Id: form.php,v 1.14 2008-04-08 09:56:58 fgiva Exp $
header('Content-type: text/html; charset=iso-8859-1');
//header('Content-Type: text/plain; charset=iso-8859-1');
include ("../dyn/session.inc");
require_once "DB.php";
include ("../dyn/connexion.php");
// * custom *
if(file_exists("../dyn/custom/var.inc")) {
   include("../dyn/custom/var.inc");
}
else {
  include("../dyn/var.inc");
}
//*
if(file_exists("../dyn/custom/lien.inc")) {
   include("../dyn/custom/lien.inc");
}
else {
  include("../dyn/lien.inc");
}
// nom de l objet métier =====================================================
if(isset($_GET['nat'])) //ajout fred
    $nat=$_GET['nat'];
else
    $nat="";
if(isset($_GET['tri'])) //ajout fred
    $tricol=$_GET['tri'];
else
    $tricol="";
if(isset($_GET['trisf'])) //ajout fred
    $tricolsf=$_GET['trisf'];
else
    $tricolsf="";
if(isset($_GET['obj']))
    $obj=$_GET['obj'];
else
    $obj="";
// librairies utilisée(s) ====================================================
include ("../obj/".$obj.".class.php");
// identifiant enregistrement
// flag maj 0=ajouter 1=modifier 2=detruire
if (!isset ($table))
   $table="";
if (isset($_GET['idx'])) {
    $idx=$_GET['idx'];
      if (isset ($_GET['ids'])){
        $enteteTab = "Table ".$table." Suppression";
        $maj = 2;
      }else{
        $enteteTab = "Table ".$table." Modification";
        $maj = 1;
      }
} else {
   if (isset($_GET['maj'])) {
     $maj=$_GET['maj'];
     $idx="]";
     $enteteTab = "Table ".$table." Validation";
   } else{
    $idx="]";
    $enteteTab = "Table ".$table." Ajout";
    $maj = 0;
    }
}

// validation
if (isset ($_GET['validation'])){
   $validation=$_GET['validation'];
}else{
   $validation=0;
}
// retour / premier + recherche
if (isset ($_GET['premier'])){
   $premier=$_GET['premier'];
}else{
   $premier=0;
}
if (isset ($_GET['recherche'])){
   $recherche=$_GET['recherche'];
   if (get_magic_quotes_gpc()) // magic_quotes_gpc = on
          $recherche= StripSlashes($recherche);
}else{
   $recherche="";
}
$type_rech="";
if (isset ($_GET['typerech']))
   $type_rech=$_GET['typerech'];
// sousform à afficher et premiersf 
if (isset ($_GET['objsf'])){
   $objsf=$_GET['objsf'];
}else{
   $objsf="";
}
if (isset ($_GET['premiersf'])){
   $premiersf=$_GET['premiersf'];
}else{
   $premiersf=0;
}
// parametrage ===============================================================
// $DEBUG= mode debug 0 ou 1
// $serie= nombre enregistrement par page
// $ent= affichage
// $ico= nom de l'icone
// $table= nom de la table
// $tableSelect  table ou jointure utilisée dans la requete
// $champs= tableau des champs pour le formulaire  : array(nomchamp1, nomchamp2 ...)
// $selection= selection dans la requete : " where nomchamp = '' "
include ("../sql/".$dsn['phptype']."/".$obj.".inc");
//dsn  ======================================================================
$db=& DB :: connect($dsn, $db_option);
if (DB :: isError($db)) {
    die($db->getMessage());
    }
 else{
    if($DEBUG==1)
    echo "La base ".$dsn['database']." est connectée.<br>";
 }
// parametre collectivite
$res = $db->query($sql_collectivite);
if (DB :: isError($res))
   die($res->getMessage()."erreur ".$sql_collectivite);
else{
   while ($row=& $res->fetchRow()){
              $ville=$row[0];
              $logo=$row[1];
}}
$res->free();
// variable droit
$sql =  "SELECT profil from droit where droit= '".$table."'";
$droit =$db->getOne($sql);
// entete et charte html =====================================================
// * custom *
include("../dyn/cg.css");
if(file_exists("../dyn/custom/cg.css")) {
   include("../dyn/custom/cg.css");
} 
//*
echo "<html>";
echo"<head>";
include("../dyn/entete.inc");
    if ($maj==1 & isset($sousformulaire)) //sousform affichés si modif form et existent
      //body load necessaire pour ancres
      if ($objsf)
        if ($premiersf)
          echo "<body onload=\"bodyload('".$objsf."',".$premiersf.")\">";
        else
          echo "<body onload=\"bodyload('".$objsf."',0)\">";
      else
        echo "<body onload=\"bodyload('".$sousformulaire[0]."',0)\">";
    else
      echo "<body>";
    echo "<div>"; 
    echo "<table id='entete' border='0'>";
    echo "<tr><td align='left'>".$ent."<td align='right'></td></tr></table>";
    if ($fiche) {
       echo "<table class='impr' border='0'>";
       echo "<tr><td> ";
       echo "<a href='../pdf/pdfetat.php?obj=".$fiche."&idx=".$idx."' target='_blanck'>";
        if(file_exists("../dyn/custom/img/print.png")) {
           echo "<img src='../dyn/custom/img/print.png' alt='Edition Table ".$fiche."' border='0' align='top'>";
        } else {
           echo "<img src='../img/print.gif' alt='Fiche ".$fiche."' border='0' align='top'>";
        }
       echo "</a>";
       echo "</td></tr></table>";
    }

    echo "<table id='recherche' border='0'><tr><td>";
    echo "<a href='../scr/tdb.php?recherche=$recherche";
    if ($type_rech)
       echo "&typerech=$type_rech'>";
    else
        echo "'>";
    // * custom *
    if(file_exists("../dyn/custom/img/loupe.png")) {
        echo "<img src='../dyn/custom/img/loupe.png' border='0' height='30' hspace='4' alt='recherche'>";
    }else {
        echo "<img src='../img/loupe.png'  border='0' height='30' hspace='4' alt='recherche'>";
    }
    //*
    echo "</a>[$recherche]</td></tr>";
    echo "</table>";

    echo "<table id='aide' border='0'><tr><td>";
    echo "<a href='javascript:aide()'><img src='".$ico."' border='0' alt='aide'>";
    // * custom *
    if(file_exists("../dyn/custom/img/ico_aide.png")) {
       echo "<img src='../dyn/custom/img/ico_aide.png' align='top' border='0' alt='aide'>";
    }
    else {
           echo "<img src='../img/ico_aide.png' align='top' hspace='5' border='0' alt='aide'>";
    }
    //*
    echo "</a></td></tr>";
    echo "</table>";
    echo "</div>";
    echo "<br><br><br><br>";
?>
<script language="javascript">
    var pfenetre;
    var fenetreouverte=false;
var ns4 = (document.layers)? true:false;   //NS 4 
var ie4 = (document.all)? true:false;   //IE 4 
var dom = (document.getElementById)? true:false;   //DOM 

function bodyload(objsf,premiersf) {
setToAnchor('idancresoustab','ancresoustab','soustab');   
activer(objsf,premiersf);
}

function setToAnchor(ID_Anchor,Name_Anchor,ID_Div)
//Fonction permettant de positionner un DIV à une position occupée par une ancre
    {
var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page 
var DivTop = 0;   //Position du Div par rapport au haut de la page 
    if (dom)
        {
        pos = document.getElementById(ID_Anchor);
        DivLeft = getLeft(pos);
        DivTop = getTop(pos);
        document.getElementById(ID_Div).style.left = DivLeft;
        document.getElementById(ID_Div).style.top = DivTop;
        }
    else if (ie4) 
        {
        pos = document.all[ID_Anchor];
        DivLeft = getLeft(pos);
        DivTop = getTop(pos);
        document.all[ID_Div].style.posLeft = DivLeft;
        document.all[ID_Div].style.posTop = DivTop;
        }
    else if (ns4)
        {
        pos = document.anchors[Name_Anchor];
        DivLeft = pos.x;
        DivTop = pos.y;
        document.layers[ID_Div].pageX = DivLeft;
        document.layers[ID_Div].pageY = DivTop;
        }
    }

function getLeft(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord gauche de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
    {
    if (MyObject.offsetParent)
        return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    else 
        return (MyObject.offsetLeft);
    } 
function getTop(MyObject)
//Fonction permettant de connaître la position d'un objet
//par rapport au bord haut de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
    {
    if (MyObject.offsetParent)
        return (MyObject.offsetTop + getTop(MyObject.offsetParent));
    else
        return (MyObject.offsetTop);
    }

function aide()
{
if(fenetreouverte==true)
       pfenetre.close();
pfenetre=window.open("../doc/<?php echo($obj); ?>.html","Aide"," toolbar=no,scrollbars=yes,status=no,width=600,height=400,top=120,left=120");
fenetreouverte=true;
}

function activer(objsf,premiersf)    
{
var bouton=document.getElementById(objsf);
var objet = document.getElementById("objet").innerHTML;
var  recherche = document.getElementById("recherchedyn").value;
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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objsf+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&premiersf="+premiersf+"&recherche="+recherche+"&trisf=<?php echo($tricolsf); ?>", true);
if(window.XMLHttpRequest){ // Firefox
   if(objet!="")
     document.getElementById(objet).setAttribute("style", ('<?php echo($styleBouton); ?>'));
   bouton.setAttribute("style", ('<?php echo($styleBoutonOnglet); ?>'));
}
if(window.ActiveXObject){ // Internet Explorer
   if(objet!="")
     document.getElementById(objet).style.setAttribute("cssText", ('<?php echo($styleBouton); ?>'));
   bouton.style.setAttribute("cssText", ('<?php echo($styleBoutonOnglet); ?>'));
}
document.getElementById('objet').innerHTML=objsf;
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4) {
       document.getElementById('sousform').innerHTML = xhr_object.responseText;
    }
} //sousform
xhr_object.send(null);
}

function affichersform(datasubmit) {
var data=datasubmit;
if (document.f2.elements[0]) {
//  alert("element0 de f2: "+document.f2.elements[0].name+"="+document.f2.elements[0].value);
  for (i=0;i<document.f2.elements.length;i++) 
    data+="&"+document.f2.elements[i].name+"="+document.f2.elements[i].value;
}
//alert("data="+data);
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;   
}  
xhr_object.open("POST", "sousformdyn.php", true);
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4) {
       document.getElementById('sousform').innerHTML = xhr_object.responseText;
    }
} //postform
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //post method
xhr_object.send(data);
}

function suivant(tricol){
  // tab.class.php methode paginationonglet
  var objet = document.getElementById("objet");
  var  premier = document.getElementById("suivant");
  var  recherche = document.getElementById("recherchedyn").value;
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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objet.innerHTML+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&premiersf="+premier.innerHTML+"&recherche="+recherche+"&trisf="+tricol, true);
xhr_object.onreadystatechange = function() {
    if(xhr_object.readyState == 4)    
       document.getElementById('sousform').innerHTML = xhr_object.responseText;}   
xhr_object.send(null);  
} 

function precedent(tricol){
  // tab.class.php methode paginationonglet
  var objet = document.getElementById("objet");
  var  premier = document.getElementById("precedent");
  var  recherche = document.getElementById("recherchedyn").value;

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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objet.innerHTML+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&premiersf="+premier.innerHTML+"&recherche="+recherche+"&trisf="+tricol, true);
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4)    
       document.getElementById('sousform').innerHTML = xhr_object.responseText;}   
xhr_object.send(null);  
} 

function allerpage(tricol){
  // tab.class.php methode paginationonglet
  var objet = document.getElementById("objet");
  var  premier = document.f2.page.value;
  var  recherche = document.getElementById("recherchedyn").value;

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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objet.innerHTML+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&premiersf="+premier+"&recherche="+recherche+"&trisf="+tricol, true);
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4)    
       document.getElementById('sousform').innerHTML = xhr_object.responseText;}   
xhr_object.send(null);  
} 

function recherche(){
  // tab.class.php methode paginationonglet
  var objet = document.getElementById("objet");
  var  recherche = document.getElementById("recherchedyn").value;
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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objet.innerHTML+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&recherche="+recherche, true);
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4)    
       document.getElementById('sousform').innerHTML = xhr_object.responseText;}   
xhr_object.send(null);  
} 

function trier(tricol) {
  // tab.class.php methode afficheentetecolone
  var objet = document.getElementById("objet");
  var  premier;
  var  recherche = document.getElementById("recherchedyn").value;

if(document.f2.page==null)
  premier=0;
else
  premier=document.f2.page.value;
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;   
}  
xhr_object.open("GET", "soustabdyn.php?objsf="+objet.innerHTML+"&obj=<?php echo($obj); ?>&nat=<?php echo($nat); ?>&idx=<?php echo($idx); ?>&premiersf="+premier+"&recherche="+recherche+"&trisf="+tricol, true);
xhr_object.onreadystatechange = function() {   
    if(xhr_object.readyState == 4)    
       document.getElementById('sousform').innerHTML = xhr_object.responseText;}   
xhr_object.send(null);  
}

</script>
<?php
echo "<div id='formulaire'>";
// ===========================================================================
//If ($_SESSION['profil'] >= $droit){
   // objet metier
   $enr = new $obj($idx,$db,$DEBUG,$nat);  //ajout fred
   // mode debug message de l'objet métier
   if ($DEBUG == 1)
       echo "Objet métier =><br> ".$enr->msg;
   $validation++;
   $enr->formulaire($enteteTab, $validation, $maj, $db, $HTTP_POST_VARS,$obj, $DEBUG,$idx,$premier,$recherche,$tricol); 
   if (isset($sousformulaire) and $maj==1){
      echo"</div>";
      include ("tab.class.php");
      if(!isset($sousformulaire_class)) $sousformulaire_class='sousformulaire';
      if(isset($soustab)) { // onglets
        //ancre
        echo "<A id='idancresoustab' name='ancresoustab'>&nbsp;</A>";
        echo "<div id='soustab'>";
        $elem="";
        $i=0;
        foreach($sousformulaire as $elem) {
          if ($i==0) $elemprincipal=$elem;
          echo "<input type='button' id='".$elem."' value='".$elem."' onclick='activer(this.value,0);
' style=".$styleBouton.">";
          $i++;
        }
        $objsf=$elemprincipal ;
        echo "<input type='text' name='recherchedyn' id='recherchedyn' value=''  class='champFormulaire' onkeyup='recherche();' style='width:85px' >";
        echo "</div>";
//        echo "<div id=".$sousformulaire_class.">";
        echo "<div id='sousform'>";
        echo "</div>";
        echo "<span id='objet' style='color:transparent'></span>"; // stockage formulaire
      }
//     echo "<br><br><br><br>";


       // deconnexion
       $db->disconnect();
       if ($DEBUG == 1)
          echo "La base ".$dsn['database']." est déconnectée.<br>";
    }
    //else
     //   echo "Droits insuffisants ou reconnectez-vous.";
echo "</div>";
include ("../dyn/menu.inc");
echo "</html>";
?>