#!/usr/bin/perl - w

use CGI;
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);

##############################################################################
# Le Kayak de Mer dans le Nouveau Monde
# Destinations v 2.1
# Stéphane Maltais
# 2003
###############################

$basedir = "/home/stephm69/public_html/kayakdemer/destinations";
$baseurl = "http://www.kayakdemer.net/destinations";

$rootdir = "/home/stephm69/public_html/kayakdemer";
$rooturl = "http://www.kayakdemer.net";
$dest_dir = "destinations";

$cgi_url = "http://www.kayakdemer.net/cgi-bin2/destinations.pl";

$datas_dir = "data_files";
$html_dir = "html_files";
$destnmbrfile = "destnmbr.txt";
$mainfile = "destinations.php";
$template = "template.php";
$regions_sd = "services";
$regions_file="regions.txt";
$front_temp = "destinations_t.php";
$front_datas = "front_datas.txt";
$sug_form_templ = "sug_destination_t.php";
$sub_photos_templ = "sub_photos_t.html";
$add_form_templ = "add_infos_t.html";
$new_photos_dir = "photos/new";
$allow_html = 1;
$filter = 1;

$title = "Le Kayak de Mer dans le Nouveau Monde: Destinations";
%TITLES =         ("endroit","",
		           "localisation","Localisation",
				   "region","",
				   "maree","Marée",
				   "maree_com","",
				   "derniere_visite","",
				   "acces","Points d\'accès",
				   "cartes","Cartes utiles",
				   "pourvoyeurs","Pourvoyeurs à proximité",
				   "faune","Faune",
				   "especes","</b><i><u>Espèces observées</u></i><b>",
				   "flore","Flore",
				   "paysages","Paysages",
				   "difficulte","Niveau de difficulté",
				   "interet","Intérêt général",
				   "camping","Possibilité de camping",
				   "camping_dtls","",
				   "description","Description, commentaires",
				   "image_url","",
				   "photos","Photos",
				   "urls","Liens à consulter",
				   "email","",
				   "name","Informations soumises par"
				   );
# Done
###########################################################################

 use Mysql;
  $connect_db = Mysql->connect('localhost', 'stephm69_kmnmdatas', 'stephm69_kmnm', 'access');
  $connect_db->selectdb('stephm69_kmnmdatas');

# Get Form Information
&parse_form;

# Put items into nice variables

&get_variables;

if($fct eq "front")
{
    
	print "Content-type: text/html\n\n";
	unlink ("$basedir/$front_datas");
#	  open(MAINFRONT,">$basedir/$front_datas") || die $!;
#        print MAINFRONT "";
#  	  close (MAINFRONT);
	  opendir DATASDIR, "$basedir/$datas_dir" or die "Can't open directory $dir: $!\n";
      while ($files = readdir DATASDIR)
      {
        $files =~ tr/A-Z/a-z/;
	    if($files =~ /\.txt/)
	    {
          $files =~ s/\.txt//g;
		  push(@alldtfiles, $files);
		  
	    }
		
      }
	  
	  foreach $fntu (@alldtfiles)
	  {
		$code = $fntu;
		#print "DEBUG - code $code <br>";
		$lmn = "";
		$img_url = "";
		%NAMES = %blank;
		@emails = @blank;
		@last_visit = @blank;
		@sub_names = @blank;
		$endroit = $endroitupdt;
		$endroit =~ s/\s$//g;
		$endroit =~ s/\n//g;
		$num = $code;
		&addtofrt;
	  }	
	  
	&upt_frtdatas;
	#print "DEBUG";
    &upt_frtpg;
	&error("La liste des destinations a été mise à jour");
  }
# block spam
#&filter_banned;

if($fct)
{
  #&error($fct);
  if($fct eq "sug_form")
  {
    &sug_form;
  }
  if($fct eq "sub_photos")
  {
    &sub_photos;
  }
  if($fct eq "add_photos")
  {
    &add_photos;
  }
  if($fct eq "add_infos_form")
  {
    &add_infos_form;
  }
  #&debug("locmap = $locmap & fct = $fct");
  if($fct eq "addmap")
  {
    $updater = 1;
	if($locmap ne "update" && $locmap ne "updateall")
	{
	  $locmap =~ s/\s$//g;
	  $locmap =~ s/\n//g;
	  &add_datas;
	}
	if($locmap eq "updateall")
	{
      
	  print "Content-type: text/html\n\n";
	  unlink ("$basedir/$front_datas");
#	  open(MAINFRONT,">$basedir/$front_datas") || die $!;
#       print MAINFRONT "";
#  	  close (MAINFRONT);
	  opendir DATASDIR, "$basedir/$datas_dir" or die "Can't open directory $dir: $!\n";
      while ($files = readdir DATASDIR)
      {
        $files =~ tr/A-Z/a-z/;
	    if($files =~ /\.txt/)
	    {
          $files =~ s/\.txt//g;
		  push(@alldtfiles, $files);
	    }
      }
	  foreach $fntu (@alldtfiles)
	  {
	    $code = $fntu;
		print "DEBUG3 - $code start <br>";
		$lmn = "";
		$img_url = "";
		%NAMES = %blank;
		@emails = @blank;
		@last_visit = @blank;
		@sub_names = @blank;
	    &html_file("$code");
		$endroit = $endroitupdt;
		$endroit =~ s/\s$//g;
		$endroit =~ s/\n//g;
		$num = $code;
		&addtofrt;
		if($info_ky_lk)
		{
		  print "lk: $info_ky_lk<br>";
		}
		print "DEBUG3 - $code fin <br>";
	  }	
	}
	else
	{
	  &html_file("$code");
	}
	$submit = "";
	&upt_frtdatas;
    &upt_frtpg;
    &error("Carte $locmap ajouté au fichier $code");
  }
  exit;
}

if($submit eq "add_infos")
{
  &add_datas;
  &html_file("$code");
  $submit = "";
   
  &upt_frtdatas;
    
  &upt_frtpg;
  &nouveaute;
  &datas_added;
  exit;
}

&get_filenmbr;

&data_file;

&html_file("$num");

&addtofrt;

&upt_frtdatas;

&upt_frtpg;

&nouveaute;

&submited;

#exit;
#&error("$num DONE !");
#ajout aux nouveauté sur page Accueil
#&nouveaute;

#######################
sub parse_form 
{
  local($name,$value);
  if($ENV{'CONTENT_LENGTH'})
  {
    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  }
  else
  {
    $buffer = $ENV{'QUERY_STRING'};
  }
  @pairs = split(/&/, $buffer);
  foreach $pair (@pairs) 
  {
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    # Remove any NULL characters, Server Side Includes
    $value =~ s/\0//g;
    $value =~ s/<!--(.|\n)*-->//g;
#	$value =~ s/(<p>)+/<br>/g;
    if ($allow_html != 1) 
    {
      $value =~ s/<([^>]|\n)*>//g;
    }
    else 
    {
      unless($name eq 'description' || $name eq 'pourvoyeurs' || $name eq 'cartes') 
	  {
        $value =~ s/<([^>]|\n)*>//g;
      }
    }
    $FORM{$name} = $value;
  }
  # Make sure that message fields do not exceed allowed value
  if ($enforce_max_len) 
  {
    foreach $name (keys %max_len) 
	{
      if (length($FORM{$name}) > $max_len{$name}) 
	  {
        if ($enforce_max_len == 2) 
		{ 
		  &error('field_size'); 
	    }
        else 
		{ 
		  $FORM{$name} = sprintf("%.$max_len{$name}s",$FORM{$name}); 
		}
      }
    }
  }
}
###############
# FILTER
sub filter_banned
{
  @banned = ('\[URL=http','meridia','online','cipro','cozaar','celebrex','augmentin','allegra','propecia','buspar');
  
   if ($filter) 
   {
	 foreach $banned_keys (@banned) 
	   {
	     foreach $field_name (keys %FORM)
	     {
	     $check_field = $FORM{$field_name};
		 $banned_keys =~ tr/A-Z/a-z/;
		 $banned_keys =~ s/\n//g;
		 $banned_keys =~ s/\s\n$//g;
		 $banned_keys =~ s/\r//g;
		 
		 $check_field =~ tr/A-Z/a-z/;
		 $check_field =~ s/\n//g;
		 $check_field =~ s/\s\n$//g;
		 $check_field =~ s/\r//g;
		 if($check_field ne "http://"){$scndprev_field = $previous_field;}
		 if($check_field ne "http://"){$previous_field = $check_field;}
		 $check_field_lenght = length ($check_field);
	     if ($check_field ne "sug_form" && ($check_field =~ /$banned_keys/ ||((($previous_field eq $check_field) && ($scndprev_field eq $check_field)) && $check_field_lenght >1 )))
		 {
		   &error("Il n\'est pas possible d\'ajouter ces informations. <a href='mailto:forum\@kayakdemer.net'>Contactez-nous</a> si vous croyez qu\'il s\'agit d\'une erreur"); 
		 }
	   }
     }
   }
 }
