#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use MIME::Base64::Perl;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);
use Opals::Context;
use Opals::Constant;
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
use  Opals::User qw(
    user_currentUser
);
use XML::SAX;
use JSON;
use Text::CSV_XS;


my ($errCode, $ck, $currentUser) = user_currentUser($dbh, $cgi);
my $uid     = $currentUser->{'uid'};

#if ($permission && $permission->{'user_add'} && $fname ne '') {
   my ($firstline,$userData) = getFile();
   
   my $sth=$dbh->prepare(" insert into opl_userimport set  
                uid        = ?,
                dateUpload = now(),
                data       = ?");
    $sth->execute($uid,$userData);
    my $importId= $dbh->{'mysql_insertid'};
    print "Content-type: text/plain\n\n";
    print  encode_json({importId =>$importId,
                        firstline=>$firstline
                       });
 #-------------------------------------------------------------
    sub getFile{
        my $csv = Text::CSV_XS->new({ binary => 1 });

        my $upload_filehandle = $cgi->upload("file"); 
        my @uData = ();    
        my $userData = "";
        while(<$upload_filehandle>) {
            $userData .=$_;
        }
        $userData =~ s/\r/\n/g;
        $userData =~ s/\n\n/\n/g;
        @uData =split /\n/,$userData;
        $userData =~ s/\n/\r\n/g;

        my $firstline = $uData[0];
        #test if file is tab d seperated.
        my @tmp=split(/\t/,$uData[0]);
        if(scalar(@tmp)>1){
             $firstline =~ s/\t/,/g;
             $userData =~ s/\t/,/g;
        }
        return ($firstline,$userData);       
    }
#-------------------------------------------------------------
    sub getFile_1{
        my $upload_filehandle = $cgi->upload("file"); 
        my @uData = ();    
        my $userData = "";
        while(<$upload_filehandle>) {
            push @uData,$_;
        }
        my $firstline = $uData[0];
        #test if file is tab d seperated.
        my @tmp=split(/\t/,$uData[0]);
        if(scalar(@tmp)>1){
             $firstline =~ s/\t/,/g;
             for (my $i = 0; $i < scalar(@uData); $i++) {
                $uData[$i] =~ s/\t/,/g;
            }
        }
        for (my $i = 0; $i < scalar(@uData); $i++) {
            $userData .= $uData[$i] ;
        }
        return ($firstline,$userData);       
    }
   #-------------------------------------------------------------
    sub getFile_bk{
        my $upload_filehandle = $cgi->upload("file"); 
        my @uData = ();    
        my $userData = "$firstline\n";
        my $firstline = undef;
        while(<$upload_filehandle>) {
            $userData .=$_;
            $firstline=$_ if(!defined $firstline );
        }

        #for (my $i = 1; $i < scalar(@uData); $i++) {
        #    $userData .= $uData[$i] ."\n";
        #}
        return ($firstline,$userData);       
    }
   #-------------------------------------------------------------
     
#}

