Index: trunk/MagicSoft/Mars/datacenter/db/menu.js
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/menu.js	(revision 8463)
+++ trunk/MagicSoft/Mars/datacenter/db/menu.js	(revision 8464)
@@ -85,16 +85,30 @@
     {
         if (primaries[i]==id2)
-            continue;
-        var el2 = document.getElementById(primaries[i]);
-        el2.style.display="none";
-        var el3 = document.getElementById(primaries[i]+"2");
-        if (el3.style.display=='inline')
-            var add=id2;
-        el3.style.display="none";
+        {
+            var el2 = document.getElementById(primaries[i]);
+            el2.style.display="inline";
+            var el4 = document.getElementById(primaries[i]+"3");
+            el4.style.display="inline";
+            var el6 = document.getElementById(primaries[i]+"4");
+            el6.style.display="inline";
+        }
+        else
+        {
+            var el2 = document.getElementById(primaries[i]);
+            el2.style.display="none";
+            var el3 = document.getElementById(primaries[i]+"2");
+            if (el3.style.display=='inline')
+                var add=id2;
+            el3.style.display="none";
+            var el4 = document.getElementById(primaries[i]+"3");
+            el4.style.display="none";
+            var el5 = document.getElementById(primaries[i]+"4");
+            el5.style.display="none";
+        }
     }
     if (add)
     {
-        var el4 = document.getElementById(id2+"2");
-        el4.style.display="inline";
+        var el5 = document.getElementById(id2+"2");
+        el5.style.display="inline";
     }
 }
@@ -120,4 +134,7 @@
             el2.style.display="inline";
         }
+
+    var el3 = document.getElementById("Range2");
+    el3.style.display="inline";
 }
 
@@ -129,4 +146,6 @@
         el2.style.display="none";
     }
+    var el3 = document.getElementById("Range2");
+    el3.style.display="none";
 }
 
