kartero.org

kartero.org

Git

This commit has been accessed 545 times via Git panel.

commit 46b815abbcd832adc6ecd07c4507df8846be6953
tree 7f580e52129c56467a902dfc86d503c82844acd9
parent 2e27c12f5c88e76d3a7f98d3674c3892351662d0
author Engels Antonio <engels@kartero.org> 1381776189 +0800
committer Engels Antonio <engels@kartero.org> 1381776189 +0800

    Add inbox check and drafts support

diff --git a/check.php b/check.php
new file mode 100644
index 0000000..fa3b255
--- /dev/null
+++ b/check.php
@@ -0,0 +1,32 @@
+<?php
+
+session_start();
+
+if (!isset($_SESSION['logged_uid'])) {
+       echo 0;
+       exit;
+}
+
+ob_start();
+
+require_once("conf.php");
+
+ob_end_clean();
+
+$subdir = explode('@', $_SESSION['logged_uid']);
+
+$usrdir = "$mail_root/$subdir[1]/{$subdir[0][0]}/$subdir[0]/new";
+
+if (!file_exists($usrdir)) {
+       echo 0;
+       exit;
+}
+
+if (count(glob("$usrdir/*", GLOB_NOSORT)) > 0) {
+       echo 1;
+}
+else {
+       echo 0;
+}
+
+?>
diff --git a/core.php b/core.php
index 92fa1bc..5bf836c 100644
--- a/core.php
+++ b/core.php
@@ -542,4 +542,95 @@ function kartero_local_storage($element,$storage,$destroy=0) {
        }
 }
 
+function pass1_process($mbox, $msgno, $path) {
+
+       $emailMessage = new EmailMessage($mbox, imap_msgno($mbox,$msgno));
+       $emailMessage->fetch();
+
+       if (count($emailMessage->attachments > 0)) {
+
+               if (!file_exists($path)) {
+                       mkdir($path,0700,1);
+               }
+      
+               foreach ($emailMessage->attachments as $key => $attachment) {
+
+                       $fileContent = $attachment[data];
+
+                       if (($fileContent != "") and (($attachment[inline] == 1) or ($attachment[filename] == ""))) {
+                               $fileName = $key;
+                       }      
+                       else {
+                               $fileName = $attachment[filename];
+                       }
+
+                               $fileName = str_replace(" ", "_", $fileName);
+                       $fileName = preg_replace("/[^a-zA-Z0-9.\-_@]/u", "", $fileName);
+
+                       if (!file_exists("$path/$fileName") and (mb_strlen($fileContent,"8bit") > 0)) {
+                               file_put_contents("$path/$fileName",$fileContent);
+                       }
+               }
+       }
+}
+
+function pass2_extract($mbox, $msgno, $p, $partno, $path) {
+       $data = ($partno) ? imap_fetchbody($mbox, $msgno, $partno, FT_UID) : imap_body($mbox, $msgno, FT_UID);
+       if ($p->encoding == 4)
+               $data = quoted_printable_decode($data);
+       else if ($p->encoding == 3)
+               $data = base64_decode($data);
+       $params = array();
+       if ($p->parameters)
+               foreach ($p->parameters as $x)
+                       $params[strtolower($x->attribute)] = $x->value;
+       if ($p->dparameters)
+               foreach ($p->dparameters as $x)
+                       $params[strtolower($x->attribute)] = $x->value;
+       if ($params['filename'] || $params['name']) {
+               $partid = htmlentities($p->id, ENT_QUOTES, "UTF-8");
+               $filename = ($params['filename']) ? $params['filename'] : $params['name'];
+               $attachments[$filename] = $data;
+               $image[$key] = $filename;
+       }
+       if (count($attachments) > 0) {
+                if (!file_exists($path)) {
+                        mkdir($path, 0700, 1);
+                }
+               foreach ($attachments as $key => $val) {
+                       $files = glob("$path/*", GLOB_NOSORT);
+                       if (count($files) > 0) {
+                               $dup = "0";
+                               foreach ($files as $file) {
+                                       if (file_get_contents($file) == $val) {
+                                               $dup++;
+                                       }
+                               }
+                               if (($dup == 0) and (mb_strlen($val,"8bit") > 0)) {
+                                       file_put_contents("$path/$key", $val);
+                               }
+                       }
+                       else {
+                               if (mb_strlen($val,"8bit") > 0) {
+                                       file_put_contents("$path/$key", $val);
+                               }
+                       }
+                       unset($files);
+               }
+       }
+}
+
+function pass2_process($mbox, $msgno, $path) {
+       $attachments = array();
+       $s = imap_fetchstructure($mbox, $msgno, FT_UID);
+       if (!$s->parts) {
+               pass2_extract($mbox, $msgno, $s, 0, $path);
+       }
+       else {
+               foreach ($s->parts as $partno0 => $p) {
+                       pass2_extract($mbox, $msgno, $p, $partno0 + 1, $path);
+               }
+       }
+}
+
 ?>
