Index: trunk/autoquest-htmlmonitor/src/main/js/autoquest-htmlmonitor.js
===================================================================
--- trunk/autoquest-htmlmonitor/src/main/js/autoquest-htmlmonitor.js	(revision 1244)
+++ trunk/autoquest-htmlmonitor/src/main/js/autoquest-htmlmonitor.js	(revision 1247)
@@ -92,5 +92,6 @@
     //{ "tag": "details", "actions": [  ] },
     { "tag": "dfn", "actions": [ "onclick" ] },
-    { "tag": "div", "actions": [ "onclick" ] },
+    { "tag": "div", "actions": [ "onclick",
+                                 "onscroll" ] },
     //{ "tag": "dl", "actions": [  ] },
     { "tag": "dt", "actions": [ "onclick" ] },
@@ -116,10 +117,44 @@
     { "tag": "img", "actions": [ "onabort",
                                  "onclick" ] },
-    { "tag": "input_text", "actions": [ "onchange",
+    { "tag": "input_button", "actions": [ "onclick",
+                                          "onfocus" ] },
+    { "tag": "input_checkbox", "actions": [ "onchange",
+                                            "onclick",
+                                            "onfocus" ] },
+    { "tag": "input_color", "actions": [ "onchange",
+                                         "onclick",
+                                         "onfocus",
+                                         "onselect" ] },
+    { "tag": "input_date", "actions": [ "onchange",
+                                        "onclick",
                                         "onfocus",
                                         "onselect" ] },
+    { "tag": "input_datetime", "actions": [ "onchange",
+                                            "onclick",
+                                            "onfocus",
+                                            "onselect" ] },
+    { "tag": "input_datetime-local", "actions": [ "onchange",
+                                                  "onclick",
+                                                  "onfocus",
+                                                  "onselect" ] },
+    { "tag": "input_email", "actions": [ "onchange",
+                                         "onclick",
+                                         "onfocus",
+                                         "onselect" ] },
+    { "tag": "input_file", "actions": [ "onchange",
+                                        "onclick",
+                                        "onfocus",
+                                        "onselect" ] },
+    { "tag": "input_image", "actions": [ "onclick",
+                                         "onfocus" ] },
+    { "tag": "input_month", "actions": [ "onchange",
+                                         "onclick",
+                                         "onfocus",
+                                         "onselect" ] },
+    { "tag": "input_number", "actions": [ "onchange",
+                                          "onclick",
+                                          "onfocus",
+                                          "onselect" ] },
     { "tag": "input_password", "actions": [ "onchange",
-                                            "onfocus" ] },
-    { "tag": "input_checkbox", "actions": [ "onchange",
                                             "onclick",
                                             "onfocus" ] },
@@ -127,15 +162,38 @@
                                          "onclick",
                                          "onfocus" ] },
+    { "tag": "input_range", "actions": [ "onchange",
+                                         "onclick",
+                                         "onfocus",
+                                         "onselect" ] },
+    { "tag": "input_reset", "actions": [ "onclick",
+                                         "onfocus" ] },
+    { "tag": "input_search", "actions": [ "onchange",
+                                          "onclick",
+                                          "onfocus",
+                                          "onselect" ] },
     { "tag": "input_submit", "actions": [ "onclick",
                                           "onfocus" ] },
-    { "tag": "input_reset", "actions": [ "onclick",
-                                         "onfocus" ] },
-    { "tag": "input_file", "actions": [ "onclick",
-                                        "onfocus" ] },
-    { "tag": "input_image", "actions": [ "onclick",
-                                         "onfocus" ] },
-    { "tag": "input_button", "actions": [ "onclick",
-                                          "onfocus" ] },
+    { "tag": "input_tel", "actions": [ "onchange",
+                                       "onclick",
+                                       "onfocus",
+                                       "onselect" ] },
+    { "tag": "input_text", "actions": [ "onchange",
+                                        "onclick",
+                                        "onfocus",
+                                        "onselect" ] },
+    { "tag": "input_time", "actions": [ "onchange",
+                                        "onclick",
+                                        "onfocus",
+                                        "onselect" ] },
+    { "tag": "input_url", "actions": [ "onchange",
+                                       "onclick",
+                                       "onfocus",
+                                       "onselect" ] },
+    { "tag": "input_week", "actions": [ "onchange",
+                                        "onclick",
+                                        "onfocus",
+                                        "onselect" ] },
     { "tag": "input", "actions": [ "onchange",
+                                   "onclick",
                                    "onfocus" ] },
     { "tag": "ins", "actions": [ "onclick" ] },
@@ -437,4 +495,9 @@
 function registerEventHandler(node, nodePath, action) {
     var parameters = { action : action, path : nodePath};
+    
+    if ((action === "onscroll") && (node === document.body)) {
+        node = window;
+    }
+    
     if (jQuery(node).on) {
         jQuery(node).on(action.substring(2), parameters, handleJQueryEvent);
@@ -535,13 +598,14 @@
     eventType = eventName.toLowerCase();
 
+    // check, if the preceeding event is more concrete, i.e. the new event to be handled is only
+    // a propagation through the DOM and needs, therefore, not be handled
     if (autoquestRecordedEvents.length > 0) {
         eventObj = autoquestRecordedEvents[autoquestRecordedEvents.length - 1];
 
-        // check if an event showed up several times either for the same or for a parent GUI element
         if ((eventObj.type === eventName) && (eventObj.nodePath.indexOf(nodePath) === 0)) {
             // the event is of the same type.
             if (eventObj.nodePath.length > nodePath.length) {
-                // the same event showed up for the parent GUI element. This must not be handled.
-                // So ignore it
+                // the new event is the same event as the previous one, but fired for the parent
+                // GUI element of the previous event. This must not be handled. So ignore it
                 log("discarding event " + eventName + " on " + node +
                     " as it is already handled by a child");
@@ -561,5 +625,5 @@
     
     if (!eventObj) {
-        // create a new event and add it to the list
+        // we can not reuse the previous event. So create a new event and add it to the list
         eventObj = new Event(eventType, nodePath);
         log("storing event " + eventName);
@@ -574,4 +638,5 @@
     tagName = getTagName(node);
     
+    // ensure to not monitor details for GUI elements marked as unmonitored
     if (node.getAttribute && node.getAttribute("class")) {
         unmonitored = node.getAttribute("class").indexOf("autoquest-unmonitored") >= 0;
@@ -582,4 +647,6 @@
     
     if (!unmonitored && ("input_password" !== tagName)) {
+        // add further parameters for GUI elements which are monitored and which are no password
+        // fields
         if ((eventType === "onkeypress") ||
             (eventType === "onkeydown") ||
@@ -605,4 +672,5 @@
     }
 
+    // finally send the recorded data
     if (autoquestRecordedEvents.length >= autoquestPackageSize) {
         log("initiating sending events");
