#!/usr/bin/perl

use xml;

my %in=getcgivars ();
$in{lang}="en" unless ($in{lang});

#$in{city}="amsterdam";
#$in{hotel}="6370"; #!!!

print "Content-type: text/html\n\n";

exit unless ($in{city});
exit unless ($in{hotel});
exit unless ($in{lang} eq "en" or $in{lang} eq "de" or $in{lang} eq "it" or $in{lang} eq "fr" or $in{lang} eq "es");
exit unless ($city{$in{country}}{$in{city}});

my @data=getdata ("hotel", $in{hotel}, $in{lang});
exit unless ($data[0]{HotelName});
my $page=readtext ("template/$in{city}.index.$in{lang}.html");
$data[0]{Address}=~s/\n/<br>/g;
$data[0]{HotelRateComment}=~s/\n/<br>/g;
$data[0]{Description}=~s/\n/<br><br>/g;
$page=~s/{hotel}/$in{hotel}/g;
$page=~s/{\.(.*?)}/$data[0]{$1}/g;

# room rates
my $rr=roomrates();
if ($rr) {
  $page=~s/{\@roomrates}/$rr/g;
  $page=~s/{\/?roomrates}//g;
} else {
  $page=~s/{roomrates}[\w\W\n]*?{\/roomrates}//;
}

# meal rates
my $mr=mealrates();
if ($mr) {
  $page=~s/{\@mealrates}/$mr/g;
  $page=~s/{\/?mealrates}//g;
} else {
  $page=~s/{mealrates}[\w\W\n]*?{\/mealrates}//;
}

# rates comment
my $rc=$data[0]{HotelRateComment};
if ($rc) {
  $page=~s/{\.HotelRateComment}/$rc/g;
  $page=~s/{\/?ratecomment}//g;
} else {
  $page=~s/{ratecomment}[\w\W\n]*?{\/ratecomment}//;
}

# child age
my $rc=$data[0]{MaxChildAge};
if ($rc) {
  $page=~s/{\.MaxChildAge}/$rc/g;
  $page=~s/{\/?child}//g;
} else {
  $page=~s/{child}[\w\W\n]*?{\/child}//;
}

# hotel facilities
my $hf=$data[0]{HotelFacilities};
if ($hf) {
  split @hotelfac=split (/\n/, $hf);
  my $no=scalar @hotelfac;
  my ($i,$h1,$h2);
  foreach (@hotelfac) {
    if ($i<$no/2) { $h1.="<li>$_</li>" } else { $h2.="<li>$_</li>" }
    $i++;
  }
  $page=~s/{\@hotelfac1}/$h1/g;
  $page=~s/{\@hotelfac2}/$h2/g;
  $page=~s/{\/?hotelfac}//g;
} else {
  $page=~s/{hotelfac}[\w\W\n]*?{\/hotelfac}//;
}

# room facilities
my $rf=$data[0]{RoomFacilities};
if ($rf) {
  split @roomfac=split (/\n/, $rf);
  my $no=scalar @roomfac;
  my ($i,$r1,$r2);
  foreach (@roomfac) {
    if ($i<$no/2) { $r1.="<li>$_</li>" } else { $r2.="<li>$_</li>" }
    $i++;
  }
  $page=~s/{\@roomfac1}/$r1/g;
  $page=~s/{\@roomfac2}/$r2/g;
  $page=~s/{\/?roomfac}//g;
} else {
  $page=~s/{roomfac}[\w\W\n]*?{\/roomfac}//;
}

# additional info
my $add=$data[0]{AdditionalInformation};
if ($add) {
  $add=~s!(.*)\|(.*)\n?!<tr><td class=c-dark nowrap>$1</td><td class=c-dark>&nbsp;</td><td class=c-dark nowrap>$2</td></tr>\n!g;
  $page=~s/{\/?additional}//g;
  $page=~s/{\@additional}/$add/;
} else {
  $page=~s/{additional}[\w\W\n]*?{\/additional}//;
}

print $page;


sub roomrates {
  my @rates=getdata ("rates", $in{hotel}, $in{lang});
  my (%rooms,$s1,$s2);
  foreach my $i (@rates) {
    $rooms{$$i{RoomType}}{__sort}=$s1++;
    $rooms{$$i{RoomType}}{$$i{RoomConfig}}{__sort}=$s2++;
    $rooms{$$i{RoomType}}{$$i{RoomConfig}}{$$i{Enddate}}=$$i{Rate};
  }
  my $ret=qq{<tr><th class=c-head colspan=2 nowrap height=35>$text{"room.$in{lang}"}</th><th class=c-head>$text{"rates.$in{lang}"}</th></tr>};
  foreach my $i (sort {$rooms{$a}{__sort} <=> $rooms{$b}{__sort}} keys %rooms) {
    my $rowspan=-1+scalar keys %{$rooms{$i}};
    $ret.=qq{<tr><td class=c-dark rowspan=$rowspan><table border=0 cellpadding=0 cellspacing=0 width=100%>};
    $ret.=qq{<tr><td class=c-dark><b>$i</b><br></td><td align=right>&nbsp;&nbsp;</td></tr></table></td>};
    my $rates=qq{<th class=c-dark rowspan=$rowspan>$text{"checkrate.$in{lang}"}</th>};
    my $k=0;
    foreach my $j (sort {$rooms{$i}{$a}{__sort} <=> $rooms{$i}{$b}{__sort}} keys %{$rooms{$i}}) {
      next if ($j=~/^__/);
      my $r=$k ? "" : $rates; $k++;
      $ret.=qq{<td class=c-dark><b>$j</b><br></td>$r</tr><tr>}
    }
    $ret.=qq{<td class=c-space colspan=6></td></tr>};
  }
  return $ret;
};

sub mealrates {
#  return "<tr><td>MEALRATE</td></tr>";
};


