#!/usr/bin/perl
# ----------------------------------------------------------------------------
#
#  (c) Copyright 2006 TradeExtender
# 
#  This software is proprietary to and embodies the confidential technology 
#  of TradeExtender. Possession, use, duplication or dissemination of the 
#  software and media is authorized only pursuant to a valid written license 
#  from TradeExtender.
#

use strict;
use lib "/var/www/vhosts/kantelpunten.com/httpdocs/pl/lib";
use lib "lib";
BEGIN {
    delete $INC{"Kantelpunten/Helper.pm"};
    delete $INC{"Kantelpunten/Process.pm"};
#    delete $INC{"Kantelpunten/MyRobots.pm"};
    delete $INC{"Kantelpunten/MyBudy.pm"};
    delete $INC{"Kantelpunten/MyAdds.pm"};
}
use Kantelpunten::Helper;
use Kantelpunten::Process;
use Kantelpunten::MyRobots;
use Kantelpunten::MyBudy;
use Kantelpunten::MyAdds;
use POSIX qw(strftime mktime);
use Data::Dumper;

local our $stocks;
local our $param  = undef;
local our $page   = undef;
local our $total_dif   = 0;

show_kantelpunten_result();
exit(0);

sub show_kantelpunten_result()
{
	my $q = CGI->new;

	$param->{overview}  = $q->param('overzicht');
	$param->{market}	= $q->param('market');
	$param->{year} 		= $q->param('jaar');
	$param->{month} 	= $q->param('maand');
	$param->{week}  	= $q->param('week');
	$param->{verbose}  	= $q->param('verbose');
	$param->{wmask}  	= $q->param('wmask');
	$param->{weight}  	= $q->param('weight');
	$param->{month} 	= undef if (defined($param->{week}));
	$param->{nofollow}  = defined($q->param('niet-geadviseerd')) ? 1 : undef;
	$param->{own}       = defined($q->param('eigen')) ? 1 : undef;
	$param->{type}      = 0;
	if (defined($param->{overview}))
	{
		$param->{type} = 1 if ($param->{overview} eq "jaar");
		$param->{type} = 2 if ($param->{overview} eq "maand");
		$param->{type} = 3 if ($param->{overview} eq "week");
	}
	if (!defined($param->{year}) && !defined($param->{month}) && !defined($param->{week}))
	{
		if (!defined($param->{overview}))
		{
			$param->{type} = 2;
			$param->{overview} = "maand";
		}
		else
		{
			$param->{type} = 1;
			$param->{overview} = "jaar";
		}
	}

	# set default to previous month
	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
    $year += 1900;
	$param->{year} = $year if (!defined($param->{year}));
	if (($param->{year} < 2000) || ($param->{year} > $year) ||
		( defined($param->{month}) && (($param->{month} < 1) || ($param->{month} > 12)) ) ||
		( defined($param->{week})  && (($param->{week}  < 1) || ($param->{week}  > 52)) ) )
	{
		$param->{week} = undef;
		$param->{year} = $year;
		if ($mon == 0)
		{
			$param->{year}--;
			$param->{month} = 12;
		}
		else
		{
			$param->{month} = $mon;
		}
	}
	
	my $remote_ip = init_helper();
	$param->{rb} = get_robot() if (!defined($param->{rb}) || $param->{rb});
	set_robot($param->{rb});

	init_process();
	get_user_rec();
	$param->{budy} = init_budy($q->param('uitleg'));

#	only_allowed_for_admin_users();
	
	if (!is_admin_user())
	{
		$param->{nofollow} = undef;
		$param->{verbose} = 0;
		$param->{wmask}  = undef;
		$param->{own}    = undef;
	}
	$param->{verbose} = 0 if (!defined($param->{verbose}));
	$param->{weight} = "00000000" if (defined($param->{wmask}) && !defined($param->{weight}));
	$param->{wmask} = unpack("N", pack("H8", $param->{wmask})) if (defined($param->{wmask}));
	$param->{weight} = unpack("N", pack("H8", $param->{weight})) if (defined($param->{weight}));

	$total_dif = 0;
	
	# check for a market change
	my $market = set_market();
	# oops I'v to add bel if no enabled anymore
	if (defined($market) && ($market & (1 << get_market_bit('bel20'))) && !($market & (1 << get_market_bit('bel'))))
	{
		$market |= (1 << get_market_bit('bel'));
	}
	if (defined($param->{market}) && defined($market))
	{
		$param->{market} = 0xff if (($param->{market} & 0x7f) == 0);
		if ($param->{market} != $market)
		{
			set_market($param->{market});
			write_user_rec();
		}
		$market = $param->{market};
	}
	$market = 0xff if (!defined($market));

	$stocks = get_stocks_market($market, undef, "old");
	if (!defined($stocks))
	{
    	print_error_doc("TBR: Probleem met het lezen van de aandelen data.");
    	exit(0);
	}

	$page = 9960 + $param->{type};
	
	add_last_page_cookie($page);
	write_access_data($remote_ip, $page);
	make_kantelpunten_result_html($market);
}
    
