<?php

//blind copy from 8, dont know if it's correct
$documentation['installer'     ][9] = array('ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','ja','nb','nl','pl','pt_br','ro','ru','sk','sl','sq','sr','sv','tr','uk','zh_cn');
$documentation['control_center'][9] = array('ca','cs','da','de','el','en','es','et','eu','fr','id','it','ja','nb','nl','pl','pt_br','ro','ru','sl','sq','sr','sv','tr','uk','zh_cn');
$documentation['draklive'      ][9] = array('cs','de','el','en','es','et','eu','fr','hr','ja','nl','pt_br','ro','ru','sk','sl','sq','sr','sv','uk');
$documentation['netinstall'    ][9] = array('ca','de','el','en','es','et','eu','fr','hu','ja','nb','nl','pt_br','ru','sl','sq','sr','sv','tr','uk','zh_cn');

$documentation['installer'     ][8] = array('ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','ja','nb','nl','pl','pt_br','ro','ru','sk','sl','sq','sr','sv','tr','uk','zh_cn');
$documentation['control_center'][8] = array('ca','cs','da','de','el','en','es','et','eu','fr','id','it','ja','nb','nl','pl','pt_br','ro','ru','sl','sq','sr','sv','tr','uk','zh_cn');
$documentation['draklive'      ][8] = array('cs','de','el','en','es','et','eu','fr','hr','ja','nl','pt_br','ro','ru','sk','sl','sq','sr','sv','uk');
$documentation['netinstall'    ][8] = array('ca','de','el','en','es','et','eu','fr','hu','ja','nb','nl','pt_br','ru','sl','sq','sr','sv','tr','uk','zh_cn');

$documentation['installer'     ][7] = array('ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','ja','nb','nl','pl','pt_br','ro','ru','sk','sl','sq','sv','tr','uk','zh_cn');
$documentation['control_center'][7] = array('ca','cs','da','de','el','en','es','et','eu','fr','id','it','ja','nb','nl','pl','pt_br','ro','ru','sl','sq','sv','tr','uk','zh_cn');
$documentation['draklive'      ][7] = array('cs','de','el','en','es','et','eu','fr','hr','ja','nl','pt_br','ro','sk','sl','sq','sv','uk','zh_cn');
$documentation['netinstall'    ][7] = array('ca','cs','de','el','en','es','et','eu','fr','hu','ja','nb','nl','pt_br','ru','sq','sl','sv','tr','uk','zh_cn');

$documentation['installer'     ][6] = array('ca','cs','de','el','en','eo','es','et','eu','fr','hr','hu','id','it','nb','nl','pl','pt','pt_br','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN');
$documentation['control_center'][6] = array('ca','cs','da','de','el','en','es','et','eu','fr','id','it','nl','pl','pt','pt_br','ro','ru','sl','sq','sv','tr','uk','zh_CN');
$documentation['draklive'      ][6] = array('cs','de','el','en','es','et','eu','fr','hr','nb','nl','pt_br','ro','ru','sk','sl','sq','sv','tr','uk','zh_CN');
$documentation['netinstall'    ][6] = array('ca','cs','de','el','en','es','et','eu','fr','nb','nl','pt_br','sl','sv','tg','tr','uk','zh_CN');

$documentation['installer'     ][5] = array('ca','cs','de','el','en','eo','es','et','eu','fr','hr','id','it','nl','pl','pt','pt_br','ro','ru','sq','sv','tr','uk','zh_CN');
$documentation['control_center'][5] = array('ca','cs','de','el','en','es','et','eu','fr','id','it','nl','pl','pt','pt_br','ro','ru','sv','tr','uk');
$documentation['draklive'      ][5] = array('cs','de','el','en','es','et','eu','fr','hr','nl','ro','sk','sl','sv','uk','zh_CN');

$documentation['installer'     ][4] = array('ca','cs','de','el','en','eo','es','et','fr','id','nl','pl','pt_br','ro','ru','sv','tr','uk');
$documentation['control_center'][4] = array('en','et','fr','ru','tr','uk');

$documentation['installer'     ][3] = array('de','el','en','es','et','fr','nl','pt_br','ru','uk');
$documentation['control_center'][3] = array('en','et','fr');

$documentation['installer'     ][2] = array('de','el','en','eo','fr','nl','pt_br','uk');

$defs = parse_ini_file('../downloads/get/definitions_doc.ini', true);

function pdf_epub_present_in_locale($doc_name, $lang, $extension)
{
    global $defs;

    $eng_file_name = sprintf('%s_en_%s', $doc_name, $extension);
    if(array_key_exists($eng_file_name, $defs)) {
        $langs = explode('|', $defs[$eng_file_name]['langs']);
        if (in_array($lang, $langs)) {
            return TRUE;
        }
    }
    return FALSE;
}

function doc_present_in_locale($documentation_name, $version)
{
    global $locale;
    global $documentation;
    $link_locale = locale_hyphen_underscore($locale); // create pt_br.po from pt-br and alike
    if (in_array($link_locale, $documentation[$documentation_name][$version])) {
        return $link_locale;
    } else {
        return 'en';
    }
}

