<?php

require_once("../autentificare.php");
require_once("{$sitepath}pagecomponents.php");

check_auth();

$id_fisier_vechi = getuserdata('id_fisier_vechi', 0);
$id_fisier_referinta = getuserdata('id_fisier_referinta', 0);
$id_utilizator_destinatie = getuserdata('id_utilizator', 0);
$id_categorie = getuserdata('id_categorie', 0);
$stare = getuserdata('stare', 0);
$id_utilizator = $_SESSION['s_id_utilizator'];
$pagina = getuserdata('pagina', 'validare');
$result = "Fişierul nu a putut fi încărcat!";

// Verific daca utilizatorul are drepturi de upload
/*$sql = "SELECT * 
        FROM utilizatorixgrupuri ug
            JOIN grupuri g ON g.id_grup = ug.id_grup
            JOIN drepturi d ON d.id_grup = g.id_grup
            JOIN aplicatii a ON a.id_aplicatie = d.id_aplicatie
            JOIN fisiere_raportate f ON f.id_fisier_raportat = a.id_aplicatie
        WHERE ug.id_utilizator = $id_utilizator AND ug.activ = 1 AND f.id_fisier_raportat = $id_fisier_raportat";
$q = mysql_query($sql);
if (mysql_num_rows($q))
{*/
    // Verific daca perioada este valida si daca nu a fost incarcat fisier valid
    
    // Incarc fisierul
    $director_destinatie = $filespath.$id_utilizator;
    if (!is_dir($director_destinatie)) mkdir($director_destinatie);
    if (is_dir($director_destinatie))
    {
        $separator = substr($filespath, strlen($filespath) - 1);
        $tag = "";
        if ($id_fisier_referinta) $tag = 'fisr'.$id_fisier_referinta;
        elseif ($id_fisier_vechi) $tag = 'fis'.$id_fisier_vechi;
        elseif ($id_utilizator_destinatie) $tag = 'user'.$id_utilizator_destinatie;
        if (isset($_FILES["{$tag}fisier"]))
        {
            $nume_fisier_destinatie = $_FILES["{$tag}fisier"]['name'];
            $ext_fisier_destinatie = substr($nume_fisier_destinatie, 
                strlen($nume_fisier_destinatie) - strrpos($nume_fisier_destinatie, '.') - 1);
            $nume_fisier_destinatie = substr($nume_fisier_destinatie, 0,
                strlen($nume_fisier_destinatie) - strrpos($nume_fisier_destinatie, '.') - 1);
            $index = '';
            while (file_exists($director_destinatie.$separator.$nume_fisier_destinatie.(($index!='')?'['.$index.']':'').$ext_fisier_destinatie))
            {
                $index = (string)(((int)$index)+1);
            }
            $nume_fisier = $nume_fisier_destinatie.(($index!='')?'['.$index.']':'').$ext_fisier_destinatie;
            $cale_destinatie = $director_destinatie.$separator.$nume_fisier;
            $tip_fisier = $_FILES["{$tag}fisier"]['type'];
            $nume_original = $_FILES["{$tag}fisier"]['name'];
            if (@move_uploaded_file($_FILES["{$tag}fisier"]['tmp_name'], $cale_destinatie))
            {
                if ($id_fisier_referinta)
                {
                    $q = mysql_query("SELECT * FROM fisiere WHERE id_fisier = $id_fisier_referinta");
                    if ($r = mysql_fetch_assoc($q))
                    {
                        $sql = "INSERT INTO fisiere (id_aplicatie, id_perioada, id_utilizator_sursa,
                                    id_utilizator_destinatie, id_fisier_referinta, stare, 
                                    nume_fisier, nume_original, tip_fisier, data_incarcare, id_categorie)
                                VALUES ({$r['id_aplicatie']}, {$r['id_perioada']}, {$_SESSION['s_id_utilizator']},
                                    {$r['id_utilizator_sursa']}, $id_fisier_referinta, 1,
                                    '$nume_fisier', '$nume_original', '$tip_fisier', NOW(), ".
                                    (($id_categorie)?$id_categorie:'NULL').")";
                        mysql_query($sql);
                        if (!mysql_error())
                        {
                            $result = '';
                        }
                        else
                        {
                            $result = 'Fişierul nu a putut fi înregistrat în baza de date';
                            unlink($cale_destinatie); // sterg si fisierul de pe server
                        }
                    }
                    else unlink($cale_destinatie);
                }
                elseif ($id_fisier_vechi)
                {
                    $sql = "UPDATE fisiere SET
                                nume_fisier = '$nume_fisier',
                                nume_original = '$nume_original',
                                tip_fisier = '$tip_fisier',
                                data_incarcare = NOW(),
                                id_categorie = ".(($id_categorie)?$id_categorie:'NULL')."
                            WHERE id_fisier = $id_fisier_vechi";
                    mysql_query($sql);
                    if (!mysql_error())
                    {
                        $result = '';
                    }
                    else
                    {
                        $result = 'Fişierul nu a putut fi înregistrat în baza de date';
                        unlink($cale_destinatie); // sterg si fisierul de pe server
                    }
                }
                else
                {
                    $sql = "INSERT INTO fisiere (id_utilizator_sursa, id_utilizator_destinatie, stare,
                                nume_fisier, nume_original, tip_fisier, data_incarcare, id_categorie)
                            VALUES ({$_SESSION['s_id_utilizator']}, $id_utilizator_destinatie, $stare,
                                '$nume_fisier', '$nume_original', '$tip_fisier', NOW(), ".
                                (($id_categorie)?$id_categorie:'NULL').")";
                    mysql_query($sql);
                    if (!mysql_error())
                    {
                        $result = '';
                    }
                    else
                    {
                        $result = 'Fişierul nu a putut fi înregistrat în baza de date';
                        unlink($cale_destinatie); // sterg si fisierul de pe server
                    }
                }
            }
            else
                $result = 'Fişierul destinaţie nu a putut fi creat pe server';
        }
        else
            $result = 'Datele nu au fost transmise corect către server!';
    }
    else
        $result = 'Fişierul nu a putut fi încărcat pe server!';
//}

echo $result;
   
sleep(2);

if ($pagina == 'validare')
{
?>

<script language="javascript" type="text/javascript">
    window.top.window.finalFisierValidator(<?=$id_fisier_vechi ?>, <?=$id_fisier_referinta ?>, <?=$id_utilizator ?>, "<?=$result ?>");
</script>

<?
}
else
{
?>
<script language="javascript" type="text/javascript">
    window.top.window.finalFisierValidatorFisiere(<?=$id_fisier_vechi ?>, <?=$id_fisier_referinta ?>, <?=$id_utilizator ?>, "<?=$result ?>");
</script>
<?
}
?>