#!/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/IntraDay.pm"};
#    delete $INC{"Kantelpunten/MyRobots.pm"};
    delete $INC{"Kantelpunten/MyAdds.pm"};
    delete $INC{"Kantelpunten/Kantelpunt.pm"};
}
use Kantelpunten::Helper;
use Kantelpunten::Process;
use Kantelpunten::MyRobots;
use Kantelpunten::MyAdds;
use Kantelpunten::IntraDay;
use Kantelpunten::Kantelpunt;
use POSIX qw(strftime);
#use Data::Dumper;

local our $param  = undef;
local our $page   = undef;

show_kantelpunten();
exit(0);

sub show_kantelpunten()
{
	my $q = CGI->new;
		
	$param->{stock} 	= $q->param('stock');
	$param->{idx} 		= $q->param('idx');				# depricated
	$param->{records} 	= $q->param('records');
	$param->{time} 	    = $q->param('time');
	$param->{all}	    = defined($q->param('all')) ? 1 : undef;
	$param->{twoyear}	= defined($q->param('2year')) ? get_2years_ago() : undef;
	$param->{rb} 		= $q->param('rb');				# depricated
	
	my $remote_ip = init_helper();
	my $rb = get_robot();
	set_robot($rb);

	init_process();
	init_intraday();
	get_user_rec();

	$param->{records} = 5 if (set_username() ne "Toppy");
	$param->{records} = 5 unless defined($param->{records});
	$param->{twoyear} = get_2years_ago() unless defined($param->{twoyear}); # always a historie
	$param->{time}    = undef if (defined($param->{all}));
	
	if (!defined($param->{stock}))
	{
    	print_error_doc("Geen aandeel geselecteerd.");
    	exit(0);
	}
	my $stock = get_stock($param->{stock}, "old");
	if (!defined($stock))
	{
    	print_error_doc($param->{stock} . "<br>Dit aandeel wordt niet ondersteund");
    	exit(0);
	}

	# robot was defined redirect permanently for cleaning up old serahc engines
	if (defined($param->{rb}) || defined($param->{idx}) ||
		($rb && ($param->{stock} =~ /^-?[\d]+(\.\d*)?$/)) )
	{
		my $add = "?stock=$stock->{stock}";
		print_redirect("/pl/ShowKantelpunten.pl$add", "301");
		exit(0);
	}

	$page = sprintf("%2d%03d", defined($param->{twoyear}) ? 47 : 48, $stock->{id});
	add_last_page_cookie($page);
	write_access_data($remote_ip, $page);
	make_kantelpunten_html($stock);
}
    
sub make_kantelpunten_html(@)
{
    my ($stock) = @_;
    my $script = make_home_script($page);

    # only kantelpunten shows intraday so perhaps update
#    update_cur_intraday($stock->{stock}) if(!defined($param->{twoyear}));   
   
    print_header("+1m");
    print_pre_doc();
    my $title = "Kantelpunten : Historische beleggingsadviezen - $stock->{index_name}";
    my $desc = "Historische beleggingadviezen van $stock->{index_name}. We geven hier volledig inzicht in al onze" .
    	" adviezen van de afgelopen 2 jaar. Onze winsten houden volledig rekening met alle transactie kosten." .
    	" Hoeveel winst had u kunnen maken deze week?";
    	
    my $pop_menu = make_pop_menu(1, $page, "advise", $stock);
    my $top_menu = make_top_menu(1, $page, "advise", $stock);
    	
    print_head($title, undef, undef, $stock->{html_name}, $script, "kantelhist", undef, undef, $desc, undef, "top_script");
    print_body("kantel", undef, undef, undef, undef, undef, undef, "kader", undef, $pop_menu, $top_menu);
    make_kantelpunten($stock);
    print_body("end_kader");
    print_post_doc();
}