###############
# Get Variables
sub get_variables 
{
  
  if($FORM{'map'})
  {
    $map = $FORM{'map'};
  }
  if($FORM{'zoom'})
  {
    $zoom = $FORM{'zoom'};
  }
  if($FORM{'fnum'})
  {
    $fnum = $FORM{'fnum'};
  }
  if($FORM{'carte_infokayak'} =~ /carte.kayakdemer.net/)
  {
    
	$carte_infokayak = $FORM{'carte_infokayak'};
	
	$carte_infokayak =~ s/^\s//g;
	$carte_infokayak =~ s/\s$//g;
	$carte_infokayak =~ s/\n//g;
	$carte_infokayak =~ s/\r//g;
  }
 
  if($map)
  {
    &get_map;
    exit;
  }
   
  if($FORM{'code'})
  {
    $code = $FORM{'code'};
  }
   
  if($FORM{'locmap'})
  {
    $locmap = $FORM{'locmap'};
  }
  
    
  if($FORM{'fct'})
  {
    $fct = $FORM{'fct'};
	return;
  }
  
  if($FORM{'submit_fct'})
  {
	
	$submit = $FORM{'submit_fct'};
  }
  
  if ($FORM{'artgfghv'}) 
  {
    $artgfghv = "$FORM{'artgfghv'}";  
  }
  if ($FORM{'artgfgev'}) 
  {
    $artgfgev = "$FORM{'artgfgev'}";  
  }
    
  $myquery = 'SELECT * FROM form_sid WHERE form_id = "'.$FORM{'form_id'}.'"';
  $execute = $connect_db->query($myquery);
  $hash_ref = $execute->fetchrow_hashref();
  $form_sid_fr_db = $hash_ref->{form_key};
  $execute = $connect_db->query("DELETE FROM form_sid WHERE form_id = '".$FORM{'form_id'}."'");
  
  if($FORM{'form_sid'} != $form_sid_fr_db || !$form_sid_fr_db)
  {
    $connect_db->query("INSERT INTO dest_debug (form_id,form_sid,ghv,gev,REMOTE_ADDR,dest_no,nom) VALUES ('bad:|".$FORM{'form_id'}."|','bad:|$form_sid_fr_db vs ".$FORM{'form_sid'}."|','bad:|$artgfghv|','bad:|$artgfgev|','bad:|".$ENV{"REMOTE_ADDR"}."|','bad:|$code|','bad:|".$FORM{'name'}."|')");
    &error("Un problème d'authentification est survenue. <a href=''>Contactez-nous</a> si vous n'arrivez pas à soumettre de nouvelles infos\n");
	exit;
  }
  else
  {
    $connect_db->query("INSERT INTO dest_debug (form_id,form_sid,ghv,gev,REMOTE_ADDR,dest_no,nom) VALUES ('ok:|".$FORM{'form_id'}."|','ok:|$form_sid_fr_db|','ok:|$artgfghv|','ok:|$artgfgev|','ok:|".$ENV{"REMOTE_ADDR"}."|','ok:|$code|','ok:|".$FORM{'name'}."|')");
  }
  
  if(!$artgfghv || ($artgfghv ne $artgfgev))
  {
    $connect_db->query("INSERT INTO dest_debug (form_id,form_sid,ghv,gev,REMOTE_ADDR,dest_no,nom) VALUES ('bad_code:|".$FORM{'form_id'}."|','bad_code:|$form_sid_fr_db|','bad_code:|$artgfghv|','bad_code:|$artgfgev|','bad_code:|".$ENV{"REMOTE_ADDR"}."|','bad_code:|$code|','bad_code:|".$FORM{'name'}."|')");
	&error('Entrez le bon code de confirmation pour valider votre message !');
	exit;
  }  
  else
  {
    $connect_db->query("INSERT INTO dest_debug (form_id,form_sid,ghv,gev,REMOTE_ADDR,dest_no,nom) VALUES ('ok_code:|".$FORM{'form_id'}."|','ok_code:|$form_sid_fr_db|','ok_code:|$artgfghv|','ok_code:|$artgfgev|','ok_code:|".$ENV{"REMOTE_ADDR"}."|','ok_code:|$code|','ok_code:|".$FORM{'name'}."|')");
  }
  
  $connect_db->query("INSERT INTO dest_debug (form_id,form_sid,ghv,gev,REMOTE_ADDR,dest_no,nom) VALUES ('passed:|".$FORM{'form_id'}."|','passed:|$form_sid_fr_db|','passed:|$artgfghv|','passed:|$artgfgev|','passed:|".$ENV{"REMOTE_ADDR"}."|','passed:|$code|','passed:|".$FORM{'name'}."|')");
    
  if ($FORM{'endroit'}) 
  {
    $endroit = "$FORM{'endroit'}";
	$endroit =~ s/^\s//g;
	$endroit =~ s/\s$//g;
	$endroit =~ s/\n//g;
    $endroit =~ s/\&/\&amp\;/g;
    $endroit =~ s/"/\&quot\;/g;   
  }
  elsif($submit != 'add_infos')
  {
    &error("Vous devez indiquer le nom du plan d\'eau");
  }

  if ($FORM{'endroit_add'}) 
  {
    $endroit_add = "$FORM{'endroit_add'}";   
  }
  if ($FORM{'localisation'}) 
  {
    $localisation = "$FORM{'localisation'}";
	$localisation =~ s/\n$//g;
    $localisation =~ s/\&/\&amp\;/g;
    $localisation =~ s/"/\&quot\;/g;   
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez indiquer la localisation du plan d\'eau");
  }
  if ($FORM{'region'}) 
  {
    $region = "$FORM{'region'}";  
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez séléctionner la région");
  }
  if ($FORM{'maree'}) 
  {
    $maree = "$FORM{'maree'}";  
  }
  if ($FORM{'maree_com'}) 
  {
    $maree_com = "$FORM{'maree_com'}";  
  }
  if ($FORM{'derniere_visite'}) 
  {
    $derniere_visite = "$FORM{'derniere_visite'}";  
  }
  if ($FORM{'acces'}) 
  {
    $acces = "$FORM{'acces'}";  
  }
  if ($FORM{'cartes'}) 
  {
    $cartes = "$FORM{'cartes'}";  
  }
  if ($FORM{'pourvoyeurs'}) 
  {
    $pourvoyeurs = "$FORM{'pourvoyeurs'}";  
  }
  if ($FORM{'faune'}) 
  {
    $faune = "$FORM{'faune'}";
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez évaluer le niveau d\'intérêt de la faune");
  }
  if ($FORM{'especes'}) 
  {
    $especes = "$FORM{'especes'}";
  }
  if ($FORM{'flore'}) 
  {
    $flore = "$FORM{'flore'}";
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez évaluer le niveau d\'intérêt de la flore");
  }
  if ($FORM{'paysages'}) 
  {
    $paysages = "$FORM{'paysages'}";
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez évaluer le niveau d\'intérêt des paysages");
  }
  if ($FORM{'difficulte'}) 
  {
    $difficulte = "$FORM{'difficulte'}";
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez évaluer le niveau de difficulté de ce plan d\'eau");
  }
  if ($FORM{'interet'}) 
  {
    $interet = "$FORM{'interet'}";
  }
  elsif($submit != 'add_infos') 
  {
    &error("Vous devez évaluer le niveau d\'intérêt général");
  }
  if ($FORM{'camping'}) 
  {
    $camping = "$FORM{'camping'}";
  }
  if ($FORM{'camping_dtls'}) 
  {
    $camping_dtls = "$FORM{'camping_dtls'}";
	$camping_dtls =~ s/\n$//g;
  }
  if ($FORM{'description'}) 
  {
    $description = "$FORM{'description'}";
	$description =~ s/\n$//g;
	$description =~ s/\n/<br>/g;
    $description =~ s/\s$//g;
	$description =~ s/\n//g;
	$description =~ s/(<br>)+/<br>/g;
	$description =~ s/(<p>)+/<br>/g;
    $description =~ s/&lt;/</g;
    $description =~ s/&gt;/>/g;
    $description =~ s/&quot;/"/g;
  }
  if ($FORM{'image_url'} && $FORM{'image_url'} ne 'http://') 
  {
    $image_url = "$FORM{'image_url'}";
  }
  if ($FORM{'url1'} && $FORM{'url1'} ne 'http://') 
  {
    $url1 = "$FORM{'url1'}";
  }
  if ($FORM{'url2'} && $FORM{'url2'} ne 'http://') 
  {
    $url2 = "$FORM{'url2'}";
  }
  if ($FORM{'url3'} && $FORM{'url3'} ne 'http://') 
  {
    $url3 = "$FORM{'url3'}";
  }
  if ($FORM{'url4'} && $FORM{'url4'} ne 'http://') 
  {
    $url4 = "$FORM{'url4'}";
  }
  if ($FORM{'url5'} && $FORM{'url5'} ne 'http://') 
  {
    $url5 = "$FORM{'url5'}";
  }
  if ($FORM{'email'} =~ /.*\@.*\..*/) 
  {
    $email = "$FORM{'email'}";
  }
  if ($FORM{'name'}) 
  {
    $name = "$FORM{'name'}";
    $name =~ s/"//g;
    $name =~ s/<//g;
    $name =~ s/>//g;
    $name =~ s/\&//g;
  }
  else 
  {
	$keep_error = "yes";
	&error("Vous devez inscrire votre nom ou un pseudonyme");
  }
  
  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
  $month = ($mon + 1);
  @months = ("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre");
  $year += 1900;
  $long_date = sprintf("%02d %s %4d",$mday,$months[$mon],$year);
  $year %= 100;
  if ($use_time == 1) 
  {
    $date = sprintf("%02d:%02d:%02d %02d/%02d/%02d",$hour,$min,$sec,$month,$mday,$year);
  }
  else 
  {
    $date = sprintf("%02d/%02d/%02d",$mday,$month,$year);
  }
}
############
sub get_filenmbr 
{
  open(NUMBER,"$basedir/$destnmbrfile");
    $num = <NUMBER>;
  close(NUMBER);
  open(NUMBER,">$basedir/$destnmbrfile");
    $inc_num = $num;
	$inc_num++;
	print NUMBER "$inc_num";
  close(NUMBER);
}
##########
sub sug_form
{
  open(MAIN,"$basedir/$sug_form_templ") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
  $code_sid = int(rand 999999);
  print "Content-type: text/html\n\n";
  foreach $tl (@templatelns)
  {
    if($tl =~ /<!--id-->/)
	{
	  print "<input type=\"hidden\" name=\"code\" value=\"$code_sid\">\n";
	}
	elsif($tl =~ /<!--photo_link-->/)
	{
	  print "[ <a href=\"javascript\:openWindow\(\'http://www.kayakdemer.net/cgi-bin2/destinations.pl\?fct=sub_photos&code=$code_sid\',350,400)\"><b>XSoumettre des photos prises &agrave; cet endroit</b></a> ]\n";
	}
	else
	{
	  print $tl;
	}
  }
}
##############
sub sub_photos
{
  open(MAIN,"$basedir/$sub_photos_templ") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
  print "Content-type: text/html\n\n";
  foreach $tl (@templatelns)
  {
    if($tl =~ /<!--code-->/)
	{
	  print "<input type=\"hidden\" name=\"code\" value=\"$code\">\n";
	}
	else
	{
	  print $tl;
	}
  }
}
#############
sub add_photos
{
  open(MAIN,"$basedir/$sub_photos_templ") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
  print "Content-type: text/html\n\n";
  foreach $tl (@templatelns)
  {
    if($tl =~ /<!--code-->/)
	{
	  print "<input type=\"hidden\" name=\"code\" value=\"$code\">\n";
	}
	else
	{
	  print $tl;
	}
  }
}
##############
sub data_file
{
#  &error($carte_infokayak); 
  
  opendir PHOTOSDIR, "$basedir/$new_photos_dir" or die "Can't open directory $dir: $!\n";
  while ($files = readdir PHOTOSDIR)
  {
   $files =~ tr/A-Z/a-z/;
	if($files =~ /\.txt/)
	{
      $allfiles{$files}=1;
	}
  }
  $codefile="$code\.txt";
  if($allfiles{$codefile})
  {
    open(MAIN,"$basedir/$new_photos_dir/$code\.txt") || die $!;
      @photos = <MAIN>;
    close(MAIN);
    unlink ("$basedir/$new_photos_dir/$code\.txt");
  }
  mkdir "$basedir/photos/$num", 0755 || die $!;
  mkdir "$basedir/photos/$num/thumbs", 0755 || die $!;
  use GD;
  GD::Image->trueColor(1);
  if($photos[0])
  {
    use File::Copy;
	foreach $pn (@photos)
	{
	  $pn =~ s/\n//g;
	  copy("$basedir/$new_photos_dir/$pn","$basedir/photos/$num/$pn");
	  unlink ("$basedir/$new_photos_dir/$pn");
	  &resize_img;
	}
  }
  open(NEWFILE,">$basedir/$datas_dir/$num\.txt") || die $!;
    print NEWFILE "<!--locmap-->\n";
	print NEWFILE "<!--carte_infokayak-->\n";
	if($carte_infokayak)
	{
	  print NEWFILE "$carte_infokayak"."&r=$code\n";
	}
	
    print NEWFILE "<!--endroit-->\n";
	$endroit =~ s/\s$//g;
	$endroit =~ s/\n//g;
	print NEWFILE "$endroit\n";
	print NEWFILE "<!--region-->\n";
	print NEWFILE "$region\n";
	print NEWFILE "<!--localisation-->\n";
	print NEWFILE "$localisation\n";
	print NEWFILE "<!--maree-->\n";
	if($maree)
	{
	  print NEWFILE "$maree\n";
	}  
	print NEWFILE "<!--maree_com-->\n";
	if($maree_com)
	{
	  print NEWFILE "$maree_com\n";
	}  
	print NEWFILE "<!--acces-->\n";
	if($acces)
	{
	  print NEWFILE "$acces\n";
	}  
	print NEWFILE "<!--cartes-->\n";
	if($cartes)
	{
	  print NEWFILE "$cartes\n";
	}  
	print NEWFILE "<!--pourvoyeurs-->\n";
	if($pourvoyeurs)
	{
	  print NEWFILE "$pourvoyeurs\n";
	}  
	print NEWFILE "<!--faune-->\n";
	print NEWFILE "$faune|\n";
	print NEWFILE "<!--especes-->\n";
	if($especes)
	{
	  print NEWFILE "$especes\n";
	}  
	print NEWFILE "<!--flore-->\n";
	print NEWFILE "$flore|\n";
	print NEWFILE "<!--paysages-->\n";
	print NEWFILE "$paysages|\n";
	print NEWFILE "<!--difficulte-->\n";
	print NEWFILE "$difficulte|\n";
	print NEWFILE "<!--interet-->\n";
	print NEWFILE "$interet|\n";
	print NEWFILE "<!--camping-->\n";
	if($camping)
	{
	  print NEWFILE "$camping|\n";
	}  
	print NEWFILE "<!--camping_dtls-->\n";
	if($camping_dtls)
	{
	  print NEWFILE "$camping_dtls\n";
	}  
	print NEWFILE "<!--description-->\n";
	if($description)
	{
	  print NEWFILE "$description\n";
	}  
	print NEWFILE "<!--urls-->\n";
	if($url1)
	{
	  print NEWFILE "$url1\n";
	}
	if($url2)
	{
	  print NEWFILE "$url2\n";
	}
	if($url3)
	{
	  print NEWFILE "$url3\n";
	}
	if($url4)
	{
	  print NEWFILE "$url4\n";
	}
	if($url5)
	{
	  print NEWFILE "$url5\n";
	}
	print NEWFILE "<!--image_url-->\n";
	if($image_url)
	{
	  print NEWFILE "$image_url\n";
	}
	print NEWFILE "<!--photos-->\n";
	foreach $pt (@photos)
	{
		$pt =~ s/\n//g;
		print NEWFILE "$pt\n";
	}
	print NEWFILE "<!--derniere_visite-->\n";
	if($derniere_visite)
	{
	  print NEWFILE "$derniere_visite\n";
	}
	else
	{
	  print NEWFILE "novisit\n";
	}
	print NEWFILE "<!--name-->\n";
	print NEWFILE "$name\n";
	print NEWFILE "<!--email-->\n";
	if($email)
	{
	  print NEWFILE "$email\n";
	}
	else
	{
	  print NEWFILE "nomail\n";
	}
	print NEWFILE "<!--fin-->";
  close(NEWFILE);
}
###########
sub addtofrt
{
  open(MAINFRONT,">>$basedir/$front_datas") || die $!;
    $region_fn =~ s/\s$//g;
	$region_fn =~ s/\n//g;
	print MAINFRONT "$num|$endroit|$region_fn\n";
  close (MAINFRONT);
}
############
sub html_file
{
  $rt = 1;
  $rt_aft =1;
  $img_url="";
  $html_num = $_[0];
  $info_ky_lk = "";
  open(MAIN,"$rootdir/$regions_sd/$regions_file") || die $!;
    @regions = <MAIN>;
  close(MAIN);
  foreach $rg (@regions)
  {
    ($rg_srt,$rg_lg)=split(/\|/,$rg);
	$REGION{$rg_srt}=$rg_lg;
  }
  open(MAIN,"$basedir/$template") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
#  &error(449);
#  &debug("$basedir/$datas_dir/$html_num\.txt");
  open(MAIN,"$basedir/$datas_dir/$html_num\.txt") || die $!;
    @dataslns = <MAIN>;
  close(MAIN);
  open(MAIN,">$basedir/$html_dir/$html_num\.php") || die $!;
    foreach $tl (@templatelns)
	{
	  if($tl =~ /<!--start-->/)
	  {
	    print MAIN "<div align=\"right\"><A HREF=\"http://www.kayakdemer.net/cgi-bin2/destinations.pl\?fct=add_infos_form\&code=$html_num\" \n";
		print MAIN "ONMOUSEOVER=\"changeImages(\'bouton_01\', \'http://www.kayakdemer.net/destinations/images/bouton_01\-over.gif\')\; return true\;\"\n";
		print MAIN "ONMOUSEOUT=\"changeImages(\'bouton_01\', \'http://www.kayakdemer.net/destinations/images/bouton_01.gif\')\; return true\;\">\n";
		print MAIN "<IMG NAME=\"bouton_01\" SRC=\"http://www.kayakdemer.net/destinations/images/bouton_01.gif\" WIDTH=183 HEIGHT=22 BORDER=0></A></div>\n";
		print MAIN "<table border=\"0\" cellspacing=\"2\" cellpadding=\"0\"><tr><td width=\"140\">\n";
		foreach $dl (@dataslns)
		{
		  if($dl =~ /<!--/)
		  {
		    $prev_sect = $section;
			$nmbrlt = length ($dl)-(length ($dl)-index ($dl,'-->'))-4;
			$section = substr($dl, 4, $nmbrlt);
			$sect_title = $TITLES{$section};
			if ($prev_sect eq "photos")
			{
			  print MAIN "<blockquote><font size=-2><a href=\'http://www.kayakdemer.net/cgi-bin2/destinations.pl?fct=add_infos_form&code=$html_num\#addphotos\'>[ ajouter des photos prises à cet endroit ]</a></font></blockquote>\n";
			}
			if($prev_sect eq "email")
			{
			  &print_names;
			}
			if($section eq "faune" || $section eq "flore" || $section eq "paysages" || $section eq "interet" || $section eq "difficulte")
			{
			  $rt_aft = 0;
			}
			if($prev_sect eq "pourvoyeurs")
			{
			  print MAIN "<blockquote><font size=-2><a href=\'http://www.kayakdemer.net/services/services.pl\?rg_sel=$region_srt\&tous_serv=on\'>Consulter la section de services pour cette région</a></font></blockquote>\n";
			  $rt = 0;
			}
			if($sect_title)
			{
			  if($rt)
			  {
			    print MAIN "<br>";
			  }
			  else
			  {
			    $rt = 1;
			  }
			  if ($section ne "especes")
			  {
			    print MAIN "<img src=\'http://www.kayakdemer.net/destinations/point_s.gif'> ";
			  }
			  print MAIN "<b>$sect_title:</b>\n";
			  if($rt_aft)
			  {
			    print MAIN "<br>";
			  }
			  else
			  {
			    $rt_aft = 1;
			  }
			}
			if($prev_sect eq "image_url" && $img_url)
			{
			  print MAIN "<a href=\"javascript:openWindow(\'$img_url\',350,400)\"><img src=\'$img_url\' width=100 height=100></a>\n";
			}
		  }
		  else
		  {
		    if($section eq "locmap")
			{
			  $dl =~ s/\s$//g;
			  $dl =~ s/\n//g;
			  $lmn = $dl;
			}
			elsif($section eq "carte_infokayak")
			{
			  print MAIN "<a href=\"$dl\"><img src=\"http://www.kayakdemer.net/destinations/images/carte_infokayak_logo.gif\" height=\"138\" width=\"138\" border=\"0\"></a>\n";
 			  $info_ky_lk = $dl;
			}
			elsif($section eq "endroit")
			{
			  $endroitupdt = $dl;
			  if($lmn)
			  {
			    print MAIN "</td><td width=\"20\"></td><td align=\"center\"><font size=+2><a href=\"\#\" onclick=\"javascript\:openWindow(\'http\://www.kayakdemer.net/cgi-bin2/destinations.pl\?map=$lmn\&zoom=out\&fnum=$html_num\',630,525\)\">$dl</a></font><br>\n";
			  }
			  else
			  {
			    print MAIN "</td><td width=\"20\"></td><td align=\"center\"><font size=+2>$dl</font><br>\n";
			  } 
			}
			elsif($section eq "region")
			{
			  $dl =~ s/\s$//g;
			  $dl =~ s/\n//g;
			  $region_fn = $REGION{$dl};
			  $region_srt = $dl;
			  print MAIN "$region_fn\n";
			  print MAIN "</td></tr></table>\n";
			  
			}
			elsif($section eq "pourvoyeurs")
			{
			  print MAIN "$dl<br>\n";
			}
			elsif($section eq "faune" || $section eq "flore" || $section eq "paysages" || $section eq "interet" || $section eq "difficulte")
			{
			  $dl =~ s/\n//g;
			  (@numbers)=split(/\|/,$dl);
			  &moyenne;
			  print MAIN " $moyenne/5<br>\n";
			}
			elsif($section eq "camping_dtls")
			{
			  print MAIN "$dl<br>\n";
			}
			elsif($section eq "camping")
			{
			  $dl =~ s/\n//g;
			  (@answers)=split(/\|/,$dl);
			  &get_fnlansw;
			  print MAIN "$fnlansw<br>\n";
			}
			elsif($section eq "name")
			{
			  $dl =~ s/\n//g;
			  push(@sub_names,$dl);
			}
			elsif($section eq "image_url")
			{
			  $dl =~ s/\n//g;
			  $img_url = $dl;
			}
			elsif($section eq "photos")
			{
			  $dl =~ s/\n//g;	
			  print MAIN "<a href=\"javascript:openWindow(600,800,\'$baseurl/photos/$html_num/$dl\')\"><img src=\'$baseurl/photos/$html_num/thumbs/$dl\'></a>\n";
			}
			elsif($section eq "urls")
			{
			  $dl =~ s/\n//g;
			  $longurl=length ($dl);
			  if($longurl<70)
      		  {
        	    $cuturl = $dl;
      		  }
      		  else
	  		  {
        	    $cuturl = substr($dl, 0, 70).'...';
      		  }
			  print MAIN "<a href=\'$dl\' target=\'_blank\'>$cuturl</a><br>\n";
			}
			elsif($section eq "derniere_visite")
			{
			  $dl =~ s/\n//g;
			  push(@last_visit,$dl);
			}
			elsif($section eq "email")
			{
			  $dl =~ s/\n//g;
			  push(@emails,$dl);
			}
			else
			{
			   print MAIN "$dl<br>\n";
			}
		  }
		}
		print MAIN "<div align=\"right\"><A HREF=\"http://www.kayakdemer.net/cgi-bin2/destinations.pl\?fct=add_infos_form\&code=$html_num\" \n";
		print MAIN "ONMOUSEOVER=\"changeImages(\'bouton_02\', \'http://www.kayakdemer.net/destinations/images/bouton_01\-over.gif\')\; return true\;\"\n";
		print MAIN "ONMOUSEOUT=\"changeImages(\'bouton_02\', \'http://www.kayakdemer.net/destinations/images/bouton_01.gif\')\; return true\;\">\n";
		print MAIN "<IMG NAME=\"bouton_02\" SRC=\"http://www.kayakdemer.net/destinations/images/bouton_01.gif\" WIDTH=183 HEIGHT=22 BORDER=0></A></div>\n";
	  }
	  else
	  {
	    print MAIN "$tl";
	  }
	}
  close(MAIN);
}
##########
sub print_names
{
  $nn=0;
  foreach $sn (@sub_names)
  {
    $emailx = $emails[$nn];
	$lvx = $last_visit[$nn];
	$lvx =~ s/\s$//g;
	$lvx =~ s/\n//g;
	$sn =~ s/\s$//g;
	$sn =~ s/\n//g;
	if(!($NAMES{"$sn"}))
	{
	  $emailx =~ s/\s$//g;
	  $emailx =~ s/\n//g;
	  if($emailx ne "nomail")
	  {
	    print MAIN "<a href=\'mailto:$emailx\'>$sn</a>";
	    if($lvx ne "novisit")
	    {
	      print MAIN " <font size=-2>(Dernière visite à cet endroit : $lvx)</font>";
	    }
	    print MAIN "<br>\n";
	  }
	  else
	  {
	    print MAIN "$sn";
	    if($lvx ne "novisit")
	    {
	      print MAIN " <font size=-2>(Dernière visite à cet endroit : $lvx)</font>";
	    }
	    print MAIN "<br>\n";
	  }
	}
	$NAMES{"$sn"} = 1;
	++$nn;
  }
}
##########
sub moyenne
{
  
  $nn = 0;
  $ttl = 0;
  foreach $nmb (@numbers)
  {
    $nmb =~ s/\s$//g;
	$nmb =~ s/\n//g;
	if($nmb)
	{
	  ++$nn;
	  $ttl = $ttl + $nmb;
	}
  }
  if($nn > 0)
  {
    $moyenne = (int(($ttl/$nn)*10))/10;
  }
}