function doc_list($documentation_name, $type, $version)
{
    global $locale;
    global $langs;
    global $documentation;

    if ('control_center' == $type) {
        $dir   = 'mcc';
        $name  = 'MCC';
        $title = _r('Control Center');
    } else if ('installer' == $type) {
        $dir   = 'installer';
        $name  = 'DrakX';
        $title = _r('Installer');
    } else if ('draklive' == $type) {
        $dir   = 'draklive';
        $name  = 'DrakLive';
        $title = _r('Installation from LIVE medium');
    } else if ('netinstall' == $type) {
        $dir   = 'netinstall';
        $name  = 'NetInstall';
        $title = _r('Installation with tiny boot image');
    } else {
        return; // proper $type not defined ;)
    }

    $doc_link = sprintf('<a href="//doc.mageia.org/%s/%s/%s/content/index.html">%s</a>', $dir, $version, '%s', '%s');
    $pdf_link  = sprintf('<a rel="nofollow" href="../downloads/get/?q=Mageia%s-%s-%s-pdf&amp;doc=yes" title="Mageia %s PDF">PDF</a>', $version, $name, '%s', $title);
    $epub_link = sprintf('<a rel="nofollow" href="../downloads/get/?q=Mageia%s-%s-%s-epub&amp;doc=yes" title="Mageia %s EPUB">EPUB</a>', $version, $name, '%s', $title);

    $link_locale = locale_hyphen_underscore($locale); // create pt_br.po from pt-br and alike
    $your_language = '';
    $others = array();
    $text_others = '';
    $your_language_present = FALSE;
    $other_languages_present = FALSE;
    $note_printed = FALSE;
    $table = PHP_EOL . '<table class="table table-sm">' . PHP_EOL;

    foreach ($documentation[$type][$version] as $lng) {
        // hopefully temporary exception for pt-br as convention for lang-abbrev in /langs.inc.php is different as link in doc.mageia.org
        $lng_name = $langs[locale_underscore_to_hyphen($lng)];

        $pdf_present  = pdf_epub_present_in_locale(sprintf('Mageia%s_%s', $version, $name), $lng, 'pdf');
        $epub_present = pdf_epub_present_in_locale(sprintf('Mageia%s_%s', $version, $name), $lng, 'epub');
        $pdf_epub_links = array();
        if ($pdf_present) {
            $pdf_epub_links[] = sprintf($pdf_link, $lng);
        }
        if ($epub_present) {
            $pdf_epub_links[] = sprintf($epub_link, $lng);
        }
        $pdf_epub_links = implode(', ', $pdf_epub_links);
        $lang_doc_link = sprintf($doc_link, $lng, $lng_name);

        if ($link_locale == $lng) {
            $your_language_present = TRUE;
            if (!$pdf_present && !$epub_present) {
                $your_language = sprintf(_r('Online manual for %s available in %s') . '<br/>',
                                        '<span style="font-weight:bold">' . $documentation_name . '</span>', $lang_doc_link);
            } else {
                $your_language = sprintf(_r('Online manual for %s available in %s') . '<br/> <small class="text-mutted">('.
                                        _r('also as file:') . ' %s)</small>',
                                        '<span style="font-weight:bold">' . $documentation_name . '</span>',
                                        $lang_doc_link, $pdf_epub_links);
            }
        } else {
            $other_languages_present = TRUE;
            if (!$pdf_present && !$epub_present) {
                $others[] = $lang_doc_link;
            } else {
                if(!$note_printed) {
                    $note = _r('also as file:', ' ');
                    $note_printed = TRUE;
                } else {
                    $note = '';
                }
                $others[] = sprintf('%s <small class="text-muted">(%s%s)</small>',
                $lang_doc_link, $note, $pdf_epub_links, $lang_doc_link);
            }
        }
    }
    if ($your_language_present) {
        $text_your_language = '<span style="font-weight:bold">' . _r('Documentation in your language:') . '</span><br/>';
        if ($other_languages_present) {
            $text_others = '<a class="text-muted font-weight-light" data-toggle="collapse" href="#table-'.$name.'-'.$version.'" role="button" aria-expanded="false" aria-controls="table-'.$name.'-'.$version.'">' . _r('Other languages:') . ' &#x2198; </a>';
        }
        $table .= sprintf("\t<caption class=\"caption-top\">%s</caption>" . PHP_EOL .
                        "\t<thead><tr><th class=\"border-0\">%s</th></tr></thead>" . PHP_EOL .
                        '<tbody class="collapse" id="table-%s-%s">' . PHP_EOL ,
                        $your_language, $text_others, $name, $version);
    } else {
        foreach($documentation[$type] as $single_version => $all_languages) {
            if($single_version < $version && in_array($link_locale, $all_languages)) {
                $language_present_before = "\t\t<tr><td>" .
                    sprintf(_r('Translation was present in %s before.<br/>Maybe you can check documentation for %s in Mageia %s.'),
                            $langs[locale_underscore_to_hyphen($locale)], $documentation_name, $single_version) . "</td></tr>" . PHP_EOL;
                break;
            } else {
                $language_present_before = '';
            }
        }
        $text_your_language = _r('Not <a href="../community/">yet</a> available in your language.') . ' ' . _r('Click below for alternative available languages.') . '<br/>';
        $table .= sprintf("\t<caption class=\"caption-top\">%s<br/>" . PHP_EOL .
                        "\t%s<a class=\"text-muted font-weight-light\" data-toggle=\"collapse\" href=\"#table-$name-$version\" role=\"button\" aria-expanded=\"false\" aria-controls=\"table-$name-$version\"> &#x2198; </a></caption>" . PHP_EOL . '%s' .
                        "\t<tbody class=\"collapse\" id=table-%s-%s>" . PHP_EOL ,
                        '<span style="font-weight:bold">' . $documentation_name . '</span>', $text_your_language, $language_present_before, $name, $version);
    }
    foreach ($others as $other_languages) {
        $table .= sprintf("\t\t<tr><td>%s</td></tr>" . PHP_EOL, $other_languages);
    }
    $table .= "\t</tbody>" . PHP_EOL;
    $table .= "</table>" . PHP_EOL;

    echo $table;
}