sub make_kantelpunten(@)
{
    my ($stock) = @_;

    my $img;
    my $id = $stock->{id};
    my $data = get_quote_data($id);
    if (defined($data))
    {
        $img = make_kantel_img($id, undef, $data);
    }   
	$param->{twoyear} = get_2years_ago($data->{quote_last}) if (defined($param->{twoyear}) && is_old_stock($stock));

    print_div("center");   
    print "<br><br>\n";

    my $heading = sprintf "%s ( %s )", $stock->{html_name}, uc $stock->{market};
    print_heading($heading, $img); 
	print_banner_ads("main_banner", "info", 1, 1) if (show_adds("hoofd"));
#    print_interim_heading(undef, $stock->{comment}); 

	my $table = get_kantelpunten_table($stock, $data, $param->{records}, $param->{twoyear}, 
										defined($param->{twoyear}) ? 1 : 0,
										defined($param->{all}) ? 0 : $param->{time});
    if ($table eq "")
    {
	    print <<EndOfText;
<small><span><br>
Als geregistreerde gebruiker kunt u de aan- en verkoopsignalen zien op de scangrafiek.<br>
<br>
Daarnaast zijn er echter nog andere <a title="Kantelpunten voorwaarden" href="/pl/ShowMain.pl?page=20103" rel="nofollow">voorwaarden</a>,<br>
waaraan een aandeel moet voldoen om een kantelpunt te zijn.<br>
Daaraan voldoet <i>$stock->{index_name}</i> op dit moment niet.<br>
<br>
We geven geen kantelpuntadvies.<br>
<br><br>
</span></small>
EndOfText
    }
    else
    {
        if (!defined($param->{twoyear}))
        {
            print_info_block($stock, $data);
            print "<small><small><br></small></small>\n";
        }
        else
        {
            print "<small><br></small>\n";
            print_analytical_graph($stock->{stock}, $stock->{bchart_symb}, $stock->{bchart_sid}, "Weekly", $stock->{our_data}, undef, 2);
            print_space(2);
            print_pie_graph('big', $data->{num_ok}, $data->{num_nok}, "Overzicht success rate kantelpunten");
            print "<small><br><br></small>\n";
            print_google_search("kantelpunten");
        }

        if (defined($param->{twoyear}))
        {
	        print_div("center");   
	        print max_info();
        	print_div("end");   
			print "<br>\n";        
        }
    
        if (0)      # All buttons disabled
        {
        print_table(0, undef, 0, 0, 0, undef, "80%");
        print "<tr>\n";
        
        # left buttons
        print " <td width=\"50%\" valign=\"top\" align=\"left\">\n";
        if (is_old_stock($stock))
        {
	        print "&nbsp;\n";
        }
        else
        {
	        print_buttons(undef, $page, 'homepage');
    	    print "&nbsp;\n";
	        print_buttons($stock->{stock}, undef, 'fav_add');
        }
        print " </td>\n";
        
        # right buttons
        print " <td width=\"50%\" valign=\"top\" align=\"right\">\n";
#        print_buttons($stock->{stock}, undef, 'kantel') if (defined($param->{twoyear}));
        if (!defined($param->{twoyear}))
        {
			my $ktitle = sprintf("%d juist van de %d adviezen.", $data->{num_ok}, $data->{num_ok}+$data->{num_nok});
    		print_pie_graph('small', $data->{num_ok}, $data->{num_nok}, $ktitle, $stock->{market},
    							"ShowKantelpunten.pl?stock=$id");
		}
        print "&nbsp;\n" if (!defined($param->{twoyear}));
        print_buttons($stock->{stock}, undef, 'aandeel');
        print "&nbsp;\n";
        print_buttons($stock->{stock}, undef, 'nieuws');
        print "&nbsp;\n";
        print_buttons($stock->{stock}, undef, 'intraday');
        print "&nbsp;\n";
        print_buttons($stock->{stock}, undef, 'quotes');
        print "&nbsp;\n";
        print_buttons($stock->{stock}, undef, 'admin1');
        print " </td>\n";
        print_table(0, "end");
        }
        
        print_table(0, undef, 0, 0, 0, undef, "97%");
        print_div("center");
        print "<tr>\n";
        # center kantelpunten
        my $bcolor = "dark_kantel";
        print " <td width=\"50%\">\n";
        print_div("center");
        print $table;
        print_div("end");
        print " </td>\n";
        print "</tr>\n";
        print_table(0, "end");    
        
        print "<small><br></small>\n";
        print_google_search("kantelpunten") if (!defined($param->{twoyear}));
        if (!defined($param->{twoyear}))
        {
            print_dual_heading($stock->{html_name}, "Laatste maand met volumes");
            print_big_graph($stock, $stock->{bchart_symb}, $stock->{bchart_sid},
                            $stock->{bchart_sedol}, "volume", 1);
        }
        print "<small><br></small>" if (!defined($param->{twoyear}));
        print "<small><small><span><b><br>\n";
        print "Gebruik het <img vspace=\"0\" hspace=\"0\" style=\"border: 0px solid ; width: 12px; height: 12px;\"\n";
        print "             alt=\"\" title=\"Toon historische beleggings adviezen.\"\n";
        print "             src=\"http://www.kantelpunten.com/pics/icon/MICOON_sel_right.gif\"> hierboven om de historische<br>\n";
        print "adviezen per kantelpunt te bekijken of<br>\n";
        print "Toon <a href=\"/pl/ShowKantelpunten.pl?stock=$stock->{stock}&all=1\" rel=\"nofollow\">alle beleggings adviezen</a>.\n";
		print "</b></span><br><br></small></small>\n"; 
    }
    
   	print_banner_ads("hist_midden", "info", 1, 1) if (show_adds("hist_tabel"));
   	print_banner_ads("hist_midden", "info", undef, 1) if (show_adds("hist_tabel"));
    print_voet_start();
    print_empty_lines(1, 0);
    print_ads("yahoo_klein");    
    print_div("end");
}

