<?php
  class Ostukorv6{
	 protected $tooted, $id, $andmefail;
	 function __construct($id, $andmefail){         
         $this->tooted=array();
         $this->id=$id;
         $this->andmefail=$andmefail;
         $this->loeTooted();
         $this->loeKogusedSessioonist();
         $this->tootleURL();
         $this->salvestaSessiooni();
     }
     function sessiooniMuutujaNimi(){
         return $this->id."_kogused";
     }
     function lisamisParameetriNimi(){
         return $this->id."_lisa";
     }
     function eemaldamisParameetriNimi(){
         return $this->id."_eemalda";
     }
     function loeTooted(){
         $f=fopen($this->andmefail, "r");
         while($rida=fgets($f, 100)){
             $m=explode(",", $rida);
             array_push($this->tooted, array($m[0], floatval($m[1]), 0));
         }
     }
     function loeKogusedSessioonist(){
         if(isSet($_SESSION[$this->sessiooniMuutujaNimi()])){
            $m=explode(",", $_SESSION[$this->sessiooniMuutujaNimi()]);
            for($i=0; $i<count($this->tooted); $i++){
                $this->tooted[$i][2]=intval($m[$i]);
            }
         }
     }
     function tootleURL(){
         if(isSet($_REQUEST[$this->lisamisParameetriNimi()])){
             $this->tooted[intval($_REQUEST[$this->lisamisParameetriNimi()])][2]++;
         }
         if(isSet($_REQUEST[$this->eemaldamisParameetriNimi()])){
            if($this->tooted[intval($_REQUEST[$this->eemaldamisParameetriNimi()])][2]>0){
             $this->tooted[intval($_REQUEST[$this->eemaldamisParameetriNimi()])][2]--;
            }
         }
     }
     function salvestaSessiooni(){
         $abi=array();
         foreach($this->tooted as $toode){
             array_push($abi, $toode[2]);             
         }
         $_SESSION[$this->sessiooniMuutujaNimi()]=join(",", $abi);
	 } 
     function teave(){
	   return "Ostuandmete klass";
	 }
	 function toodeteLoetelu(){
		 $t="<table>";
         $nr=0;
		 foreach($this->tooted as $toode){
			 $t.="<tr><td>".htmlspecialchars($toode[0])."</td>
                  <td>$toode[1]</td><td>$toode[2]</td>
                  <td><a href='?".$this->lisamisParameetriNimi()."=$nr'>+</a></td>
                  <td><a href='?".$this->eemaldamisParameetriNimi()."=$nr'>-</a></td>
                  </tr>\n";
             $nr++;
		 }
		 $t.="</table>";
		 return $t;
	 }
     function toodeteSumma(){
         $sum=0;
         foreach($this->tooted as $toode){
             $sum+=$toode[1]*$toode[2];
         }
         return $sum;
     }
  }