diff --git a/css.php b/css.php
index bc9eac2..d4d3826 100644
--- a/css.php
+++ b/css.php
@@ -8,6 +8,8 @@ body {
        background: #ffffff;
        font-size: 0.75em;
        font-family: arial,helvetica,sans-serif;
+       margin-right: 20px;
+       margin-left: 20px;
 }
 
 a,a:link,a:visited,a:hover,a:active {
@@ -157,3 +159,12 @@ a,a:link,a:visited,a:hover,a:active {
        -webkit-animation-timing-function: ease;
        -moz-animation-timing-function: ease;
 }
+
+.inboxE:hover, .inboxE:focus,.inboxE:active {
+       background-color: #ffffdd;
+       background-image: -webkit-linear-gradient(bottom, #ffffdd 50%, #ffffcc 100%);
+       background-image: -moz-linear-gradient(bottom, #ffffdd 50%, #ffffcc 100%);
+       background-image: -ms-linear-gradient(bottom, #ffffdd 50%, #ffffcc 100%);
+       background-image: -o-linear-gradient(bottom, #ffffdd 50%, #ffffcc 100%);
+       background-image: linear-gradient(bottom, #ffffdd 50%, #ffffcc 100%);
+}
diff --git a/filedrop.php b/filedrop.php
index 337a331..921a353 100644
--- a/filedrop.php
+++ b/filedrop.php
@@ -57,8 +57,11 @@ if (file_exists("attach/i/$fileUsr/$filedrop_box")) {
                        $css = str_replace("</style>","",$css);
 
                        echo "<style>\r\n$css</style>\r\n\r\n";
-               }
 
+                       // compensate for body { margin-right: 20px; margin-left: 20px; } in css.php
+                       echo "<style>body { margin-right: 5px; margin-left: 5px; }</style>";
+               }
+              
                echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"2\">";
 
                foreach ($fileAttachments as $fileAttachment) {
diff --git a/folders.php b/folders.php
index 25f32c3..192c023 100644
--- a/folders.php
+++ b/folders.php
@@ -85,16 +85,16 @@ if (!isset($_POST['get']) and !isset($_POST['rep'])) {
        }
 }
 
-if ($folder == "Trash") {
+if (($folder == "Trash") or ($folder == "Spam")) {
 
-       $trash_status = imap_status($mbox, "{$imap_host}Trash", SA_MESSAGES+SA_UNSEEN);
+       $trash_status = imap_status($mbox, "{$imap_host}$folder", SA_MESSAGES+SA_UNSEEN);
 
        if ($trash_status->messages > 0) {
 
                echo "<form method=\"post\">";
                echo "<input type=\"hidden\" name=\"emt\" value=\"1\">";
-               echo "<input type=\"hidden\" name=\"box\" value=\"Trash\">";
-               echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/trashcan_purge.png\" onclick=\"if (confirm('Delete ALL messages in Trash permanently?')) {return true;} else {return false;}\"></td><td><nobr>Empty Trash</nobr></td></tr>";
+               echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
+               echo "<tr><td width=\"32\"><input type=\"image\" src=\"images/trashcan_purge.png\" onclick=\"if (confirm('Delete ALL messages in $folder permanently?')) {return true;} else {return false;}\"></td><td><nobr>Empty $folder</nobr></td></tr>";
                echo "</form>";
        }
 }
diff --git a/inbox.php b/inbox.php
index 5e2d87e..88bb9b3 100644
--- a/inbox.php
+++ b/inbox.php
@@ -69,13 +69,13 @@ echo "<title>Kartero - $folder ($msgCount) - " . $_SESSION['logged_uid'] . "</ti
 
 echo "\n\n<table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#cccccc\" width=\"100%\">";
 
-echo "<tr bgcolor=\"#eeeeee\"><td align=\"center\" width=\"32\">";
+echo "<tr bgcolor=\"#eeeeee\"><td align=\"center\" width=\"32\"><nobr>";
 
 if ($folder == "Trash") {
        echo "un";
 }
 
-echo "del</td><td align=\"center\" width=\"200\">";
+echo "del</nobr></td><td align=\"center\" style=\"min-width: 200px; width: auto;\">";
 
 if ($folder == "Sent") {
        echo "recipient";
@@ -84,7 +84,7 @@ else {
        echo "sender";
 }
 
-echo "</td><td align=\"center\" width=\"300\">subject</td><td align=\"center\" width=\"100\">";
+echo "</td><td align=\"center\" style=\"min-width: 300px; width: auto;\">subject</td><td align=\"center\" width=\"100\">";
 
 if ($folder == "Sent") {
        echo "sent";
@@ -206,9 +206,9 @@ foreach ($mbox_sort as $mbox_num => $mbox_row) {
                 $subj = "<b style=\"color: red; text-shadow: 0.1em 0.1em #dedede;\">!</b> $subj";
         }
 
-       echo "<tr bgcolor=\"$bgColor\">";
+       echo "<tr class=\"inboxE\" bgcolor=\"$bgColor\">";
 
-       echo "<form method=\"post\"><td>";
+       echo "<form method=\"post\"><td align=\"center\">";
        echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
        echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
        echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
diff --git a/index.php b/index.php
index cef0d9c..7b254cf 100644
--- a/index.php
+++ b/index.php
@@ -213,7 +213,7 @@ if (isset($_SESSION['logged_uid'])) {
 
        echo "<nobr>You are currently logged in to your {$_SESSION['logged_uid']} {$_SESSION['logged_lvl']} account. Click <a href=\"?do=logout\">here</a> to logout.</nobr><br><br>";
 
-       echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+       echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">";
        echo "<tr><td colspan=\"3\" valign=\"top\">";
 
        if ($_SESSION['logged_lvl'] == "subscriber") {
@@ -1075,7 +1075,7 @@ if (isset($_SESSION['logged_uid'])) {
                        }
                }
 
-               echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+               echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">";
 
                if (isset($_POST['reply_from']) and isset($_POST['reply_to']) and isset($_POST['reply_subj']) and isset($_POST['reply_body']) and !empty($_POST['reply_from']) and !empty($_POST['reply_to']) and !empty($_POST['reply_subj']) and !empty($_POST['reply_body'])) {
               
@@ -1191,6 +1191,10 @@ if (isset($_SESSION['logged_uid'])) {
                                imap_createmailbox($mbox,"{$imap_host}Sent");
                                imap_append($mbox,"{$imap_host}Sent","To: $reply_to\nSubject: $reply_subj\nDate: $reply_date\n$reply_headers\n\n$reply_body\n");
                                mail($reply_to, $reply_subj, $reply_body, $reply_headers, "-f {$reply_fenv[0]}");
+                              
+                               if ($folder == "Drafts") {
+                                       imap_delete($mbox, $_POST['msg'], FT_UID);
+                               }
                        }
 
                        kartero_local_storage("reply_body",$_SESSION['logged_uid'],1);
@@ -1541,33 +1545,35 @@ echo "</tr>";
                                        echo "<div id=\"filters\" style=\"display: none;\">";
                                }
 
-                               echo "<div class=\"spacer\"></div>";
-                               echo "<div class=\"message\" style=\"padding: 0;\">";
-                               echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">";
-                               echo "<form method=\"post\"><input type=\"hidden\" name=\"set\" value=\"filters\"><tr>";
-                               echo "<td width=\"200\"><select class=\"input\" name=\"sieveT\">";
-                               echo "<option value=\"subject\">If message subject contains</option>";
-                               echo "<option value=\"from\">If message from contains</option>";
-                               echo "<option value=\"to\">If message to contains</option>";
-                               echo "<option value=\"cc\">If message cc contains</option>";
-                               echo "<option value=\"body\">If message body contains</option>";
-                               echo "</td>";
-                               echo "<td><input class=\"input\" type=\"text\" name=\"sieveV\" autocomplete=\"off\" required></td>";
-                               echo "<td><select class=\"input\" name=\"sieveF\"><option value=\"Trash\" selected>then move to Trash</option>";
-
-                               foreach ($usr_box as $sieveF) {
-
-                                       $sieveF = str_replace($imap_host,"",$sieveF);
+                               if (count($sivR) < 255) {
+                                       echo "<div class=\"spacer\"></div>";
+                                       echo "<div class=\"message\" style=\"padding: 0;\">";
+                                       echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">";
+                                       echo "<form method=\"post\"><input type=\"hidden\" name=\"set\" value=\"filters\"><tr>";
+                                       echo "<td width=\"200\"><select class=\"input\" name=\"sieveT\">";
+                                       echo "<option value=\"subject\">If message subject contains</option>";
+                                       echo "<option value=\"from\">If message from contains</option>";
+                                       echo "<option value=\"to\">If message to contains</option>";
+                                       echo "<option value=\"cc\">If message cc contains</option>";
+                                       echo "<option value=\"body\">If message body contains</option>";
+                                       echo "</td>";
+                                       echo "<td><input class=\"input\" type=\"text\" name=\"sieveV\" autocomplete=\"off\" required></td>";
+                                       echo "<td><select class=\"input\" name=\"sieveF\"><option value=\"Trash\" selected>then move to Trash</option>";
+
+                                       foreach ($usr_box as $sieveF) {
+
+                                               $sieveF = str_replace($imap_host,"",$sieveF);
+
+                                               echo "<option value=\"$sieveF\">then move to $sieveF</option>";
+                                       }
 
-                                       echo "<option value=\"$sieveF\">then move to $sieveF</option>";
+                                       echo "</select></td>";
+                                       echo "<td><input class=\"button\" type=\"submit\" value=\"add filter\"></td>";
+                                       echo "</tr></form>";
+                                       echo "</table>";
+                                       echo "</div>";
                                }
 
-                               echo "</select></td>";
-                               echo "<td><input class=\"button\" type=\"submit\" value=\"add filter\"></td>";
-                               echo "</tr></form>";
-                               echo "</table>";
-                               echo "</div>";
-
                                $sivR = glob("$sivP/*.sieve");
                                $sivW = 'require "include";';
                               
@@ -1685,13 +1691,14 @@ echo "</tr>";
                        // imap_ping() should be doing this, but it's not working:
                        $mbox = @imap_open("{$imap_host}$folder", $_SESSION['logged_uid'], $_SESSION['logged_key'], CL_EXPUNGE) or die(imap_last_error());
 
-                       include("inbox.php");
-/*
                        if ((count($_POST) == 0) or ((count($_POST) == 3) and array_key_exists('x',$_POST) and array_key_exists('y',$_POST) and ($_POST['box'] == "INBOX"))) {
-                               echo "<script src=\"jquery-1.9.1.min.js\" async></script>";
-                               echo "<script>setInterval(\"$('#main').load('inbox.php');\", 60000);</script>";
+                              
+                               echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>';
+                               echo '<script>window.jQuery||document.write(\'<script src="jquery-2.0.3.min.js"><\/script>\')</script>';
+                               echo '<script>idleTime=0;$(document).ready(function(){var idleInterval=setInterval(timerIncrement,1000);$(this).mousemove(function(e){idleTime=0});$(this).keypress(function(e){idleTime=0})});function timerIncrement(){idleTime=idleTime+1;if(idleTime>59){$.ajax({url:"check.php",cache:false}).done(function(delta){if(delta==1){location.replace(document.URL)}});idleTime=0}}</script>';
                        }
-*/
+
+                       include("inbox.php");
                }
 
                echo "</div></td>";
diff --git a/pass2.php b/pass2.php
deleted file mode 100644
index 753629a..0000000
--- a/pass2.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-function pass2_extract($mbox, $msgno, $p, $partno, $path) {
-       $data = ($partno) ? imap_fetchbody($mbox, $msgno, $partno, FT_UID) : imap_body($mbox, $msgno, FT_UID);
-       if ($p->encoding == 4)
-               $data = quoted_printable_decode($data);
-       else if ($p->encoding == 3)
-               $data = base64_decode($data);
-       $params = array();
-       if ($p->parameters)
-               foreach ($p->parameters as $x)
-                       $params[strtolower($x->attribute)] = $x->value;
-       if ($p->dparameters)
-               foreach ($p->dparameters as $x)
-                       $params[strtolower($x->attribute)] = $x->value;
-       if ($params['filename'] || $params['name']) {
-               $partid = htmlentities($p->id, ENT_QUOTES, "UTF-8");
-               $filename = ($params['filename']) ? $params['filename'] : $params['name'];
-               $attachments[$filename] = $data;
-               $image[$key] = $filename;
-       }
-       if (count($attachments) > 0) {
-                if (!file_exists($path)) {
-                        mkdir($path, 0700, 1);
-                }
-               foreach ($attachments as $key => $val) {
-                       $files = glob("$path/*", GLOB_NOSORT);
-                       if (count($files) > 0) {
-                               $dup = "0";
-                               foreach ($files as $file) {
-                                       if (file_get_contents($file) == $val) {
-                                               $dup++;
-                                       }
-                               }
-                               if (($dup == 0) and (mb_strlen($val,"8bit") > 0)) {
-                                       file_put_contents("$path/$key", $val);
-                               }
-                       }
-                       else {
-                               if (mb_strlen($val,"8bit") > 0) {
-                                       file_put_contents("$path/$key", $val);
-                               }
-                       }
-                       unset($files);
-               }
-       }
-}
-
-function pass2_process($mbox, $msgno, $path) {
-       $attachments = array();
-       $s = imap_fetchstructure($mbox, $msgno, FT_UID);
-       if (!$s->parts) {
-               pass2_extract($mbox, $msgno, $s, 0, $path);
-       }
-       else {
-               foreach ($s->parts as $partno0 => $p) {
-                       pass2_extract($mbox, $msgno, $p, $partno0 + 1, $path);
-               }
-       }
-}
-
-pass2_process($mbox, $msgno, $filePath);
-
-?>
\ No newline at end of file
diff --git a/post.php b/post.php
index 89edc41..3056597 100644
--- a/post.php
+++ b/post.php
@@ -63,9 +63,11 @@ if (isset($_POST['new']) and !empty($_POST['new']) and is_numeric($_POST['new'])
        echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_rr\"></td><td valign=\"middle\">read receipt</td>";
        echo "<td width=\"10\"></td>";
        echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dr\"></td><td valign=\"middle\">delivery receipt</td>";
+       echo "<td width=\"10\"></td>";
+       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dm\" id=\"reply_dm\" onclick=\"if (this.checked) { document.getElementById('reply_go').innerHTML='save'; } else { document.getElementById('reply_go').innerHTML='send'; }\"></td><td valign=\"middle\">draft</td>";
        echo "</tr></table>";
 
-       echo "</td><td align=\"right\"><div class=\"label\"><input type=\"image\" src=\"images/mail-reply.png\" onclick=\"if (confirm('Send message?')) {return true;} else {return false;}\"></div><div class=\"label\">send</div></td></tr>";
+       echo "</td><td align=\"right\"><div class=\"label\"><input type=\"image\" src=\"images/mail-reply.png\" onclick=\"if (document.getElementById('reply_dm').checked) { if (confirm('Save message?')) {return true;} else {return false;}} else { if (confirm('Send message?')) {return true;} else {return false;}}\"></div><div class=\"label\" id=\"reply_go\">send</div></td></tr>";
 
        echo "</table>";
 
diff --git a/read.php b/read.php
index b80da8a..0835b98 100644
--- a/read.php
+++ b/read.php
@@ -223,57 +223,60 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
       
        echo "<td width=\"5\"></td>";
 
-        echo "<form method=\"post\"><td class=\"label\">";
-        echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
-        echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
-        echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
-        echo "<input type=\"hidden\" name=\"rep\" value=\"4\">";
-
-        if (isset($_POST['imap_search_query']) and !empty($_POST['imap_search_query']) and isset($_POST['imap_search_where']) and !empty($_POST['imap_search_where'])) {
-                echo "<input type=\"hidden\" name=\"imap_search_query\" value=\"{$_POST['imap_search_query']}\">";
-                echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
-        }
-
-        echo "<input type=\"image\" src=\"images/mail-redirect.png\">";
-        echo "</td></form>";
-
-        echo "<td width=\"5\"></td>";
-
-       echo "<form method=\"post\"><td class=\"label\">";
-       echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
-       echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
-       echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
-       echo "<input type=\"hidden\" name=\"rep\" value=\"2\">";
-
-       if (isset($_POST['imap_search_query']) and !empty($_POST['imap_search_query']) and isset($_POST['imap_search_where']) and !empty($_POST['imap_search_where'])) {
-               echo "<input type=\"hidden\" name=\"imap_search_query\" value=\"{$_POST['imap_search_query']}\">";
-               echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
-       }
-
-       echo "<input type=\"image\" src=\"images/mail-forward.png\">";
-       echo "</td></form>";
-
-       echo "<td width=\"5\"></td>";
-
-       if (strpos($header->toaddress,",")) {
-
+       if ($folder != "Drafts") {
+      
+               echo "<form method=\"post\"><td class=\"label\">";
+               echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
+               echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
+               echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
+               echo "<input type=\"hidden\" name=\"rep\" value=\"4\">";
+      
+               if (isset($_POST['imap_search_query']) and !empty($_POST['imap_search_query']) and isset($_POST['imap_search_where']) and !empty($_POST['imap_search_where'])) {
+                       echo "<input type=\"hidden\" name=\"imap_search_query\" value=\"{$_POST['imap_search_query']}\">";
+                       echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
+               }
+      
+               echo "<input type=\"image\" src=\"images/mail-redirect.png\">";
+               echo "</td></form>";
+      
+               echo "<td width=\"5\"></td>";
+      
                echo "<form method=\"post\"><td class=\"label\">";
                echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
                echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
                echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
-               echo "<input type=\"hidden\" name=\"rep\" value=\"3\">";
-
+               echo "<input type=\"hidden\" name=\"rep\" value=\"2\">";
+      
                if (isset($_POST['imap_search_query']) and !empty($_POST['imap_search_query']) and isset($_POST['imap_search_where']) and !empty($_POST['imap_search_where'])) {
                        echo "<input type=\"hidden\" name=\"imap_search_query\" value=\"{$_POST['imap_search_query']}\">";
                        echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
                }
-
-               echo "<input type=\"image\" src=\"images/mail-reply-all.png\">";
+      
+               echo "<input type=\"image\" src=\"images/mail-forward.png\">";
                echo "</td></form>";
-
+      
                echo "<td width=\"5\"></td>";
-       }
 
+               if (strpos($header->toaddress,",")) {
+      
+                       echo "<form method=\"post\"><td class=\"label\">";
+                       echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
+                       echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
+                       echo "<input type=\"hidden\" name=\"msg\" value=\"$msgno\">";
+                       echo "<input type=\"hidden\" name=\"rep\" value=\"3\">";
+      
+                       if (isset($_POST['imap_search_query']) and !empty($_POST['imap_search_query']) and isset($_POST['imap_search_where']) and !empty($_POST['imap_search_where'])) {
+                               echo "<input type=\"hidden\" name=\"imap_search_query\" value=\"{$_POST['imap_search_query']}\">";
+                               echo "<input type=\"hidden\" name=\"imap_search_where\" value=\"{$_POST['imap_search_where']}\">";
+                       }
+
+                       echo "<input type=\"image\" src=\"images/mail-reply-all.png\">";
+                       echo "</td></form>";
+
+                       echo "<td width=\"5\"></td>";
+               }
+       }
+      
        echo "<form method=\"post\"><td class=\"label\">";
        echo "<input type=\"hidden\" name=\"mbox_min\" value=\"$mbox_min\">";
        echo "<input type=\"hidden\" name=\"box\" value=\"$folder\">";
@@ -336,20 +339,27 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
        echo "<td class=\"label\">unread</td>";
        echo "<td width=\"5\"></td>";
 
-       echo "<td class=\"label\">redirect</td>";
-       echo "<td width=\"5\"></td>";
-
-       echo "<td class=\"label\">forward</td>";
-       echo "<td width=\"5\"></td>";
-
-       if (strpos($header->toaddress,",")) {
-               echo "<td class=\"label\"><nobr>reply all</nobr></td>";
+       if ($folder != "Drafts") {
+               echo "<td class=\"label\">redirect</td>";
+               echo "<td width=\"5\"></td>";
+      
+               echo "<td class=\"label\">forward</td>";
                echo "<td width=\"5\"></td>";
        }
-
-       echo "<td class=\"label\">reply</td>";
-       echo "<td width=\"5\"></td>";
-
+      
+       if ($folder == "Drafts") {
+               echo "<td class=\"label\">edit</td>";
+               echo "<td width=\"5\"></td>";
+       }
+       else {
+               if (strpos($header->toaddress,",")) {
+                       echo "<td class=\"label\"><nobr>reply all</nobr></td>";
+                       echo "<td width=\"5\"></td>";
+               }
+               echo "<td class=\"label\">reply</td>";
+               echo "<td width=\"5\"></td>";
+       }
+      
        if ($msgno_next != "") {
                echo "<td class=\"label\"><nobr>prev msg</nobr></td>";
                echo "<td width=\"5\"></td>";
@@ -367,7 +377,7 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
        $usr_mbox = kartero_sort_folders($imap_host,imap_list($mbox,$imap_host,"*"));
       
-       if ((count($usr_mbox) > 0) and ($folder != "Sent") and ($folder != "Trash")) {
+       if ((count($usr_mbox) > 0) and ($folder != "Drafts") and ($folder != "Sent") and ($folder != "Trash")) {
       
                echo "<div class=\"message\">";
                echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
@@ -392,6 +402,10 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
                                continue;
                        }
 
+                       if ($move_box == "Drafts") {
+                               continue;
+                       }
+                      
                        if ($move_box == "Sent") {
                                continue;
                        }
@@ -415,36 +429,8 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
        $filePath = "attach/o/$fileUsr/$fileDir";
 
-       $emailMessage = new EmailMessage($mbox, imap_msgno($mbox,$msgno));
-       $emailMessage->fetch();
-
-       if (count($emailMessage->attachments > 0)) {
-
-               if (!file_exists($filePath)) {
-                       mkdir($filePath,0700,1);
-               }
-      
-               foreach ($emailMessage->attachments as $key => $attachment) {
-
-                       $fileContent = $attachment[data];
-
-                       if (($fileContent != "") and (($attachment[inline] == 1) or ($attachment[filename] == ""))) {
-                               $fileName = $key;
-                       }      
-                       else {
-                               $fileName = $attachment[filename];
-                       }
-
-                               $fileName = str_replace(" ", "_", $fileName);
-                       $fileName = preg_replace("/[^a-zA-Z0-9.\-_@]/u", "", $fileName);
-
-                       if (!file_exists("$filePath/$fileName") and (mb_strlen($fileContent,"8bit") > 0)) {
-                               file_put_contents("$filePath/$fileName",$fileContent);
-                       }
-               }
-       }
-
-       include("pass2.php");
+       pass1_process($mbox, $msgno, $filePath);
+       pass2_process($mbox, $msgno, $filePath);
 
        $bodyTEXT = get_part($mbox, $msgno, "TEXT/PLAIN");
        $bodyHTML = get_part($mbox, $msgno, "TEXT/HTML");
@@ -571,7 +557,7 @@ if (isset($header_rr) and (strlen($header_rr) > 0)) {
 
        $header_ov = imap_fetch_overview($mbox,$msgno,FT_UID);
 
-       if ((strlen($rcpt_mail) > 0) and ($folder != "Sent") and ($folder != "Trash") and ($folder != "Spam") and ($folder != "Junk") and ($header_ov[0]->answered == "0")) {
+       if ((strlen($rcpt_mail) > 0) and ($folder != "Drafts") and ($folder != "Sent") and ($folder != "Trash") and ($folder != "Spam") and ($folder != "Junk") and ($header_ov[0]->answered == "0")) {
 
                $header_message_id = imap_utf8($header->message_id);
 
@@ -589,5 +575,5 @@ if (isset($header_rr) and (strlen($header_rr) > 0)) {
                echo "<script>if (confirm('The message sender has requested a response to indicate that you have read this message.\\nWould you like to send a receipt?')) { document.getElementById('receipt').submit(); }</script>";
        }
 }
-
-?>
\ No newline at end of file
+      
+?>
diff --git a/send.php b/send.php
index 474ea5f..4f45b66 100644
--- a/send.php
+++ b/send.php
@@ -19,9 +19,10 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
        $header_ccaddress = imap_utf8($header->ccaddress);
 
        $reply_quote = trim(get_part($mbox, $msgno, "TEXT/PLAIN"));
+       $reply_quote = mb_convert_encoding($reply_quote,"UTF-8");
 
        if ($_POST['rep'] != 2) {
-               $reply_quote = wordwrap($reply_quote,75,"\r\n");
+               $reply_quote = wordwrap($reply_quote,75,"\n");
        }
 
        $reply_quote_lines = explode("\n",$reply_quote);
@@ -33,21 +34,26 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
                $reply_quote_rows = count($reply_quote_lines) + 1;
        }
 
-       $reply_from = "$usr_name <{$_SESSION['logged_uid']}>";
-
-       $reply_to = imap_utf8($header->reply_toaddress);
-
-       if ($reply_to != "") {
+       if ($folder != "Drafts") {
+               $reply_from = "$usr_name <{$_SESSION['logged_uid']}>";
+      
                $reply_to = imap_utf8($header->reply_toaddress);
+      
+               if ($reply_to != "") {
+                       $reply_to = imap_utf8($header->reply_toaddress);
+               }
+               else {
+                       $reply_to = imap_utf8($header->fromaddress);
+               }
+      
+               if (($_POST['rep'] == 3) and strpos(imap_utf8($header->toaddress),",")) {
+                       $reply_to = $reply_to . ", " . imap_utf8($header->toaddress);
+               }
        }
        else {
-               $reply_to = imap_utf8($header->fromaddress);
-       }
-
-       if (($_POST['rep'] == 3) and strpos(imap_utf8($header->toaddress),",")) {
-
-               $reply_to = $reply_to . ", " . imap_utf8($header->toaddress);
-       }
+               $reply_from = imap_utf8($header->fromaddress);
+               $reply_to = imap_utf8($header->toaddress);
+       }      
 
        if (($_POST['rep'] == 2) or ($_POST['rep'] == 4)) {
 
@@ -62,23 +68,22 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
                $reply_subject = str_replace("FWD: ","Fwd: ",$reply_subject);
                $reply_subject = str_replace("RE: ","Re: ",$reply_subject);
 
-       if (($_POST['rep'] == 2) or ($_POST['rep'] == 4)) {
-
-               $redirect_from = htmlentities($reply_to,ENT_QUOTES,"UTF-8");
-
-               $reply_to = "";
-
-               if ($_POST['rep'] == 2) {
-                       $reply_subject = "Fwd: " . $reply_subject;
+       if ($folder != "Drafts") {
+               if (($_POST['rep'] == 2) or ($_POST['rep'] == 4)) {
+      
+                       $redirect_from = htmlentities($reply_to,ENT_QUOTES,"UTF-8");
+      
+                       $reply_to = "";
+      
+                       if ($_POST['rep'] == 2) {
+                               $reply_subject = "Fwd: " . $reply_subject;
+                       }
+               }
+               else {
+                       $reply_subject = "Re: " . $reply_subject;
                }
-
-
-       }
-       else {
-               $reply_subject = "Re: " . $reply_subject;
-
        }
-
+      
         if (substr_count($reply_subject, "Fwd: ") > 1) {
 
                 while (substr_count($reply_subject, "Fwd: ") > 1) {
@@ -107,7 +112,7 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
         $header_fetch = imap_fetchheader($mbox,$msgno,FT_UID);
 
-        $header_raw_lines = explode("\r\n",$header_fetch);
+        $header_raw_lines = explode("\n",$header_fetch);
 
         foreach ($header_raw_lines as $header_raw_line) {
 
@@ -189,8 +194,15 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
        echo "<tr><td><b>To:</b></td><td colspan=\"2\"><input required class=\"input\" type=\"text\" name=\"reply_to\" value=\"$reply_to\" required></td></tr>";
        echo "<tr><td><b>Cc:</b></td><td colspan=\"2\"><input class=\"input\" type=\"text\" name=\"reply_cc\" value=\"$reply_cc\"></td></tr>";
-       echo "<tr><td><b>Bcc:</b></td><td colspan=\"2\"><input class=\"input\" type=\"text\" name=\"reply_bcc\"></td></tr>";
 
+       if ($folder != "Drafts") {     
+               echo "<tr><td><b>Bcc:</b></td><td colspan=\"2\"><input class=\"input\" type=\"text\" name=\"reply_bcc\"></td></tr>";
+       }
+       else {
+               $reply_bcc = imap_utf8($header->bccaddress);
+               echo "<tr><td><b>Bcc:</b></td><td colspan=\"2\"><input class=\"input\" type=\"text\" name=\"reply_bcc\" value=\"$reply_bcc\"></td></tr>";
+       }
+      
        echo "<tr><td><b>Subject:</b></td><td colspan=\"2\"><input required class=\"input\" type=\"text\" name=\"reply_subj\" value=\"$reply_subject\" required";
 
        if ($_POST['rep'] == 4) {
@@ -210,23 +222,24 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
        if (($_POST['rep'] == 2) or ($_POST['rep'] == 4)) {
 
                if ($_POST['rep'] == 2) {
-                       echo "---------------------------------------- Begin Forwarded Message ----------------------------------------\r\n";  
-                       echo "From: $header_fromaddress\r\n";
-                       echo "To: $header_toaddress\r\n";
+                       echo "---------------------------------------- Begin Forwarded Message ----------------------------------------\n";    
+                       echo "From: $header_fromaddress\n";
+                       echo "To: $header_toaddress\n";
 
                        if (strlen($header_ccaddress) != 0) {
-                               echo "Cc: $header_ccaddress\r\n";
+                               echo "Cc: $header_ccaddress\n";
                        }
 
-                       echo "Date: $header_date\r\n";
-                       echo "Subject: $header_subject\r\n\r\n";
+                       echo "Date: $header_date\n";
+                       echo "Subject: $header_subject\n\n";
                }
 
                echo $reply_quote;
        }
        else {
+               if ($folder != "Drafts") {
                $reply_personal = imap_utf8($header->fromaddress);
-               echo "On $header_date, $reply_personal wrote:\r\n";
+               echo "On $header_date, $reply_personal wrote:";
 
                foreach ($reply_quote_lines as $reply_quote_line) {
                       
@@ -234,7 +247,11 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
                        $reply_quote_line = preg_replace("/(^> >)/",">>",$reply_quote_line);
                        $reply_quote_line = preg_replace("/(^>> >)/",">>>",$reply_quote_line);
 
-                       echo $reply_quote_line;
+                       echo "\n$reply_quote_line";
+               }
+               }
+               else {
+                       echo $reply_quote;
                }
        }
 
@@ -253,17 +270,86 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
        echo "<tr><td></td><td>";
 
        if ($_POST['rep'] != 4) {
+      
+               if ($folder == "Drafts") {
+              
+                       $header_fetch = imap_utf8(imap_fetchheader($mbox,$msgno,FT_UID|FT_PREFETCHTEXT));
+
+                       $header_raw_lines = explode("\n",$header_fetch);
 
-               echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
-               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_hi\"></td><td valign=\"middle\">high priority</td>";
-               echo "<td width=\"10\"></td>";
-               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_rr\"></td><td valign=\"middle\">read receipt</td>";
-               echo "<td width=\"10\"></td>";
-               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dr\"></td><td valign=\"middle\">delivery receipt</td>";
-               echo "</tr></table>";
+                       foreach ($header_raw_lines as $header_raw_line) {
+
+                               if (strstr($header_raw_line,"X-Priority: 1")) {
+                                       $header_priority = $header_raw_line;
+                               }
+
+                               if (strstr($header_raw_line,"Importance: High")) {
+                                       $header_priority = $header_raw_line;
+                               }
+
+                               if (strstr($header_raw_line,"X-Confirm-Reading-To:")) {
+                                       $header_rr = $header_raw_line;
+                               }
+
+                               if (strstr($header_raw_line,"Disposition-Notification-To:")) {
+                                       $header_rr = $header_raw_line;
+                               }
+
+                               if (strstr($header_raw_line,"Return-Receipt-To:")) {
+                                       $header_dr = $header_raw_line;
+                               }
+                       }
+
+                       echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
+                      
+                       if ($header_priority != "") {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_hi\" checked></td><td valign=\"middle\">high priority</td>";
+                       }
+                       else {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_hi\"></td><td valign=\"middle\">high priority</td>";
+                       }
+                      
+                       echo "<td width=\"10\"></td>";
+
+                       if ($header_rr != "") {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_rr\" checked></td><td valign=\"middle\">read receipt</td>";
+                       }
+                       else {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_rr\"></td><td valign=\"middle\">read receipt</td>";
+                       }
+                      
+                       echo "<td width=\"10\"></td>";
+
+                       if ($header_dr != "") {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dr\" checked></td><td valign=\"middle\">delivery receipt</td>";
+                       }
+                       else {
+                               echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dr\"></td><td valign=\"middle\">delivery receipt</td>";
+                       }
+                      
+                       echo "<td width=\"10\"></td>";
+                       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dm\" id=\"reply_dm\" onclick=\"if (this.checked) { document.getElementById('reply_go').innerHTML='save'; } else { document.getElementById('reply_go').innerHTML='send'; }\"></td><td valign=\"middle\">draft</td>";
+                       echo "</tr></table>";
+               }
+               else {
+                       echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
+                       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_hi\"></td><td valign=\"middle\">high priority</td>";
+                       echo "<td width=\"10\"></td>";
+                       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_rr\"></td><td valign=\"middle\">read receipt</td>";
+                       echo "<td width=\"10\"></td>";
+                       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dr\"></td><td valign=\"middle\">delivery receipt</td>";
+                       echo "<td width=\"10\"></td>";
+                       echo "<td valign=\"middle\"><input type=\"checkbox\" name=\"reply_dm\" id=\"reply_dm\" onclick=\"if (this.checked) { document.getElementById('reply_go').innerHTML='save'; } else { document.getElementById('reply_go').innerHTML='send'; }\"></td><td valign=\"middle\">draft</td>";
+                       echo "</tr></table>";
+               }
        }
 
-       echo "</td><td align=\"right\"><div class=\"label\"><input type=\"image\" src=\"images/mail-reply.png\" onclick=\"if (confirm('Send message?')) {return true;} else {return false;}\"></div><div class=\"label\">send</div></td></tr>";
+       if ($_POST['rep'] != 4) {
+               echo "</td><td align=\"right\"><div class=\"label\"><input type=\"image\" src=\"images/mail-reply.png\" onclick=\"if (document.getElementById('reply_dm').checked) { if (confirm('Save message?')) {return true;} else {return false;}} else { if (confirm('Send message?')) {return true;} else {return false;}}\"></div><div class=\"label\" id=\"reply_go\">send</div></td></tr>";
+       }
+       else {
+               echo "</td><td align=\"right\"><div class=\"label\"><input type=\"image\" src=\"images/mail-reply.png\" onclick=\"if (confirm('Send message?')) {return true;} else {return false;}\"></div><div class=\"label\" id=\"reply_go\">send</div></td></tr>";
+       }      
 
        echo "</table>";
 
@@ -275,6 +361,11 @@ if (isset($_POST['msg']) and !empty($_POST['msg']) and is_numeric($_POST['msg'])
 
 if ($_POST['rep'] != 4) {
 
+       if ($folder == "Drafts") {
+               pass1_process($mbox, $msgno, "attach/i/$fileUsr/$filedrop_box");
+               pass2_process($mbox, $msgno, "attach/i/$fileUsr/$filedrop_box");
+       }
+
 ?>
 
 <div class="message">
 
filedropkartero.git-41992ae.tar.bz2 new
412.12 KB
264 downloads
filedropkartero.git-41992ae.zip
448.41 KB
239 downloads
filedropkartero.git-b404ba2.tar.bz2
411.70 KB
250 downloads
filedropkartero.git-b404ba2.zip
447.96 KB
231 downloads
filedropkartero.git-a7684d9.tar.bz2
411.72 KB
235 downloads
filedropkartero.git-a7684d9.zip
447.96 KB
279 downloads
filedropkartero.git-83512be.tar.bz2
410.26 KB
227 downloads
filedropkartero.git-83512be.zip
445.30 KB
201 downloads
filedropkartero.git-1954b25.tar.bz2
410.21 KB
220 downloads
filedropkartero.git-1954b25.zip
445.30 KB
196 downloads
filedropkartero.git-2f7c910.tar.bz2
410.25 KB
210 downloads
filedropkartero.git-2f7c910.zip
445.29 KB
183 downloads
filedropkartero.git-6317ffb.tar.bz2
410.40 KB
195 downloads
filedropkartero.git-6317ffb.zip
445.28 KB
165 downloads
filedropkartero.git-60ccd7a.tar.bz2
410.40 KB
183 downloads
filedropkartero.git-60ccd7a.zip
445.20 KB
161 downloads
filedropkartero.git-ea6f885.tar.bz2
410.47 KB
170 downloads
filedropkartero.git-ea6f885.zip
445.26 KB
143 downloads
filedropkartero.git-7f580e5.zip
445.17 KB
133 downloads
filedropkartero.git-7f580e5.tar.bz2
410.18 KB
141 downloads
filedropkartero.git-b9364de.tar.bz2
409.41 KB
131 downloads
filedropkartero.git-b9364de.zip
444.09 KB
392 downloads
filedropkartero.git-e9bcd78.zip
444.03 KB
372 downloads
filedropkartero.git-e9bcd78.tar.bz2
409.39 KB
397 downloads
filedropkartero.git-96c60ff.tar.bz2
407.96 KB
389 downloads
filedropkartero.git-96c60ff.zip
441.87 KB
344 downloads
filedropkartero.git-4357b59.tar.bz2
407.17 KB
387 downloads
filedropkartero.git-4357b59.zip
440.69 KB
347 downloads
filedropkartero.git-c6ff319.tar.bz2
407.28 KB
385 downloads
filedropkartero.git-c6ff319.zip
440.70 KB
328 downloads
filedropkartero.git-8b87a29.tar.bz2
407.27 KB
365 downloads
filedropkartero.git-8b87a29.zip
440.71 KB
327 downloads
filedropkartero.git-ee42942.tar.bz2
406.49 KB
325 downloads
filedropkartero.git-ee42942.zip
439.92 KB
305 downloads
filedropkartero.git-867e7e6.tar.bz2
406.75 KB
347 downloads
filedropkartero.git-867e7e6.zip
440.03 KB
308 downloads
filedropkartero.git-3f3fc02.tar.bz2
406.38 KB
343 downloads
filedropkartero.git-3f3fc02.zip
439.71 KB
333 downloads
filedropkartero.git-b6f779d.tar.bz2
406.55 KB
363 downloads
filedropkartero.git-b6f779d.zip
440.00 KB
292 downloads
filedropkartero.git-83f24b0.zip
439.12 KB
274 downloads
filedropkartero.git-52316ec.tar.bz2
406.17 KB
319 downloads
filedropkartero.git-52316ec.zip
439.18 KB
297 downloads
filedropkartero.git-83f24b0.tar.bz2
405.84 KB
313 downloads
filedropkartero.git-8a42d47.tar.bz2
405.73 KB
292 downloads
filedropkartero.git-8a42d47.zip
439.02 KB
270 downloads
filedropkartero.git-830c9cb.tar.bz2
406.08 KB
295 downloads
filedropkartero.git-830c9cb.zip
439.08 KB
269 downloads
filedropkartero.git-ebec1be.tar.bz2
406.16 KB
298 downloads
filedropkartero.git-ebec1be.zip
439.09 KB
297 downloads
filedropkartero.git-7c0b70f.tar.bz2
402.43 KB
284 downloads
filedropkartero.git-7c0b70f.zip
435.91 KB
262 downloads
filedropkartero.git-80edc03.tar.bz2
402.75 KB
297 downloads
filedropkartero.git-80edc03.zip
435.84 KB
273 downloads
filedropkartero.git-b408c23.tar.bz2
402.19 KB
288 downloads
filedropkartero.git-b408c23.zip
435.59 KB
277 downloads
filedropkartero.git-29c0e1f.tar.bz2
401.84 KB
292 downloads
filedropkartero.git-29c0e1f.zip
435.25 KB
289 downloads
filedropkartero.git-9086094.tar.bz2
401.94 KB
292 downloads
filedropkartero.git-9086094.zip
435.34 KB
289 downloads
filedropkartero.git-47ca624.tar.bz2
402.10 KB
291 downloads
filedropkartero.git-47ca624.zip
435.51 KB
257 downloads
filedropkartero.git-81314a5.zip
435.53 KB
277 downloads
filedropkartero.git-81314a5.tar.bz2
402.25 KB
285 downloads
filedropkartero.git-cae7074.zip
435.20 KB
273 downloads
filedropkartero.git-cae7074.tar.bz2
401.98 KB
302 downloads
filedropkartero.git-cc68e56.tar.bz2
402.07 KB
285 downloads
filedropkartero.git-cc68e56.zip
435.16 KB
303 downloads
filedropkartero.git-230f35d.tar.bz2
401.43 KB
271 downloads
filedropkartero.git-230f35d.zip
434.68 KB
290 downloads
filedropkartero.git-5ae58a2.tar.bz2
401.54 KB
273 downloads
filedropkartero.git-5ae58a2.zip
434.68 KB
263 downloads
filedropkartero.git-a591f4b.tar.bz2
401.76 KB
273 downloads
filedropkartero.git-a591f4b.zip
435.17 KB
270 downloads
filedropkartero.git-36876c8.tar.bz2
400.44 KB
269 downloads
filedropkartero.git-36876c8.zip
432.36 KB
293 downloads
filedropkartero.git-a34c9ed.tar.bz2
400.57 KB
293 downloads
filedropkartero.git-a34c9ed.zip
432.27 KB
283 downloads
filedropkartero.git-e828148.zip
433.58 KB
264 downloads
filedropkartero.git-e828148.tar.bz2
400.88 KB
280 downloads
filedropkartero.git-476cdda.tar.bz2
400.60 KB
310 downloads
filedropkartero.git-476cdda.zip
432.26 KB
276 downloads
filedropkartero.git-054c286.tar.bz2
98.09 KB
350 downloads
filedropkartero.git-054c286.zip
109.53 KB
334 downloads
filedropkartero.git-071b099.tar.bz2
98.76 KB
352 downloads
filedropkartero.git-071b099.zip
110.21 KB
336 downloads
filedropkartero.git-551c38d.tar.bz2
98.51 KB
358 downloads
filedropkartero.git-551c38d.zip
110.20 KB
326 downloads
filedropkartero.git-569dc0c.tar.bz2
98.40 KB
352 downloads
filedropkartero.git-569dc0c.zip
109.86 KB
318 downloads
filedropkartero.git-58a052b.tar.bz2
97.95 KB
349 downloads
filedropkartero.git-58a052b.zip
109.36 KB
332 downloads
filedropkartero.git-43a5af3.tar.bz2
97.80 KB
345 downloads
filedropkartero.git-43a5af3.zip
109.30 KB
329 downloads
filedropkartero.git-bbe069d.tar.bz2
98.03 KB
358 downloads
filedropkartero.git-bbe069d.zip
109.19 KB
334 downloads
filedropkartero.git-02f97e1.tar.bz2
97.76 KB
325 downloads
filedropkartero.git-02f97e1.zip
109.24 KB
424 downloads
filedropkartero.git-d82e393.tar.bz2
97.74 KB
358 downloads
filedropkartero.git-d82e393.zip
109.24 KB
335 downloads
filedropkartero.git-7cdd1f5.tar.bz2
98.03 KB
341 downloads
filedropkartero.git-7cdd1f5.zip
109.24 KB
316 downloads
filedropkartero.git-40825aa.tar.bz2
97.71 KB
340 downloads
filedropkartero.git-40825aa.zip
109.16 KB
353 downloads
filedropkartero.git-3dd941b.tar.bz2
97.69 KB
340 downloads
filedropkartero.git-3dd941b.zip
109.12 KB
326 downloads
filedropkartero.git-50f1e46.tar.bz2
97.65 KB
348 downloads
filedropkartero.git-50f1e46.zip
109.02 KB
330 downloads
filedropkartero.git-fdf9225.tar.bz2
93.19 KB
380 downloads
filedropkartero.git-fdf9225.zip
104.25 KB
339 downloads
filedropkartero.git-21415da.tar.bz2
93.24 KB
336 downloads
filedropkartero.git-21415da.zip
104.22 KB
342 downloads
filedropkartero.git-aff5e89.tar.bz2
93.17 KB
358 downloads
filedropkartero.git-aff5e89.zip
104.22 KB
331 downloads
filedropkartero.git-b27ef39.tar.bz2
91.97 KB
357 downloads
filedropkartero.git-b27ef39.zip
102.80 KB
356 downloads
filedropkartero.git-3d6e8a2.tar.bz2
91.99 KB
341 downloads
filedropkartero.git-3d6e8a2.zip
102.77 KB
352 downloads
filedropkartero.git-1442b69.tar.bz2
91.79 KB
334 downloads
filedropkartero.git-1442b69.zip
102.50 KB
357 downloads
filedropkartero.git-6d15918.tar.bz2
91.56 KB
357 downloads
filedropkartero.git-6d15918.zip
102.28 KB
323 downloads
filedropkartero.git-45140d8.tar.bz2
91.52 KB
360 downloads
filedropkartero.git-45140d8.zip
102.23 KB
329 downloads
filedropkartero.git-d5b48e5.tar.bz2
91.35 KB
347 downloads
filedropkartero.git-d5b48e5.zip
102.01 KB
341 downloads
filedropkartero.git-e007e55.tar.bz2
91.35 KB
358 downloads
filedropkartero.git-e007e55.zip
102.01 KB
314 downloads
filedropkartero.git-30fd7e3.tar.bz2
90.87 KB
334 downloads
filedropkartero.git-30fd7e3.zip
101.44 KB
341 downloads
filedropkartero.git-421a4a7.tar.bz2
88.02 KB
73 downloads
filedropkartero.git-421a4a7.zip
97.96 KB
318 downloads
filedropkartero.git-b49b8bc.tar.bz2
88.09 KB
378 downloads
filedropkartero.git-b49b8bc.zip
97.99 KB
334 downloads
filedropkartero.git-1cc9571.tar.bz2
87.74 KB
355 downloads
filedropkartero.git-1cc9571.zip
97.70 KB
338 downloads
filedropkartero.git-159152f.tar.bz2
87.60 KB
353 downloads
filedropkartero.git-159152f.zip
97.52 KB
344 downloads
filedropkartero.git-35caaf3.tar.bz2
87.74 KB
336 downloads
filedropkartero.git-35caaf3.zip
97.57 KB
327 downloads
filedropkartero.git-3c9d305.zip
96.67 KB
330 downloads
filedropkartero.git-3c9d305.tar.bz2
86.77 KB
344 downloads
filedropkartero.git-14cb2af.tar.bz2
86.41 KB
343 downloads
filedropkartero.git-14cb2af.zip
96.13 KB
333 downloads
filedropkartero.git-e8f00cb.tar.bz2
86.46 KB
359 downloads
filedropkartero.git-e8f00cb.zip
96.21 KB
322 downloads
filedropkartero.git-bdab380.tar.bz2
86.14 KB
356 downloads
filedropkartero.git-bdab380.zip
95.79 KB
327 downloads
filedropkartero.git-48f9134.tar.bz2
85.78 KB
359 downloads
filedropkartero.git-48f9134.zip
95.48 KB
337 downloads
filedropkartero.git-adb9757.tar.bz2
85.67 KB
348 downloads
filedropkartero.git-adb9757.zip
95.37 KB
327 downloads
filedropkartero.git-1601cbd.zip
95.30 KB
339 downloads
filedropkartero.git-1601cbd.tar.bz2
85.69 KB
330 downloads
filedropkartero.git-18a5106.tar.bz2
85.72 KB
331 downloads
filedropkartero.git-18a5106.zip
95.48 KB
343 downloads
filedropkartero.git-a5b1caa.tar.bz2
85.61 KB
366 downloads
filedropkartero.git-a5b1caa.zip
95.36 KB
337 downloads
filedropkartero.git-effff82.zip
97.06 KB
348 downloads
filedropkartero.git-effff82.tar.bz2
87.13 KB
354 downloads
filedropkartero.git-b70d364.tar.bz2
84.09 KB
392 downloads
filedropkartero.git-b70d364.zip
93.67 KB
343 downloads
filedropkartero.git-48f0e53.tar.bz2
84.16 KB
366 downloads
filedropkartero.git-48f0e53.zip
93.66 KB
336 downloads
filedropkartero.git-c17135e.tar.bz2
84.09 KB
347 downloads
filedropkartero.git-c17135e.zip
93.57 KB
322 downloads
filedropkartero.git-a2e2848.tar.bz2
85.59 KB
352 downloads
filedropkartero.git-a2e2848.zip
100.10 KB
335 downloads
filedropkartero.git-1f683db.tar.bz2
83.55 KB
351 downloads
filedropkartero.git-1f683db.zip
93.24 KB
331 downloads
filedropkartero.git-d342596.tar.bz2
83.57 KB
350 downloads
filedropkartero.git-d342596.zip
93.28 KB
323 downloads
filedropkartero.git-e0131d5.tar.bz2
83.55 KB
353 downloads
filedropkartero.git-e0131d5.zip
93.27 KB
339 downloads
filedropkartero.git-ad467e8.tar.bz2
83.13 KB
361 downloads
filedropkartero.git-ad467e8.zip
92.78 KB
328 downloads
filedropkartero.git-b20e27d.tar.bz2
83.46 KB
366 downloads
filedropkartero.git-b20e27d.zip
93.19 KB
356 downloads
filedropkartero.git-eefd8fe.zip
92.67 KB
360 downloads
filedropkartero.git-eefd8fe.tar.bz2
83.01 KB
350 downloads
filedropkartero.git-bea685a.zip
96.88 KB
336 downloads
filedropkartero.git-bea685a.tar.bz2
84.44 KB
346 downloads
filedropkartero.git-a8bd019.tar.bz2
84.25 KB
360 downloads
filedropkartero.git-a8bd019.zip
96.60 KB
330 downloads
filedropkartero.git-cbc914d.tar.bz2
84.38 KB
354 downloads
filedropkartero.git-cbc914d.zip
96.64 KB
320 downloads
filedropkartero.git-09a2e70.tar.bz2
84.40 KB
334 downloads
filedropkartero.git-09a2e70.zip
96.70 KB
342 downloads
filedropkartero.git-641dc05.tar.bz2
84.37 KB
352 downloads
filedropkartero.git-641dc05.zip
96.73 KB
331 downloads
filedropkartero.git-cde49c6.tar.bz2
84.26 KB
363 downloads
filedropkartero.git-cde49c6.zip
96.59 KB
335 downloads
filedropkartero.git-1d004e0.tar.bz2
77.42 KB
365 downloads
filedropkartero.git-1d004e0.zip
87.56 KB
1,007 downloads
filedropkartero.git-1f0bf17.tar.bz2
77.47 KB
360 downloads
filedropkartero.git-1f0bf17.zip
87.56 KB
329 downloads
filedropkartero.git-265e63c.tar.bz2
77.43 KB
341 downloads
filedropkartero.git-265e63c.zip
87.52 KB
364 downloads
filedropkartero.git-635a5db.zip
87.60 KB
332 downloads
filedropkartero.git-a041f85.tar.bz2
77.37 KB
366 downloads
filedropkartero.git-a041f85.zip
87.52 KB
362 downloads
filedropkartero.git-ae049a7.tar.bz2
77.44 KB
362 downloads
filedropkartero.git-ae049a7.zip
87.52 KB
333 downloads
filedropkartero.git-eef571a.tar.bz2
20.56 KB
473 downloads
filedropkartero.git-eef571a.zip
25.69 KB
461 downloads
filedropkartero.git-0bc16f5.tar.bz2
82.61 KB
379 downloads
filedropkartero.git-0bc16f5.zip
94.75 KB
370 downloads
filedropkartero.git-2afc0f7.tar.bz2
83.61 KB
381 downloads
filedropkartero.git-2afc0f7.zip
96.00 KB
387 downloads
filedropkartero.git-3529bdf.tar.bz2
77.72 KB
347 downloads
filedropkartero.git-3529bdf.zip
87.92 KB
363 downloads
filedropkartero.git-49aac92.tar.bz2
78.98 KB
392 downloads
filedropkartero.git-49aac92.zip
90.01 KB
365 downloads
filedropkartero.git-5d48f21.tar.bz2
78.65 KB
65 downloads
filedropkartero.git-5d48f21.zip
89.51 KB
395 downloads
filedropkartero.git-635a5db.tar.bz2
77.50 KB
402 downloads
filedropkartero.git-6e34786.tar.bz2
77.76 KB
412 downloads
filedropkartero.git-6e34786.zip
88.09 KB
407 downloads
filedropkartero.git-7dc2fd2.tar.bz2
83.51 KB
461 downloads
filedropkartero.git-7dc2fd2.zip
95.99 KB
413 downloads
filedropkartero.git-9cad005.tar.bz2
78.85 KB
458 downloads
filedropkartero.git-9cad005.zip
90.00 KB
454 downloads
filedropkartero.git-b303f61.tar.bz2
82.57 KB
493 downloads
filedropkartero.git-b303f61.zip
94.78 KB
130 downloads
filedropkartero.git-c15ef85.tar.bz2
77.76 KB
148 downloads
filedropkartero.git-c15ef85.zip
88.16 KB
148 downloads
filedropkartero.git-c99e84d.tar.bz2
83.58 KB
170 downloads
filedropkartero.git-c99e84d.zip
96.01 KB
162 downloads
filedropkartero.git-e5009e6.tar.bz2
78.73 KB
178 downloads
filedropkartero.git-e5009e6.zip
89.69 KB
174 downloads
filedropkartero.git-0502d01.tar.bz2
83.54 KB
193 downloads
filedropkartero.git-0502d01.zip
96.00 KB
187 downloads
filedropkartero.git-44ca46d.tar.bz2
83.73 KB
206 downloads
filedropkartero.git-44ca46d.zip
96.20 KB
196 downloads
filedropkartero.git-834f923.tar.bz2
83.75 KB
211 downloads
filedropkartero.git-834f923.zip
96.14 KB
204 downloads