#use perl add_links_to_zoomed_svg.pl > ../Web/svg/ddr_zoom.svg

use XML::Twig;
use DBI;  

my $database='DDR';
my $hostname='localhost';                
my $dsn = "DBI:mysql:database=$database;host=$hostname";
my $user='ddr_admin';
my $password='ddr_2014';
my $dbh = DBI->connect($dsn, $user,$password);
 

my $name_to_ids = $dbh->selectall_hashref("SELECT `Gene Name`,id_entity FROM entity","Gene Name") || die $dbh->errstr;  

my $twig=XML::Twig->new(   
    twig_handlers => 
      { '*[@class=~/gene/]'=>\&add_link,
		
      },
    pretty_print => 'indented',                # output will be nicely formatted
    empty_tags   => 'html',                    # outputs <empty_tag />
                         );
  $twig->parsefile( '../Web/svg/ddr_zoom.svg.bk');
  $twig->print;
	
  sub add_link
    { my( $twig, $path)= @_;
	 print STDERR  "here we go!\n"; 
	  my $class=$path->att('class'); 
	  if ($class=~/gene (\w+?)$/){
		my $gene_name=$1;
		print STDERR  "found ".$path->tag." for gene $gene_name\n"; 
		my $id;
		if ( $id=($name_to_ids->{$gene_name}->{'id_entity'}) ){ 
            say STDERR "$gene_name succesfully changed by id: $id";
			my $link=$path->wrap_in("a"); 
            $href="../Php/display?id=".$id;  
            $link->set_att('xlink:href',$href);
            $link->set_att('target',"_parent");
			#$link->print;
         }  else {
               say STDERR "$gene_name in link $href DOES NOT EXISTS IN DATABASE";
         
 	  	 }  
         #$twig->flush;;
      } else {
			say STDERR "cannot find gene name in $class\n";
	}
   }
    
  