Index: trunk/MagicSoft/Mars/datacenter/db/plotdb.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/plotdb.php	(revision 8463)
+++ trunk/MagicSoft/Mars/datacenter/db/plotdb.php	(revision 8464)
@@ -1,12 +1,17 @@
 <?php
 {
-    function PrintDiv($column, $list, $num)
+    function PrintDiv($host, $user, $pw, $db, $column, $tables, $num)
     {
-        if (($_GET["prim"]==$column && empty($num)) || ($_GET["prim"]==$column && $_GET["plot"]=="val" && $num==2))
+        $list=GetList($host, $user, $pw, $db, $column, $tables);
+
+        if (($_GET["prim"]==$column && empty($num))
+            || ($_GET["prim"]==$column && $num==3)
+            || ($_GET["prim"]==$column && $num==4)
+            || ($_GET["prim"]==$column && $_GET["plot"]=="val" && $num==2))
             printf("<div id='%s%s' style='display:inline'>\n", $column, $num);
         else
             printf("<div id='%s%s' style='display:none'>\n", $column, $num);
 
-        if (!empty($num))
+        if ($num==2)
             $vs="vs";
 
@@ -18,13 +23,5 @@
                 printf("<option value='%s'>%s %s</option>\n", $column2, $vs, $column2);
 
-        printf("</select>\n");
-
-        if (empty($_GET[$_GET[$column."Col".$num]."Start".$num]))
-            $_GET[$_GET[$column."Col".$num]."Start".$num]=0;
-        if (empty($_GET[$_GET[$column."Col".$num]."Stop".$num]))
-            $_GET[$_GET[$column."Col".$num]."Stop".$num]=0;
-
-        printf(" from&nbsp;<input name='%sStart%s' type='text' size='6' maxlength='6' value='%s'>", $_GET[$column."Col".$num], $num, $_GET[$_GET[$column."Col".$num]."Start".$num]);
-        printf(" to&nbsp;<input name='%sStop%s' type='text' size='6' maxlength='6' value='%s'><br>\n", $_GET[$column."Col".$num], $num, $_GET[$_GET[$column."Col".$num]."Stop".$num]);
+        printf("</select>\n<br>\n");
         printf("</div>\n");
     }
@@ -39,35 +36,49 @@
     //init
     if (empty($_GET["plot"]))
-        $_GET["plot"]=0;
+        $_GET["plot"]="";
     if (empty($_GET["primstart"]))
-        $_GET["primstart"]=0;
+        $_GET["primstart"]="";
     if (empty($_GET["primstop"]))
-        $_GET["primstop"]=0;
+        $_GET["primstop"]="";
     if (empty($_GET["prim"]))
-        $_GET["prim"]=0;
+        $_GET["prim"]="";
     if (empty($_GET["fSequenceFirstCol"]))
-        $_GET["fSequenceFirstCol"]=0;
+        $_GET["fSequenceFirstCol"]="";
     if (empty($_GET["fSequenceFirstCol2"]))
-        $_GET["fSequenceFirstCol2"]=0;
+        $_GET["fSequenceFirstCol2"]="";
+    if (empty($_GET["fSequenceFirstCol3"]))
+        $_GET["fSequenceFirstCol3"]="";
     if (empty($_GET["fRunNumberCol"]))
-        $_GET["fRunNumberCol"]=0;
+        $_GET["fRunNumberCol"]="";
     if (empty($_GET["fRunNumberCol2"]))
-        $_GET["fRunNumberCol2"]=0;
+        $_GET["fRunNumberCol2"]="";
+    if (empty($_GET["fRunNumberCol3"]))
+        $_GET["fRunNumberCol3"]="";
     if (empty($_GET["fDataSetNumberCol"]))
-        $_GET["fDataSetNumberCol"]=0;
+        $_GET["fDataSetNumberCol"]="";
     if (empty($_GET["fDataSetNumberCol2"]))
-        $_GET["fDataSetNumberCol2"]=0;
-    if (empty($_GET["0Start"]))
-        $_GET["0Start"]=0;
-    if (empty($_GET["0Stop"]))
-        $_GET["0Stop"]=0;
-    if (empty($_GET["0Start2"]))
-        $_GET["0Start2"]=0;
-    if (empty($_GET["0Stop2"]))
-        $_GET["0Stop2"]=0;
+        $_GET["fDataSetNumberCol2"]="";
+    if (empty($_GET["fDataSetNumberCol3"]))
+        $_GET["fDataSetNumberCol3"]="";
+    if (empty($_GET["Start"]))
+        $_GET["Start"]="";
+    if (empty($_GET["Stop"]))
+        $_GET["Stop"]="";
+    if (empty($_GET["Start2"]))
+        $_GET["Start2"]="";
+    if (empty($_GET["Stop2"]))
+        $_GET["Stop2"]="";
+    if (empty($_GET["Start3"]))
+        $_GET["Start3"]="";
+    if (empty($_GET["Stop3"]))
+        $_GET["Stop3"]="";
+    if (empty($_GET["Start4"]))
+        $_GET["Start4"]="";
+    if (empty($_GET["Stop4"]))
+        $_GET["Stop4"]="";
     if (empty($_GET["Set"]))
-        $_GET["Set"]=0;
+        $_GET["Set"]="";
     if (empty($_GET["Set2"]))
-        $_GET["Set2"]=0;
+        $_GET["Set2"]="";
 
     printf("<center>\n<table cellpadding='0'>\n");
@@ -78,4 +89,6 @@
     printf("&nbsp;<input type='radio' name='plot' value='val' onclick='showpulldown2()' %s> vs value <br><br>", $_GET["plot"]=="val" ? "checked" : "");
 
+    printf("<table>\n");
+    printf("<tr><td>\n");
     printf("<select name='prim' size='1' class='Width'>\n");
     foreach($prims as $primary => $column)
@@ -85,16 +98,49 @@
             printf("<option onclick=\"showpulldown('%s')\" value='%s'>%s</option>\n", $column, $column, $primary);
     printf("</select>\n");
+    printf(" </td><td valign='top'>\n ");
     printf(" from&nbsp;<input name='primstart' type='text' size='6' maxlength='6' value='%s'>", $_GET["primstart"]);
-    printf(" to&nbsp;<input name='primstop' type='text' size='6' maxlength='6' value='%s'><br>\n", $_GET["primstop"]);
+    printf(" to&nbsp;<input name='primstop' type='text' size='6' maxlength='6' value='%s'>", $_GET["primstop"]);
+    printf("</td>\n</tr>\n");
 
+    printf("<tr><td>\n");
     foreach($prims as $primary => $column)
-    {
-        $list=GetList($host, $user, $pw, $db, $column, $tables);
-        PrintDiv($column, $list, "");
-        PrintDiv($column, $list, "2");
-    }
+        PrintDiv($host, $user, $pw, $db, $column, $tables, "");
+    printf(" </td><td valign='top'>\n <div id='Range' style='display:inline'>\n ");
+    printf(" from&nbsp;<input name='Start' type='text' size='6' maxlength='6' value='%s'>", $_GET["Start"]);
+    printf(" to&nbsp;<input name='Stop' type='text' size='6' maxlength='6' value='%s'>\n", $_GET["Stop"]);
+    printf("</div></td>\n</tr>\n");
+
+    printf("<tr><td>\n");
+    foreach($prims as $primary => $column)
+        PrintDiv($host, $user, $pw, $db, $column, $tables, "2");
+    if ($_GET["plot"]=="val")
+        printf(" </td><td valign='top'>\n <div id='Range2' style='display:inline'>\n ");
+    else
+        printf(" </td><td valign='top'>\n <div id='Range2' style='display:none'>\n ");
+    printf(" from&nbsp;<input name='Start2' type='text' size='6' maxlength='6' value='%s'>", $_GET["Start2"]);
+    printf(" to&nbsp;<input name='Stop2' type='text' size='6' maxlength='6' value='%s'>\n", $_GET["Stop2"]);
+    printf("</div></td>\n</tr>\n");
+
+    printf("<tr>\n<td colspan='2'>\nLimits</td>\n</tr>\n<tr>\n<td>\n");
+    foreach($prims as $primary => $column)
+        PrintDiv($host, $user, $pw, $db, $column, $tables, "3");
+    printf(" </td><td valign='top'>\n <div id='Range3' style='display:inline'>\n ");
+    printf(" from&nbsp;<input name='Start3' type='text' size='6' maxlength='6' value='%s'>", $_GET["Start3"]);
+    printf(" to&nbsp;<input name='Stop3' type='text' size='6' maxlength='6' value='%s'>\n", $_GET["Stop3"]);
+    printf("</div></td>\n</tr>\n");
+
+    printf("<tr>\n<td>\n");
+    foreach($prims as $primary => $column)
+        PrintDiv($host, $user, $pw, $db, $column, $tables, "4");
+    printf(" </td><td valign='top'>\n <div id='Range4' style='display:inline'>\n ");
+    printf(" from&nbsp;<input name='Start4' type='text' size='6' maxlength='6' value='%s'>", $_GET["Start4"]);
+    printf(" to&nbsp;<input name='Stop4' type='text' size='6' maxlength='6' value='%s'>\n", $_GET["Stop4"]);
+    printf("</div></td>\n</tr>\n");
+
+    printf("</table>\n");
 
     printf("<br>Set1: <input name='Set' type='text' size='20' maxlength='100' value='%s'>\n", $_GET["Set"]);
     printf("<br>Set2: <input name='Set2' type='text' size='20' maxlength='100' value='%s'>\n", $_GET["Set2"]);
+
     printf("<br><br><input class='Width' type='submit' value='Query Plot'><br>\n");
     printf("<input class='Width' type='button' value='Reset' onClick='self.location.href=\"plotdb.php\"'><br>\n");
Index: trunk/MagicSoft/Mars/datacenter/db/plotinclude.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/plotinclude.php	(revision 8463)
+++ trunk/MagicSoft/Mars/datacenter/db/plotinclude.php	(revision 8464)
@@ -41,4 +41,12 @@
 }
 