##########
sub get_fnlansw
{
  $camp_oui = 0;
  $camp_non = 0;
  $camp_dif = 0;
  $answers = 0;
  foreach $answ (@answers)
  {
    if($answ eq "Oui")
	{
	  ++$camp_oui;
	}
	elsif($answ eq "Non")
	{
	  ++$camp_non;
	}
	else
	{
	  ++$camp_dif;
	}
	++$answers;
  }
  if(($camp_oui - $answers) == 0)
  {
    $fnlansw = "Oui";
  }
  elsif(($camp_non - $answers) == 0)
  {
    $fnlansw = "Non";
  }
  elsif(($camp_dif - $answers) == 0)
  {
    $fnlansw = "Difficile";
  }
  else
  {
    $fnlansw = "Incertain ($camp_oui Oui\, $camp_non Non\, $camp_dif Difficile)";
  }
}
###################
sub resize_img
{
  $image_init = newFromJpeg GD::Image("$basedir/photos/$num/$pn");
  ($width,$height) = $image_init->getBounds();
  $reduction = 100/$width;
  $width_t = 100;
  $height_t = int($height * $reduction);
  if($height_t > 100)
  {
	$reduction = 100/$height;
    $height_t = 100;
	$width_t = int($width * $reduction);
  }
  $thumfinal = new GD::Image(100,100);
  $x_dep = 0;
  $y_dep = 0;
  if($width_t < 100)
  {
    $x_dep = int((100-$width_t)/2);
  }
  if($height_t < 100)
  {
    $y_dep = int((100-$height_t)/2);
  }	
  $thumfinal->copyResized($image_init,$x_dep,$y_dep,0,0,$width_t,$height_t,$width,$height);
  open (THUMB, ">$basedir/photos/$num/thumbs/$pn") || die "cant create small file $smallfilename";
    binmode THUMB;
    print THUMB $thumfinal->jpeg;
  close (THUMB);
}
###############
sub add_infos_form
{
  open(MAIN,"$basedir/$add_form_templ") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
  open(MAIN,"$basedir/$datas_dir/$code\.txt") || die $!;
    @dataslns = <MAIN>;
  close(MAIN);
  open(MAIN,"$rootdir/$regions_sd/$regions_file") || die $!;
    @regions = <MAIN>;
  close(MAIN);
  foreach $rg (@regions)
  {
    ($rg_srt,$rg_lg)=split(/\|/,$rg);
	$REGION{$rg_srt}=$rg_lg;
  }
  print "Content-type: text/html\n\n";
  foreach $tl (@templatelns)
  {
	if($tl =~ /<!--back-->/)
	{
	  print "<div align=\"left\"><A HREF=\"http://www.kayakdemer.net/destinations/html_files/$code.php\" \n";
	  print "ONMOUSEOVER=\"changeImages(\'back_01\', \'http://www.kayakdemer.net/destinations/images/back_01\-over.gif\')\; return true\;\"\n";
	  print "ONMOUSEOUT=\"changeImages(\'back_01\', \'http://www.kayakdemer.net/destinations/images/back_01.gif\')\; return true\;\">\n";
	  print "<IMG NAME=\"back_01\" SRC=\"http://www.kayakdemer.net/destinations/images/back_01.gif\" WIDTH=72 HEIGHT=40 BORDER=0></A></div>\n";
	}
	elsif($tl =~ /<!--start-->/)
	{
	  print "<input type=\"hidden\" name=\"submit_fct\" value=\"add_infos\">\n";
	  print "<input type=\"hidden\" name=\"code\" value=\"$code\">\n";
	}
	elsif($tl =~ /<!--endroit-->/)
	{
	  &get_datas('endroit');
	  print "<font color=\"0000FF\"><i>@datas[0]</i></font><br>\n";
	  print "<input type=\"hidden\" name=\"endroit_add\" value=\"@datas[0]\">\n";
	}
	elsif($tl =~ /<!--localisation-->/)
	{
	  &get_datas('localisation');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--region-->/)
	{
	  &get_datas('region');
	  $datas[0] =~ s/\s$//g;
	  $datas[0] =~ s/\n//g;
	  $rsn = @datas[0];
	  $rfn = $REGION{$rsn};
	  print "<font color=\"0000FF\"><i>$rfn</i></font><br>\n";
	}
	elsif($tl =~ /<!--maree-->/)
	{
	  &get_datas('maree');
	  print "<font color=\"0000FF\"><i>@datas[0]</i></font><br>\n";
	}
	elsif($tl =~ /<!--maree_com-->/)
	{
	  &get_datas('maree_com');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--acces-->/)
	{
	  &get_datas('acces');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--cartes-->/)
	{
	  &get_datas('cartes');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--carte_infokayak-->/)
	{
	  &get_datas('carte_infokayak');
	  $carteik_url = $datas[0];
	  if(!($carteik_url) || $carteik_url eq "http://")
	  {
	    print "<b>Lien vers la carte Infokayak pour cette r&eacute\;gion (facultatif)<br>\n";
		print "</b><a href=\"http://www.kayakdemer.net/destinations/carte_infokayak.php\" target=\"_blank\">Rendez-vous &agrave\; la carte</a>, d&eacute\;placez vous et faites le zoom afin que seule cette r&eacute\;gion apparaisse, cliquez sur Mixte (en haut et &agrave\; droite de la carte), copiez l'adresse de la carte qui appara&icirc;t sous la l&eacute\;gende et entrez l&agrave\; ci-dessous <b><br>\n";
		print "<input type=\"text\" name=\"carte_infokayak\" value=\"http://\" size=\"90\" border=\"0\"></b>\n";
	  }
	}
	elsif($tl =~ /<!--pourvoyeurs-->/)
	{
	  &get_datas('pourvoyeurs');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--especes-->/)
	{
	  &get_datas('especes');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--camping_dtls-->/)
	{
	  &get_datas('camping_dtls');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--description-->/)
	{
	  &get_datas('description');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--image_url-->/)
	{
	  &get_datas('image_url');
	  foreach $dl (@datas)
	  {
	    print "<font color=\"0000FF\"><i>$dl</i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--form_id-->/)
	{
	  use Digest::MD5 qw(md5 md5_hex md5_base64);
	  $sid = md5_hex(rand(9999999));
	  print '<input type="hidden" name="form_id" id="form_id" value="'.$sid.'">';
	}
	elsif($tl =~ /<!--urls-->/)
	{
	  &get_datas('urls');
	  foreach $dl (@datas)
	  {
	    $longurl=length ($dl);
	    if($longurl<70)
      	{
          $cuturl = $dl;
      	}
      	else
	  	{
          $cuturl = substr($dl, 0, 70).'...';
      	}
		print "<font color=\"0000FF\"><i><a href=\"$dl\" target=\"_blank\">$cuturl</a></i></font><br>\n";
	  }
	}
	elsif($tl =~ /<!--photo_link-->/)
	{
	  print "[ <a href=\"javascript\:openWindow\(\'http://www.kayakdemer.net/cgi-bin2/destinations.pl\?fct=add_photos&code=$code\',350,400)\"><b>Soumettre des photos prises &agrave; cet endroit</b></a> ]\n";
	}
	else
	{
	  print $tl;
	}
  }
}
###########
sub upt_frtdatas
{
  open(MAIN,"$rootdir/$regions_sd/$regions_file") || die $!;
    @regions = <MAIN>;
  close(MAIN);
  foreach $rg (@regions)
  {
    ($rg_srt,$rg_lg)=split(/\|/,$rg);
	$REGION{$rg_srt}=$rg_lg;
  }
  
  open(MAIN,"$basedir/$front_datas") || die $!;
    @frtdats = <MAIN>;
  close(MAIN);
  
  open(MAIN,">$basedir/$front_datas") || die $!;
  @all_dest = sort parreg  @frtdats;
  foreach $pn ( @all_dest)
  {

	@dest_dats = split(/\|/,$pn);
	$dn = @dest_dats[0];
	open(DATAS,"$basedir/$datas_dir/$dn.txt") || die $!;
      @dataslns = <DATAS>;
    close(DATAS);
	&get_datas('endroit');
	$datas[0] =~ s/\s$//g;
	$datas[0] =~ s/\n//g;
	print MAIN "$dn|$datas[0]|";
	&get_datas('region');
	$datas[0] =~ s/\s$//g;
	$datas[0] =~ s/\n//g;
	$regionx=$REGION{$datas[0]};
	$regionx =~ s/\s$//g;
	$regionx =~ s/\n//g;
	print MAIN "$regionx|";
	
	&get_datas('locmap');
	print MAIN "$datas[0]|";
	
	&get_datas('faune');
	
	@numbers = split(/\|/,$datas[0]);
    
	&moyenne;

	print MAIN "$moyenne|";
	&get_datas('flore');
	
	@numbers = split(/\|/,$datas[0]);
	#&moyenne;
	print MAIN "$moyenne|";
	&get_datas('paysages');
	@numbers = split(/\|/,$datas[0]);
	#&moyenne;
	print MAIN "$moyenne|";
	&get_datas('difficulte');
	@numbers = split(/\|/,$datas[0]);
	#&moyenne;
	print MAIN "$moyenne|";
	&get_datas('interet');
	@numbers = split(/\|/,$datas[0]);
	#&moyenne;
	print MAIN "$moyenne|";
	&get_datas('camping');
	$datas[0] =~ s/\s$//g;
	$datas[0] =~ s/\n//g;
	@answers = split(/\|/,$datas[0]);
	&get_fnlansw;
	if($fnlansw eq "Oui" || $fnlansw eq "Difficile")
	{
	  print MAIN "$fnlansw";
	}
	elsif($fnlansw =~ /Incertain/ )
	{
	  print MAIN "Incertain";
	}
	print MAIN "\n";
	
  }
  close(MAIN);
  
}
#########################################
sub parreg
{
  @a = split(/\|/,$a);
  @b = split(/\|/,$b);
  
  $a[2] =~ tr/A-Z/a-z/;
  $a[2] =~ s/é/e/g;
  $a[2] =~ s/ê/e/g;
  $a[2] =~ s/É/e/g;
  $a[2] =~ s/Ê/e/g;
  $a[2] =~ s/Î/i/g;
  $a[2] =~ s/î/i/g;
  $a[2] =~ s/^l'//g;
  $a[2] =~ s/ç/c/g;
  $a[2] =~ s/Ç/C/g;
  $a[2] =~ s/^le //g;
  $a[2] =~ s/^la //g;
  $a[2] =~ s/^les //g;
  
  $b[2] =~ tr/A-Z/a-z/;
  $b[2] =~ s/é/e/g;
  $b[2] =~ s/ê/e/g;
  $b[2] =~ s/É/e/g;
  $b[2] =~ s/Ê/e/g;
  $b[2] =~ s/Î/i/g;
  $b[2] =~ s/î/i/g;
  $b[2] =~ s/^l'//g;
  $b[2] =~ s/ç/c/g;
  $b[2] =~ s/Ç/C/g;
  $b[2] =~ s/^le //g;
  $b[2] =~ s/^la //g;
  $b[2] =~ s/^les //g;
  
  $a[1] =~ tr/A-Z/a-z/;
  $a[1] =~ s/é/e/g;
  $a[1] =~ s/ê/e/g;
  $a[1] =~ s/É/e/g;
  $a[1] =~ s/Ê/e/g;
  $a[1] =~ s/Î/i/g;
  $a[1] =~ s/î/i/g;
  $a[1] =~ s/^l'//g;
  $a[1] =~ s/ç/c/g;
  $a[1] =~ s/Ç/C/g;
  $a[1] =~ s/^le //g;
  $a[1] =~ s/^la //g;
  $a[1] =~ s/^les //g;
  
  $b[1] =~ tr/A-Z/a-z/;
  $b[1] =~ s/é/e/g;
  $b[1] =~ s/ê/e/g;
  $b[1] =~ s/É/e/g;
  $b[1] =~ s/Ê/e/g;
  $b[1] =~ s/Î/i/g;
  $b[1] =~ s/î/i/g;
  $b[1] =~ s/^l'//g;
  $b[1] =~ s/ç/c/g;
  $b[1] =~ s/Ç/C/g;
  $b[1] =~ s/^le //g;
  $b[1] =~ s/^la //g;
  $b[1] =~ s/^les //g;
 
  lc($a[2]) cmp lc($b[2]) || lc($a[1]) cmp lc($b[1]);
}
#########################################
sub parnom
{
  @a = split(/\|/,$a);
  @b = split(/\|/,$b);
  
  $a[1] =~ tr/A-Z/a-z/;
  $a[1] =~ s/é/e/g;
  $a[1] =~ s/ê/e/g;
  $a[1] =~ s/É/e/g;
  $a[1] =~ s/Ê/e/g;
  $a[1] =~ s/Î/i/g;
  $a[1] =~ s/î/i/g;
  $a[1] =~ s/^l'//g;
  $a[1] =~ s/ç/c/g;
  $a[1] =~ s/Ç/C/g;
  $a[1] =~ s/^le //g;
  $a[1] =~ s/^la //g;
  $a[1] =~ s/^les //g;
  
  $b[1] =~ tr/A-Z/a-z/;
  $b[1] =~ s/é/e/g;
  $b[1] =~ s/ê/e/g;
  $b[1] =~ s/É/e/g;
  $b[1] =~ s/Ê/e/g;
  $b[1] =~ s/Î/i/g;
  $b[1] =~ s/î/i/g;
  $b[1] =~ s/^l'//g;
  $b[1] =~ s/ç/c/g;
  $b[1] =~ s/Ç/C/g;
  $b[1] =~ s/^le //g;
  $b[1] =~ s/^la //g;
  $b[1] =~ s/^les //g;
 
  lc($a[1]) cmp lc($b[1]);
}
###########
sub upt_frtpg
{
  open(MAIN,"$basedir/$front_temp") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
  open(MAIN,"$basedir/$front_datas") || die $!;
    @frtdats = <MAIN>;
  close(MAIN);
  open(MAIN,">$basedir/$mainfile") || die $!;
    foreach $tl (@templatelns)
	{
	  if($tl =~ /<!--start-->/)
	  { 
	    foreach $dl (@frtdats)
		{
		  $dl =~ s/\n//g;
		  (my $num,my $endroit,my $region,my $locmap,my $faune,my $flore,my $paysages,my $difficulte,my $interet,my $camping) = split(/\|/,$dl);
		  if($region ne $oldreg)
		  {
		    print MAIN "<tr bgcolor=\"\#f79a22\">\n";
			print MAIN "<td colspan=\"9\"><font size=+1>$region</font></td>";
			print MAIN "</tr>";
			print MAIN "<tr bgcolor=\"\#f79a22\">\n";
			print MAIN "<td colspan=\"9\" align=\"right\"><a href='sug_destination.php'><font color=\"#777777\" size=-1>Ajouter une destination</font></a></td>";
			print MAIN "</tr>";
		  }
		  $oldreg = $region;
		  if($rc)
		  {
		    print MAIN "<tr bgcolor=\"\#99cccc\">\n";
			$rc=0;
		  }
		  else
		  {
		    print MAIN "<tr>\n";
			$rc = 1;
		  }
		  
		  print MAIN "<td width=\"30\" valign=\"top\"><img src=\"compas_small.gif\" width=\"30\" height=\"29\" border=\"0\" align=\"absmiddle\"></td>\n";
		  print MAIN "<td><b><a href=\"html_files/$num.php\">$endroit</a></b><br>\n";
		  print MAIN "<i>$region</i></td>\n";
		  print MAIN "\n";
		  if($locmap)
		  {
		    $locmap =~ s/\s$//g;
			$locmap =~ s/\n//g;
			print MAIN "<td valign=\"top\" align=\"center\"><a href=\"\#\" onclick=\"javascript:openWindow(\'http://www.kayakdemer.net/cgi-bin2/destinations.pl\?map=$locmap\&zoom=out\&fnum=$num\'\,630,525)\"><img src=\"getmap.gif\" width=\"35\" height=\"29\" border=\"0\" alt=\"Localisation\"></a></td>\n";
		  }
		  else
		  {
		    print MAIN "<td></td>\n";
		  }
		  if($faune >= 4)
		  {
		    print MAIN "<td align=\"center\"><img src=\"bird_s.gif\" width=\"30\" height=\"27\" border=\"0\" alt=\"Faune particuli\&egrave\;rement int\&eacute\;ressante\"></td>\n";
		  }
		  else
		  {
		    print MAIN "<td></td>\n";
		  }
		  if($flore >= 4)
		  {
		    print MAIN "<td valign=\"top\" align=\"center\"><img src=\"plant1_s.gif\" width=\"30\" height=\"27\" border=\"0\" alt=\"Flaure particuli\&egrave\;rement int\&eacute\;ressante\"></td>\n";
		  }
		  else
		  {
		    print MAIN "<td></td>\n";
		  }
		  if($paysages >= 4)
		  {
		    print MAIN "<td valign=\"top\" align=\"center\"><img src=\"paysage1_s.gif\" width=\"30\" height=\"27\" border=\"0\" alt=\"Jolies paysages\"></td>\n";
		  }
		  else
		  {
		    print MAIN "<td></td>\n";
		  }
		  print MAIN "<td valign=\"top\" align=\"center\"><img src=\"";
		  if($difficulte < 1.5)
		  {
		    print MAIN "diffic1.gif\" width=\"30\" height=\"30\" border=\"0\" alt=\"Niveau de difficult\&eacute\;: 1/5\"></td>\n";
		  }
		  if($difficulte < 2.5 && $difficulte >= 1.5)
		  {
		    print MAIN "diffic2.gif\" width=\"30\" height=\"30\" border=\"0\" alt=\"Niveau de difficult\&eacute\;: 2/5\"></td>\n";
		  }
		  if($difficulte < 3.5 && $difficulte >= 2.5)
		  {
		    print MAIN "diffic3.gif\" width=\"30\" height=\"30\" border=\"0\" alt=\"Niveau de difficult\&eacute\;: 3/5\"></td>\n";
		  }
		  if($difficulte < 4.5 && $difficulte >= 3.5)
		  {
		    print MAIN "diffic4.gif\" width=\"30\" height=\"30\" border=\"0\" alt=\"Niveau de difficult\&eacute\;: 4/5\"></td>\n";
		  }
		  if($difficulte >= 4.5)
		  {
		    print MAIN "diffic5.gif\" width=\"30\" height=\"30\" border=\"0\" alt=\"Niveau de difficult\&eacute\;: 5/5\"></td>\n";
		  }
		  print MAIN "<td valign=\"top\" align=\"center\"><img src=\"";
		  if($interet < 1.5)
		  {
		    print MAIN "stars1.gif\" width=\"30\" height=\"19\" border=\"0\" alt=\"Intérêt génétal: 1/5\"></td>\n";
		  }
		  if($interet < 2.5 && $interet >= 1.5)
		  {
		    print MAIN "stars2.gif\" width=\"30\" height=\"19\" border=\"0\" alt=\"Intérêt génétal: 2/5\"></td>\n";
		  }
		  if($interet < 3.5 && $interet >= 2.5)
		  {
		    print MAIN "stars3.gif\" width=\"30\" height=\"19\" border=\"0\" alt=\"Intérêt génétal: 3/5\"></td>\n";
		  }
		  if($interet < 4.5 && $interet >= 3.5)
		  {
		    print MAIN "stars4.gif\" width=\"30\" height=\"19\" border=\"0\" alt=\"Intérêt génétal: 4/5\"></td>\n";
		  }
		  if($interet >= 4.5)
		  {
		    print MAIN "stars5.gif\" width=\"30\" height=\"19\" border=\"0\" alt=\"Intérêt génétal: 5/5\"></td>\n";
		  }
		  if($camping eq "Oui")
		  {
		    print MAIN "<td valign=\"top\" align=\"center\"><img src=\"tent_s.gif\" width=\"30\" height=\"28\" border=\"0\" alt=\"Camping possible\"></td>\n";
		  }
		  elsif($camping eq "Difficile")
		  {
		    print MAIN "<td valign=\"top\" align=\"center\"><img src=\"tent_s_excl.gif\" width=\"30\" height=\"28\" border=\"0\" alt=\"Camping difficile\"></td>\n";
		  }
		  elsif($camping eq "Incertain")
		  {
		    print MAIN "<td valign=\"top\" align=\"center\"><img src=\"tent_s_quest.gif\" width=\"30\" height=\"28\" border=\"0\" alt=\"Camping difficile\"></td>\n";
		  }
		  else
		  {
		    print MAIN "<td></td>\n";
		  }
		  print MAIN "</tr>\n";						  
		}
	  }
	  else
	  {
	    print MAIN "$tl";
	  }
	}
  close(MAIN);
}
###########
sub get_datas
{
  $field = $_[0];
  @datas = @blank;
  $load = 0;
  foreach $dl (@dataslns)
  {
    $dl =~ s/\n//g;
	if($dl =~ /<!--/)
    {
	  $nmbrlt = length ($dl)-(length ($dl)-index ($dl,'-->'))-4;
	  $section = substr($dl, 4, $nmbrlt);
	  if($load)
	  {
	    $load = 0;
	  }
	}
	if($load)
	{
	  push(@datas,$dl);
	}
	if($section eq $field)
	{
	  $load = 1;
	}
  }
}
#############
sub add_datas
{
  $datas = 0;
  $pnotrt = 0;
  opendir PHOTOSDIR, "$basedir/$new_photos_dir" or die "Can't open directory $dir: $!\n";
  while ($files = readdir PHOTOSDIR)
  {
    $files =~ tr/A-Z/a-z/;
	if($files =~ /\.txt/)
	{
	  $allfiles{$files}=1;
	}
  }
  $codefile="$code\.txt";
  if($allfiles{$codefile})
  {
    open(MAIN,"$basedir/$new_photos_dir/$code\.txt") || die $!;
      @photos = <MAIN>;
   close(MAIN);
    unlink ("$basedir/$new_photos_dir/$code\.txt");
  }
  use GD;
  GD::Image->trueColor(1);
  if($photos[0])
  {
    use File::Copy;
	foreach $pn (@photos)
	{
	  $pn =~ s/\n//g;
	  copy("$basedir/$new_photos_dir/$pn","$basedir/photos/$code/$pn");
	  unlink ("$basedir/$new_photos_dir/$pn");
	  $num = $code;
	  &resize_img;
	}
  }
  open(MAIN,"$basedir/$datas_dir/$code\.txt") || die $!;
    @dataslns = <MAIN>;
  close(MAIN);
  open(MAIN,">$basedir/$datas_dir/$code\.txt") || die $!;
  foreach $dl (@dataslns)
  {
	if($dl =~ /<!--/)
    {
	  if($datas)
	  {
	    $new_infos = $FORM{$section};
		if($section eq "description")
		{
		  $new_infos =~ s/\n$//g;
		  $new_infos =~ s/\n/<br>/g;
		  $new_infos =~ s/\s$//g;
		  $new_infos =~ s/\n//g;
		  $new_infos =~ s/(<br>)+/<br>/g;
		  $new_infos =~ s/(<p>)+/<br>/g;
		}
		if($section eq "photos")
		{
		  foreach $pt (@photos)
		  {
		    $pt =~ s/\n//g;
			print MAIN "$pt\n";
	      }
		}
		elsif($section eq "locmap")
		{
		    $new_infos =~ s/\s$//g;
			$new_infos =~ s/\n//g;
			print MAIN "$new_infos\n";
		}
		elsif($section eq "carte_infokayak")
		{
			if($new_infos =~ /carte.kayakdemer.net/)
			{
			  print MAIN "$new_infos"."&r=$code\n";
			}
		}
		elsif($section eq "urls")
		{
		  if($FORM{'url1'} && $FORM{'url1'} ne "http://")
		  {
		    $new_infos = $FORM{'url1'};
			print MAIN "$new_infos\n";
		  }
		  if($FORM{'url2'} && $FORM{'url2'} ne "http://")
		  {
		    $new_infos = $FORM{'url2'};
			print MAIN "$new_infos\n";
		  }
		  if($FORM{'url3'} && $FORM{'url3'} ne "http://")
		  {
		    $new_infos = $FORM{'url3'};
			print MAIN "$new_infos\n";
		  }
		  if($FORM{'url4'} && $FORM{'url4'} ne "http://")
		  {
		    $new_infos = $FORM{'url4'};
			print MAIN "$new_infos\n";
		  }
		  if($FORM{'url5'} && $FORM{'url5'} ne "http://")
		  {
		    $new_infos = $FORM{'url5'};
			print MAIN "$new_infos\n";
		  }
		}
		elsif($section eq "faune" || $section eq "flore" || $section eq "paysages" || $section eq "difficulte" || $section eq "interet" || $section eq "camping")
		{
		  print MAIN "$new_infos|\n";
		  $pnotrt = 0;
	    }
		elsif($section eq "email")
		{
		  $new_infos =~ s/\n//g;
		  if(!($new_infos))
		  {
		    print MAIN "nomail\n";
		  }
		  else
		  {
		    print MAIN "$new_infos\n";
		  }
		}
		elsif($section eq "derniere_visite")
		{
		  if(!($new_infos))
		  {
		    print MAIN "novisit\n";
		  }
		  else
		  {
		    print MAIN "$new_infos\n";
		  }
		}
		else
		{
		  if($section eq "cartes" || $section eq "locmap" || $section eq "pourvoyeurs" || $section eq "especes" || $section eq "email" || $section eq "name" || $section eq "derniere_visite" || $section eq "image_url")
		  {
		    print MAIN "$new_infos\n";
		  }
		  else
		  {
		    print MAIN "---\n$new_infos\n";
		  }
		}
		$datas=0;
	  }
	  $nmbrlt = length ($dl)-(length ($dl)-index ($dl,'-->'))-4;
	  $section = substr($dl, 4, $nmbrlt);
	  if($section eq "carte_infokayak")
	  {
	    $cartinfokayak_pres = 1;
	  }
	  if($section eq "endroit" && $dl =~ /<!--/ && !($cartinfokayak_pres))
	  {
		print MAIN "<!--carte_infokayak-->\n";
		$cik_url = $FORM{'carte_infokayak'};
		if($cik_url)
		{
		  if($cik_url =~ /carte.kayakdemer.net/)
		  {
		    $cik_url =~ s/\s$//g;
		    $cik_url =~ s/\n//g;
		    print MAIN "$cik_url"."&r=$code\n";
		  }
		}
	  }
	  if(($FORM{$section} && $FORM{$section} ne "http://") || $section eq "urls" || $section eq "photos" || $section eq "email" || $section eq "derniere_visite")
	  {
	    $datas = 1;
	  }
	  else
	  {
	    $datas = 0;
	  }
	  if($pnotrt)
	  {
	    print MAIN "\n";
		$pnotrt = 0;
	  }
	  print MAIN "$dl";
	}
	elsif($section eq "faune" || $section eq "flore" || $section eq "paysages" || $section eq "difficulte" || $section eq "interet" || $section eq "camping")
	{
	  $dl =~ s/\s$//g;
	  $dl =~ s/\n//g;
	  print MAIN "$dl";
	  $pnotrt = 1;
	}
	else
	{
	  print MAIN "$dl";
	}
  }
  close(MAIN);
}
#######################################
sub submited 
{
  open(MAIN,"$basedir/$template") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
   print "Content-type: text/html\n\n";
   foreach $tl (@templatelns)
   {
     if($tl =~ /<!--start-->/)
	 {
	   print "<center><br>\n";
	   print "La destination <b>$endroit</b> a été ajoutée !<br>Merci de votre contribution !!!<br><br>";
	   print "[ <a href=\"$baseurl/$html_dir/$num.php\">Aller à la nouvelle destination</a> ] [ <a href=\"$baseurl/$mainfile\">Retour aux destinations</a> ]</center>";
	   print "</center>\n";
	 }
	 else
	 {
	   print $tl;
	 } 
   }
}
#########
sub datas_added 
{
  open(MAIN,"$basedir/$template") || die $!;
    @templatelns = <MAIN>;
  close(MAIN);
   print "Content-type: text/html\n\n";
   foreach $tl (@templatelns)
   {
     if($tl =~ /<!--start-->/)
	 {
	   print "<center><br>\n";
	   print "Les informations ont été ajoutées à la destination <b>$endroit_add</b>.<br>Merci de votre contribution !!!<br><br>";
	   print "[ <a href=\"$baseurl/$html_dir/$code.php\">Retourner à la destination</a> ] [ <a href=\"$baseurl/$mainfile\">Retour aux destinations</a> ]</center>";
	   print "</center>\n";
	 }
	 else
	 {
	   print $tl;
	 } 
   }
}

############################
sub error 
{
  $error = $_[0];
  if($submit && $keep_error ne "yes" && !$artgfghv)
  {
    return;
  }
  if($locmap eq "update")
  {
    $error = "La fiche $code a été mise à jour"
  }
  print "Content-type: text/html\n\n";
  print "<html><head><title>ERREUR</title></head>\n";
  print "<body><center><h1>ERREUR:</h1>\n";
  print "<br></center><blockquote>$error</blockquote><br><br>\n";
  print "<center><a href=\"javascript\:history.go\(-1\)\">[ Retour au formulaire ]</a></center><br><p><hr width=75%>\n";
  print "</body></html>";
  exit;
}

############################
sub debug 
{
  $error = $_[0];
  
  print "Content-type: text/html\n\n";
  print "<html><head><title>Carte Infokayak: ERREUR</title></head>\n";
  print "<body><center><h1>Carte Infokayak: ERREUR</h1>\n";
  print "<br></center><blockquote>$error</blockquote><br><br>\n";
  print "<center><a href=\"javascript\:history.go\(-1\)\">[ Retour au formulaire ]</a></center><br><p><hr width=75%>\n";
  print "</body></html>";
  #exit;
}

############################
sub get_map
{
  open(MAIN,"$basedir/$front_datas") || die $!;
    @frtdats = <MAIN>;
  close(MAIN);
  foreach $fd (@frtdats)
  {
    (my $num,my $endroit,my $region,my $locmap,my $faune,my $flore,my $paysages,my $difficulte,my $interet,my $camping) = split(/\|/,$fd);
	$PLACES{$num} = "$endroit";
  }
    $destfn = $PLACES{$fnum};
	print "Content-type: text/html\n\n";
    print <<"EOF";
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <title>Le KMNM: Carte - $destfn</title>
    </head>
    <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" style="margin: 0" bgcolor="#ffffff">
	<p>
EOF
  print "<img src=\"$rooturl/$dest_dir/maps/$map"."_z$zoom\.jpg\" width=\"605\" height=\"498\" border=\"0\" usemap=\"\#mapgif\">\n";
  print "<map name=\"mapgif\">\n";
  print "<area shape=\"rect\" coords=\"80,17,120,115\" href=\"$cgi_url\?map=$map\&zoom=out\&fnum=$fnum\">\n";
  print "<area shape=\"rect\" coords=\"30,27,74,104\" href=\"$cgi_url\?map=$map\&zoom=in\&fnum=$fnum\">\n";
  print "</map>\n";
  print "</p></body></html>\n";
}

############################
sub nouveaute 
{ 
  ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
  $month = ($mon + 1);
  @months = ("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Decembre");
  $year += 1900;
  $date_nouv = sprintf("%02d %s %4d %02d:%02d",$mday,$months[$mon],$year,$hour,$min);
 
# Adapter pour chaque section

  $section = "Destinations";
  $url = 'http://www.kayakdemer.net/destinations/destinations.php';
  $endroit_add =~ s/\s$//g;
  $endroit_add =~ s/\n//g;
  if($endroit_add)
  {
    $description="<b>$name</b> a ajouté de l&#39;information à la destination <i><a href=\"$baseurl/$html_dir/$code\.php\">$endroit_add</a></i>";
  }
  else
  {
    $description="Nouvelle destination: <a href=\"$baseurl/$html_dir/$num\.php\">$endroit</a> par <b>$name </b>";
  }
  #&debug("<textarea>"."INSERT INTO nouveautes (section,sect_url,details,date) VALUES ('$section','$url','$description)','$long_date')"."</textarea>");
  $connect_db->query("INSERT INTO nouveautes (section,sect_url,details,date) VALUES ('$section','$url','".quotemeta($description)."','$date_nouv')")or die "MySQL Error: $DBI::errstr\n";
}

############################
sub nouveaute_txt 
{
  $basedir_n = "/home/stephm69/public_html/kayakdemer";
  $datafilen = "nouveautes.txt";

# Adapter pour chaque section

$section_n = "Destinations";
$url_n = 'http://www.kayakdemer.net/destinations/destinations.php';
$endroit_add =~ s/\s$//g;
$endroit_add =~ s/\n//g;
if($endroit_add)
{
  $description_n="<b>$name</b> a ajouté de l\'information à la destination <i><a href=\"$baseurl/$html_dir/$code\.php\">$endroit_add</a></i>";
}
else
{
  $description_n="Nouvelle destination: <a href=\"$baseurl/$html_dir/$num\.php\">$endroit</a> par <b>$name </b>";
}

$mesgfile_temp = "index_tv.php";
$mesgfile = "index.php";

# Ajout à la page TEMPLATE pour ptites vites
$mesgfile_temp = "index_t.php";
$mesgfile = "index_tn.php";

&addtolist_n;
}

############################
sub addtolist_n 
{
  open(EVENT,"$basedir_n/$datafilen") || die $! ;
    @nouveautes = <EVENT>;
  close (EVENT);
  open(NBR,"$basedir_n/nombre_n.txt") || die $! ;
    $nbr_n = <NBR>;
  close (NBR);
  open(EVENT,">$basedir_n/$datafilen");
    print EVENT "$section_n\|$url_n\|$description_n\|$long_date\n";
	$nt=1;
	foreach $i (@nouveautes)
	{
	  chomp($i);
	  if ($nt<$nbr_n)
	  {
	    print EVENT "$i\n";
		$nt++;
      }
    }
  close (EVENT);
}