<?php
#=
class popwin {

//privées
 var $contenu;
 var $nom_obj_js;
 var $url,$nom;
 var $parameters; //chaîne pour js du genre "width=100, top=100, ... ,scrollbars='yes'",
 
//publiques
 var $haut,$gauche,$largeur,$hauteur;
 var $dependent;  //If yes, creates a new window as a child of the current window. A dependent window closes when its parent window closes. On Windows platforms, a dependent window does not show on the task bar.
 var $menubar;    //If yes, creates the menu at the top of the window.
 var $resizable;  //If yes, allows a user to resize the window.
 var $scrollbars; //If yes, creates horizontal and vertical scrollbars when the Document grows larger than the window dimensions.
 var $status;     //If yes, creates the status bar at the bottom of the window.
 //var $titlebar;   //If yes, creates a window with a title bar. To set the titlebar to no, set this feature in a signed script.
 var $toolbar;    //If yes, creates the standard browser toolbar, with buttons such as Back and Forward.
 var $title;      //texte dans la barre de titre
 
//constructeur
function popwin($u,$n,$p="") {
 $this->url=$u;
 $this->nom=$n;
 $this->nom_obj_js="w_".$n;
 $this->parameters=$p;
 if (!$p) { // quand parameters est défini, il a priorité
    //valeurs par défaut si ces valeurs ne sont par ultérieurement redéfinies
    $this->haut=100;$this->gauche=100;$this->largeur=200;$this->hauteur=150;
    $this->dependent=0;$this->menubar=0;$this->resizable=0;$this->scrollbars=0;
    $this->status=0;$this->titlebar=1;$this->toolbar=0;
 }
}

function insjs($appeljs) {
    print "\n<script language='JavaScript'>\n";
    print "\t".$appeljs."\n";
    print "</script>\n";
}

 
function open() {
 $this->beginjs();
 if ($this->parameters=="")  { //ce paramètre reçu par le constructeur a priorité
    if ($this->largeur==-1) {
        //calcul de la largeur de la fenêtre en javascript
        print "largeur=screen.width-50;\n";
        print "paramw='width='+largeur.toString();\n";
    }
    else
        print "paramw=$this->largeur;\n";
    print "paramw='top=$this->haut,left=$this->gauche,'+paramw+',height=$this->hauteur,dependent=$this->dependent,menubar=$this->menubar,resizable=$this->resizable,scrollbars=$this->scrollbars,status=$this->status,titlebar=$this->titlebar,toolbar=$this->toolbar'\n";
    }
 else print "paramw='$this->parameters'\n";

 //afficher la fenêtre avec son titre éventuel
 if (($this->title!="") && ($this->url=="")) {
     //javascript 1.2 : plus de titre : problèmes de sécurité... Il faut bidouiller !
     //on prépare le contenu qui sera ultérieurement envoyé
     $this->contenu="<head><title>$this->title</title></head>";
 }
 print $this->nom_obj_js."=open('$this->url','$this->nom',paramw);";
 $this->endjs();
 }
 
function flushcontent() {
 $this->insjs($this->nom_obj_js.".document.write('".$this->contenu."');");
 $this->contenu="";
 }

function addcontent($m) {
 $this->contenu.=$m ;
 }

function beginjs() {
print "\n<script language='JavaScript'>\n";
}

function endjs() {
print "</script>\n";
}

function docwrite($m) {
//on est dans du code javascript
$m=addslashes($m);
print $this->nom_obj_js.".document.write('$m');\n";
}

function close() {
 $this->insjs($this->nom_obj_js.".close();");
 }

} //fin classe
?>