sub make_kantelpunten_result_html(@)
{
	my ($market) = @_;
	
    my $land = is_nl_enabled($market) ? "Nederlandse" : "";
    $land .= is_be_enabled($market) ? (($land ne "") ? " + Belgische" : "Belgische") : "";
    $land .= " aandelen." if ($land ne "");

    my $script = make_home_script($page);
	my $title;
	my $desc;
	my $pop_menu;
	my $top_menu;
	if ($param->{type} == 0)
	{
    	if (defined($param->{week}))
    	{
		    $title = "Beleggingsresultaat week-overzicht ($param->{week}-$param->{year}).";
    		$pop_menu = make_pop_menu(11, 0, $param->{year}, undef, undef, $param->{week});
    		$top_menu = make_top_menu(11, 0, $param->{year}, undef, undef, $param->{week});
	    }
	    elsif (defined($param->{month}))
	    {
    		$title = "Beleggingsresultaat maand-overzicht ($param->{month}-$param->{year}).";
    		$pop_menu = make_pop_menu(10, 0, $param->{year}, undef, undef, $param->{month});
    		$top_menu = make_top_menu(10, 0, $param->{year}, undef, undef, $param->{month});
		}
        elsif (!defined($title))
        {
    		$title = "Beleggingsresultaat jaar-overzicht ($param->{year}).";
    		$pop_menu = make_pop_menu(9, 0, $param->{year});
    		$top_menu = make_top_menu(9, 0, $param->{year});
		}
		$desc = "100% tot 250% winst per maand? Zie wat u kunt bereiken met weinig tijd en toch aktief beurzen en bekijk onze $title $land. ";
	}
	else
	{
		$title = "Winst per week $param->{year}." if ($param->{type} == 3);
		$title = "Winst per maand $param->{year}." if ($param->{type} == 2);
		$title = "Winst per jaar." if ($param->{type} == 1);
		$land  = "";
		$desc = "100% tot 250% winst per maand? Zie wat u kunt bereiken met weinig tijd en toch aktief beurzen en bekijk onze $title. ";
		$pop_menu = make_pop_menu(5 + $param->{type}, 0, $param->{year});
		$top_menu = make_top_menu(5 + $param->{type}, 0, $param->{year});
	}

	print_header("+1m");
    print_pre_doc();
    print_head("Kantelpunten : $title $land", undef, undef, undef, $script, "kantelresult", undef, undef, $desc, undef, defined($top_menu) ? "top_script" : undef);
    print_body("kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
    my $ref = "toon-beleggen-resultaat.pl?uitleg=" . ($param->{budy} ? '0' : '1');
   	$ref .= "&overzicht=$param->{overview}" if (defined($param->{overview}));
    $ref .= "&jaar=$param->{year}" if (defined($param->{year}));
    $ref .= "&maand=$param->{month}" if (defined($param->{month}));
   	$ref .= "&week=$param->{week}" if (defined($param->{week}));
    print_budy($param->{budy}, $page, $ref);

    make_kantelpunten_result($title, $land) if ($param->{type} == 0);
    make_overzicht_only($title) if ($param->{type} != 0);
    print_body("end");
    print_post_doc();
}

sub sort_result(@)
{
	my ($kps) = @_;
	
	my @ids;
	my $t;
	my $difs;
    foreach my $i (keys %$kps)
    {
		next if (!defined($stocks->{$kps->{$i}->{id}}));
		next if (!defined($param->{nofollow}) && (!$kps->{$i}->{follow}));
		next if (defined($param->{wmask}) && (($kps->{$i}->{weight} & $param->{wmask}) != $param->{weight}));
        
        $total_dif  += $kps->{$i}->{dif} if ($kps->{$i}->{follow});
        
#        $t = sprintf("%d%04d.%03d:%03d", ($kps->{$i}->{dif} >= 0),
#        			int($kps->{$i}->{dif})+100, (abs($kps->{$i}->{dif})*1000)%1000, $i);
        $t = sprintf("%d%04d.%03d:%03d", ($kps->{$i}->{max_dif} >= 0),
        			int($kps->{$i}->{max_dif})+100, (abs($kps->{$i}->{max_dif})*1000)%1000, $i);
        $difs->{$t} = $i;
    }
	my @sort = (reverse sort keys %$difs);
	foreach my $i (@sort)
    {
       	push @ids, $difs->{$i};
    }
    return @ids;
}

sub make_kantelpunten_result(@)
{
	my ($title, $land) = @_;
	
    if (show_adds())
    {
	    print_div("center");   
		print_banner_ads("main_banner", "info", undef, 1);
	    print_div("end");
    }   

    print "<small><small><br></small></small>\n";
    my $option = print_market_table();	      
    print "<br><br>\n";
    print_div("center");   

    print_h1($title);
    print_h2($land);
   	print_banner_ads("main_banner", "info", undef, 2) if (show_adds("hoofd"));

   	my $my_stocks;
   	$my_stocks = get_stocks_mine(undef, "old") if (defined($param->{own}));
	my $kps = read_sum_kantelpunten($param->{year}, $param->{month}, $param->{week}, undef, $my_stocks);
	my @ids = sort_result($kps);
	
    if (!defined($kps))
    {
	    print <<EndOfText;
<small><span><br>
Geen resultaten
</span></small>
EndOfText
    }
    else
    {
	    if (0)
	    {
	    my $bruto = sprintf("%.1f %", $total_dif); 
    	print <<EndOfText;
<span><small><br>
Totale bruto winst $bruto<br>
<br>
</small></span>
EndOfText
		}

        print_table(0, undef, 0, 0, 0, undef, "97%", "center", "font-size: 13px;");
        my $extra = " ";
        $extra  = " <th class=\"kantel\">weight</th>\n" if ($param->{verbose} > 1);
        $extra .= " <th class=\"kantel\">adv2</th>\n <th class=\"kantel\">adv1</th>\n <th class=\"kantel\">dif</th>\n" if ($param->{verbose} > 0);
        print <<EndOfText;
<tr>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Aandeel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantel">&nbsp;&nbsp;Markt&nbsp;&nbsp;</th>
 <th class="kantel">&nbsp;Gekocht&nbsp;op&nbsp;</th>
 <th class="kantel">&nbsp;voor&nbsp;</th>
 <th class="kantel">&nbsp;Verkocht&nbsp;op</th>
 <th class="kantel">&nbsp;voor&nbsp;</th>
 <th class="kantel"></th>
 <th class="kantel">&nbsp;&nbsp;Min%&nbsp;&nbsp;</th>
 <th class="kantel">&nbsp;&nbsp;Max%&nbsp;&nbsp;</th>
 <th class="kantel">&nbsp;Dag#&nbsp;</th>
 <th class="kantel">&nbsp;Exit%&nbsp;</th>
 <th class="kantel"><a title="Prioriteit gebruikt bij automatische keuze van aandelen.">&nbsp;Prio&nbsp;</a></th>
$extra
</tr>
<tr><td>&nbsp;</td></tr>
EndOfText
		my $num = 1;
		foreach my $i (@ids)
		{
			next if (!defined($stocks->{$kps->{$i}->{id}}));
			print get_kantel_result_row($kps->{$i}, $num++);
		}
        print_table(0, "end");    
    }
    print "<small><br></small>\n";
	print max_info();
    print_voet_start();
    print_empty_lines(1, 0);
    print_ads("yahoo_klein");    
    print_div("end");
}

sub get_kantel_result_row(@)
{
    my ($row, $num) = @_;
 
    my $id = $row->{id};   
    my $stock = $stocks->{$id}->{stock};
	my $class = (($num % 2) == 0) ? "even" : "odd";
    my $text;
    my $ref =  "/pl/ShowStock.pl?stock=$stock";
	
    $text  = "<tr>";    
    $text .= "<td class=\"$class\"><a href=\"$ref\" rel=\"nofollow\">" . $stocks->{$id}->{index_name} . "</a></td>";
    $text .= "<td class=\"$class\">" . make_mini_mkt_img($stocks->{$id}->{mkt_bit}, 1) . "</td>";
    $text .= "<td class=\"$class\">". strftime("%d-%m-%Y", localtime($row->{bought_on})) . "</td>";
	$text .= "<td class=\"$class\">" . sprintf("%.2f", abs($row->{bought_for})) . "</td>";
    $text .= "<td class=\"$class\">". strftime("%d-%m-%Y", localtime($row->{sold_on})) . "</td>";
  	$text .= "<td class=\"$class\">" . sprintf("%.2f", abs($row->{sold_for})) . "</td>";
	if ($row->{split})
	{
		$text .= "<td class=\"$class\"><a class=\"help\" title=\"Aandeel heeft split ondergaan\"></a></td>";
	}
	else
	{
		$text .= "<td class=\"$class\"></td>";
	}
    $text .= "<td class=\"$class\">" . sprintf("%s%.2f%%", (($row->{min_dif} < 0) ? "-" : "+"), 
    												abs($row->{min_dif})) . "</td>";
	my $mclass = $class;
   	$mclass = "max" if ($row->{success} eq "Y");
   	$text .= "<td class=\"$mclass\">" . sprintf("%s%.2f%%", (($row->{max_dif} < 0) ? "-" : "+"),
   													abs($row->{max_dif})) . "</td>";
   	my $days = int(($row->{max_date} - $row->{bought_on})/(24*3600));
    $days++;
   	$days = 0 if ($days < 0);
#   	$text .= "<td class=\"$class\">$days/$row->{days}</td>";
   	$text .= "<td class=\"$mclass\">$days</td>";
   	if (!$row->{follow})
   	{
	   	$mclass = "$class dgrey";
   	}
   	else
   	{
		$mclass = $class . (($row->{dif} < 0) ? " dred" : " dgreen");
	}
#   	my $follow;
#   	$follow = make_midi_advies_img($row->{follow});
#	$mclass = (($row->{dif} < 0) && ($row->{success} eq "Y")) ? "min" : $mclass;
    $text .= "<td class=\"$mclass\">" . sprintf("%s%.2f%%", (($row->{dif} < 0) ? '-' : '+'), abs($row->{dif})) . "</td>";
   	$text .= "<td class=\"$class\">$row->{follow}</td>";
   	$text .= "<td class=\"$class\">" . sprintf("%08X", $row->{weight}) . "</td>" if ($param->{verbose} > 1);
   	$text .= "<td class=\"$class\">" . sprintf("%d", $row->{advies}>>8) . "</td>" if ($param->{verbose} > 0);
   	$text .= "<td class=\"$class\">" . sprintf("%d", $row->{advies}&0xff) . "</td>" if ($param->{verbose} > 0);
   	$text .= "<td class=\"$class\">" . sprintf("%.2f", (($row->{advies}>>8) - ($row->{advies}&0xff)) / ($row->{advies}>>8) * 100) . "</td>" if ($param->{verbose} > 0);
    $text .= "</tr>\n";
	return $text;
}

sub print_market_table()
{
	my $market = set_market();
	return 0 if (!defined($market));
	return 0 if (defined($param->{success}));

	my $iref;
	my $tref;
    my $ref = "toon-beleggen-resultaat.pl?dum=1";
    $ref .= "&jaar=$param->{year}" if (defined($param->{year}));
    $ref .= "&maand=$param->{month}" if (defined($param->{month}));
    $ref .= "&week=$param->{week}" if (defined($param->{week}));
    $iref = $ref;
    # option table
    print_div("right");   
    print_table(0, undef, 0, 0, 0, undef, "", "right", "font-size: 11px;");
    print "<tr>\n";
    
    $tref = $iref;
    $tref .= "&market=" . ($market | make_market("aex", "amx", "overig")) if (!is_nl_enabled($market));
    $tref .= "&market=" . ($market & make_market("bel20", "bel")) if (is_nl_enabled($market));
    print "<td>\n";
    print_midi_button($tref, is_nl_enabled($market) ? "nl" : "no_nl");
    print "</td>\n";
    print "<td>&nbsp;&nbsp;</td>\n";

    $tref = $iref;
    $tref .= "&market=" . ($market | make_market ("bel20", "bel")) if (!is_be_enabled($market));
    $tref .= "&market=" . ($market & make_market ("aex", "amx", "overig")) if (is_be_enabled($market));
    print "<td>\n";
    print_midi_button($tref, is_be_enabled($market) ? "be" : "no_be");
	print "</td>\n";
	print "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    print "</tr>\n";
    print_table(0, "end");
    print_div("end");
    
    return 1;
}	

sub make_overzicht_only(@)
{
	my ($title) = @_;
	
    print_div("center");   
	print_banner_ads("main_banner", "info", undef, 2) if (show_adds());
    print "<br><br>\n";
#    print reminder();
    if ($param->{type} == 1)
    {
#    	my $img = "<img style=\"border: 0px solid ; width: 20px; height: 35px;\" src=\"http://www.kantelpunten.com/pics/icon/uitroepteken_groen.gif\">";
#	    print_h1($title, "$img&nbsp;&nbsp;", "&nbsp;&nbsp;$img");
 	    print_h1($title);
    	print_banner_ads("main_banner", "info", undef, 1) if (show_adds("hoofd"));
    }
    else
    {
    	print_h1($title);
    	print_banner_ads("main_banner", "info", undef, 1) if (show_adds("hoofd"));
	}
    print "<br>\n";

	# always read the year results
    my $sum_year = read_summary_records(0);
    my $porto    = read_sum_porto_records("own");
    
    if (!defined($sum_year))
    {
	    log_problem("make_overzicht_only: Helemaal geen jaar resultaten !");
	    print <<EndOfText;
<small><span><br>
Geen resultaten
</span></small>
EndOfText
    }
    else
    {
    	print <<EndOfText;
<table border="0" cellpadding="0" cellspacing="0" width="80%" align="center" style="font-size: 12px;">
<tbody>
<tr>
 <th colspan="3"></th>
 <th class="kantel" colspan="4">Aantal adviezen in bereik</th>
 <th></th>
 <th></th>
</tr>
<tr>
 <th class="kantel"></th>
 <th class="kantel">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Periode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
 <th class="kantel">&nbsp;advies#&nbsp;</th>
 <th class="kantel">&nbsp;1.82%&nbsp;</th>
 <th class="kantel">&nbsp;5%&nbsp;</th>
 <th class="kantel">&nbsp;10%&nbsp;</th>
 <th class="kantel">&nbsp;15%&nbsp;</th>
 <th class="kantel">&nbsp;juist%&nbsp;</td>
 <th class="kantel"></th>
</tr>
<tr><td>&nbsp;</td></tr>
EndOfText

# <th class="kantel">&nbsp;juist#&nbsp;</th>
# <th class="kantel">&nbsp;Avg&nbsp;Dag#&nbsp;</th>
# <th class="kantel">&nbsp;Avg&nbsp;Exit%&nbsp;</th>
# <th class="kantel">&nbsp;Avg&nbsp;Trd&nbsp;</th>  

		my $num = 1;
		my $text;
		my $sum;
		my $sum_week;
		my $itype;
		foreach my $i (reverse sort keys %$sum_year)
		{
			$text = get_result_overzicht_row(1, $sum_year->{$i}, $num++, $porto->{$i});
			$sum = undef;
			if (($param->{type} == 2) && ($param->{year} == $sum_year->{$i}->{year}) && 
					($param->{month} == $sum_year->{$i}->{month}))
			{
				$sum = read_summary_records($param->{year}, 0);
				$sum_week = read_summary_records($param->{year}, undef, 0);
				$itype = 2;
			}
			elsif (($param->{type} == 3) && ($param->{year} == $sum_year->{$i}->{year}) &&
					($param->{week} == $sum_year->{$i}->{week}))
			{
				$sum = read_summary_records($param->{year}, undef, 0);
				$itype = 3;
			}
			if (defined($sum))
			{
    			if (defined($sum_week))
    			{
        			my @sum_arr = (reverse sort keys %$sum_week);
    				foreach my $j (reverse sort keys %$sum)
	    			{
                		my $from_time =  mktime(0, 0, 0, 1, $sum->{$j}->{month}-1, $sum->{$j}->{year}-1900, 0, 0, -1);
	    	            my $from_week = strftime("%W", localtime($from_time));
		    			$text .= get_result_overzicht_row($itype, $sum->{$j}, $num++);
		    			while (@sum_arr)
		    			{
    		    			if ($sum_week->{@sum_arr[0]}->{week} >= $from_week)
    		    			{
        		    			my $week = shift @sum_arr;
        		    			$text .= get_result_overzicht_row(3, $sum_week->{$week}, $num++);
    		    			}
    		    			else
    		    			{
        		    			last;
		    			    }
		    			}		
     				}
 				}
 				else
    			{
    				foreach my $j (reverse sort keys %$sum)
	    			{
		    			$text .= get_result_overzicht_row($itype, $sum->{$j}, $num++);		
     				}
 				} 				
			}
			print $text;
		}
		print <<EndOfText;
</tbody>
</table>
EndOfText
	}
#<b>Klik op een percentage hierboven</b> om 'n portefeuille in detail te zien.<br>
#De portefeuilles zijn het resultaat van kantelpunt-instappunten en exit-uitstappunten.<br>
#<br>
#
#<br>
#Onder "<b>voorbeeld portefeuilles</b>" ziet u wat voor resultaten<br>
#men had kunnen bereiken met het voordurend wisselen van aandelen.<br>
#<br>
#De voorbeeld portefeuilles zijn samengesteld op basis van vooraf bepaalde selectiecreteria.<br>
#Er is dus niet mee gesjoemeld. Lees <a href="/pl/ShowMain.pl?page=20217" title="Samenstelling portefeuilles">hier</a> welke.<br>
#<br> 
#Merk op dat noch bij aankoop, noch bij verkoop werd rekening gehouden met bedrijfsnieuws.<br>
#Een oplettende belegger moet meer winst kunnen halen dan onze voorbeelden.<br>
	print <<EndOfText;

<span class="dgreen"><small><small>
<br><br>
<br>
<table><tr>
<td><span class="dgreen"><small><small><b>Klik op</b></small></small></span></td>
<td><a class="s ri"></a></td>
<td><span class="dgreen"><small><small>om alle kantelpunten van een periode te bekijken.</small></small></span></td>
</table>
<br></span>
<span>
<br>
<b>
Het kantelpuntensysteem is geďnspireerd op de professionele handel.<br>
Lees <a href="/pl/ShowMain.pl?page=20204" title="Het verschil prive en professionele belegger">hier</a> over het verschil in opvatting van winstnemen.<br>
<br>
Enkel als ons signaal minstens 1.82 % bruttowinst kon opleveren,<br>
zien wij het als een juiste handeling, en krijgt het een groene kleur.<br>
Winsten tussen de 0.01 % en 1.81 % rekenen wij dus niet goed !<br>
</b>
<span class="dblack">( 1.82 % brutto = 1.50 % netto bij 5000 € en twee transactiekosten aan 8 € )</span><br>
<br>
<span class="dblack">
1.82 % = 1.82 % en hoger<br>
5 % = 5 % en hoger<br>
10 % = 10 % en hoger<br>
15 % = 15 % en hoger<br>
</span>
</small></small></span>
EndOfText
    print_voet_start();
    print_ads("yahoo_klein");    
    print_empty_lines(1, 0);
    print_div("end");
}

sub get_result_overzicht_row(@)
{
    my ($type, $sum, $num, $rec) = @_;
 
	my $class = (($num % 2) == 0) ? "even" : "odd";
    my $text;
	my $ref = "/pl/toon-beleggen-resultaat.pl";
	my $iref;
	$iref .= "$ref?maand=$sum->{year}" if ($type == 1);
	my $tit1 = "Toon alle beleggings-resultaten van";
	my $tit2 = "Toon maandelijks overzicht van";
	my $tit3 = "Toon wekelijks overzicht van";
	my $tit4 = "Toon jaarlijks overzicht";
	my $tref;
	
    $text  = "<tr>";    
	if ($type == 1)
	{
		if (($param->{type} > 1) && ($param->{year} == $sum->{year}))
		{
    		$iref = "$ref?overzicht=jaar";
    		$text .= "<td class=\"$class\"><a class=\"s do\" href=\"$iref\" title=\"$tit4\"></a></td>";
		}
		else
		{
	    	$iref = "$ref?overzicht=maand&jaar=$sum->{year}";
			$text .= "<td class=\"$class\"><a class=\"s ri\" href=\"$iref\" title=\"$tit2 $sum->{year}\"></a></td>";
		}
    	$iref = "$ref?overzicht=maand&jaar=$sum->{year}";
    	$text .= "<td class=\"$class\"><div align=\"left\"><a href=\"$iref\" title=\"$tit2 $sum->{year}\">$sum->{year}</a>&nbsp;";
#    	$iref = "$ref?overzicht=week&jaar=$sum->{year}";
#    	$text .= "(<a href=\"$iref\" title=\"$tit3 $sum->{year}\">week</a>)</div></td>";
		$iref = "$ref?jaar=$sum->{year}";
    	$tref = "<td class=\"$class\"><a class=\"s ri\" href=\"$iref\" title=\"$tit1 $sum->{year}\"></a></td>"
	}
	elsif ($type == 2)
	{
        my $time = mktime(0, 0, 0, 1, $sum->{month}-1, $sum->{year}-1900, 0, 0, -1);
		my $lab = strftime("%B %Y", localtime($time));
		$text .= "<td class=\"$class\"></td>";
		$iref = "$ref?jaar=$sum->{year}&maand=$sum->{month}";
    	$text .= "<td class=\"$class\"><div align=\"left\">&nbsp;&nbsp;<a href=\"$iref\" title=\"$tit1 $lab\">$lab</a></div></td>";
    	$tref = "<td class=\"$class\"><a class=\"s ri\" href=\"$iref\" title=\"$tit1 $lab\"></a></td>";
	}
	elsif ($type == 3)
	{
		my $lab = sprintf("week %d-%d", $sum->{week}, $sum->{year});
		$text .= "<td class=\"$class\"></td>";
		$iref = "$ref?jaar=$sum->{year}&week=$sum->{week}";
    	$text .= "<td class=\"$class\"><div align=\"left\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$iref\" title=\"$tit1 $lab\">$lab</a></div></td>";
    	$tref = "<td class=\"$class\"><a class=\"s ri\" href=\"$iref\" title=\"$tit1 $lab\"></a></td>";
	}
    my $idata;
    $idata->{num_ok} = $sum->{ok};
    $idata->{num_nok} = $sum->{number} - $sum->{ok};
    $text .= "<td class=\"$class\">$sum->{number}</td>";
#    $text .= "<td class=\"$class max\">$sum->{ok}</td>";
#    $text .= "<td class=\"$class\">$sum->{range1}/$sum->{erange1}</td>";
#    $text .= "<td class=\"$class\">$sum->{range2}/$sum->{erange2}</td>";
#    $text .= "<td class=\"$class\">$sum->{range3}/$sum->{erange3}</td>";
#    $text .= "<td class=\"$class\">$sum->{range4}/$sum->{erange4}</td>";
	my $tmp = $sum->{range1} + $sum->{range2} + $sum->{range3} + $sum->{range4};
    $text .= "<td class=\"$class max\">$tmp</td>";
	$tmp = $sum->{range2} + $sum->{range3} + $sum->{range4};
    $text .= "<td class=\"$class\">$tmp</td>";
	$tmp = $sum->{range3} + $sum->{range4};
    $text .= "<td class=\"$class\">$tmp</td>";
    $text .= "<td class=\"$class\">$sum->{range4}</td>";

    $text .= "<td class=\"$class\">" . make_midi_pie_img(undef, undef, $idata) . "</td>";
#   	$text .= "<td class=\"$class\">" . 	sprintf("%.1f %%", $sum->{max_dif}) . "</td>";
#   	$text .= "<td class=\"$class\">" . 	sprintf("%.1f %%", $sum->{bruto_dif}) . "</td>";
	if (0)
	{
    if (($type == 1) && defined($rec))
    {
		my $mclass;
		$mclass =  $class . (($sum->{p_max} < 0) ? " l_dred" : " l_dgreen");
#   		$text .= "<td class=\"$mclass\"><a href=\"/pl/aandeel-beleggen-portefeuille.pl?jaar=$sum->{year}&type=1\" title=\"Toon de fictieve portefeuille van $sum->{year}.\">" . sprintf("%.1f %%", $sum->{p_max}) . "</a></td>";
   		for (my $i = 1; $i <= 6; $i++)
		{
			$mclass = $class . (($sum->{"p_$i"} < 0) ? " l_dred" : " l_dgreen");
			my $aand = ($i == 1) ? "aandeel" : "aandelen";
	   		$text .= "<td class=\"$mclass\"><a href=\"/pl/aandeel-beleggen-portefeuille.pl?land=own&jaar=$rec->{year}&type=2&num_porto=$i\" title=\"Toon de voorbeeld portefeuille van $rec->{year} met $i $aand.\">" . sprintf("%.1f %%", $rec->{"p_$i"}) . "</td>";
		}
    }
    else
    {
	    for (my $i = 1; $i <= 6; $i++)
	    {
		    $text .= "<td class=\"$class\">&nbsp;</td>";
	    }
    }
	}

#  	$text .= "<td class=\"$class\">" . 	sprintf("%.1f", $sum->{tot_days}/$sum->{number}) . "</td>";
#  	$text .= "<td class=\"$class\">" . 	sprintf("%.1f %%", $sum->{bruto_dif}/$sum->{number}) . "</td>";
#  	$text .= "<td class=\"$class\">" . 	sprintf("%.1f ", $sum->{tot_days}/365) . "</td>";
   	$text .= $tref;
    $text .= "</tr>\n";
	return $text;
}

sub oud()
{
	print <<EndOfText;
<span class="dgreen"><small><small>
<br><br>
<br>
<u>Het kantelpuntensysteem is geďnspireerd op de professionele handel.</u><br>
<br>
Privé-beleggers voelen zich verbonden met hun aandeel.<br>
Ze voelen zich een beetje eigenaar van het bedrijf. Ze geloven het bestuur,<br>
dat betaald is met hun geld, om te zeggen dat het morgen beter gaat. Ze denken<br>
als investeerders te weten hoe de vork in de steel  zit. ( Dŕt komt wel. Maar als laatste ... )<br>
Ze zijn toch zo bang winst te missen. Of hopen dat het morgen beter gaat.<br>
Ze hebben tijd, volgen hun gevoel en willen veel winst in één keer.<br>
Transactiekosten vinden ze weggesmeten geld.<br>
<br>
Beroeps moeten binnen de paar dagen brood op de plank hebben.<br>
Om dit te bereiken moeten ze wel zeer actief handelen. <b><i>Pakken = Hebben</i></b>.<br> 
Ze liften met de stijgers mee. Hoe het aandeel noemt weten ze amper.<br>
Ze verkopen terwijl de aandacht voor het aandeel nog "hot" is.<br> 
Ze zijn tevreden met de winst van vandaag.<br>
<br></span>
<span>
<b>
Enkel als ons signaal minstens 1.82 % bruttowinst kon opleveren,<br>
zien wij het als een juiste handeling, en krijgt het een groene kleur.<br>
Winsten tussen de 0.01 % en 1.81 % rekenen wij dus niet goed !<br>
</b>
<span class="dblack">( 1.82 % brutto = 1.50 % netto bij 5000 € en twee transactiekosten aan 8 € )</span><br>
<br>
<b>
Onder de voorbeeld portefeuilles ziet u wat voor resultaten u had kunnen bereiken met het<br>
voordurend wisselen. De portefeuilles zijn opgesteld met behulp van de exit-uitstappunten.<br>
</b>
<br>
<span class="dred">
Deze exit is vrij conservatief en een actieve belegger moet<br>
meer winst kunnen halen dan de exit.<br>
<br>
<b>Klik op een percentage om de portefeuille zelf in te zien.</b><br></span>
<br>
<span class="dblack">
1.82 % = 1.82 % en hoger<br>
5 % = 5 % en hoger<br>
10 % = 10 % en hoger<br>
15 % = 15 % en hoger<br>
</span>
</small></small></span>
EndOfText
}