<?php

include_once("common.php");


if (isset($_SESSION["user"])) {
  if ($_SESSION["user"]["isadmin"] && isset($_SESSION["userId"])) {
    if (isset($_GET["userid"])) {
      $_SESSION["userId"] = $_GET["userid"];
      $userId = $_SESSION["userId"];
    } else
      $userId = $_SESSION["userId"];
    if ($userId == 0)
      $userId = $_SESSION["user"]["user_id"];
  } else {
    $userId = $_SESSION["user"]["user_id"];
    if ($_SESSION["user"]["isadmin"] && isset($_GET["userid"]) && $_GET["userid"] != 0)
      $userId = $_GET["userid"];
  }
} else
  $userId = 0;


if (isset($_POST['showphotos'])) { // megjelentijuk a fotoalbumot
  $value = array();
  $images = "";
  $timestamps = array();
  
  $surfaceId = 0;
  if (isset($_POST["surfaceid"]))
    $surfaceId = $_POST["surfaceid"];

  if (isset($_SESSION["kepek"])) {
    $i = 0;
    foreach ($_SESSION["kepek"] as $foto) {
      if ($surfaceId != 3 || ($surfaceId == 3 && strpos($foto["image"], "_J.") !== false)) {
        $images .= '<a href="' . $foto["image"] . '#' . uniqid() . '" id="'. $foto["image"] . '" class="photos-' . $i . '" rel="fotok"><img src="' . $foto["image"] . '#' . uniqid() . '" /></a>';
        $timestamps[] = $foto["timestamp"];
        $i++;
      }
    }
    $value = array("images" => $images, "timestamps" => $timestamps);
  }
  
  echo json_encode($value);

} else if (isset($_POST['getphotos'])) { // levalogatjuk a kepeket az id alapjan

  $page = $_POST['page'];
  $limit = $_POST['rows'];
  $sidx = $_POST['sidx'];
  $sord = $_POST['sord'];
  if (!$sidx)
    $sidx = 1;

  $feluletKod = "";
  $sajatKod = "";
  if (isset($_POST['feluletid'])) {
    $feluletId = $_POST["feluletid"];
    $felulet = GetFelulet($feluletId);
    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];
  } else {
    if (isset($_POST['feluletkod']))
      $feluletKod = $_POST['feluletkod'];
  }

  $kampanyId = -1;
  if (isset($_POST['kampanyid']))
    $kampanyId = $_POST['kampanyid'];

  $ragacsDatum = "";
  $ragacsDatumAsTimeStamp = 0;
  if (isset($_POST['ragacsdatum'])) {
    $ragacsDatum = $_POST['ragacsdatum'];
    $ragacsDatumAsTimeStamp = strtotime(substr(str_replace(".", "-", $ragacsDatum), 0, 10));
  }

  if ($feluletKod != -1 && $kampanyId != -1) {

    unset($_SESSION["kepek"]);
    
    $kepek = array();
    $folder = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyId . "/" . $ragacsDatum;
    if (file_exists($folder)) {
      $fnames = scandir($folder);
      $fnames = sortPhotos($fnames);
      
      foreach ($fnames as $fname) {
        if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
          if (!is_dir($folder . "/" . $fname) && (strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false))) {
            $img = $folder . "/" . $fname;
            $kepek[] = array("image" => $img, "timestamp" => date("Y.m.d. H:i:s", filemtime($img)));
          }
        }
      }
      $_SESSION["kepek"] = $kepek;
    }

    if ($sord == 'desc')
      $kepek = array_reverse($kepek);
  
    header("Content-type: text/xml;charset=utf-8");
  
    $count = count($kepek);
    if ($count == 0)
      $limit = 0;
  
    $limit = $count;
  
    if ($count > 0 && $limit > 0)
      $total_pages = ceil($count/$limit);
    else
      $total_pages = 0;
  
    if ($page > $total_pages)
      $page = $total_pages;
  
    $ret = "<?xml version='1.0' encoding='utf-8' ?>";
    $ret .= "<rows>";
  
    $ret .= "<page>".$page."</page>";
    $ret .= "<total>".$total_pages."</total>";
    $ret .= "<records>".$count."</records>";
  
    $j = 0;
    for ($i=($page-1)*$limit;$i<$page*$limit;$i++) {
      $ret .= "<row id='".$j."'>";
      $ret .= "<cell>".basename($kepek[$i]["image"])."</cell>";
      $ret .= "</row>";
      $j++;
    }
  
    $ret .= "</rows>";
  } else {
    header("Content-type: text/xml;charset=utf-8");
    $ret = "<?xml version='1.0' encoding='utf-8' ?>";
    $ret .= "<rows>";
    $ret .= "<page>0</page>";
    $ret .= "<total>0</total>";
    $ret .= "<records>0</records>";
    $ret .= "</rows>";
  }
  
  echo $ret;
} else if (isset($_POST['getfeluletkod']) && $_POST['getfeluletkod'] == 1) { // feluletkod levalogatasa

  if (isset($_POST["id"])) {
    $felulet = GetFeluletKod($_POST["id"]);
    
    echo $felulet["felulet_kod"];
  }
  return;

} else if (isset($_POST["getassignedphotos"]) && $_POST["getassignedphotos"] == 1) {

  $kepek = array();
  if (isset($_POST["feluletid"])) {
    
    $feluletId = $_POST["feluletid"];
    $felulet = GetFelulet($feluletId);
    $kampanyId = $felulet["kampany_id"];
    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];
    $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
    $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
    
    $folder = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyId . "/" . $ragacsDatum;

    $kepek_ = array();
    if (file_exists($folder)) {
      $fnames = scandir($folder);
      $fnames = sortPhotos($fnames);

      foreach ($fnames as $fname) {
        try {
          if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
            $photoInfo = array();
            if (!is_dir($folder . "/" . $fname) && (strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false))) {
              $photoInfo["name"] = $folder . "/" . $fname;
              $image = new imagick($photoInfo["name"]);
              $fileType = "jpg";
              $src = base64_encode_image($photoInfo["name"], $fileType);
              $photoInfo["src"] = $src;
              $geo = $image->getImageGeometry();
              $sizex = $geo['width'];
              $sizey = $geo['height'];
              $photoInfo["width"] = $sizex;
              $photoInfo["height"] = $sizey;
              $kepek_[] = $photoInfo;
            }
          }
        } catch (Exception $ex) {
          errorlog("Hiba (getassignedphotos): " . $ex);
        }
      }
    }
    if (count($kepek_) > 0)
      $kepek[$felulet["ragacslist_id"]] = $kepek_;
    else
      $kepek[$felulet["ragacslist_id"]] = array();
  }

  echo json_encode($kepek);
  return;

} else if (isset($_POST["getallassignedphotos"]) && $_POST["getallassignedphotos"] == 1) {

  $kepek = array();

  $datumFrom = $_POST["datumfrom"];
  $datumTo = $_POST["datumto"];
  $isNeedPhoto = $_POST['isneedphoto'];

  $varosId = 0;
  if (isset($_POST["varosid"]))
    $varosId = $_POST["varosid"];

  $kampanyId = 0;
  if (isset($_POST["kampanyid"]))
    $kampanyId = $_POST["kampanyid"];

  $feluletKod = "";
  if (isset($_POST["feluletkod"]))
    $feluletKod = $_POST["feluletkod"];

  $searchFeluletKodCenter = 0;
  if (isset($_POST["searchfeluletkodcenter"]))
    $searchFeluletKodCenter = $_POST["searchfeluletkodcenter"];

  $surfaceId = 0;
  if (isset($_POST["surfaceid"]))
    $surfaceId = $_POST["surfaceid"];
  
//  $feluletek = GetFeluletek($datumFrom, $datumTo, $userId, $_SESSION["user"]["isadmin"], 0, 0, "", 0, 0, true, $isNeedPhoto);
  $feluletek = GetFeluletek($datumFrom, $datumTo, $userId, $_SESSION["user"]["isadmin"], $varosId, $kampanyId, $feluletKod, $searchFeluletKodCenter, $surfaceId, true, $isNeedPhoto);

  foreach ($feluletek as $felulet) {
    $kampanyId = $felulet["kampany_id"];
    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];
    $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
    $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
    
    $folder = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyId . "/" . $ragacsDatum;
    
    if (file_exists($folder)) {
      $fnames = scandir($folder);
      $fnames = sortPhotos($fnames);
  
      $kepek_ = array();
      foreach ($fnames as $fname) {
        try {
          if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
            $photoInfo = array();
            if (!is_dir($folder . "/" . $fname) && (strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false))) {
              $photoInfo["name"] = $folder . "/" . $fname;
              $image = new imagick($photoInfo["name"]);
              $fileType = "jpg";
              $src = base64_encode_image($photoInfo["name"], $fileType);
  //            $photoInfo["src"] = $src;
              $photoInfo["src"] = "";
              $geo = $image->getImageGeometry();
              $sizex = $geo['width'];
              $sizey = $geo['height'];
              $photoInfo["width"] = $sizex;
              $photoInfo["height"] = $sizey;
              $kepek_[] = $photoInfo;
            }
          }
        } catch (Exception $ex) {
          errorlog("Hiba (getallassignedphotos): " . $ex);
        }
      }
      if (count($kepek_) > 0)
        $kepek[$felulet["ragacslist_id"]] = $kepek_;
    }
  }

  echo json_encode($kepek);
  return;

} else if (isset($_POST["getassignablePhotos"]) && $_POST["getassignablePhotos"] == 1) {

  $kepek = array();

  $pre = "id" . $userId . "_";
  
  $folder = UPLOAD_DIRECTORY;
  
  if (file_exists($folder)) {
    $fnames = scandir($folder);
    $fnames = sortPhotos($fnames);

    foreach ($fnames as $fname) {
      try {
        $file_parts = pathinfo($fname);
        if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF'])) && strtolower($file_parts["extension"]) == "jpg") {
          $photoInfo = array();
          if (!is_dir($folder . $fname) && strpos($fname, $pre) === 0) {
            if (!file_exists(TMP_DIRECTORY . $fname))
              generateSmallImageFromFile2($folder . $fname, $fname);
            if (file_exists(TMP_DIRECTORY . $fname)) {
              $photoInfo["name"] = TMP_DIRECTORY . $fname;
              $image = new imagick($photoInfo["name"]);
              $fileType = "jpg";
              $src = base64_encode_image($photoInfo["name"], $fileType);
              $photoInfo["src"] = $src;
              $geo = $image->getImageGeometry();
              $sizex = $geo['width'];
              $sizey = $geo['height'];
              $photoInfo["width"] = $sizex;
              $photoInfo["height"] = $sizey;
              $photoInfo["origfile"] = str_replace($pre, "", $fname);
              $kepek[] = $photoInfo;
            }
          }
        }
      } catch (Exception $ex) {
        errorlog("Hiba (getassignablePhotos): " . $ex);
      }
    }
  }

  echo json_encode($kepek);
  return;

} else if (isset($_POST['deletephoto']) && $_POST['deletephoto'] == 1) { // kepek torlese

  $file = $_POST["file"];
  
  if ($file != "" && file_exists(UPLOAD_DIRECTORY . basename($file)))
    unlink(UPLOAD_DIRECTORY . basename($file));

  if ($file != "" && file_exists(TMP_DIRECTORY . basename($file)))
    unlink(TMP_DIRECTORY . basename($file));
  
  return;

} else if (isset($_POST['copyphoto']) && $_POST['copyphoto'] == 1) { // kep masolasa (torles elott)

  $feluletId = 0;
  if (isset($_POST["feluletid"]))
    $feluletId = $_POST["feluletid"];
  
  $file = $_POST["file"];
  $newFile = "id" . $userId . "_" . $feluletId . "_" . basename($file);
  
  if ($file != "" && file_exists($file)) {
    copy($file, TMP_DIRECTORY . $newFile);
    copy($file, UPLOAD_DIRECTORY . $newFile);
  }

  echo TMP_DIRECTORY . $newFile;

  return;

} else if (isset($_POST['assign']) && $_POST['assign'] == 1) { // foto(k) hozzarendelese, torlese

  $ret = true;
  $errorArr = array();
  // felulet_id-t (ragacslist_id) teszunk bele, hogy tudjuk melyik valtozott
  $jobToClients = array();

  $deletedPhotos = array();
  if (isset($_POST["deleteduploadedphotos"]) && count($_POST["deleteduploadedphotos"]) > 0)
    $deletedPhotos = $_POST["deleteduploadedphotos"];

  $addedPhotos = array();
  if (isset($_POST["addedphotos"]) && count($_POST["addedphotos"]) > 0)
    $addedPhotos = $_POST["addedphotos"];

  $repairerPhotos = array();
  if (isset($_POST["repairerphotos"]) && count($_POST["repairerphotos"]) > 0)
    $repairerPhotos = $_POST["repairerphotos"];

  $ftpConnId = null;
  $ftpConnId = ftp_connect(FTP_SERVER, FTP_PORT);

  if (!$ftpConnId) {
    errorlog("Ftp kapcsolodas sikertelen: " . FTP_SERVER);
    sendEmail("Ftp kapcsolodas sikertelen: " . FTP_SERVER);
  } else {
    $loginResult = ftp_login($ftpConnId, FTP_USERNAME, FTP_PASSWORD);
    if (!$loginResult) {
      ftp_close($ftpConnId);
      $ftpConnId = null;
    } else
      ftp_pasv($ftpConnId, true);
  }

  // delete photos (and rename photos)
  foreach ($deletedPhotos as $feluletId => $deletedPhotos_) {
    $felulet = GetFelulet($feluletId);
    if (!in_array($feluletId, $jobToClients))
      $jobToClients[] = $feluletId;

    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];

    foreach ($deletedPhotos_ as $deletedPhoto) {
      // delete photo
      if (file_exists($deletedPhoto))
        unlink($deletedPhoto);
      $tmpFile = TMP_DIRECTORY . "id" . $userId . "_" . $feluletId . "_" . basename($deletedPhoto);
      if (file_exists($tmpFile))
        unlink($tmpFile);
      $uplFile = UPLOAD_DIRECTORY . "id" . $userId . "_" . $feluletId . "_" . basename($deletedPhoto);
      if (file_exists($uplFile))
        rename($uplFile, UPLOAD_DIRECTORY . "id" . $userId . "_" . uniqid() . ".jpg");
    }
    
    $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
    $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
    
    // rename photos
    $dir = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $felulet["kampany_id"] . "/" . $ragacsDatum . "/";
    $newFile = $dir . $feluletKod;

    $i = 1;
    $j = 25;
    $notExistsFiles = array();
    $prevFile = "";
    while ($i < $j) {
      if ($i == 1) {
        $newFile1 = $dir . $feluletKod . ".jpg";
        $newFile2 = $dir . $feluletKod . "_J.jpg";
        $newFile3 = $dir . $sajatKod . ".jpg";
        $newFile4 = $dir . $sajatKod . "_J.jpg";
      } else {
        $newFile1 = $dir . "/" . $feluletKod . "-F" . $i . ".jpg";
        $newFile2 = $dir . "/" . $feluletKod . "-F" . $i . "_J.jpg";
        $newFile3 = $dir . "/" . $sajatKod . "-F" . $i . ".jpg";
        $newFile4 = $dir . "/" . $sajatKod . "-F" . $i . "_J.jpg";
      }
        
      if (file_exists($newFile1) || file_exists($newFile2) || file_exists($newFile3) || file_exists($newFile4)) {
        if (file_exists($newFile1))
          $newFile = $newFile1;
        else if (file_exists($newFile2))
          $newFile = $newFile2;
        else if (file_exists($newFile3))
          $newFile = $newFile3;
        else
          $newFile = $newFile4;

        if ($i > 1 && count($notExistsFiles) > 0) {
          $renamed = false;
          foreach ($notExistsFiles as $key => $file) {
            if (!$renamed) {
              if (strpos($newFile, "_J.jpg") !== false)
                $file = str_replace(".jpg", "_J.jpg", $file);
              $renamed = rename($newFile, $file);
              if ($renamed) {
                unset($notExistsFiles[$key]);
                $notExistsFiles[] = $newFile;
              }
            }
          }
        }
        $prevFile = $newFile;
      } else {
        if (trim($sajatKod) != "" && strpos($prevFile, $sajatKod) !== false)
          $notExistsFiles[] = $newFile3;
        else
          $notExistsFiles[] = $newFile1;
      }

      $i++;
    }

    // update db
    if (file_exists($dir)) {
      $fnames = scandir($dir);
      $db = 0;
      foreach ($fnames as $fname) {
        if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
//          if (!is_dir($dir . "/" . $fname) && (strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false)))
          if (!is_dir($dir . "/" . $fname) && (fnmatch(strtoupper($feluletKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($feluletKod . "-F*.jpg"), strtoupper(basename($fname))) !== false || (trim($sajatKod) != "" && (fnmatch(strtoupper($sajatKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($sajatKod . "-F*.jpg"), strtoupper(basename($fname))) !== false))))
            $db++; 
        }
      }
      UpdateUploadedPhoto($feluletId, $db);
    }
  }

  // add photos
  foreach ($addedPhotos as $feluletId => $addedPhotos_) {
    $felulet = GetFelulet($feluletId);
    $cegId = $felulet["ceg_id"];

    if (!in_array($feluletId, $jobToClients))
      $jobToClients[] = $feluletId;

    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];

    $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
    $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);

    foreach ($addedPhotos_ as $addedPhoto) {
      $dir = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $felulet["kampany_id"] . "/" . $ragacsDatum;

      if (strpos($addedPhoto, "tmp/") !== false) {
        $addedPhoto = basename($addedPhoto);

        if (!file_exists($dir)) {
          mkdir($dir, 0777, true);
        }
    
        if (file_exists($dir)) {
          if (file_exists(TMP_DIRECTORY . $addedPhoto)) {
            $newFile1 = $dir . "/" . $feluletKod . ".jpg";
            $newFile2 = $dir . "/" . $feluletKod . "_J.jpg"; // javito foto
            $i = 2;
            while (file_exists($newFile1) || file_exists($newFile2)) {
              $newFile1 = $dir . "/" . $feluletKod . "-F" . $i . ".jpg";
              $newFile2 = $dir . "/" . $feluletKod . "-F" . $i . "_J.jpg"; // javito foto
              $i++;
            }
  
            if (in_array(TMP_DIRECTORY . $addedPhoto, $repairerPhotos))
              $newFile = $newFile2;
            else
              $newFile = $newFile1;
  
            if (!copy(TMP_DIRECTORY . $addedPhoto, $newFile)) {
              errorlog("Sikertelen masolas: " . TMP_DIRECTORY . $addedPhoto);
              $errorArr[] = "Sikertelen masolas: " . TMP_DIRECTORY . $addedPhoto;
              $ret = false;
            } else
              unlink(TMP_DIRECTORY . $addedPhoto);
          } else {
            errorlog("File nem letezik: " . TMP_DIRECTORY . $addedPhoto);
            $errorArr[] = "File nem letezik: " . TMP_DIRECTORY . $addedPhoto;
            $ret = false;
          }
          
          if (file_exists(UPLOAD_DIRECTORY . $addedPhoto))
            unlink(UPLOAD_DIRECTORY . $addedPhoto);
        } else
          $ret = false;
          
        // copy to (local) ftp
        if ($ftpConnId != null && $ftpConnId) {
          $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
          $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
          $kampanyNev = substr(removeAccent(str_replace(" ", "_", $felulet["kampany_nev"])), 0, FTP_KAMPANYNEV_LENGTH);
  
          if (date("Y", $ragacsDatumAsTimeStamp) == "2017" && date("m", $ragacsDatumAsTimeStamp) == "05")
            $ftpPath = date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $felulet["kampany_id"] . "/" . $ragacsDatum;
          else
            $ftpPath = date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyNev . "-" . $felulet["kampany_id"] . "/" . $ragacsDatum;
  
          $dirExists = false;
  
          if (!@ftp_chdir($ftpConnId, $ftpPath)) {
            $dirExists = ftp_mkdir_($ftpConnId, $ftpPath);
            if (@ftp_chdir($ftpConnId, $ftpPath))
              $dirExists = true;
          } else
            $dirExists = true;
  
          if ($dirExists) {
            if (!@ftp_put($ftpConnId, basename($newFile), $newFile, FTP_BINARY)) {
              errorlog("File feltoltese az FTP-re sikertelen: " . $newFile);
              $errorArr[] = "File feltoltese az FTP-re sikertelen: " . $newFile;
              $ret = false;
            }
          } else {
            errorlog("A mappa letrehozasa sikertelen: " . $ftpPath);
            $errorArr[] = "A mappa letrehozasa sikertelen: " . $ftpPath;
            $ret = false;
          }
        }
      }
    }

    // update db
    if (file_exists($dir)) {
      $fnames = scandir($dir);
      $db = 0;
      foreach ($fnames as $fname) {
        if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
//          if (!is_dir($dir . "/" . $fname) && strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false))
          if (!is_dir($dir . "/" . $fname) && (fnmatch(strtoupper($feluletKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($feluletKod . "-F*.jpg"), strtoupper(basename($fname))) !== false || (trim($sajatKod) != "" && (fnmatch(strtoupper($sajatKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($sajatKod . "-F*.jpg"), strtoupper(basename($fname))) !== false))))
            $db++; 
        }
      }
      UpdateUploadedPhoto($feluletId, $db);
    }
  }

  // delete old files, copy all files to ftp
  foreach ($deletedPhotos as $feluletId => $deletedPhotos_) {
    $felulet = GetFelulet($feluletId);
    $feluletKod = $felulet["felulet_kod"];
    $sajatKod = $felulet["sajat_kod"];

    if ($ftpConnId != null && $ftpConnId) {
      $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
      $ragacsDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
      $kampanyNev = substr(removeAccent(str_replace(" ", "_", $felulet["kampany_nev"])), 0, FTP_KAMPANYNEV_LENGTH);
      
      if (date("Y", $ragacsDatumAsTimeStamp) == "2017" && date("m", $ragacsDatumAsTimeStamp) == "05")
        $ftpPath = date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $felulet["kampany_id"] . "/" . $ragacsDatum;
      else
        $ftpPath = date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyNev . "-" . $felulet["kampany_id"] . "/" . $ragacsDatum;

      $dirExists = false;

      @ftp_chdir($ftpConnId, "/");

      // delete old files
      $oldFiles = ftp_nlist($ftpConnId, $ftpPath);
      foreach ($oldFiles as $oldFile) {
        if (strpos($oldFile, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($oldFile, $sajatKod) !== false))
          @ftp_delete($ftpConnId, $oldFile);
      }

      if (!@ftp_chdir($ftpConnId, $ftpPath)) {
        $dirExists = ftp_mkdir_($ftpConnId, $ftpPath);
        if (@ftp_chdir($ftpConnId, $ftpPath))
          $dirExists = true;
      } else
        $dirExists = true;

      if ($dirExists) {
        // copy files to ftp
        if (file_exists($dir)) {
          $fnames = scandir($dir);
          $fnames = sortPhotos($fnames);

          foreach ($fnames as $fname) {
            if (($fname != '.') && ($fname != '..') && ($fname != basename($_SERVER['PHP_SELF']))) {
              if (!is_dir($dir . "/" . $fname) && (strpos($fname, $feluletKod) !== false || (trim($sajatKod) != "" && strpos($fname, $sajatKod) !== false))) {
                if (!@ftp_put($ftpConnId, basename($fname), $dir . "/" . $fname, FTP_BINARY)) {
                  errorlog("File feltoltese az FTP-re sikertelen: " . $dir . "/" . $fname);
                  $errorArr[] = "File feltoltese az FTP-re sikertelen: " . $dir . $fname;
                  $ret = false;
                }
              }
            }
          }
        }
      } else {
        errorlog("A mappa letrehozasa sikertelen: " . $ftpPath);
        $errorArr[] = "A mappa letrehozasa sikertelen: " . $ftpPath;
        $ret = false;
      }
    }
  }
  
  // close ftp connection
  if ($ftpConnId != null && $ftpConnId) {
    ftp_close($ftpConnId);
    $ftpConnId = null;
  }

  if (EXCHANGE_DATA && SERVER_SIDE && count($jobToClients) > 0) {
    foreach($jobToClients as $ragacslistId) {
      $felulet = GetFelulet($ragacslistId);
      $ceg = GetClientData($felulet["ceg_id"]);
      if (is_array($ceg) && $ceg["local_ceg"] == 0) {
        $db = GetJobToClientsDb($ragacslistId);
        if ($db == 0) {
          $id = InsertJobToClients($ragacslistId);
          if ($id <= 0) {
            errorlog("A client job letrehozasa sikertelen: " . $ragacslistId);
            $errorArr[] = "A client job letrehozasa sikertelen: " . $ragacslistId;
          }
        }
      }
    }
  }

  // send error mail
  if (count($errorArr) > 0) {
    $body = "";
    foreach ($errorArr as $value)
      $body .= $value . "\r\n";
    sendEmail($body);
  }
    
  if ($ret)
    echo "true";
  else
    echo "false";

} else if (isset($_POST['filter']) && $_POST['filter'] == 1) { // szures idoszakra (felulet levalogatasa)
  if (isset($_POST['datum']))
    $datumFrom = $_POST['datum'];
  else
    $datumFrom = date('Y.m.d.');

  if (isset($_POST['datum']))
    $datumTo = $_POST['datum'];
  else
    $datumTo = date('Y.m.d.');

  $isNeedPhoto = $_POST['isneedphoto'];

  $feluletek = GetFeluletek($datumFrom, $datumTo, $userId, $_SESSION["user"]["isadmin"], 0, 0, "", 0, 0, true, $isNeedPhoto);

  $i = 0;
  foreach ($feluletek as $key => $felulet) {
    $value .= "<option id='felulet-" . $i . "' value='" . $felulet["ragacslist_id"] . "'>" . $felulet["felulet_kod"] . " - " . $felulet["varos"] . ", " . $felulet["felulet_cim"] . " - " . $felulet["plakat"] . "</option>";
    $i++;
  }

  echo $value;

} else if (isset($_POST['clientjob']) && $_POST['clientjob'] == 1) { // server to client data

  $ret = 0;

  $feluletKod = "";
  if (isset($_POST["feluletkod"]))
    $feluletKod = $_POST["feluletkod"];
  $kampanyId = 0;
  if (isset($_POST["kampanyid"]))
    $kampanyId = $_POST["kampanyid"];
  $kampanyNev = "";
  if (isset($_POST["kampanynev"])) {
    $kampanyNev = $_POST["kampanynev"];
    $kampanyNev = substr(removeAccent(str_replace(" ", "_", $kampanyNev)), 0, FTP_KAMPANYNEV_LENGTH);
  }
  $ragacsDatum = 0;
  if (isset($_POST["ragacsdatum"]))
    $ragacsDatum = $_POST["ragacsdatum"];
  $lastUploadedPhotoDatum = "";
  if (isset($_POST["lastuploadedphotodatum"]))
    $lastUploadedPhotoDatum = $_POST["lastuploadedphotodatum"];
  $folder = "";
  if (isset($_POST["folder"]))
    $folder = $_POST["folder"];
  $uploadedPhoto = 0;
  if (isset($_POST["uploadedphoto"]))
    $uploadedPhoto = $_POST["uploadedphoto"];

  $images = null;
  if (isset($_POST["images"]))
    $images = $_POST["images"];

  // connect to ftp
  $ftpConnId = ftp_connect(FTP_SERVER, FTP_PORT) or die("Couldn't connect to " . FTP_SERVER);
  $isFtpConnected = ftp_login($ftpConnId, FTP_USERNAME, FTP_PASSWORD);
  ftp_pasv($ftpConnId, true);

  $savedFiles = 0;
  $isFtpPassed = true;
  if ($uploadedPhoto > 0) {
    if (count($_FILES) > 0 && count($_FILES) == $uploadedPhoto) {
      if (!file_exists($folder)) {
        mkdir($folder, 0777, true);
        chown($folder, "www-data");
        chgrp($folder, "www-data");
      } else { // ha van ott valami, elotte toroljuk
        if ($folder != "") {
          $handler = opendir($folder);
          while ($file = readdir($handler)) {
            if (strpos($file, $feluletKod) !== false) {
              if ($file != "." && $file != "..")
                unlink($folder . "/" . $file);
            }
          }
        }
      }

      // toroljuk az ftp-rol az ott levo fajlokat
      if (date("Y", $ragacsDatum) == "2017" && date("m", $ragacsDatum) == "05")
        $ftpPath = date("Y", $ragacsDatum) . "/" . date("m", $ragacsDatum) . "/" . $kampanyId . "/" . date("Y.m.d.", $ragacsDatum);
      else
        $ftpPath = date("Y", $ragacsDatum) . "/" . date("m", $ragacsDatum) . "/" . $kampanyNev . "-" . $kampanyId . "/" . date("Y.m.d.", $ragacsDatum);
      
      if ($isFtpConnected) {
        @ftp_chdir($ftpConnId, "/");
        // delete old files
        if (@ftp_chdir($ftpConnId, $ftpPath)) {
          $oldFiles = ftp_nlist($ftpConnId, ".");
          if (is_array($oldFiles) && count($oldFiles) > 0) {
            foreach ($oldFiles as $oldFile) {
              if (strpos($oldFile, $feluletKod) !== false) {
                if (!@ftp_delete($ftpConnId, $oldFile)) {
                  $isFtpPassed = false;
                  errorlog("File torlese az ftp-rol sikertelen: " . $ftpPath . "/" . $oldFile);
                }
              }
            }
          }
        }
      }

      foreach ($_FILES as $file) {
        $targetFile = $folder . "/" . $file["name"];
        if (move_uploaded_file($file["tmp_name"], $targetFile)) {
          $savedFiles++;
          // copy file to ftp
          if ($isFtpConnected) {
            $dirExists = false;
            if (!@ftp_chdir($ftpConnId, $ftpPath)) {
              $dirExists = ftp_mkdir_($ftpConnId, $ftpPath);
              if (@ftp_chdir($ftpConnId, $ftpPath))
                $dirExists = true;
            } else
              $dirExists = true;
            if ($dirExists) {
              if (!@ftp_put($ftpConnId, basename($targetFile), $targetFile, FTP_BINARY)) {
                $isFtpPassed = false;
                errorlog("File masolasa az ftp-re sikertelen: " . $targetFile);
              }
            }
          }
        }
      }
    }
  } else {
    // toroljuk az ott levo fajlokat
    if ($folder != "") {
      $handler = opendir($folder);
      while ($file = readdir($handler)) {
        if ($file != "." && $file != "..")
          unlink($folder . "/" . $file);
      }
    }
    
    // toroljuk az ftp-rol az ott levo fajlokat
    if (date("Y", $ragacsDatum) == "2017" && date("m", $ragacsDatum) == "05")
      $ftpPath = date("Y", $ragacsDatum) . "/" . date("m", $ragacsDatum) . "/" . $kampanyId . "/" . date("Y.m.d.", $ragacsDatum);
    else
      $ftpPath = date("Y", $ragacsDatum) . "/" . date("m", $ragacsDatum) . "/" . $kampanyNev . "-" . $kampanyId . "/" . date("Y.m.d.", $ragacsDatum);

    if ($isFtpConnected) {
      @ftp_chdir($ftpConnId, "/");
      // delete old files
      $oldFiles = ftp_nlist($ftpConnId, $ftpPath);
      foreach ($oldFiles as $oldFile) {
        if (strpos($oldFile, $feluletKod) !== false) {
          if (!@ftp_delete($ftpConnId, $oldFile)) {
            $isFtpPassed = false;
            errorlog("File torlese az ftp-rol sikertelen: " . $ftpPath . "/" . $oldFile);
          }
        }
      }
    }
  }

  // update uploadedphoto field
  $updated = UpdateUploadedPhoto3($feluletKod, $kampanyId, date("Y-m-d 00:00:00", $ragacsDatum), $lastUploadedPhotoDatum, $uploadedPhoto);
  if ($updated == 1) {
    if (($savedFiles == $uploadedPhoto) && $isFtpPassed)
      $ret = 1;
  }

  echo $ret;

} else { // alap ablak

  $_SESSION["userId"] = $userId;

/*  if (isset($_GET['feluletid']) && $_GET['feluletid'] != "null") {
    $feluletId = $_GET['feluletid'];
    $felulet = GetFelulet($feluletId);
    $datumFrom = date("Y.m.d.", strtotime($felulet["ragasztas_datum"]));
    $datumTo = date("Y.m.d.", strtotime($felulet["ragasztas_datum"]));
  } else {*/
    if (isset($_GET["datumfrom"]))
      $datumFrom = $_GET["datumfrom"];
    else
      $datumFrom = date("Y.m.d.");

    if (isset($_GET["datumto"]))
      $datumTo = $_GET["datumto"];
    else
      $datumTo = date("Y.m.d.");
//  }

  $varosId = 0;
  if (isset($_GET["varosid"]))
    $varosId = $_GET["varosid"];
  $kampanyId = 0;
  if (isset($_GET["kampanyid"])) {
    $kampanyId = $_GET["kampanyid"];
    if ($kampanyId == "")
      $kampanyId = 0;
  }
  $feluletKod = "";
  if (isset($_GET["feluletkod"])) {
    $feluletKod = $_GET["feluletkod"];
  }
  $searchFeluletKodCenter = 0;
  if (isset($_GET["searchfeluletkodcenter"]))
    $searchFeluletKodCenter = $_GET["searchfeluletkodcenter"];
  $surfaceId = 0;
  if (isset($_GET["surfaceid"]))
    $surfaceId = $_GET["surfaceid"];
  $isNeedPhoto = 0;
  if (isset($_GET["isneedphoto"]))
    $isNeedPhoto = $_GET["isneedphoto"];
  $plakatNev = "";
  if (isset($_GET["plakatnev"]))
    $plakatNev = $_GET["plakatnev"];
  

  // levalogatjuk a feluleteket
  $feluletek_ = array();
  $feluletek = GetFeluletek($datumFrom, $datumTo, $userId, $_SESSION["user"]["isadmin"], $varosId, $kampanyId, $feluletKod, $searchFeluletKodCenter, $surfaceId, true, $isNeedPhoto);
  foreach ($feluletek as $felulet) {
    $feluletek_[$felulet["ragacslist_id"]] = $felulet["felulet_kod"] . " - " . $felulet["varos"] . ", " . $felulet["felulet_cim"] . " - " . $felulet["plakat"];
  }

  $feluletId = 0;
  if (isset($_GET['feluletid']) && $_GET['feluletid'] != "null")
    $feluletId = $_GET['feluletid'];
  else {
    if (count($feluletek) > 0)
      $feluletId = $feluletek[0]["ragacslist_id"];
  }

  $varosok = array();
  if (isset($_SESSION["user"]) && $_SESSION["user"]["isadmin"])
    $varosok = GetVarosok();
  else {
    if (isset($_SESSION["user"]))
      $varosok = GetUserVarosok($_SESSION["user"]["user_id"]);
  }

  $varosok_ = array(0 => "Minden város");
  foreach ($varosok as $varos) {
    $varosok_[$varos["varos_id"]] = $varos["varos"];
  }
  $smarty->assign('varosok', $varosok_);

  
  $smarty->assign('felulet', $feluletek_);
  $smarty->assign('feluletid', $feluletId);
  $smarty->assign('datumfrom', $datumFrom);
  $smarty->assign('datumto', $datumTo);
  $smarty->assign('varosid', $varosId);
  $smarty->assign('kampanyid', $kampanyId);
  if ($feluletKod == "")
    $feluletKod = "null";
  else
    $feluletKod = '"' . $feluletKod . '"';
  $smarty->assign('feluletkod', $feluletKod);
  $smarty->assign('searchfeluletkodcenter', $searchFeluletKodCenter);
  $smarty->assign('surfaceid', $surfaceId);
  $smarty->assign('isneedphoto', $isNeedPhoto);
  if ($plakatNev == "")
    $plakatNev = "null";
  else
    $plakatNev = '"' . $plakatNev . '"';
  $smarty->assign('plakatnev', $plakatNev);
  $smarty->assign('kepdb', 0);
  $smarty->assign('login', 1);
  $smarty->assign('company', COMPANYNAME);
  $smarty->display('photo.tpl');
}

?>