sub print_heading(@)
{
    my ($heading, $img) = @_;
    
    printf "\n<!-- heading for %s -->\n", $heading;
    print  "$img" if (defined($img));
    print  "<span style=\"color: rgb(0, 0, 153); font-family: verdana;\">\n";
    printf " <small style=\"font-weight: bold;\"><big><big>%s<br></big></big>\n", $heading;
    print  " </small>\n";
    print  "</span>\n";
}

sub print_info_block(@)
{
    my ($stock, $data) = @_;
    
    print_table(0, undef, 0, 0, 15, undef, "598px", "center");
    print "<tr>\n";
    print_td(0, "center", undef, undef, "278px");
    print "<small>\n";
    print_interim_heading(undef, "Update elke beursdag om 18 uur.");
    print "<small><br></small>\n";
    my $yes = "<span style=\"background-color: rgb(0, 255, 0)\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>";
    print_interim_heading(undef, "\"$yes\"");
    print_interim_heading(undef, "We beschouwen een kantelpunt als geslaagd");
    print_interim_heading(undef, "bij minstens +1% vanaf onze trigger.");
    print "<small><br></small>\n";
    print_interim_heading(undef, "\"&nbsp;Max%&nbsp;\"");
    print_interim_heading(undef, "Maximum haalbare % vanaf onze trigger.");
    print_interim_heading(undef, "Dit is niet het rendement tussen 2 triggers.", "red");
    print "<small><br></small>\n";
    print_interim_heading(undef, "Geslaagde stoplossen krijgen +tekens.");
    my $twee = "<span style=\"color: rgb(255, 0, 0)\">2x</span>";
    print_interim_heading(undef, "Lager inkopen is $twee winst !!! <a href=\"ShowMain.pl?page=10016\" target=\"hoofd\">Voorbeeld.</a>");
    print "</small>\n";
    print "</td>\n";
    print_td(0, "left", undef, "100%", "278px");
#    print_analytical_graph($stock->{stock}, $stock->{bchart_symb}, $stock->{bchart_sid}, "Quarterly", $stock->{our_data});
    print_5days_graph($stock->{stock}, $data);    
    print "</td>\n";
    print "</tr>\n";
    print "</table>\n";
}

