minimize the all-json-idls.js file. Closes #30

- added an option to collect-all-json-idl.py to allow creating
a min-ized version of the JSON

- add additional call to collect-all-json-idl.py in the ant build
to build the min-ized version

- switch client and target to load the min-ized version

The old IDL was 188KB.  The new IDL is 20KB.
diff --git a/weinre.build/build.xml b/weinre.build/build.xml
index 357df8e..621925e 100644
--- a/weinre.build/build.xml
+++ b/weinre.build/build.xml
@@ -305,6 +305,13 @@
             <arg file="${CACHED}/json-idl"/>
         </exec>
 
+        <exec executable="python" failonerror="true" failifexecutionfails="true">
+            <arg file="scripts/collect-all-json-idl.py"/>
+            <arg value="-min"/>
+            <arg file="${CACHED}/json-idl/all-json-idls-min.js"/>
+            <arg file="${CACHED}/json-idl"/>
+        </exec>
+
     </target>
 
     <!-- ============================================================
diff --git a/weinre.build/scripts/build-client-html.py b/weinre.build/scripts/build-client-html.py
index a2b83a7..5486c51 100644
--- a/weinre.build/scripts/build-client-html.py
+++ b/weinre.build/scripts/build-client-html.py
@@ -66,7 +66,7 @@
         elif pattern_head_end.match(line):
             foundEnd = True
             newLines.append("<!-- ========== weinre additions: starting ========== -->\n")
-            newLines.append('<script type="text/javascript" src="../interfaces/all-json-idls.js"></script>\n')
+            newLines.append('<script type="text/javascript" src="../interfaces/all-json-idls-min.js"></script>\n')
             newLines.append('<script type="text/javascript">require("weinre/client/Client").main()</script>\n')
             newLines.append("<!-- ========== weinre additions: done ========== -->\n")
             newLines.append(line)
diff --git a/weinre.build/scripts/collect-all-json-idl.py b/weinre.build/scripts/collect-all-json-idl.py
index 3ee17bc..dc9467b 100644
--- a/weinre.build/scripts/collect-all-json-idl.py
+++ b/weinre.build/scripts/collect-all-json-idl.py
@@ -18,8 +18,15 @@
     if len(sys.argv) < 3:
         error("expecting parameters outputFile inputDir")
         
-    oFileName = sys.argv[1]
-    iDirName  = sys.argv[2]
+    min = False
+    if sys.argv[1] == "-min":
+        min = True
+        oFileName = sys.argv[2]
+        iDirName  = sys.argv[3]
+        
+    else:
+        oFileName = sys.argv[1]
+        iDirName  = sys.argv[2]
     
     entries  = os.listdir(iDirName)
     if 0 == len(entries): error("no files found in '" + iDirName + "'")
@@ -38,7 +45,13 @@
         
         result.append(json.loads(contents))
         
-    jsonString = json.dumps(result, indent=4)
+    if min:
+        result = minimize(result)
+        jsonString = json.dumps(result)
+    
+    else:
+        jsonString = json.dumps(result, indent=4)
+        
     jsString = "require('weinre/common/Weinre').addIDLs(%s)" % jsonString
 
     oFile = open(oFileName, "w")
@@ -48,6 +61,29 @@
     log("generated collected json idls in: " + oFileName)
 
 #--------------------------------------------------------------------
+def minimize(idl):
+    for module in idl:
+        for interface in module["interfaces"]:
+            if "extendedAttributes" in interface:
+                del interface["extendedAttributes"]
+            
+            if "methods" in interface:
+                for method in interface["methods"]:
+                    if "returns" in method:
+                        del method["returns"]
+                    if "callbackParameters" in method:
+                        del method["callbackParameters"]
+                    if "extendedAttributes" in method:
+                        del method["extendedAttributes"]
+                        
+                    if "parameters" in method:
+                        for parameter in method["parameters"]:
+                            if "type" in parameter:
+                                del parameter["type"]
+        
+    return idl
+
+#--------------------------------------------------------------------
 def log(message):
     message = "%s: %s" % (PROGRAM_NAME, message)
     print >>sys.stderr, message
diff --git a/weinre.web/demo/weinre-demo-pieces.html b/weinre.web/demo/weinre-demo-pieces.html
index e1ee14f..e88f0c5 100644
--- a/weinre.web/demo/weinre-demo-pieces.html
+++ b/weinre.web/demo/weinre-demo-pieces.html
@@ -41,7 +41,7 @@
 <script src="/weinre/target/ElementHighlighter.transportd.js"></script>
 <script src="/weinre/target/InjectedScript.js"></script>
 <script src="/weinre/target/Timeline.transportd.js"></script>
-<script src="/interfaces/all-json-idls.js"></script>
+<script src="/interfaces/all-json-idls-min.js"></script>
 
 <script type="text/javascript">
     require("weinre/common/Weinre").showNotImplemented()