Index: trunk/MagicSoft/Mars/datacenter/db/builddatasets.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/builddatasets.php	(revision 9509)
+++ trunk/MagicSoft/Mars/datacenter/db/builddatasets.php	(revision 9510)
@@ -3,21 +3,24 @@
     function PrintDataSetFile()
     {
+        if (empty($_SESSION["AnalysisNumber"]))
             printf("AnalysisNumber: 1\n\n");
-            printf("SeqencesOn: %s \n", $_SESSION["sequon"]);
-            if ($_SESSION["sequoff"]!="")
-                printf("SeqencesOff: %s \n\n", $_SESSION["sequoff"]);
-            else
-                printf("\n");
-
-            printf("SourceName: %s \n", $_SESSION["realsourcename"]);
-            printf("Catalog: /magic/datacenter/setup/magic_favorites_dc.edb \n");
-            if ($_SESSION["sequoff"]==" ")
-                printf("WobbleMode: On \n\n");
-            printf("RunTime: %s \n", $_SESSION["runtime"]);
-            printf("Name: %s \n", $_SESSION["name"]);
-            printf("Comment: %s \n", $_SESSION["comment"]);
-    }
-
-    function CreateQuery($alias, $checkwhere, $checkgroup, $checkstatusgroup, $needs)
+        else
+            printf("AnalysisNumber: %s\n\n", $_SESSION["AnalysisNumber"]);
+        printf("SeqencesOn: %s \n", $_SESSION["sequon"]);
+        if ($_SESSION["sequoff"]!="")
+            printf("SeqencesOff: %s \n\n", $_SESSION["sequoff"]);
+        else
+            printf("\n");
+
+        printf("SourceName: %s \n", $_SESSION["realsourcename"]);
+        printf("Catalog: /magic/datacenter/setup/magic_favorites_dc.edb \n");
+        if ($_SESSION["sequoff"]==" ")
+            printf("WobbleMode: On \n\n");
+        printf("RunTime: %s \n", $_SESSION["runtime"]);
+        printf("Name: %s \n", $_SESSION["name"]);
+        printf("Comment: %s \n", $_SESSION["comment"]);
+    }
+
+    function CreateQuery($alias, $checkwhere, $checkgroup, $checkstatusgroup, $needs, $db_id)
     {
         $fromtable="Sequences";
@@ -62,20 +65,17 @@
             {
                 $query0 .= " " . $fromtable . ".fSequenceFirst as '" . $alias["fSequenceFirst"] . "' ";
-                if (!empty($_SESSION["fLinks"]))
+                if (!empty($_GET["fLinks"]))
                 {
-                    $query0 .= ", CONCAT('<A&ws;HREF=\"runinfo-aio.php?',  'fRunStart=On', '&amp;fZenithDistance=On', '&amp;fRunMin=', Sequences.fSequenceFirst, '&amp;fMeanTriggerRate=On', '&amp;fTest=On', '&amp;fRunTypeName=On', '&amp;fRunMax=', fSequenceLast, '&amp;fNumEvents=On', '&amp;fSourceName=On&amp;', 'fExcludedFDAKEY=1', '&amp;fSequenceFirst=On', '&amp;fRawFileAvail=On', '&amp;fCCFileAvail=On', '&amp;fCaCoFileAvail=On', '&amp;fNumResults=500\">r</A>' ";
-                    //$query0 .= " as " . $alias["fSequenceFirst"];
-                    $query0 .= ", '&nbsp;<A&ws;HREF=\"http://www.astro.uni-wuerzburg.de/datacenter/callisto/' , LEFT(LPAD(CONCAT(Sequences.fSequenceFirst, '.'), 9,'0'),4), '/', LPAD(CONCAT(Sequences.fSequenceFirst, '/'), 9,'0'), 'callisto', LPAD(CONCAT(Sequences.fSequenceFirst , '.html'), 13,'0') , '\">cl</A>'";
-                    $query0 .= ", '&nbsp;<A&ws;HREF=\"http://www.astro.uni-wuerzburg.de/datacenter/callisto/' , LEFT(LPAD(CONCAT(Sequences.fSequenceFirst, '.'), 9,'0'),4), '/', LPAD(CONCAT(Sequences.fSequenceFirst, '/'), 9,'0'), '\">c</A>'";
-                    $query0 .= ", '&nbsp;<A&ws;HREF=\"http://www.astro.uni-wuerzburg.de/datacenter/star/' , LEFT(LPAD(CONCAT(Sequences.fSequenceFirst, '.'), 9,'0'),4), '/', LPAD(CONCAT(Sequences.fSequenceFirst, '/'), 9,'0'), 'star', LPAD(CONCAT(Sequences.fSequenceFirst , '.html'), 13,'0') , '\">sl</A>'";
-                    $query0 .= ", '&nbsp;<A&ws;HREF=\"http://www.astro.uni-wuerzburg.de/datacenter/star/' , LEFT(LPAD(CONCAT(Sequences.fSequenceFirst, '.'), 9,'0'),4), '/', LPAD(CONCAT(Sequences.fSequenceFirst, '/'), 9,'0'), '\">s</A>'";
+                    $query0 .= ", CONCAT('<A&ws;HREF=\"tabs.php?t=calib&n=', fSequenceFirst, '\">cal</A>'";
+                    $query0 .= ", '&nbsp;<A&ws;HREF=\"tabs.php?t=signal&n=', fSequenceFirst, '\">sig</A>'";
+                    $query0 .= ", '&nbsp;<A&ws;HREF=\"tabs.php?t=star&n=', fSequenceFirst, '\">star</A>'";
                     $query0 .= ", '&nbsp;<A&ws;HREF=\"http://www.astro.uni-wuerzburg.de/datacenter/sequences/' , LEFT(LPAD(CONCAT(Sequences.fSequenceFirst, '.'), 9,'0'),4), '/sequence', LPAD(CONCAT(Sequences.fSequenceFirst , '.txt'), 12,'0') , '\">', 'f </A>' ";
-                    $query0 .= ", '&nbsp;<A&ws;HREF=\"sequence.php?fSequenceNo=', Sequences.fSequenceFirst , '&amp;fAll=On\">i</A>') ";
+                    $query0 .= ", '&nbsp;<A&ws;HREF=\"queryrbk.php?fNight=', date_format(adddate(fRunStart, interval +13 HOUR), '%Y-%m-%d') , '&amp;fDate=2\">rbk</A>') ";
                     $query0 .= " as 'Links'";
                 }
 
-                foreach ($_SESSION as $key => $element)
-                    if ($_SESSION[$key]=="On")
-                        if ($key!="fLinks" && $key!="fOff" && $key!="fOnlyOff")
+                foreach ($_GET as $key => $element)
+                    if ($_GET[$key]=="On")
+                        if ($key!="fLinks" && $key!="fOff" && $key!="fOnlyOff" && $key!="fNumStart")
                             if (!(ereg("^DSSeq[0-9]*$", $key)))
                                 if (empty($checkwhere[$key]) || $checkwhere[$key]==0)
@@ -90,19 +90,20 @@
         $query0 .= " LEFT JOIN Star USING(fSequenceFirst,fTelescopeNumber) ";
 
-        foreach ($_SESSION as $key => $element)
-            if (($_SESSION[$key]=="On" || $groups>0))// && !empty(GetJoin($fromtable,$key)))
+        foreach ($_GET as $key => $element)
+            if (($_GET[$key]=="On" || $groups>0))// && !empty(GetJoin($fromtable,$key)))
                 $query0 .= GetJoin($fromtable,$key);
 
-        if ($_SESSION["DisplaySelected"]!="yes"
-            || ($_SESSION["sequon"]==" " && $_SESSION["sequoff"]==" "))
-        {
-            if ($_SESSION["fTest"]!="On")
-            {
-                if ($_SESSION["fSourceName"]!="On")
+        if (($_SESSION["DisplaySelected"]!="yes"
+             || ($_SESSION["sequon"]=="" && $_SESSION["sequoff"]==""))
+            && (empty($_SESSION["DataSetSelection"]) || $_SESSION["DataSetAcknowledged"]=="yes"))
+        {
+            if ($_GET["fTest"]!="On")
+            {
+                if ($_GET["fSourceName"]!="On")
                     $query0 .= " LEFT JOIN Source USING(fSourceKEY) ";
                 $query0 .= " WHERE fTest='no'";
             }
 
-            if ($_SESSION["fOff"]=="Off")
+            if ($_GET["fOff"]=="Off")
             {
                 if (strpos($query0, " WHERE ")==FALSE)
@@ -114,5 +115,5 @@
             }
 
-            if ($_SESSION["fOnlyOff"]=="On")
+            if ($_GET["fOnlyOff"]=="On")
             {
                 if (strpos($query0, " WHERE ")==FALSE)
@@ -152,21 +153,21 @@
             $query0 .= StatusQuery("fFillStar", $needs, $timelimits);
 
-            if (!empty($_SESSION["fRunMin"]) && !empty($_SESSION["fRunMax"]))
-                $query0 .= "Sequences.fSequenceFirst BETWEEN " . $_SESSION["fRunMin"] . " AND " . $_SESSION["fRunMax"] . " ";
+            if (!empty($_GET["fRunMin"]) && !empty($_GET["fRunMax"]))
+                $query0 .= "Sequences.fSequenceFirst BETWEEN " . $_GET["fRunMin"] . " AND " . $_GET["fRunMax"] . " ";
             else
                 $query0 = substr($query0, 0, -4);
 
-            if ((!empty($_SESSION["fZDMin"]) || $_SESSION["fZDMin"]==0) && !empty($_SESSION["fZDMax"]))
-                $query0 .= "AND (fZenithDistanceMin >= " . $_SESSION["fZDMin"] . " AND fZenithDistanceMax <= " . $_SESSION["fZDMax"] . ") ";
-
-            if (!empty($_SESSION["fSourceN"]))
-                $query0 .= " AND fSourceName REGEXP \"^" . $_SESSION["fSourceN"] . "\" ";
-
-            if (!empty($_SESSION["fStartDate"]))
+            if ((!empty($_GET["fZDMin"]) || $_GET["fZDMin"]==0) && !empty($_GET["fZDMax"]))
+                $query0 .= "AND (fZenithDistanceMin >= " . $_GET["fZDMin"] . " AND fZenithDistanceMax <= " . $_GET["fZDMax"] . ") ";
+
+            if (!empty($_GET["fSourceN"]))
+                $query0 .= " AND fSourceName REGEXP \"^" . $_GET["fSourceN"] . "\" ";
+
+            if (!empty($_GET["fStartDate"]))
             {
                 if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA "))
                     $query0 .= " AND ";
 
-                $startdate=substr($_SESSION["fStartDate"], 0, 10);
+                $startdate=substr($_GET["fStartDate"], 0, 10);
                 if ($startdate=="0000-00-00")
                     $query0 .=" fRunStart >= '" . $startdate . " 00:00:00' ";
@@ -175,28 +176,28 @@
             }
 
-            if (!empty($_SESSION["fStopDate"]))
+            if (!empty($_GET["fStopDate"]))
             {
                 if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA "))
                     $query0 .= " AND ";
 
-                $stopdate=substr($_SESSION["fStopDate"], 0, 10);
+                $stopdate=substr($_GET["fStopDate"], 0, 10);
                 $query0 .= " fRunStart < '" . $stopdate . " 13:00:00' ";
             }
 
-            if (!empty($_SESSION["fStarStart"]))
+            if (!empty($_GET["fStarStart"]))
             {
                 if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA "))
                     $query0 .= " AND ";
 
-                $starstart=substr($_SESSION["fStarStart"], 0, 10);
+                $starstart=substr($_GET["fStarStart"], 0, 10);
                 $query0 .=" fStar >= '" . $starstart . " 00:00:00' ";
             }
 
-            if (!empty($_SESSION["fStarStop"]))
+            if (!empty($_GET["fStarStop"]))
             {
                 if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA "))
                     $query0 .= " AND ";
 
-                $starstop=substr($_SESSION["fStarStop"], 0, 10);
+                $starstop=substr($_GET["fStarStop"], 0, 10);
                 $query0 .= " fStar < '" . $starstop . " 23:59:59' ";
             }
@@ -244,30 +245,72 @@
         else
         {
-            $displsequ=str_replace("  ", " ", $_SESSION["sequon"].$_SESSION["sequoff"]);
-            $displsequ=ereg_replace("^ ", "(", $displsequ);
-            $displsequ=ereg_replace("$", ")", $displsequ);
-            $displsequ=str_replace(" ",  ",", $displsequ);
+            if (empty($_SESSION["DataSetSelection"]) || $_SESSION["DataSetAcknowledged"]=="yes")
+            {
+                $displsequ=str_replace("  ", " ", $_SESSION["sequon"].$_SESSION["sequoff"]);
+                $displsequ=ereg_replace("^ ", "(", $displsequ);
+                $displsequ=ereg_replace("$", ")", $displsequ);
+                $displsequ=str_replace(" ",  ",", $displsequ);
+            }
+            else
+            {
+                //get on sequences
+                $query1 = "SELECT fSequenceFirst FROM DataSetSequenceMapping WHERE fOnOff=1 AND fDataSetNumber=".$_SESSION["SelectedDataSet"];
+                $result1 = mysql_query($query1, $db_id);
+                while ($row = mysql_fetch_assoc($result1))
+                {
+                    $_SESSION["DSSeq".$row["fSequenceFirst"]]="ON";
+                    $onseq.=" " . $row["fSequenceFirst"];
+                }
+                mysql_free_result($result1);
+                //get off sequences
+                $query1 = "SELECT fSequenceFirst FROM DataSetSequenceMapping WHERE fOnOff=2 AND fDataSetNumber=".$_SESSION["SelectedDataSet"];
+                $result1 = mysql_query($query1, $db_id);
+                while ($row = mysql_fetch_assoc($result1))
+                {
+                    $_SESSION["DSSeq".$row["fSequenceFirst"]]="Off";
+                    $offseq.=" " . $row["fSequenceFirst"];
+                }
+                mysql_free_result($result1);
+
+                $displsequ=str_replace("  ", " ", $onseq.$offseq);
+                $displsequ=ereg_replace("^ ", "(", $displsequ);
+                $displsequ=ereg_replace("$", ")", $displsequ);
+                $displsequ=str_replace(" ",  ",", $displsequ);
+
+                if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+                {
+                    //get values of old data set from db
+                    $queryold  = "SELECT fUserKEY, fComment, fDataSetName FROM DataSets WHERE fDataSetNumber=".$_SESSION["SelectedDataSet"];
+                    $resultold = mysql_query($queryold);
+                    $rowold = mysql_fetch_assoc($resultold);
+                    $_SESSION["olduser"] = $rowold["fUserKEY"];
+                    $_SESSION["comment"] = $rowold["fComment"];
+                    $_SESSION["name"] = $rowold["fDataSetName"];
+                    mysql_free_result($resultold);
+                }
+                $_SESSION["DisplaySelected"]="yes";
+            }
 
             $query0 .= "WHERE fSequenceFirst IN " . $displsequ;
         }
 
-        if (!empty($_SESSION["fSortBy"]))
-        {
-            $val=substr($_SESSION["fSortBy"], 0, -1);
+        if (!empty($_GET["fSortBy"]))
+        {
+            $val=substr($_GET["fSortBy"], 0, -1);
             $query0 .= " ORDER BY " . GetTable($fromtable,$val) . " ";
-            if (substr($_SESSION["fSortBy"], -1)=="-")
+            if (substr($_GET["fSortBy"], -1)=="-")
                 $query0 .= "DESC";
         }
 
-        if (empty($_SESSION["fSortBy"]) && $groups==0 && $statusgroups==0)
+        if (empty($_GET["fSortBy"]) && $groups==0 && $statusgroups==0)
             $query0 .= " ORDER BY Sequences.fSequenceFirst DESC ";
 
-        if (empty($_SESSION["fNumStart"]))
+        if (empty($_GET["fNumStart"]))
             $start=0;
         else
-            $start=$_SESSION["fNumStart"];
-
-        if (empty($_SESSION["fSendTxt"]))
-            $query0 .= " LIMIT " . $start . ", " . $_SESSION["fNumResults"];
+            $start=$_GET["fNumStart"];
+
+        if (empty($_GET["fSendTxt"]))
+            $query0 .= " LIMIT " . $start . ", " . $_GET["fNumResults"];
 
             return $query0;
@@ -279,6 +322,6 @@
         printf("<form action='builddatasets.php' METHOD='GET'>\n");
         printf("<input id='sh' type='hidden' name='fShowHide' value='");
-        if (!empty($_SESSION["fShowHide"]))
-            printf("%s", $_SESSION["fShowHide"]);
+        if (!empty($_GET["fShowHide"]))
+            printf("%s", $_GET["fShowHide"]);
         else
             printf("1000000010");//display Ranges
@@ -322,5 +365,5 @@
         PrintButtons("builddatasets.php");
 
-        printf("</form>\n");
+//        printf("</form>\n");
         printf("</center>\n");
         printf("</td>\n");
@@ -330,8 +373,11 @@
     }
 
-    function InsertDataSet($values, $dataset)
-    {
-        $insquery[0]="INSERT DataSets SET fDataSetNumber=" . $dataset . ", fUserKEY=" . $_SESSION["user"];
-        $insquery[0].=", fComment='" . $_SESSION["comment"] . "', fObservationModeKEY=" . $_SESSION["obsmode"];
+    function InsertUpdateDataSet($values, $dataset)
+    {
+        if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+            $insquery[0]="UPDATE DataSets SET ";
+        else
+            $insquery[0]="INSERT DataSets SET fDataSetNumber=" . $dataset . ", fUserKEY=" . $_SESSION["user"] . ", ";
+        $insquery[0].=" fComment='" . $_SESSION["comment"] . "', fObservationModeKEY=" . $_SESSION["obsmode"];
         $insquery[0].=", fDataSetName='" . $_SESSION["name"] . "', fSourceKEY= " . $_SESSION["realsourcekey"];
         $insquery[0].=", fRunStart='" . $values["Min(fRunStart)"]["on"];
@@ -340,9 +386,28 @@
         $insquery[0].=", fZenithDistanceMax=" . $values["Max(fZenithDistanceMax)"]["on"];
         $insquery[0].=", fRunTime=" . $_SESSION["runtime"];
-        $insquery[1]="INSERT DataSetProcessStatus SET fDataSetNumber=" . $dataset . ", fDataSetInserted=Now()";
-        $i=2;
+        if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+        {
+            $insquery[0].=" WHERE fDataSetNumber=" . $_SESSION["SelectedDataSet"];
+
+            $insquery[1]="UPDATE DataSetProcessStatus SET fDataSetInserted=Now(), fDataSetFileWritten=NULL, ";
+            $insquery[1].=" fStarFilesAvail=NULL, fGanymed=NULL, fFillGanymed=NULL, fWebGanymed=NULL, ";
+            $insquery[1].=" fWebPlotDBGanymed=NULL, fStartTime=NULL, fFailedTime=NULL, fProgramId=NULL, ";
+            $insquery[1].=" fReturnCode=NULL WHERE fDataSetNumber=" . $_SESSION["SelectedDataSet"];
+
+            $insquery[2]=" DELETE FROM DataSetSequenceMapping WHERE fDataSetNumber=" . $_SESSION["SelectedDataSet"];
+            $i=3;
+        }
+        else
+        {
+            $insquery[1]="INSERT DataSetProcessStatus SET fDataSetNumber=" . $dataset . ", fDataSetInserted=Now()";
+            $i=2;
+        }
         foreach(explode(" ", trim($_SESSION["sequon"])) as $key => $sequ)
         {
-            $insquery[$i]="INSERT DataSetSequenceMapping SET fDataSetNumber=" . $dataset;
+            $insquery[$i]="INSERT DataSetSequenceMapping SET fDataSetNumber=";
+            if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+                $insquery[$i].=$_SESSION["SelectedDataSet"];
+            else
+                $insquery[$i].=$dataset;
             $insquery[$i].=", fSequenceFirst=" . $sequ . ", fOnOff=1";
             $i=$i+1;
@@ -352,5 +417,9 @@
             foreach(explode(" ", trim($_SESSION["sequoff"])) as $key => $sequ)
             {
-                $insquery[$i]="INSERT DataSetSequenceMapping SET fDataSetNumber=" . $dataset;
+                $insquery[$i]="INSERT DataSetSequenceMapping SET fDataSetNumber=";
+                if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+                    $insquery[$i].=$_SESSION["SelectedDataSet"];
+                else
+                    $insquery[$i].=$dataset;
                 $insquery[$i].=", fSequenceFirst=" . $sequ . ", fOnOff=2";
                 $i=$i+1;
@@ -363,5 +432,5 @@
             foreach($insquery as $num => $q)
             {
-                printf("Inserted Query #%s: %s<br>\n", $num, $q);
+                printf("Executed Query #%s: %s<br>\n", $num, $q);
                 $insresult=mysql_query($q);
                 if (mysql_errno()>0)
@@ -381,9 +450,12 @@
             // reset after insert
             unset($_SESSION["insert"]);
-            unset($_SESSION["name"]);
-            unset($_SESSION["comment"]);
+//            unset($_SESSION["name"]);
+//            unset($_SESSION["comment"]);
         }
         else
-            printf("<input type='button' value='Insert Data Set' onClick='self.location.href=\"%s&insert=yes\"'>&nbsp;&nbsp;&nbsp;\n", GetClearedURL());
+            if ($_SESSION["DataSetSelection"]=="UpdateDataSet")
+                printf("<input type='button' value='Update Data Set in DB' onClick='self.location.href=\"%s&insert=yes\"'>&nbsp;&nbsp;&nbsp;\n", GetClearedURL());
+            else
+                printf("<input type='button' value='Insert Data Set in DB' onClick='self.location.href=\"%s&insert=yes\"'>&nbsp;&nbsp;&nbsp;\n", GetClearedURL());
     }
 
@@ -398,5 +470,5 @@
         mysql_select_db($db);
 
-        $query0 = CreateQuery($alias, $checkwhere, $checkgroup, $checkstatusgroup, $needs);
+        $query0 = CreateQuery($alias, $checkwhere, $checkgroup, $checkstatusgroup, $needs, $db_id);
 
         $result0 = mysql_query($query0, $db_id);
@@ -409,8 +481,9 @@
                 PrintMagicTable($result0, $alias, $rightalign, $limitsmean, $limitsmin, $limitsmax, $result1, "yes");
 
-                if (!(empty($_SESSION["sequon"]) && empty($_SESSION["sequoff"])))
+                if (!(empty($_SESSION["sequon"]) && empty($_SESSION["sequoff"]))
+                   && (empty($_SESSION["olduser"]) || $_SESSION["olduser"]==$_SESSION["user"]))
                 {
                     printf("<div align='left'>\n");
-                    printf("Remark: To store your selection you have to press 'Update Data Set'<br> \n");
+                    printf("Remark: To store your selection, you have to press 'Update Selection'<br> \n");
                     printf("<br>\n");
 
@@ -618,6 +691,6 @@
                         if ($obskey!=$_SESSION["obsmode"])
                         {
-                            printf("<li style='color:%s'>%s: You have a mistake in your observation mode. %s - %s</li>\n",
-                                   $color["ERROR"], "ERROR", $obskey, $_SESSION["obsmode"]);
+                            printf("<li style='color:%s'>%s: You have a mistake in your observation mode. </li>\n",
+                                   $color["ERROR"], "ERROR");
                             $numerr=$numerr+1;
                         }
@@ -689,9 +762,10 @@
 
                         // data set name and comment: to be inserted by the user
+                        printf("Data set number: &nbsp;<input name='AnalysisNumber' type='text' size='8' maxlength='8' value='%s'> (only used for data set file) <br>\n", $_SESSION["AnalysisNumber"]);
                         printf("Data set name: &nbsp;<input name='name' type='text' size='20' maxlength='20' value='%s'><br>\n", $_SESSION["name"]);
                         printf("Comment: &nbsp;<input name='comment' type='text' size='50' maxlength='255' value='%s'><br><br>\n", $_SESSION["comment"]);
 
 
-                        //PrintUpdateDataSetButton() has to be called before InsertDataSet()
+                        //PrintUpdateDataSetButton() has to be called before InsertUpdateDataSet()
                         //   to ensure that there are no problem with insert and $_SESSION["insert"]
 
@@ -710,5 +784,5 @@
                                 printf("<br><br>\n Remark: As user MAGIC you are not allowed to insert data sets into the database. For an own account, please contact datacenter@astro.uni-wuerzburg.de <br><br>\n");
                             else
-                                InsertDataSet($values, $dataset);
+                                InsertUpdateDataSet($values, $dataset);
 
                             printf("<input type='button' value='Get Data Set File' onClick='self.location.href=\"%s&fSendTxt=2\"'>&nbsp;&nbsp;&nbsp;\n", GetClearedURL());
@@ -720,4 +794,5 @@
                         printf("<table><tr><td colspan='2'><b>More Information on Your Data Set:<b></td></tr>");
                         printf("<tr><td>Next DataSet# in DB: </td><td>%s</td></tr>", $dataset);
+                        printf("<tr><td>DataSet# for data set file: </td><td>%s</td></tr>", empty($_SESSION["AnalysisNumber"])?"1":$_SESSION["AnalysisNumber"]);
                         printf("<tr><td valign='top'>SequencesOn:</td><td> %s</td></tr>", $_SESSION["sequon"]);
                         if ($_SESSION["sequoff"]!="")
@@ -748,6 +823,13 @@
                 else
                 {
-                    printf("<input type='submit' value='Get Data Set'><br><br>\n");
-                    printf("Remark: To store your selection you have to press 'Get Data Set'<br> \n");
+                    if ($_SESSION["user"]!=$_SESSION["olduser"] && !empty($_SESSION["olduser"]))
+                        printf("Remark: You (userkey %s) are not allowed to change data set # %d (created by userkey %s).<br> \n",
+                               $_SESSION["user"], $_SESSION["SelectedDataSet"], $_SESSION["olduser"]);
+                    else
+                    {
+                        printf("<input type='submit' value='Store Selection'><br><br>\n");
+                        printf("Remark: To store your selection for the data set, you have to press 'Store Selection'<br> \n");
+                    }
+
                 }
 
@@ -800,8 +882,10 @@
         foreach ($_POST as $element => $value)
             $_SESSION[$element]=$value;
+    else
+        unset($_SESSION["SelectAllSequForDS"]);
 
     if ($debug)
         print_r($_SESSION);
-
+    /*
     if ($_SESSION["DisplaySelected"]=="yes")
     {
@@ -809,5 +893,5 @@
         $_GET["fNumStart"]=0;
     }
-
+    */
     $_SESSION["sequon"]="";
     $_SESSION["sequoff"]="";
@@ -822,6 +906,7 @@
         if ($val=="Not" && ereg("^DSSeq[0-9]*$", $key))
             unset($_SESSION[$key]);
-
-    }
+    }
+    if (empty($_SESSION["sequon"]) && empty($_SESSION["sequoff"]))
+        unset($_SESSION["DisplaySelected"]);
 
     ini_set("display_errors", "On");
@@ -868,8 +953,8 @@
     }
 
-    if (!empty($_SESSION["fSendTxt"]))
+    if (!empty($_GET["fSendTxt"]))
     {
         header("Content-Type: application/octet");
-        switch($_SESSION["fSendTxt"])
+        switch($_GET["fSendTxt"])
         {
         case 1:
@@ -892,19 +977,44 @@
         $first = empty($_GET["fRunMin"]) && empty($_GET["fRunMax"]);
         InitBuildDataSets($first);
-        if (empty($_SESSION["fPrintTable"]))
+        if (empty($_GET["fPrintTable"]))
             PrintForm($host, $user, $pw, $db, $limitsmean, $limitsmin, $limitsmax, $alias);
 
         if ($environment==0)
-            printf("No query submitted yet.<BR>");
+        {
+            printf("No query submitted yet.<br><br>\n");
+            printf("Either query above, or you have also the option to start with an already existing data set: <br>\n");
+            printf("Dataset: &nbsp;<input name='SelectedDataSet' type='text' size='8' maxlength='8' value='%s'><br><br>\n", $_SESSION["SelectedDataSet"]);
+            printf("How do you want to process this data set? <br>\n");
+            printf("<input type='radio' name='DataSetSelection' value='SelectSequences' %s>Use data set as starting point.<br>\n",
+                   $_SESSION["DataSetSelection"]=="SelectSequences"?"checked":"");
+            printf("<input type='radio' name='DataSetSelection' value='UpdateDataSet' %s>Update data set in database.<br><br>\n",
+                   $_SESSION["DataSetSelection"]=="UpdateDataSet"?"checked":"");
+            printf("<input type='submit' value='Query'><br>\n");
+            printf("</form>\n");
+        }
         else
         {
-            if (empty($_SESSION["fPrintTable"]))
-                PrintPage("1", $host, $user, $pw, $db, $alias, $rightalign, $checkwhere, $checkgroup, $checkstatusgroup, $limitsmean, $limitsmin, $limitsmax, $needs);
+            printf("</form>\n");
+            if (empty($_SESSION["DataSetSelection"]) && !empty($_SESSION["SelectedDataSet"]))
+            {
+                printf("Remark: You have inserted a data set number (%s), but not selected what you want to do with it. <br>\n",
+                       $_SESSION["SelectedDataSet"]);
+                printf("Please press 'Reset'. Then to choose a data set and what you want to do with it or simply 'Query Table' to start a new data set.<br>\n");
+            }
             else
-                PrintPage("2", $host, $user, $pw, $db, $alias, $rightalign, $checkwhere, $checkgroup, $checkstatusgroup, $limitsmean, $limitsmin, $limitsmax, $needs);
+            {
+
+                if (empty($_GET["fPrintTable"]))
+                    PrintPage("1", $host, $user, $pw, $db, $alias, $rightalign, $checkwhere, $checkgroup, $checkstatusgroup, $limitsmean, $limitsmin, $limitsmax, $needs);
+                else
+                    PrintPage("2", $host, $user, $pw, $db, $alias, $rightalign, $checkwhere, $checkgroup, $checkstatusgroup, $limitsmean, $limitsmin, $limitsmax, $needs);
+            }
         }
 
         echo (file_get_contents("index-footer.html"));
     }
+
+    if (!empty($_SESSION["DataSetSelection"]))
+        $_SESSION["DataSetAcknowledged"]="yes";
 
     ini_set("display_errors", "Off");
