#!/usr/bin/perl
#
#

use umfrage;
use CGI;

$query = new CGI;
my %val = $query->Vars;

#my $umf=umfrage->init($val{umfid}, $query, \%val);
#if (! defined $umf->load) {print "Content-type: text/html\n\nFehler: Umfrage $val{umfid}";$umf->exit;}
#$umf->enterant;       #Antworten einlesen und neue frage ausgeben
#$umf->exit;



####################################################################
####         liest die Antworten ein
####         Argumente  : -
####         Returnwert : -
####################################################################
sub enterant {
	my $self = shift;
	my $vars = $self->{vars};
	my %val = %$vars;
	my $f;
	my @RE=("",$self->trans("WA1"),$self->trans("WA2"),"");
	my $query=$self->{query};
	my $x=0;

        # Wenn beendet werden soll : Redirect !
	if ($val{but} eq $self->trans("BU11")) {$self->redirect;}

	# Ist der Fragebogen aktiv ??
	if ($self->checkdate) {
                $self->{warntext}=$self->trans("WA11");
                $self->printhtml($self->trans("TI10"),$query->submit('but',$self->trans("BU11")));$self->log(1,"Fragebogen nicht aktiv");
	}

	# Anmeldedaten übernehmen
        if ($val{but} eq $self->trans("BU12")) {
		$$vars{pin}=$val{apin};
		$$vars{pass}=crypt($val{apass}, "xy");
	}
	
	# Pin überprüfen und nötigenfalls erfragen
	if ($$vars{pin} eq ""){
		if ($self->{usepanel}==0) {$$vars{pin}=$self->newpin;}	
		else {$self->login($self->trans("WA3"));$self->exit;}
	}

        # Passwortüberprüfung
	if ($self->{usepanel}==1) {my $RET = $self->checkpass($$vars{pin}, $$vars{pass});
	        if ($RET == 3) { $self->printhtml($self->trans("TI11"),$self->htmlgrafik);$self->exit;}
		if ($RET != 0) { $self->login($RE[$RET]);$self->exit; }
        }
	
	# Wenn $val{fid} nicht definiert ist muß die erste Frage genommen werden !! (mit der kleinsten FID)
	if ( $val{fid} <1 ) {
	   while ((! defined $f) && ($x<40)) { $f = frage->init($self,$x++);$f=$f->load(); } # alle FIDs von 1-n ausprobieren !
	   if (defined $f) { $f = $f->nextfrage($$vars{pin},1);}       # Nächste Frage, wenn diese schon beantwortet ! oder sich selbst
	   if (defined $f) { $$vars{fid}=$f->{id};};
	}
	else { $f = frage->init($self,$val{fid}); $f=$f->load(); } # sonst jetzt anliegende Frage laden....

        if (! defined $f) { $self->htmlFra($f); $self->exit;}
	# Wenn gespeichert werden soll
	if ($val{but} eq $self->trans("BU7")) {
	   if ($f->enterant == 0) {$self->{warntext}=$self->trans("WA4");}
	   $self->log(4,"Proband speichert");
	   $f = $f->nextfrage($val{pin});
	   if (defined $f) { $$vars{fid}=$f->{id};}
	}

	# Wenn übersprungen werden soll
	if ($val{but} eq $self->trans("BU3")) {
	   $f = $f->nextfrage($val{pin});
	   $self->log(4,"Proband Überspringt");
	   if (defined $f) {
	   	if ($val{fid} == $f->{id}){
               	   $self->{warntext}=$self->trans("WA5");
                }
	   	else {
	   	   $self->{warntext}=$self->trans("WA6");
	   	}
	   	$$vars{fid}=$f->{id};}
	}

	# Wenn abgebrochen werden soll
	if ($val{but} eq $self->trans("BU2")) {
	   $self->log(4,"Proband Unterbricht");
	   $self->{warntext}=$self->trans("WA7");
	   undef $f;
	}
        	

   # Standardmäßig die neue Frage anzeigen !
   $self->htmlFra($f);

}     	


####################################################################
####         Bearbeitet die Eingabe der Frage durch den Kunden
####         Argumente  : -
####         Returnwert : -
####################################################################
sub getbearb {
	my $self = shift;
	my $vars = $self->{vars};    # Den Zeiger, weil ich ändern will
	my %val = %$vars;
	my ( $f, $TITLE, $x );
	
	
	# Wenn $val{fid} nicht definiert ist wird eine Fragenliste ausgegeben
	if ( (! defined $val{fid}) ) {
	   $self->htmlumfrage;
	}

	# Wenn gespeichert werden soll
	elsif ($val{but} eq $self->trans("BU7")) {
	  $self->log(4,"Kunde speichert");
	  $f = frage->init($self,$val{fid});  #  jetzt anliegende Frage laden....
	  $f->load();
	  $f->getBearb($vars);
	  $self->{warntext}=$self->trans("WA14");
	  $self->htmlbearb($f);
	}

	# Wenn die Frage gelöscht werden soll
	elsif ($val{but} eq $self->trans("BU8")) {
  	  $self->log(4,"Kunde löscht");
	  if ($val{radio} ne "") {$$vars{fid}=$val{radio};}
	  if ($$vars{fid} > 0) {
	    $f = frage->init($self,$$vars{fid});  #  jetzt anliegende Frage laden....
	    $f=$f->load();
	    if (defined $f) {$x=$f->{id}; $f->delete;}
	    $$vars{fid}=0;
	    $self->{warntext}=$self->trans("WA15a")." ".$x." ".$self->trans("WA15b");
	  }
	  else {
	    $self->{warntext}=$self->trans("WA16");
	  }
	  $self->fragenliste();
	}

	# Wenn eine neue Frage erstellt werden soll
	elsif ($val{but} eq $self->trans("BU5")) {
           $self->log(4,"Kunde erstellt neue Frage");
	   $f=frage->init($self);
	   $f->new();
	   $self->log(4,"Frage erstellt $f");
	   $$vars{fid}=$f->{id};
	   $self->{warntext}=$self->trans("WA17");
	   $self->htmlbearb($f,);
	}

	#Wenn aus der Liste bearbeitet werden soll
	elsif ($val{but} eq $self->trans("BU6")) {
	  $self->log(4,"Kunde bearbeitet Frage");
	  if ($val{radio} < 1) {
	     $self->{warntext}=$self->trans("WA16");
	     $self->fragenliste();
	  }
	  else {
	     $f=frage->init($self,$val{radio});
	     $f=$f->load();
	     $$vars{fid}=$f->{id};
	     $self->{warntext}=$self->trans("WA18");
	     $self->htmlbearb($f);
	  }
	} 	
        # Wenn die Liste angezeigt werden soll.....
	elsif ($val{but} eq $self->trans("BU4")) {
	     $self->log(4,"Kunde sieht Liste der Fragen");
	     $self->{warntext}=$self->trans("WA19");
             $$vars{fid}=0;
             $self->fragenliste();
        }

        # Wenn die Umfrage gespeichert werden soll.....
	elsif ($val{but} eq $self->trans("BU9")) { $self->getumfbearb; $self->log(4,"Kunde speichert Umfrage");}

        # Wenn die Umfrage angezeigt werden soll.....
	elsif ($val{but} eq $self->trans("BU10")) { $self->htmlumfrage; $self->log(4,"Kunde sieht Umfrage");}

	# Beenden mit Redirect....
	elsif ($val{but} eq $self->trans("BU11")) { $self->redirect;}
	
	# Wenn alles andere versagt.....   :-)
	else { $self->htmlumfrage; $self->log(4,"Kein Button gedrückt, Kunde sieht Umfrage"); }

}