+function CheckQuery($query)
+{
+    if (strpos($query, " WHERE ")==FALSE)
+        return " WHERE ";
+    else
+        return " AND ";
+}
+
 function GetQuery($tables, $joins, $set)
 {
@@ -58,10 +66,10 @@
         $_GET["primstop"]="";
     $primstop=$_GET["primstop"];
-    if (empty($_GET[$column."Start"]))
-        $_GET[$column."Start"]="";
-    $start1=$_GET[$column."Start"];
-    if (empty($_GET[$column."Stop"]))
-        $_GET[$column."Stop"]="";
-    $stop1=$_GET[$column."Stop"];
+    if (empty($_GET["Start"]))
+        $_GET["Start"]="";
+    $start1=$_GET["Start"];
+    if (empty($_GET["Stop"]))
+        $_GET["Stop"]="";
+    $stop1=$_GET["Stop"];
 
     $query="SELECT " . $table . "." . $primary . ", ";
@@ -76,10 +84,10 @@
             $_GET[$primary."Col2"]="";
         $column2=$_GET[$primary."Col2"];
-        if (empty($_GET[$column2."Start2"]))
-            $_GET[$column2."Start2"]="";
-        $start2=$_GET[$column2."Start2"];
-        if (empty($_GET[$column2."Stop2"]))
-            $_GET[$column2."Stop2"]="";
-        $stop2=$_GET[$column2."Stop2"];
+        if (empty($_GET["Start2"]))
+            $_GET["Start2"]="";
+        $start2=$_GET["Start2"];
+        if (empty($_GET["Stop2"]))
+            $_GET["Stop2"]="";
+        $stop2=$_GET["Stop2"];
 
         if ($column2==$primary)
@@ -90,31 +98,60 @@
     $query.=" FROM " . $table;
     $query.=$joins[$primary];
-    if (!empty($primstart) && !empty($primstop))
-        $query.=" WHERE " . $table . "." . $primary . " BETWEEN " . $primstart . " AND " . $primstop;
 
-    if (!empty($start1) && !empty($stop1))
+    if (!empty($primstart))
+        $query.= " WHERE " . $table . "." . $primary . " > " . $primstart;
+
+    if (!empty($primstop))
+        $query.= CheckQuery($query) . $table . "." . $primary . " < " . $primstop;
+
+    if (!empty($start1))
+        $query.= CheckQuery($query) . GetTable($table, $column) . " > " . $start1;
+
+    if (!empty($stop1))
+        $query.= CheckQuery($query) . GetTable($table, $column) . " < " . $stop1;
+
+    if ($_GET["plot"]=="val")
     {
-        if (strpos($query, " WHERE ")==FALSE)
-            $query.=" WHERE " . $column . " BETWEEN " . $start1 . " AND " . $stop1;
-        else
-            $query.=" AND " . $column . " BETWEEN " . $start1 . " AND " . $stop1;
-    }
+        if (!empty($start2))
+            $query.= CheckQuery($query) . GetTable($table, $column2) . " > " . $start2;
 
-    if ($_GET["plot"]=="val" && !empty($start2) && !empty($stop2))
-    {
-        if (strpos($query, " WHERE ")==FALSE)
-            $query.=" WHERE " . $column2 . " BETWEEN " . $start2 . " AND " . $stop2;
-        else
-            $query.=" AND " . $column2 . " BETWEEN " . $start2 . " AND " . $stop2;
+        if (!empty($stop2))
+            $query.= CheckQuery($query) . GetTable($table, $column2) . " < " . $stop2;
     }
 
     if (!empty($set) && !empty($_GET[$set]))
-    {
-        if (strpos($query, " WHERE ")==FALSE)
-            $query .= " WHERE ";
-        else
-            $query.=" AND ";
-        $query.= $table . "." . $primary . " IN (" . str_replace(" ", ",", $_GET[$set]) . ") ";
-    }
+        $query.= CheckQuery($query) . $table . "." . $primary . " IN (" . str_replace(" ", ",", $_GET[$set]) . ") ";
+
+    if (empty($_GET[$primary."Col3"]))
+        $_GET[$primary."Col3"]="";
+    $column3=$_GET[$primary."Col3"];
+    if (empty($_GET["Start3"]))
+        $_GET["Start3"]="";
+    $start3=$_GET["Start3"];
+    if (empty($_GET["Stop3"]))
+        $_GET["Stop3"]="";
+    $stop3=$_GET["Stop3"];
+
+    if (!empty($start3))
+        $query.= CheckQuery($query) . GetTable($table, $column3) . " > " . $start3;
+
+    if (!empty($stop3))
+        $query.= CheckQuery($query) . GetTable($table, $column3) . " < " . $stop3;
+
+    if (empty($_GET[$primary."Col4"]))
+        $_GET[$primary."Col4"]="";
+    $column4=$_GET[$primary."Col4"];
+    if (empty($_GET["Start4"]))
+        $_GET["Start4"]="";
+    $start4=$_GET["Start4"];
+    if (empty($_GET["Stop4"]))
+        $_GET["Stop4"]="";
+    $stop4=$_GET["Stop4"];
+
+    if (!empty($start4))
+        $query.= CheckQuery($query) . GetTable($table, $column4) . " > " . $start4;
+
+    if (!empty($stop4))
+        $query.= CheckQuery($query) . GetTable($table, $column4) . " < " . $stop4;
 
     return $query;
