require "functions.pl";

#create or resume session
CGI::Session->name($config->{"page_cookie_name"});
$query = new CGI;
$session = new CGI::Session;

@userinfo = get_userinfo_from_sid($session->id);

@page = get_page_array(@userinfo);

if($userinfo->{'username'})
{
    $page->{'uploadform'}->{'DC.Title'} = $query->param('DC.Title');
    $page->{'uploadform'}->{'DC.Subject'} = $query->param('DC.Subject');
    $page->{'uploadform'}->{'DC.Description'} = $query->param('DC.Description');
    $page->{'uploadform'}->{'DC.Creator'} = $query->param('DC.Creator');
    $page->{'uploadform'}->{'DC.Source'} = $query->param('DC.Source');
    $page->{'uploadform'}->{'DC.Language'} = $query->param('DC.Language');
    $page->{'uploadform'}->{'DC.Coverage'} = $query->param('DC.Coverage');
    $page->{'uploadform'}->{'DC.Rights'} = $query->param('DC.Rights');
    $page->{'uploadform'}->{'DC.License'} = $query->param('DC.License');
    
    if($query->param('2'))
    {
        #remove duplicates from tags
        @subject = split(' ', $query->param('DC.Subject'));
        @unique{ @subject } = ();
        foreach $tag (keys %unique)
        {
            $tag =~ s/^\s*(.*?)\s*$/$1/;
            if(length($tag) >= $config->{"page_tag_lenght_min"})
            {
                $subject.=$tag." ";
            }
        }
        $subject =~ s/\s*$//;
        $page->{'uploadform'}->{'DC.Subject'} = $subject;
        
        if($query->param('DC.Title')&&$subject&&$query->param('DC.Description'))
        {
            $page->{'results-listing'} = [''];
    
            my @args = ();

            #build mysql query
            my $dbquery = "select v.id, v.title, v.description, u.username,
                from_unixtime( v.timestamp ), v.creator, v.subject,
                v.source, v.language, v.coverage, v.rights,
                v.license, filesize, duration, width, height, fps, viewcount,
                downloadcount,
                match(v.title, v.description, v.subject)
                against( ? in boolean mode) as relevance
                from videos as v, users as u where u.id = v.userid
                and match(v.title, v.description, v.subject)
                against( ? in boolean mode)";
            push @args, $query->param('DC.Title'), $query->param('DC.Title');
    
            fill_results($dbquery, @args);
            $page->{'uploadform'}->{'page'} = '2';
        }
        else
        {
            if(!$query->param('DC.Title'))
            {
                $page->{'message'}->{'type'} = "error";
                $page->{'message'}->{'text'} = "error_missing_DC.Title";
            }
            elsif(!$query->param('DC.Subject'))
            {
                $page->{'message'}->{'type'} = "error";
                $page->{'message'}->{'text'} = "error_missing_DC.Subject";
            }
            elsif(!$query->param('DC.Description'))
            {
                $page->{'message'}->{'type'} = "error";
                $page->{'message'}->{'text'} = "error_missing_DC.Description";
            }
            $page->{'uploadform'}->{'page'} = '1';
        }
    }
    elsif($query->param('3'))
    {
        $page->{'uploadform'}->{'page'} = '3';
    }
    elsif($query->param('4'))
    {
        if($query->param('DC.License') eq 'cc-by')
        {
            $page->{'uploadform'}->{'remix'} = 'true';
        }
        elsif($query->param('DC.License') eq 'cc-by-sa')
        {
            $page->{'uploadform'}->{'sharealike'} = 'true';
        }
        elsif($query->param('DC.License') eq 'cc-by-nd')
        {
            $page->{'uploadform'}->{'noderivatives'} = 'true';
        }
        elsif($query->param('DC.License') eq 'cc-by-nc')
        {
            $page->{'uploadform'}->{'remix'} = 'true';
            $page->{'uploadform'}->{'noncommercial'} = 'true';
        }
        elsif($query->param('DC.License') eq 'cc-by-nc-sa')
        {
            $page->{'uploadform'}->{'sharealike'} = 'true';
            $page->{'uploadform'}->{'noncommercial'} = 'true';
        }
        elsif($query->param('DC.License') eq 'cc-by-nc-nd')
        {
            $page->{'uploadform'}->{'noderivatives'} = 'true';
            $page->{'uploadform'}->{'noncommercial'} = 'true';
        }
        
        $page->{'uploadform'}->{'page'} = '4';
    }
    elsif($query->param('5'))
    {
        if($query->param('modification') and not $query->param('DC.License'))
        {
            if($query->param('modification') eq 'remix')
            {
                if($query->param('noncommercial'))
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc';
                }
                else
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by';    
                }
            }
            elsif($query->param('modification') eq 'sharealike')
            {
                if($query->param('noncommercial'))
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-sa';
                }
                else
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by-sa';
                }
            }
            elsif($query->param('modification') eq 'noderivatives')
            {
                if($query->param('noncommercial'))
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-nd';
                }
                else
                {
                    $page->{'uploadform'}->{'DC.License'} = 'cc-by-nd';
                }
            }
        }
        
        $page->{'uploadform'}->{'page'} = '5';
    }
    else
    {
        $page->{'uploadform'}->{'page'} = '1';
    }
}
else
{
    $page->{'message'}->{'type'} = "error";
    $page->{'message'}->{'text'} = "error_202c";
}

print output_page();
