#!/usr/local/cpanel/3rdparty/bin/perl

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2023 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

BEGIN {
    unshift @INC, '/usr/local/cpanel', '/usr/local/cpanel/whostmgr/docroot/3rdparty/cloudlinux',
        '/usr/share/l.v.e-manager/cpanel/cgi';
    #use CGI::Carp qw(fatalsToBrowser); # for detail comments
}

use strict;
use warnings;
use locale ':not_characters';   # utf-8

use Cpanel::LiveAPI();
use Cpanel::JSON;
use Cpanel::Form;
use CloudLinux;
use CGI;

#use CGI::Carp qw(fatalsToBrowser); # uncomment to debug 500 error

use constant ASSETS_PATH => "/3rdparty/cloudlinux/assets/awp-user";

my $panel = Cpanel::LiveAPI->new();

my $cgi = CGI->new;

my %GET_REQUESTS    = CloudLinux::parseForm(Cpanel::Form::parseform());
my %REQUEST    = CloudLinux::parseForm($cgi->Vars);
my $cgiaction = $GET_REQUESTS{'cgiaction'} || 'default';

CloudLinux::setOwner(CloudLinux::OWNER_USER);
CloudLinux::detectLocale($cgi);

my %dispatchTable = (
    default => \&main,
    sendRequest => \&CloudLinux::lvemanagerHandler,
    knockKnock => \&CloudLinux::knockKnock,
);es

$cgiaction = 'default' unless exists $dispatchTable{$cgiaction};
$dispatchTable{$cgiaction}->(\%REQUEST, 'wpos');

$panel->end();


sub main {
    CloudLinux::checkMethod('GET', 'POST');
    print "Content-type: text/html; charset=utf-8\n\n";

    # Print header: arg1 - page_title; arg2 - app_key
    print $panel->header('', 'lvewpos');

    CloudLinux::getDataContent('templates', 'index.html', 1);

     printf(
        '<script type="text/javascript">' .
            'mainAction = "wpos.live.pl?cgiaction=sendRequest";'.
            'pingAction = "wpos.live.pl?cgiaction=knockKnock";'.
            'imagePath = "/images/spa/";'.
            'panelName = "Cpanel";'.
            'logoutUrl = "/logout";'.
        '</script>'
    );

    if (
        'POST' eq $cgi->request_method
        && $cgi->param('advice_id')
        && $cgi->param('event')
        && $cgi->param('journey_id')
        && $cgi->param('source')
        && $cgi->param('user_hash')
        ) {
            printf(
                '<script type="text/javascript">' .
                    'analytics_advice_id = "%s";'.
                    'analytics_event = "%s";'.
                    'analytics_journey_id = "%s";'.
                    'analytics_source = "%s";'.
                    'analytics_user_hash = "%s";'.
                '</script>',
                CGI::escapeHTML($cgi->param('advice_id')),
                CGI::escapeHTML($cgi->param('event')),
                CGI::escapeHTML($cgi->param('journey_id')),
                CGI::escapeHTML($cgi->param('source')),
                CGI::escapeHTML($cgi->param('user_hash'))
            );
    }

    CloudLinux::loadGlobalVariables('../../..'.ASSETS_PATH);

    Whostmgr::HTMLInterface::load_css(ASSETS_PATH.'/common-styles.css');

    Whostmgr::HTMLInterface::load_css(ASSETS_PATH.'/bootstrap.min.css');

    Whostmgr::HTMLInterface::load_js(sprintf('%s/polyfills.bundle.min.js', ASSETS_PATH));
    Whostmgr::HTMLInterface::load_js(sprintf('%s/vendor.bundle.min.js', ASSETS_PATH));
    Whostmgr::HTMLInterface::load_js(sprintf('%s/wpos.bundle.min.js', ASSETS_PATH));

    print $panel->footer();
}
