chuwanghui %!s(int64=8) %!d(string=hai) anos
achega
ac521e9adf
Modificáronse 100 ficheiros con 10671 adicións e 0 borrados
  1. 14 0
      CD.htm
  2. 35 0
      Properties/AssemblyInfo.cs
  3. 12 0
      RS.htm
  4. 131 0
      UJ.css
  5. 103 0
      UJson.htm
  6. 89 0
      U_LR_I.htm
  7. 947 0
      UseStudio.CDB.csproj
  8. 28 0
      UseStudio.CDB.csproj.user
  9. 10 0
      UseStudio.CDB.csproj.vspscc
  10. 30 0
      Web.Debug.config
  11. 31 0
      Web.Release.config
  12. 13 0
      Web.config
  13. BIN=BIN
      bin/US.Develop.dll
  14. BIN=BIN
      bin/US.Develop.pdb
  15. 27 0
      css/UCD.css
  16. 65 0
      css/UCD_Center.css
  17. 40 0
      css/UCD_Left.css
  18. 6 0
      css/UCD_Out.css
  19. 97 0
      css/UCD_Right.css
  20. 34 0
      css/UCD_Run.css
  21. 133 0
      css/UCD_SL.css
  22. 57 0
      css/UCD_TOP.css
  23. 131 0
      css/UJ.css
  24. 57 0
      css/U_Reg.css
  25. 12 0
      domain-policy.htm
  26. 5 0
      help.txt
  27. BIN=BIN
      images/007.png
  28. BIN=BIN
      images/base.gif
  29. BIN=BIN
      images/bg.gif
  30. BIN=BIN
      images/cd.gif
  31. BIN=BIN
      images/eis_1.gif
  32. BIN=BIN
      images/eis_2.gif
  33. BIN=BIN
      images/eis_bg.gif
  34. BIN=BIN
      images/empty.gif
  35. BIN=BIN
      images/example_delete.jpg
  36. BIN=BIN
      images/example_xg.jpg
  37. BIN=BIN
      images/folder.gif
  38. BIN=BIN
      images/folder.png
  39. BIN=BIN
      images/folderopen.gif
  40. BIN=BIN
      images/im/div.png
  41. BIN=BIN
      images/im/image.png
  42. BIN=BIN
      images/im/input.png
  43. BIN=BIN
      images/im/nav-list-bg.png
  44. BIN=BIN
      images/im/table.png
  45. BIN=BIN
      images/join.gif
  46. BIN=BIN
      images/joinbottom.gif
  47. BIN=BIN
      images/left_sidebar_bottom.png
  48. BIN=BIN
      images/left_sidebar_middle.png
  49. BIN=BIN
      images/left_sidebar_top.png
  50. BIN=BIN
      images/line.gif
  51. BIN=BIN
      images/logo - 副本.jpg
  52. BIN=BIN
      images/logo.png
  53. BIN=BIN
      images/menu_divider.png
  54. BIN=BIN
      images/minus.gif
  55. BIN=BIN
      images/minusbottom.gif
  56. BIN=BIN
      images/navi_sep.gif
  57. BIN=BIN
      images/navigation.png
  58. BIN=BIN
      images/page.gif
  59. BIN=BIN
      images/plus.gif
  60. BIN=BIN
      images/plusbottom.gif
  61. BIN=BIN
      images/sy.jpg
  62. BIN=BIN
      images/v1_bg.gif
  63. BIN=BIN
      images/v1_bg2.jpg
  64. BIN=BIN
      img/UCD_RT.png
  65. BIN=BIN
      img/icon.png
  66. 417 0
      index.html
  67. 394 0
      index1.htm
  68. 169 0
      js/U.CD.CError.js
  69. 412 0
      js/U.CD.CL.js
  70. 446 0
      js/U.CD.Code.js
  71. 7 0
      js/U.CD.FileType.js
  72. 94 0
      js/U.CD.Layout.js
  73. 126 0
      js/U.CD.Left.js
  74. 129 0
      js/U.CD.Other.js
  75. 174 0
      js/U.CD.OutApp.js
  76. 574 0
      js/U.CD.Right.js
  77. 601 0
      js/U.CD.Run.js
  78. 511 0
      js/U.CD.SL.js
  79. 122 0
      js/U.CD.Tips.js
  80. 40 0
      js/U.CD.Top.js
  81. 321 0
      js/U.CD.U.js
  82. 133 0
      js/U.CD.Url.js
  83. 161 0
      js/U.CD.Wetty.js
  84. 120 0
      js/U.CD.js
  85. 5 0
      node_modules/mongodb/.travis.yml
  86. 23 0
      node_modules/mongodb/CONTRIBUTING.md
  87. 28 0
      node_modules/mongodb/Makefile
  88. 442 0
      node_modules/mongodb/Readme.md
  89. 1 0
      node_modules/mongodb/index.js
  90. 40 0
      node_modules/mongodb/install.js
  91. 339 0
      node_modules/mongodb/lib/mongodb/admin.js
  92. 1762 0
      node_modules/mongodb/lib/mongodb/collection.js
  93. 29 0
      node_modules/mongodb/lib/mongodb/commands/base_command.js
  94. 241 0
      node_modules/mongodb/lib/mongodb/commands/db_command.js
  95. 114 0
      node_modules/mongodb/lib/mongodb/commands/delete_command.js
  96. 83 0
      node_modules/mongodb/lib/mongodb/commands/get_more_command.js
  97. 147 0
      node_modules/mongodb/lib/mongodb/commands/insert_command.js
  98. 98 0
      node_modules/mongodb/lib/mongodb/commands/kill_cursor_command.js
  99. 261 0
      node_modules/mongodb/lib/mongodb/commands/query_command.js
  100. 0 0
      node_modules/mongodb/lib/mongodb/commands/update_command.js

+ 14 - 0
CD.htm

@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" />
+    <title></title>
+    <script type="text/javascript">        document.domain = "1473.cn";</script>
+    <script type="text/javascript" charset="utf-8" src="http://www.1473.cn/uform.js"></script>
+    <script type="text/javascript">        var $$ = top.$$;</script>
+</head>
+<body>
+</body>
+</html>

+ 35 - 0
Properties/AssemblyInfo.cs

@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下特性集 
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("US.Develop")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("US.Develop")]
+[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型 
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型, 
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("05e4f103-8239-4e04-9c5a-243b56384055")]
+
+// 程序集的版本信息由下列四个值组成:
+//
+//      主版本
+//      次版本 
+//      内部版本号
+//      修订号
+//
+// 您可以指定所有这些值,也可以使用“修订号”和“内部版本号”的默认值, 
+// 方法是按如下所示使用“*”:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 12 - 0
RS.htm

@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html  xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <link href="http://c.1473.cn/UJ.css" rel="stylesheet" type="text/css" />
+    <script src="http://c.1473.cn/UJ.js" type="text/javascript"></script>
+    <!--css代码,js代码写在下面-->
+</head>
+<body>
+    <!-- html元素写在下面 -->
+</body>
+</html>

+ 131 - 0
UJ.css

@@ -0,0 +1,131 @@
+/*html,body{ width:100%; height:100%; margin:0; padding:0; font-family:Consolas; font-size:14px;}*/
+
+/*所有生成控件的样式*/
+
+
+/*由于需要源代码显示,所以最好不要有样式,全部内置到代码中。。。。。大家要学习新的方法。*/
+
+
+
+/*全部绝对定位,以便于在界面上定位*/
+/*弹窗样式*/
+.Radius5{-moz-border-radius: 5px;-webkit-border-radius:5px;border-radius:5px;}
+.UDL						{background-image:url(http://www.1473.cn/img/dialogue-1.png);}
+.U_UI_dialogue			    {width:350px;position:absolute;top:200px;left:100px; -moz-box-shadow: 0px 1px 5px #8e8e8e; -webkit-box-shadow: 0px 1px 5px #8e8e8e;box-shadow: 0px 1px 5px #8e8e8e;background-color:white;border:1px solid #e4e4e4;}
+.U_UI_dltop				    {width:100%;height:33px; }
+.U_UI_dldrag				{width:80%;height:100%;float:left;font-size:16px;line-height:35px;font-family:"微软雅黑";color:#5e93d7; text-indent:10px;}
+.U_UI_dlclose				{width:25px;height:25px;float:right;cursor:pointer; margin-right:10px;}
+.U_UI_dlcontent			    {width:100%;float:left;}
+.U_UI_dltext				{width:90%;height:80%;margin-left:5%;}
+.U_UI_dlbutton			    {width:160px;height:30px; float:right; margin:0 8px 8px 0;}
+.U_UI_dlyes				    {width:50px;height:30px; text-align:center;float:right;color:White;font-family:微软雅黑;line-height:30px; cursor:pointer; background-color:#3398ff; margin-right:15px;  }	
+.U_UI_dlno				    {width:60px;height:32px;background-position:-98px -218px;float:left;margin-left:5px;}
+.U_UI_dlno:hover			{background-position:-34px -94px; cursor:pointer;}
+.U_UI_dlnoSR                { width:250px; height:43px; float:left; margin:0px; background-position:-27px -15px; margin:10px 0 0 47px; }
+
+/*命令窗口关闭按钮样式*/
+.UDK_UP_TC       { width:30px; height:28px; float:right; line-height:20px; margin:0 15px 0 5px; background-position:-170px -220px;}
+.UDK_UP_TC:hover { background-position:-139px -220px; cursor:pointer;}
+
+
+
+
+/*-----------------------------------------------------------------------有思图片区域------------------------------------------------------------*/
+.U_ImgPic{background-image:url(http://www.1473.cn/img/U_Img.png);}/*图片樣式*/
+/*整体样式*/
+.U_Img{position:absolute; z-index:1; width:440px; background-color:#fff; min-width:400px; padding-bottom:10px; }/*  box-shadow: 0px 0px 10px #000000; -webkit-box-shadow:0 0 10px black; -moz-box-shadow:0 0 10px black; border-bottom:1px solid #949494;*/
+/*上一张的按钮*/
+.U_Img_Change{width:28px; height:33px; position:absolute; top:100px; z-index:2; cursor:pointer; }
+.U_Img_Change:hover{width:71px;}
+.U_Img_Prev{background-position:-50px -71px;  left:0px;}
+.U_Img_Prev:hover{background-position:-8px -71px; }
+/*下一张的按钮*/
+.U_Img_Next{background-position:-4px -121px; right:0px;}
+/*关闭按钮*/
+.U_Img_Close{width:83px;height:30px; background-position:-92px -72px; margin-right:5px; margin-top:3px;  cursor:pointer; float:right;}
+.U_Img_Close:hover{background-position:-92px -122px;}
+/*移动框*/
+.U_Img_Move{width:100%; height:25px; background-color:#4b75ad; cursor:pointer;}
+/*.U_Img_Move:hover{height:15px; top:0px; cursor:pointer;}*/
+/*U_Img图片框*/
+.U_Img_Info{cursor:pointer; min-height:100px;  overflow:hidden; margin-top:10px; }
+
+/*U_Img操作框  如放大缩小收藏*/  /*a标签是对应的功能操作*/
+.U_Img .U_Img_Operate{ text-align:left; overflow:hidden; line-height:35px; width:100%; height:35px; background-color:rgba(255,255,255,0.5); *background-color:#fff; }
+.U_Img:hover .U_Img_Operate{height:35px;}
+.U_Img .U_Img_Operate a{padding:0 5px; margin-top:5px; height:25px; line-height:25px; display:block; cursor:pointer; float:left;}
+.U_Img .U_Img_Operate a:hover{background-color:#333; color:#fff;}
+.U_Img .U_Img_Operate i{display:block; float:left; width:25px; height:25px;}
+.U_Img .U_Img_Operate div   {float:left;}
+.U_Img .U_Img_Operate a .zoomIn{background-position:0px -26px;}/*放大图标*/
+.U_Img .U_Img_Operate a:hover .zoomIn{background-position:0px -0px;}
+.U_Img .U_Img_Operate a .zoomOut{background-position:-26px -26px;}/*缩小图标*/
+.U_Img .U_Img_Operate a:hover .zoomOut{background-position:-26px -0px;}
+.U_Img .U_Img_Operate a .Lrotate{background-position:-51px -26px;}/*向左转图标*/
+.U_Img .U_Img_Operate a:hover .Lrotate{background-position:-51px -0px;}
+.U_Img .U_Img_Operate a .Rrotate{background-position:-76px -26px;}/*向右转图标*/
+.U_Img .U_Img_Operate a:hover .Rrotate{background-position:-76px -0px;}
+.U_Img .U_Img_Operate a .Love{background-position:-101px -26px;}/*收藏图标*/
+.U_Img .U_Img_Operate a:hover .Love{background-position:-101px -0px;}
+.U_Img .U_Img_Operate a .Download{background-position:-126px -26px;}/*下载图标*/
+.U_Img .U_Img_Operate a:hover .Download{background-position:-126px -0px;}
+.U_Img_transition{transition:All 0.2s ease;-webkit-transition:All 0.2s ease;-moz-transition:All 0.2s ease;-o-transition:All 0.2s ease;}/*未知属性 ie chrome无法识别*/
+
+/*U_Img评论区*/
+.U_Img_Comment{line-height:22px; display:none; padding:5px; margin:10px 0; list-style:none; overflow:hidden;}
+.U_Img_Comment li{border-bottom:1px dotted #ccc; padding:5px 0; margin:0;}
+.U_Img_Comment li .face{margin:5px; float:left;}
+.U_Img_Comment .U_Img_ComInput{ width:100%; color:#555; margin:0; padding:0; line-height:25px; height:50px;}
+
+
+/*--------------------------------------------------窗体区域样式表-------------------------------------------*/
+/*拉伸样式*/
+.UD_W_WT_H { position: absolute; overflow: hidden; cursor: n-resize; left: 0px; top: 0px; width: 100%; height: 5px; display: block; }
+.UD_W_WT_HL { position: absolute; overflow: hidden; cursor: ne-resize; right: 0px; top: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_HR { position: absolute; overflow: hidden; cursor: nw-resize; left: 0px; top: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_ML { position: absolute; overflow: hidden; cursor: w-resize; left: 0px; top: 0px; width: 5px; height: 100%; display: block; }
+.UD_W_WT_MR { position: absolute; overflow: hidden; cursor: e-resize; right: 0px; top: 0px; width: 5px; height: 100%; display: block; }
+.UD_W_WT_B { position: absolute; overflow: hidden; cursor: s-resize; left: 0px; bottom: 0px; width: 100%; height: 5px; display: block; }
+.UD_W_WT_BL { position: absolute; overflow: hidden; cursor: sw-resize; left: 0px; bottom: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_BR { position: absolute; overflow: hidden; cursor: se-resize; right: 0px; bottom: 0px; width: 7px; height: 12px; display: block;}
+
+
+/*桌面窗口整体样式,这里面有些没有用了,下一次清除掉。*/
+.UD_UIU                     {display:none; border-radius: 8px;  box-shadow: 0px 0px 10px #000000; -webkit-box-shadow:0 0 10px black; -moz-box-shadow:0 0 10px black; overflow: hidden;}
+.UD_WIMG                    {background:url(http://www.1473.cn/img/windowGround.png);} 
+.UD_ICON                    {background:url(http://www.1473.cn/img/windowOE.png); }
+.UD_ICONl                   {background-position:-2px 0px; width: 15px; height: 34px;float:left;clear:both;}
+.UD_ICONR                   {background-position:105px -36px;width: 15px; height: 34px;float:left;}
+.UD_ICONz                   {background-position: -21px -52px;padding:0 2px 2px 2px; background-color:White; width:auto; height:100%; clear:both; margin:auto;}
+.UD_ICONTl                  {width: 15px; height: 25px;float: left;background-position: -58px -12px;clear:both;}
+.UD_ICONTz                  {height: 25px; float: left;background-position: 0px -4088px;}
+.UD_ICONTR                  {width: 15px; height: 25px; float:left;background-position: -110px -12px;}
+.UD_ICONImg                 {width: 93px; height: 25px;background-position: -6px -45px; margin:auto; }
+.UD_W                       {position: absolute; }
+.UD_UserLeft                {-moz-box-shadow: 1px 2px 10px #3d3d3d; -webkit-box-shadow: 1px 2px 10px #3d3d3d; box-shadow: 1px 2px 10px #3d3d3d; width:130px; height:331px; float:left; background-position:-13px -76px;}
+.UD_UserLeftChild           {width:100%; height:98px; }
+.UD_UserNavigate            {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-15px -154px; }
+.UD_UserGroup               {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-45px -154px;}
+.UD_Userrecently            {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-116px -156px;}
+.UD_UserEmail               {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-82px -155px;}
+.UD_UserNavigatefat         {width:129px; height:44px;cursor:pointer;}
+.UD_UserNavigatefat:hover   {background-color:#033b6c;}
+.UD_UserNavigatebo          {width:130px; height:29px; background-position:-17px -45px;float:left; clear:left;}
+.UD_Shadow                  {width:211px; height:331px; }
+.UD_SD                      {-moz-box-shadow: 1px 2px 10px #3d3d3d; -webkit-box-shadow: 1px 2px 10px #3d3d3d; box-shadow: 1px 2px 10px #3d3d3d;}
+.UD_W_TB                    {height: 34px; line-height:33px; width:100%;  float:left; }/*头部拖动区域样式*/
+.UD_W_TB_T                  {font-size:14px; font-weight:bold; color:#5e5e5e; font-family:微软雅黑; float:left;}/*拖动区域标题*/
+.UD_W_TB_S                  {height: 5px; width: 100%; display: block; }/*头部区域背景样式*/
+.UD_W_TB_WM                 {display:inline-block; float:right;}/*放大缩小区域*/
+.UD_W_TB_WMS                {width: 30px; color: #3366ff; height: 28px; line-height: 20px;  display: inline-block; float: right; }
+.UD_W_TB_WM span            {width: 30px; color: #3366ff; height: 28px; line-height: 20px;  display: inline-block; float: right; }/*放大缩小样式*/
+.UD_W_TB_WM span:hover      {color: #fff; cursor: pointer; }
+.UD_W_TB_MQ                 {display:inline-block; height:20px;margin:2px 0 0 10px;}/*头部说明区域*/
+.UD_W_TB_WM_Min             {background-position:-12px -80px }/*最小化图标*/
+.UD_W_TB_WM_Min:hover       {background-position: -12px -122px }
+.UD_W_TB_WM_Max             {background-position:-47px -79px; }/*最大化图标*/
+.UD_W_TB_WM_Max:hover       {background-position: -47px -121px; }
+.UD_W_TB_WM_Close           {background-position:-79px -80px; width:30px; height:25px; float:right; margin-right:5px; }/*关闭图标*/
+.UD_W_TB_WM_Close:hover     {background-position: -79px -122px; }
+.UD_W_WC                    {width: 100%; overflow: hidden; background-color:White; }/*整体样式*/
+.UD_ICONBG                  {background:url(http://www.1473.cn/img/newsbg.jpg) -5px 0px no-repeat;}

+ 103 - 0
UJson.htm

@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <style type="text/css">
+        html, body { width: 100%; height: 100%; margin: 0;padding: 0; }
+        #left { width: 25%; border: 1px solid gray; float: left;}
+        #right { width: 70%; border: 1px solid gray;float: left;}
+        .jddiv{ margin: 5px; margin-left: 20px; width: 500px;}
+    </style>
+    <!--直接引用1473的js文件-->
+    <script src="http://d.1473.cn/UJ.js" type="text/javascript"></script>
+    <!--json类-->
+    <script src="http://d.1473.cn/js/U.Json.js" type="text/javascript"></script>
+    <script src="http://d.1473.cn/js/U.JsonData.js" type="text/javascript"></script>
+    <script src="http://www.1473.cn/js/UC/U.MC.js" type="text/javascript"></script>
+    <script type="text/javascript">
+        var jd = _jdata; //json数据
+        function init() { dgjson(jd, document.getElementById("left")); }
+        //遍历输出json所有数据
+        function dgjson(jd, p) {
+            if (jd.TNode.length > 0) {
+                var i; for (i = 0; i < jd.TNode.length; i++) {
+                    if (jd.TNode[i].Type != "file") {
+                        var t = $$("div", { "className": "jddiv", "innerHTML": "+" + jd.TNode[i].Name }, p); dgjson(jd.TNode[i], t);
+                    }
+                    else { var t = $$("div", { "className": "jddiv", "innerHTML": "" + jd.TNode[i].Name }, p); }
+                }
+            }
+        }
+        var aa = new U.Json(jd);
+        function findone() { disresult(aa.FindOne); }
+        function FindParent() { disresult(aa.Parent); }
+        function disresult(CB) {
+            var s = document.getElementById("jsoninput").value;
+            var _r = CB.apply(aa, [{ "Name": s}]); //解决this指针的指向问题。没有很好的解决,,初略方案
+            document.getElementById("result_N").innerHTML = aa.ToString(_r);
+            document.getElementById("result").style.display = "block";
+        }
+        function addChild() {
+            var s = document.getElementById("jsoninput").value;
+            var v = document.getElementById("addinput").value;
+            var _r = CB.apply(aa, [{ "Name": s}]); //解决this指针的指向问题。没有很好的解决,,初略方案
+            document.getElementById("result_N").innerHTML = aa.ToString(_r);
+            document.getElementById("result").style.display = "block";
+        }
+        function DelMore() {
+            //var _r = aa.DelMore({ "IsDelete": false }); //解决this指针的指向问题。没有很好的解决,,初略方案
+            var _r = aa.DelMore({ "Deep": 3 }); //解决this指针的指向问题。没有很好的解决,,初略方案
+            if (!_r) {alert(_r);}
+            document.getElementById("result_N").innerHTML = aa.ToString(_r);
+            document.getElementById("result").style.display = "block";
+        }
+
+        window.onload = init;
+    </script>
+</head>
+<body>
+    <div id="left">
+    </div>
+    <div id="right">
+        <div>各种json操作</div>
+        <div>输入内容:<input id="jsoninput" style="width: 400px;" value="" type="text" /></div>
+
+        <!-------------------查找一个的功能-------------------------->
+        <div> 1、查找某一个节点,返回该节点的所有数据 调用方式 UJson.findone(D,V),D为json树,V为待查找的json<input onclick="findone()" type="button" value="确定" /> </div>
+        <div> 2、返回一个节点的所有孩子节点(注:同1),这个函数无需做,同第一个</div>
+
+        <!---------------------修改功能------------------------------>
+        <div> 3、修改某一个节点,这个函数无需做,前台直接修改即可</div>
+        <div> 4、修改某一个json的多项值,比如用户信息,修改5个以上。则直接修改。</div>
+
+        <!--查找父亲的功能-->
+        <div> 5、找到某个节点的父亲节点。如未根目录,父亲节点为空  <input onclick="FindParent()" type="button" value="确定" /> </div>
+        <div> 6、找到指定节点所在的数组,同上,找到父亲节点即可找到所在节点的数组,无需做。此功能经常需要</div>
+        <div> 7、找到父亲节点所在的数组、同上,需要查找父亲节点的父亲节点。需要递归2次,此功能经常需要。</div>
+
+        <!-- 添加功能 -->
+        <div>前面一个div找到节点,这个input输入新插入的节点:<input id="addinput" style="width: 400px;" value="" type="text" /></div>
+        <div> 8、在指定节点下面添加孩子结点,无需做,前台已经提供了这个功能 <input onclick="addChild()" type="button" value="确定" /> </div>
+        <div> 9、给指定节点添加兄弟节点,无需做,先找到父亲节点,然后找父亲节点的孩子节点</div>
+        <div> 10、树的合并,2颗树合并为一颗,此功能无需做,树已经有这个功能。</div>
+
+        <!--删除功能-->
+        <div>11、删除某一个节点,无需做,前台直接删除某一个节点,调用数组的remove函数,此函数已经修改了原型。。 </div>
+        <div>12、删除拥有某一样属性的所有节点、例如在编程树中,有些元素标记了删除,则不选取这些节点出来。此函数比较复杂<input onclick="DelMore()" type="button" value="确定" /></div>
+        
+
+        <div>
+            11、清空数组。可以搜索一下清空数组的三个方案</div>
+        
+    </div>
+    <div id="result" style="position: absolute; top: 100px; left: 300px; display: none;
+        width: 400px; min-height: 600px; border: 10px solid gray; background-color: White;">
+        <div style="width: 390px; height: 30px;">
+            <div style="float: right; font-size: 20px; cursor: pointer;" onclick="this.parentNode.parentNode.style.display='none'">
+                X</div>
+        </div>
+        <div id="result_N" style="width: 400px; min-height: 570px;">
+        </div>
+    </div>
+</body>
+</html>

+ 89 - 0
U_LR_I.htm

@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <script type="text/javascript">        document.domain = "1473.cn";</script>
+    <!--独立登录注册样式表-->
+    <link href="http://d.1473.cn/css/U_Reg.css" rel="stylesheet" type="text/css" />
+    <!--UQuery框架-->
+    <script src="http://d.1473.cn/UJ.js" type="text/javascript"></script>
+    <!--独立的登录注册。-->
+    <script src="http://d.1473.cn/js/U.Reg.js" type="text/javascript"></script>
+    
+</head>
+<body>
+    <div id="U_R">
+        <!--登录区域-->
+        <div class="U_R_L">
+            <div class="U_R_L_T">
+                <div class="U_R_L_T_L">账号登录</div>
+                <div></div>
+                <div></div>
+            </div>
+            <div class="U_R_L_N">
+                <div class="U_R_L_N_T">
+                    <div>账号</div>
+                    <input ondblclick="this.value=''" onkeyup="U.Reg.returnkeylogin([{'obj':$('#U_R_L_N_D')[0],'event':'onclick'}])"  id="U_R_L_Name" onchange="U.Reg.LBC(this,'UName')" type="text" />
+                </div>
+                <div class="U_R_L_N_T">
+                    <div>密码</div>
+                    <input ondblclick="this.value=''" onkeyup="U.Reg.returnkeylogin([{'obj':$('#U_R_L_N_D')[0],'event':'onclick'}])"  id="U_R_L_Pass" onchange="U.Reg.LBC(this,'UPass')" type="password" />
+                </div>
+                <div  class="U_R_L_N_J">
+                    <input id="U_R_L_RememberMe" type="checkbox" />
+                    <div style=" cursor:pointer;" onclick="U.Reg.C($('#U_R_L_RememberMe')[0])">记住我的登陆状态</div>
+                </div>
+                <div class="U_R_L_N_DW">
+                    <div class="U_R_L_N_D" id="U_R_L_N_D" onclick="U.Reg.Login(this)">登录 </div>
+                    <a class="U_R_L_N_W" onclick="alert('请到www.1473.cn重置密码!')">忘记密码?</a>
+                </div>
+
+            </div>
+            <div class="U_R_L_B">
+                <div class="U_R_L_B_S">第三方帐户登陆</div>
+                <div class="U_R_L_B_B">
+                    <div class="UCD_RT_TreeIcon U_R_L_B_B_QQ" onclick="U.Reg.QQWBLogin()"></div>
+                    <div class="UCD_RT_TreeIcon U_R_L_B_B_WB" onclick="U.Reg.QQWBLogin()"></div>
+                </div>
+            </div>
+        </div>
+        <!--注册区域-->
+        <div class="U_R_R" id="U_R_R">
+            <div class="U_R_R_T">
+                <div class="U_R_L_T_L">账号注册</div>
+                <div></div>
+                <div></div>
+            </div>
+            <div style=" margin-top:25px;" class="U_R_R_D">
+                <div class="U_R_R_D_D">账号</div>
+                <input id="U_R_UName" type="text" onblur="U.Reg.RUN(this)"  onkeyup="U.M.returnkeylogin(null,[[U.Reg.UR,([this])]])" />
+                <i title="点击关闭提示框并清空内容" class="U_R_ErrorTip">4-14位数字或字母</i>
+            </div>
+            <div class="U_R_R_D">
+                <div class="U_R_R_D_D">密码</div>
+                <input id="U_R_UPass" type="password" onblur="U.Reg.IRP(this);" onkeyup="U.M.returnkeylogin(null,[[U.Reg.UR,([this])]])"  />
+                <i title="点击关闭提示框并清空内容" class="U_R_ErrorTip">6-20位的字符和数字</i>
+            </div>
+            <div class="U_R_R_D">
+                <div class="U_R_R_D_D">确认密码</div>
+                <input id="U_R_URPass" type="password" onblur="U.Reg.RCFP(this)"  onkeyup="U.M.returnkeylogin(null,[[U.Reg.UR,([this])]])"  />
+                <i title="点击关闭提示框并清空内容" class="U_R_ErrorTip">重输密码</i>
+            </div>
+            <div class="U_R_R_D">
+                <div class="U_R_R_D_D">验证码</div>
+                <input id="U_R_Captcha" style=" width:60px; height:22px;" type="text" maxlength="4" onfocus="$('i',this.parentNode)[0].style.display='none'" onblur="U.Reg.CAC(this)"  />
+                <img id="U_R_YZM" alt="看不清?点击重获验证码" style=" margin-left:5px; width: 100px; height: 30px;" src="" onclick="this.src='http://disk.1473.cn/USupfile.ashx?iframename=Verification&n='+ Math.random();U.Reg.CAC(this.parentNode.getElementsByTagName('input')[0])" />
+                <i class="U_R_ErrorTip" onclick="$('input',this.parentNode)[0].value='';this.style.display='none';"
+                        title="点击关闭提示框并清空内容" style="display: none; width:20px; "></i>
+            </div>
+            <div class="U_R_R_X">
+                <input class="U_R_R_X_C" type="checkbox" onchange="U.Reg.RR(this)" checked="checked" />
+                <div  class="U_R_R_X_X" onclick="U.Reg.XY()" >已阅读《云操作系统用户协议》</div>
+            </div>
+
+            <div class="U_R_R_Z" onclick="U.Reg.UR(this)" >注册</div>
+
+        </div>
+    </div>
+</body>
+</html>

+ 947 - 0
UseStudio.CDB.csproj

@@ -0,0 +1,947 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{DEA84F27-189E-48EC-A62E-5AB518539AE3}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>US.Develop</RootNamespace>
+    <AssemblyName>US.Develop</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <UseIISExpress>false</UseIISExpress>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <OldToolsVersion>4.0</OldToolsVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.EnterpriseServices" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="CD.htm" />
+    <Content Include="css\UCD_Out.css" />
+    <Content Include="css\UCD_SL.css" />
+    <Content Include="css\UJ.css" />
+    <Content Include="css\U_Reg.css" />
+    <Content Include="domain-policy.htm" />
+    <Content Include="images\example_delete.jpg" />
+    <Content Include="images\example_xg.jpg" />
+    <Content Include="images\navigation.png" />
+    <Content Include="img\icon.png" />
+    <Content Include="img\UCD_RT.png" />
+    <Content Include="index1.htm" />
+    <Content Include="js\U.CD.CError.js" />
+    <Content Include="js\U.CD.CL.js" />
+    <Content Include="js\U.CD.Layout.js" />
+    <Content Include="js\U.CD.OutApp.js" />
+    <Content Include="js\U.CD.SL.js" />
+    <Content Include="js\U.CD.Url.js" />
+    <Content Include="js\U.CD.Wetty.js" />
+    <Content Include="proxy.html" />
+    <Content Include="RS.htm" />
+    <Content Include="css\UCD.css" />
+    <Content Include="css\UCD_Center.css" />
+    <Content Include="css\UCD_Right.css" />
+    <Content Include="css\UCD_Run.css" />
+    <Content Include="css\UCD_TOP.css" />
+    <Content Include="css\UCD_Left.css" />
+    <Content Include="help.txt" />
+    <Content Include="images\im\div.png" />
+    <Content Include="images\im\image.png" />
+    <Content Include="images\im\input.png" />
+    <Content Include="images\im\nav-list-bg.png" />
+    <Content Include="images\im\table.png" />
+    <Content Include="images\sy.jpg" />
+    <Content Include="images\v1_bg.gif" />
+    <Content Include="index.html" />
+    <Content Include="images\007.png" />
+    <Content Include="images\base.gif" />
+    <Content Include="images\bg.gif" />
+    <Content Include="images\cd.gif" />
+    <Content Include="images\eis_1.gif" />
+    <Content Include="images\eis_2.gif" />
+    <Content Include="images\eis_bg.gif" />
+    <Content Include="images\empty.gif" />
+    <Content Include="images\folder.gif" />
+    <Content Include="images\folder.png" />
+    <Content Include="images\folderopen.gif" />
+    <Content Include="images\join.gif" />
+    <Content Include="images\joinbottom.gif" />
+    <Content Include="images\left_sidebar_bottom.png" />
+    <Content Include="images\left_sidebar_middle.png" />
+    <Content Include="images\left_sidebar_top.png" />
+    <Content Include="images\line.gif" />
+    <Content Include="images\logo - 副本.jpg" />
+    <Content Include="images\logo.png" />
+    <Content Include="images\menu_divider.png" />
+    <Content Include="images\minus.gif" />
+    <Content Include="images\minusbottom.gif" />
+    <Content Include="images\navi_sep.gif" />
+    <Content Include="images\page.gif" />
+    <Content Include="images\plus.gif" />
+    <Content Include="images\plusbottom.gif" />
+    <Content Include="images\v1_bg2.jpg" />
+    <Content Include="js\U.CD.Code.js" />
+    <Content Include="js\U.CD.FileType.js" />
+    <Content Include="js\U.CD.js" />
+    <Content Include="js\U.CD.Left.js" />
+    <Content Include="js\U.CD.Other.js" />
+    <Content Include="js\U.CD.Right.js" />
+    <Content Include="js\U.CD.Tips.js" />
+    <Content Include="js\U.CD.U.js" />
+    <Content Include="js\U.CD.Run.js" />
+    <Content Include="js\U.CD.Top.js" />
+    <Content Include="node_modules\mongodb\index.js" />
+    <Content Include="node_modules\mongodb\install.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\admin.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\collection.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\base_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\db_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\delete_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\get_more_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\insert_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\kill_cursor_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\query_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\commands\update_command.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\base.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\connection.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\connection_pool.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\connection_utils.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\mongos.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\read_preference.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\repl_set.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\server.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\strategies\ping_strategy.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\strategies\statistics_strategy.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\connection\url_parser.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\cursor.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\cursorstream.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\db.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\gridfs\chunk.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\gridfs\grid.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\gridfs\gridstore.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\gridfs\readstream.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\index.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\mongo_client.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\responses\mongo_reply.js" />
+    <Content Include="node_modules\mongodb\lib\mongodb\utils.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\benchmarks\benchmarks.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\browser_build\bson.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\build_browser.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\ext\bson.cc" />
+    <Content Include="node_modules\mongodb\node_modules\bson\ext\bson.h" />
+    <Content Include="node_modules\mongodb\node_modules\bson\ext\index.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\binary.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\binary_parser.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\bson.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\code.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\db_ref.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\double.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\float_parser.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\index.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\long.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\max_key.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\min_key.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\objectid.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\symbol.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\lib\bson\timestamp.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\browser_example.htm" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\bson_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\nodeunit.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\suite2.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\suite3.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\browser\test.html" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\bson_array_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\bson_parser_comparision_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\bson_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\bson_typed_array_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\data\test_gs_weird_bug.png" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\test_full_bson.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\tools\utils.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\test\node\to_bson_test.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\tools\gleak.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\tools\jasmine-1.1.0\jasmine-html.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\tools\jasmine-1.1.0\jasmine.css" />
+    <Content Include="node_modules\mongodb\node_modules\bson\tools\jasmine-1.1.0\jasmine.js" />
+    <Content Include="node_modules\mongodb\node_modules\bson\tools\jasmine-1.1.0\jasmine_favicon.png" />
+    <Content Include="node_modules\mysql\benchmark\analyze.js" />
+    <Content Include="node_modules\mysql\benchmark\parse-100k-blog-rows.js" />
+    <Content Include="node_modules\mysql\benchmark\select-100k-blog-rows.js" />
+    <Content Include="node_modules\mysql\index.js" />
+    <Content Include="node_modules\mysql\lib\Connection.js" />
+    <Content Include="node_modules\mysql\lib\ConnectionConfig.js" />
+    <Content Include="node_modules\mysql\lib\Pool.js" />
+    <Content Include="node_modules\mysql\lib\PoolConfig.js" />
+    <Content Include="node_modules\mysql\lib\protocol\Auth.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\charsets.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\client.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\errors.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\field_flags.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\server_status.js" />
+    <Content Include="node_modules\mysql\lib\protocol\constants\types.js" />
+    <Content Include="node_modules\mysql\lib\protocol\PacketHeader.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ClientAuthenticationPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ComChangeUserPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ComPingPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ComQueryPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ComQuitPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ComStatisticsPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\EmptyPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\EofPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ErrorPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\Field.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\FieldPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\HandshakeInitializationPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\index.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\LocalDataFilePacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\OkPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\OldPasswordPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\ResultSetHeaderPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\RowDataPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\StatisticsPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\packets\UseOldPasswordPacket.js" />
+    <Content Include="node_modules\mysql\lib\protocol\PacketWriter.js" />
+    <Content Include="node_modules\mysql\lib\protocol\Parser.js" />
+    <Content Include="node_modules\mysql\lib\protocol\Protocol.js" />
+    <Content Include="node_modules\mysql\lib\protocol\ResultSet.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\ChangeUser.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Handshake.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\index.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Ping.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Query.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Quit.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Sequence.js" />
+    <Content Include="node_modules\mysql\lib\protocol\sequences\Statistics.js" />
+    <Content Include="node_modules\mysql\lib\protocol\SqlString.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\bignumber.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\bignumber.min.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\doc\API.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\bignumber-vs-bigdecimal.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\bigtime-OOM.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\bigtime.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_GWT\bigdecimal.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_GWT\BigDecTest.java" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_GWT\bugs.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_GWT\LICENCE.txt" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_ICU4J\BigDecimal-all-last.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_ICU4J\BigDecimal-all-last.min.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_ICU4J\LICENCE.txt" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\perf\README.txt" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\abs.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\base-in.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\base-out.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\browser\bignumber-vs-number.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\browser\console-errors.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\browser\every-test.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\browser\quick-test.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\browser\single-test.html" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\ceil.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\cmp.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\config.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\div.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\every-test.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\floor.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\minus.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\mod.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\neg.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\others.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\plus.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\pow.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\quick-test.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\round.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\sqrt.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\times.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\toExponential.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\toFixed.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\toFraction.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\toPrecision.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\toString.js" />
+    <Content Include="node_modules\mysql\node_modules\bignumber.js\test\v8-LICENCE.txt" />
+    <Content Include="node_modules\mysql\node_modules\require-all\index.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\controllers\main-Controller.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\controllers\notthis.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\controllers\other-Controller.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\mydir\foo.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\mydir\hello.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\mydir\sub\yes.js" />
+    <Content Include="node_modules\mysql\node_modules\require-all\test\test.js" />
+    <Content Include="node_modules\mysql\test\common.js" />
+    <Content Include="node_modules\mysql\test\FakeServer.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-bad-credentials.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-bulk-insert.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-callback-errors-are-not-caught.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-change-user-fatal-error.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-change-user.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-connection-config-flags-affected-rows.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-connection-config-flags.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-connection-destroy.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-custom-query-format.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-custom-typecast.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-destroy-while-streaming-rows.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-double-connect.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-drain-event.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-end-callback.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-escape-id.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-exception-safety.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-fatal-auth-error-going-to-all-callbacks.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-fatal-auth-error-without-handlers.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-fatal-network-error-going-to-all-callbacks.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-fatal-network-error-without-handlers.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-fatal-query-error-without-callback.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-host-denied-error.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-implicit-connect.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-insert-results.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-load-data-infile.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-long-stack-traces-for-connection-errors.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-long-stack-traces.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-multiple-statements-streaming.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-multiple-statements-with-error.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-multiple-statements.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-nested-tables-query.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-normal-error-without-handler.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-normal-query-error-without-callback.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-old-password.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-ping.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-procedure-with-multiple-selects.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-procedure-with-single-select.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-query-after-destroy.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-query-after-end-without-callback.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-query-after-end.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-query-escaping.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-select-1.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-select-empty-string.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-send-and-receive-large-packets.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-server-timeout-disconnect.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-server-unexpected-disconnect.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-statistics.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-streaming-rows-quick-pause-resume.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-streaming-rows.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-timezones.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-transaction-commit.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-transaction-rollback.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-type-cast-null-fields.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-type-cast-query.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-type-casting.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-unix-domain-socket.js" />
+    <Content Include="node_modules\mysql\test\integration\connection\test-zerofill-results.js" />
+    <Content Include="node_modules\mysql\test\integration\pool\test-connection-limit.js" />
+    <Content Include="node_modules\mysql\test\integration\pool\test-destroy-connection.js" />
+    <Content Include="node_modules\mysql\test\integration\pool\test-end-empty.js" />
+    <Content Include="node_modules\mysql\test\integration\pool\test-get-connection.js" />
+    <Content Include="node_modules\mysql\test\run.js" />
+    <Content Include="node_modules\mysql\test\unit\protocol\test-Parser.js" />
+    <Content Include="node_modules\mysql\test\unit\protocol\test-SqlString.js" />
+    <Content Include="node_modules\mysql\test\unit\test-ConnectionConfig.js" />
+    <Content Include="node_modules\mysql\tool\generate-error-constants.js" />
+    <Content Include="node_modules\socket.io\benchmarks\decode.bench.js" />
+    <Content Include="node_modules\socket.io\benchmarks\encode.bench.js" />
+    <Content Include="node_modules\socket.io\benchmarks\runner.js" />
+    <Content Include="node_modules\socket.io\index.js" />
+    <Content Include="node_modules\socket.io\lib\logger.js" />
+    <Content Include="node_modules\socket.io\lib\manager.js" />
+    <Content Include="node_modules\socket.io\lib\namespace.js" />
+    <Content Include="node_modules\socket.io\lib\parser.js" />
+    <Content Include="node_modules\socket.io\lib\socket.io.js" />
+    <Content Include="node_modules\socket.io\lib\socket.js" />
+    <Content Include="node_modules\socket.io\lib\static.js" />
+    <Content Include="node_modules\socket.io\lib\store.js" />
+    <Content Include="node_modules\socket.io\lib\stores\memory.js" />
+    <Content Include="node_modules\socket.io\lib\stores\redis.js" />
+    <Content Include="node_modules\socket.io\lib\transport.js" />
+    <Content Include="node_modules\socket.io\lib\transports\flashsocket.js" />
+    <Content Include="node_modules\socket.io\lib\transports\htmlfile.js" />
+    <Content Include="node_modules\socket.io\lib\transports\http-polling.js" />
+    <Content Include="node_modules\socket.io\lib\transports\http.js" />
+    <Content Include="node_modules\socket.io\lib\transports\index.js" />
+    <Content Include="node_modules\socket.io\lib\transports\jsonp-polling.js" />
+    <Content Include="node_modules\socket.io\lib\transports\websocket.js" />
+    <Content Include="node_modules\socket.io\lib\transports\websocket\default.js" />
+    <Content Include="node_modules\socket.io\lib\transports\websocket\hybi-07-12.js" />
+    <Content Include="node_modules\socket.io\lib\transports\websocket\hybi-16.js" />
+    <Content Include="node_modules\socket.io\lib\transports\websocket\index.js" />
+    <Content Include="node_modules\socket.io\lib\transports\xhr-polling.js" />
+    <Content Include="node_modules\socket.io\lib\util.js" />
+    <Content Include="node_modules\socket.io\node_modules\base64id\lib\base64id.js" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\doc\index.html" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\examples\basic.fallback.js" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\examples\basic.js" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\lib\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\policyfile\tests\unit.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\buffer_bench.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\hiredis_parser.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\reconnect_test.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\re_sub_test.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\codec.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\pubsub\pub.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\pubsub\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\rpushblpop\pub.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\rpushblpop\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\speed\size-rate.png" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\stress\speed\speed.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\benches\sub_quit_test.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\diff_multi_bench_output.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\auth.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\backpressure_drain.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\eval.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\extend.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\file.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\mget.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\monitor.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\multi.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\multi2.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\psubscribe.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\pub_sub.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\simple.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\sort.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\subqueries.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\subquery.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\unix_socket.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\examples\web_server.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\generate_commands.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\commands.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\parser\hiredis.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\parser\javascript.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\queue.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\to_array.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\lib\util.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\mem.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\multi_bench.js" />
+    <Content Include="node_modules\socket.io\node_modules\redis\test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\bin\builder.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\dist\socket.io.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\dist\socket.io.min.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\dist\WebSocketMain.swf" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\dist\WebSocketMainInsecure.swf" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\events.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\io.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\json.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\namespace.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\parser.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\socket.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transport.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\flashsocket.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\htmlfile.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\jsonp-polling.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\websocket.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\xhr-polling.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\transports\xhr.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\util.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\dump.txt" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\sample.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\swfobject.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\WebSocketMain.swf" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\web_socket.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\benchmark.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\test-parser.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\test-tokenizer.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\tests.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\Tokenizer.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\unicodecategories.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\ZeParser.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\docstyle.css" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\lib\object-ast.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\lib\parse-js.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\lib\process.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\lib\squeeze-more.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\README.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\beautify.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\testparser.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\array1.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\array2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\array3.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\array4.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\assignment.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\concatstring.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\const.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\empty-blocks.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\forstatement.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\if.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\ifreturn.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\ifreturn2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue10.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue11.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue13.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue14.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue16.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue17.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue20.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue21.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue25.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue27.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue278.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue28.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue29.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue30.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue34.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue4.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue48.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue50.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue53.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue54.1.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue68.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue69.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\issue9.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\mangle.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\null_string.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\strict-equals.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\var.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\whitespace.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\expected\with.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\array1.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\array2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\array3.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\array4.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\assignment.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\concatstring.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\const.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\empty-blocks.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\forstatement.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\if.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\ifreturn.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\ifreturn2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue10.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue11.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue13.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue14.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue16.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue17.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue20.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue21.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue25.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue27.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue278.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue28.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue29.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue30.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue34.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue4.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue48.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue50.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue53.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue54.1.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue68.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue69.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\issue9.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\mangle.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\null_string.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\strict-equals.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\var.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\whitespace.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\compress\test\with.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\test\unit\scripts.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\269.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\app.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\embed-tokens.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\goto.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\goto2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\hoist.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\instrument.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\instrument2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\liftvars.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\uglify-hangs.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\tmp\uglify-hangs2.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\uglify-js.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\bench\parser.benchmark.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\bench\sender.benchmark.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\bench\speed.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\bench\util.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\public\app.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\public\index.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\public\uploader.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats-express_3\public\index.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats-express_3\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats\public\index.html" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats\server.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\browser.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\BufferPool.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\BufferUtil.fallback.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\BufferUtil.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\ErrorCodes.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Receiver.hixie.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Receiver.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Sender.hixie.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Sender.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Validation.fallback.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\Validation.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\WebSocket.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\lib\WebSocketServer.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\index.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\lib\commander.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\lib\options.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\test\options.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\tinycolor\example.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\tinycolor\tinycolor.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\src\bufferutil.cc" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\src\validation.cc" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\autobahn-server.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\autobahn.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\BufferPool.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\hybi-common.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\Receiver.hixie.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\Receiver.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\Sender.hixie.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\Sender.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\testserver.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\Validation.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\WebSocket.integration.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\WebSocket.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\WebSocketServer.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\example\demo.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\lib\XMLHttpRequest.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-constants.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-events.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-exceptions.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-headers.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-request-methods.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\test-request-protocols.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\tests\testdata.txt" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\events.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\io.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\node\builder.common.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\node\builder.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\parser.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\socket.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\util.test.js" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\test\worker.js" />
+    <Content Include="UJ.css" />
+    <Content Include="UJson.htm" />
+    <Content Include="us.cookie.js" />
+    <Content Include="us.file.js" />
+    <Content Include="us.mongodb.js" />
+    <Content Include="us.mysql.js" />
+    <Content Include="us.clang.js" />
+    <Content Include="us.langback.js" />
+    <Content Include="U_LR_I.htm" />
+    <Content Include="Web.config" />
+    <Content Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="output\" />
+    <Folder Include="文档资料\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="node_modules\mongodb\.travis.yml" />
+    <None Include="node_modules\mongodb\CONTRIBUTING.md" />
+    <None Include="node_modules\mongodb\Makefile" />
+    <None Include="node_modules\mongodb\node_modules\bson\.travis.yml" />
+    <None Include="node_modules\mongodb\node_modules\bson\binding.gyp" />
+    <None Include="node_modules\mongodb\node_modules\bson\browser_build\package.json" />
+    <None Include="node_modules\mongodb\node_modules\bson\builderror.log" />
+    <None Include="node_modules\mongodb\node_modules\bson\ext\Makefile" />
+    <None Include="node_modules\mongodb\node_modules\bson\ext\win32\ia32\bson.node" />
+    <None Include="node_modules\mongodb\node_modules\bson\ext\win32\x64\bson.node" />
+    <None Include="node_modules\mongodb\node_modules\bson\ext\wscript" />
+    <None Include="node_modules\mongodb\node_modules\bson\Makefile" />
+    <None Include="node_modules\mongodb\node_modules\bson\package.json" />
+    <None Include="node_modules\mongodb\node_modules\bson\README.md" />
+    <None Include="node_modules\mongodb\node_modules\bson\tools\jasmine-1.1.0\MIT.LICENSE" />
+    <None Include="node_modules\mongodb\package.json" />
+    <None Include="node_modules\mongodb\Readme.md" />
+    <None Include="node_modules\mongodb\upload.py" />
+    <None Include="node_modules\mysql\.npmignore" />
+    <None Include="node_modules\mysql\.travis.yml" />
+    <None Include="node_modules\mysql\Changes.md" />
+    <None Include="node_modules\mysql\License" />
+    <None Include="node_modules\mysql\Makefile" />
+    <None Include="node_modules\mysql\node_modules\bignumber.js\LICENCE" />
+    <None Include="node_modules\mysql\node_modules\bignumber.js\package.json" />
+    <None Include="node_modules\mysql\node_modules\bignumber.js\perf\lib\bigdecimal_GWT\BigDecTest.class" />
+    <None Include="node_modules\mysql\node_modules\bignumber.js\README.md" />
+    <None Include="node_modules\mysql\node_modules\require-all\package.json" />
+    <None Include="node_modules\mysql\node_modules\require-all\Readme.md" />
+    <None Include="node_modules\mysql\node_modules\require-all\test\mydir\sub\config.json" />
+    <None Include="node_modules\mysql\node_modules\require-all\test\mydir\sub\no.2js" />
+    <None Include="node_modules\mysql\package.json" />
+    <None Include="node_modules\mysql\Readme.md" />
+    <None Include="node_modules\mysql\test\fixtures\data.csv" />
+    <None Include="node_modules\socket.io\.npmignore" />
+    <None Include="node_modules\socket.io\.travis.yml" />
+    <None Include="node_modules\socket.io\History.md" />
+    <None Include="node_modules\socket.io\LICENSE" />
+    <None Include="node_modules\socket.io\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\base64id\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\base64id\package.json" />
+    <None Include="node_modules\socket.io\node_modules\base64id\README.md" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\LICENSE" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\package.json" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\README.md" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\tests\ssl\ssl.crt" />
+    <None Include="node_modules\socket.io\node_modules\policyfile\tests\ssl\ssl.private.key" />
+    <None Include="node_modules\socket.io\node_modules\redis\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\redis\benches\stress\pubsub\run" />
+    <None Include="node_modules\socket.io\node_modules\redis\benches\stress\rpushblpop\run" />
+    <None Include="node_modules\socket.io\node_modules\redis\benches\stress\speed\00" />
+    <None Include="node_modules\socket.io\node_modules\redis\benches\stress\speed\plot" />
+    <None Include="node_modules\socket.io\node_modules\redis\changelog.md" />
+    <None Include="node_modules\socket.io\node_modules\redis\package.json" />
+    <None Include="node_modules\socket.io\node_modules\redis\README.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\History.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\build.sh" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\adobe\net\proxies\RFC2817Socket.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\gsolo\encryption\MD5.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\cert\MozillaRootCertificates.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\cert\X509Certificate.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\cert\X509CertificateCollection.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\Crypto.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\HMAC.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\IHash.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\IHMAC.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\MAC.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\MD2.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\MD5.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\SHA1.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\SHA224.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\SHA256.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\hash\SHABase.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\prng\ARC4.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\prng\IPRNG.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\prng\Random.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\prng\TLSPRF.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\rsa\RSAKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\AESKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\aeskey.pl" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\BlowFishKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\CBCMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\CFB8Mode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\CFBMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\CTRMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\DESKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\ECBMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\ICipher.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\IMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\IPad.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\IStreamCipher.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\ISymmetricKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\IVMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\NullPad.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\OFBMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\PKCS5.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\SimpleIVMode.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\SSLPad.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\TLSPad.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\TripleDESKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\symmetric\XTeaKey.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\AESKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\ARC4Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\BigIntegerTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\BlowFishKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\CBCModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\CFB8ModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\CFBModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\CTRModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\DESKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\ECBModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\HMACTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\ITestHarness.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\MD2Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\MD5Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\OFBModeTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\RSAKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\SHA1Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\SHA224Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\SHA256Test.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\TestCase.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\TLSPRFTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\TripleDESKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tests\XTeaKeyTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\BulkCiphers.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\CipherSuites.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\IConnectionState.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\ISecurityParameters.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\KeyExchanges.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\MACs.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\SSLConnectionState.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\SSLEvent.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\SSLSecurityParameters.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSConfig.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSConnectionState.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSEngine.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSError.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSEvent.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSSecurityParameters.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSSocket.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSSocketEvent.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\crypto\tls\TLSTest.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\BarrettReduction.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\BigInteger.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\bi_internal.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\ClassicReduction.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\IReduction.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\MontgomeryReduction.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\math\NullReduction.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\ArrayUtil.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\Base64.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\ByteString.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\DER.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\IAsn1Type.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\Integer.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\ObjectIdentifier.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\OID.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\PEM.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\PrintableString.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\Sequence.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\Set.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\Type.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\der\UTCTime.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\Hex.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\com\hurlant\util\Memory.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\IWebSocketLogger.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\WebSocket.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\WebSocketEvent.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\WebSocketMain.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\flash-src\WebSocketMainInsecure.as" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\README.md" />
+    <Content Include="node_modules\socket.io\node_modules\socket.io-client\lib\vendor\web-socket-js\WebSocketMainInsecure.zip" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\.bin\uglifyjs" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\.bin\uglifyjs.cmd" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\.bin\wscat" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\.bin\wscat.cmd" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\LICENSE" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\node_modules\zeparser\README" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\active-x-obfuscator\Readme.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\bin\uglifyjs" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\uglify-js\README.org" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\.travis.yml" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\binding.gyp" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\bin\wscat" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\builderror.log" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\doc\ws.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\fileapi\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats-express_3\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\examples\serverstats\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\History.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\.travis.yml" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\History.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\commander\Readme.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\Makefile" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\README.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\options\test\fixtures\test.conf" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\tinycolor\.npmignore" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\tinycolor\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\node_modules\tinycolor\README.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\README.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\fixtures\certificate.pem" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\fixtures\key.pem" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\fixtures\request.pem" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\test\fixtures\textfile" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\autotest.watchr" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\node_modules\xmlhttprequest\README.md" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\package.json" />
+    <None Include="node_modules\socket.io\node_modules\socket.io-client\README.md" />
+    <None Include="node_modules\socket.io\package.json" />
+    <None Include="node_modules\socket.io\Readme.md" />
+    <None Include="node_modules\socket.io\TODO" />
+  </ItemGroup>
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>45505</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>
+          </IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>True</UseCustomServer>
+          <CustomServerUrl>http://c.1473.cn</CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 28 - 0
UseStudio.CDB.csproj.user

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <StartPageUrl>
+          </StartPageUrl>
+          <StartAction>CurrentPage</StartAction>
+          <AspNetDebugging>True</AspNetDebugging>
+          <SilverlightDebugging>False</SilverlightDebugging>
+          <NativeDebugging>False</NativeDebugging>
+          <SQLDebugging>False</SQLDebugging>
+          <ExternalProgram>
+          </ExternalProgram>
+          <StartExternalURL>
+          </StartExternalURL>
+          <StartCmdLineArguments>
+          </StartCmdLineArguments>
+          <StartWorkingDirectory>
+          </StartWorkingDirectory>
+          <EnableENC>False</EnableENC>
+          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>

+ 10 - 0
UseStudio.CDB.csproj.vspscc

@@ -0,0 +1,10 @@
+""
+{
+"FILE_VERSION" = "9237"
+"ENLISTMENT_CHOICE" = "NEVER"
+"PROJECT_FILE_RELATIVE_PATH" = ""
+"NUMBER_OF_EXCLUDED_FILES" = "0"
+"ORIGINAL_PROJECT_FILE_PATH" = ""
+"NUMBER_OF_NESTED_PROJECTS" = "0"
+"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
+}

+ 30 - 0
Web.Debug.config

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    在下例中,“SetAttributes”转换将更改 
+    “connectionString”的值,仅在“Match”定位器 
+    查找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <!--
+      在下例中,“Replace”转换将替换 
+      web.config 文件的整个 <customErrors> 节。
+      请注意,由于 
+      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>

+ 31 - 0
Web.Release.config

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    在下例中,“SetAttributes”转换将更改 
+    “connectionString”的值,仅在“Match”定位器 
+    查找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+    <!--
+      在下例中,“Replace”转换将替换 
+      web.config 文件的整个 <customErrors> 节。
+      请注意,由于 
+      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>

+ 13 - 0
Web.config

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  有关如何配置 ASP.NET 应用程序的详细消息,请访问
+  http://go.microsoft.com/fwlink/?LinkId=169433
+  -->
+
+<configuration>
+    <system.web>
+        <compilation debug="true" targetFramework="4.0" />
+    </system.web>
+
+</configuration>

BIN=BIN
bin/US.Develop.dll


BIN=BIN
bin/US.Develop.pdb


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 27 - 0
css/UCD.css


+ 65 - 0
css/UCD_Center.css

@@ -0,0 +1,65 @@
+/*中间部分样式*/
+#UCD_CT{ width:84%; border-left:2px solid buttonshadow; border-right:2px solid buttonshadow;  height:92%;  height:auto;float:left; }
+
+
+/*分隔符*/
+.UCD_Split{ background-color: threedshadow;  width: 2px; height: 100%;  overflow: hidden; float:left;}
+.UCD_Split_BT{ margin-top:250px;  width: 3px; height: 50px; overflow: hidden;  cursor: pointer;}/*分割线按钮*/
+
+/*中间上部Tab切换窗口样式*/
+
+#UCD_CT_Top_Tab{ height:4%; background-color:#b9b9b9; overflow:hidden; } 
+#UCD_CT_Top_Tab ul{ list-style:none;  margin:0; padding:0;  -moz-box-shadow: 0px 0px 4px #000; -webkit-box-shadow:  0px  0px 4px #000; box-shadow:  0px  0px 4px #000;}
+ /*  .UCD_CT_Top_Tab ul li{float:left; height:28px; margin-left:0px; padding:0 8px 0 4px;list-style-type:none;}*/
+.UCD_CT_Top_Tab_Li{ width: 120px; cursor: pointer; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; float: left; line-height: 23px; height: 23px; padding: 0px 15px; width: 78px; background: #ececeb; margin-top: 5px; font-family: 宋体; border: 1px solid #9a9a9a; }
+/*#UCD_CT_Top_Tab ul li:hover{ background-color:#fff;}*/
+/*#UCD_CT_Top_Tab ul li span{text-align:left;line-height:23px; cursor:pointer; display:block; width:100px; float:left; overflow:hidden; font-family:Consolas, 微软雅黑;}*/
+
+.UCD_CT_Top_CR{     background-color: white;border-color: rgb(0, 0, 0) rgb(0, 0, 0) white; height: 24px; margin-top: 3px;}/*当前选中的Tab样式*/
+
+
+/*上部Tab小切换*/
+/*.UCD_CT_Top_Tab_Close { margin: 2px -12px; }*/
+/*.UCD_CT_Top_Tab_Close:hover { background-color:Gray; }*/
+/*.UCD_CT_Top_Tab_Close:hover { border:1px solid red; }*/
+
+
+/*----------------------------------------------------代码窗口----------------------------------------*/
+#UCD_CT_HH_Code{ width:100%; padding:0px; margin:0px;font-size:13px; height:68%; overflow-x:scroll; overflow-y:auto; }
+#UCD_CT_CT{background-color: white;height:92%; min-height:500px; width:100%; overflow:hidden; font-size:16px; font-family:Courier New; }
+/*行号窗口*/
+#UCD_CT_HH_CT{background:#DDD; min-height:100%;  width:35px; float:left; text-align:right; overflow:hidden}
+/*代码窗口*/
+#UCD_CT_Code{padding:0px; margin:0px;font-size:14px; width:100%; height:100%;float:left;}
+/*代码内容窗口,Chrome浏览器下面有红色波浪线,需要解决*/
+#UCD_CT_Code_CT{ text-decoration:none; padding:0px; margin:0px;width:500%; height:1000px;float:left;font-size:14px; font-family:Consolas; }
+
+
+
+
+
+/*代码结果运行大窗口运行界面Css样式表*/
+
+#UCD_RUN{width:100%; height:100%; position:absolute; top:40px; left:0px; background-color:white;}
+.UCD_RUN_Head{width:100%; height:30px; background-color:Window; text-align:center;}
+.UCD_RUN_Refesh{width:100px; height:30px; background-color:ButtonFace; border:1px solid gray; float:left; line-height:30px; cursor:pointer; margin-left:40%; }
+.UCD_RUN_Close{width:100px; height:30px;background-color:ButtonFace;border:1px solid gray; float:left; line-height:30px; cursor:pointer;}
+.UCD_RUN_Iframe{width:100%; height:100%; background-color:red;}
+
+
+/*-----------------------------------------------代码结果显示小窗口---------------------------------*/
+
+#UCD_CT_IF{ width:100%; height:32%; min-height:200px; font-family:微软雅黑; overflow: hidden;}
+.UCD_CT_IF_T{ width:auto; height:22px; background-color:#f1f1f1; font-size:13px; text-align:center; border-bottom:1px solid #666; border-top:1px solid #666;}
+/*.UCD_CT_IF_T_RE{ float:left; margin-left:20px; height:20px;font-size:12px;}*/
+
+.UCD_CT_IF_T_CM{ float:right; height:20px; margin-right: 5px;}
+.UCD_CT_IF_T_CM div{ float: left; min-width: 50px; height: 16px; cursor: pointer; margin-left: 5px; background-color: #f1f1f1; color: #000000; line-height#A1A1A1 margin-top: 2px; border: 1px solid #838383; line-height: 16px; margin-top: 2px;}
+.UCD_CT_IF_T_CM div:hover{background-color:#000000; color:#f1f1f1;}
+
+#UCD_CT_SM_IF{ width:100%; height:100%; min-height:100px; border:none; overflow-y:auto; overflow-x:scroll;}
+
+/*--------------------------------------底部快捷命令按钮-------------------------------------------*/
+#UCD_CT_BT {height: 20px; bottom: 0px; font-size:13px; text-align:center;}
+.UCD_CT_BT_Com{  line-height: 24px; height: 20px; margin: 2px; float: left; color: #020202;  background-color: #EEEEEE; background: linear-gradient(#ffffff, #d8d8d8); background: -webkit-linear-gradient(#ffffff, #d8d8d8); background: -o-linear-gradient(#ffffff, #d8d8d8); background: -moz-linear-gradient(#ffffff, #d8d8d8); cursor: pointer; border: 1px solid #929292; border-bottom: none; margin-top: 3px; margin-bottom: 0px; width: 40px; padding: 2px 10px 5px 10px;}
+.UCD_CT_BT_Com:hover{ background-color: #1979E4; background: linear-gradient(#0d72e3, #5ba0ff); background: -webkit-linear-gradient(#0d72e3, #5ba0ff); background: -o-linear-gradient(#0d72e3, #5ba0ff); background: -moz-linear-gradient(#0d72e3, #5ba0ff); color: #fff;}

+ 40 - 0
css/UCD_Left.css

@@ -0,0 +1,40 @@
+/*左边工具栏样式表*/
+/*工具栏整体样式*/
+.UCD_TT { float:left;  height:100%; display:block; background: #f1f1f1; overflow: hidden; }
+.UCD_TT_L { width: 30px; height: 100%; float: left; background: -webkit-linear-gradient(#4f4f4f, #3c3c3c); background: linear-gradient(#4f4f4f, #3c3c3c); background: #3E3E3E;}
+.UCD_TT_R { width: 160px; height: 100%; float: left;}
+/*最左部新添加*/
+.UCD_TT_L_T { color:#fff; text-align: center; padding-bottom:5px; padding-top:5px;}
+.UCD_TT_L_T:hover { background-color: #252525; }
+.UCD_TT_L_T span { display: block; } 
+/*工具栏头部*/
+.UCD_TT_T { margin: 5px; margin-bottom: 0px; background-color: #fff7dd; height: 30px; line-height: 30px; color: #4e4e4e; cursor: pointer;}
+#UCD_TT_T_N{ text-indent: 1em; font-weight: bold; height: 100%; font-size: 16px; line-height: 30px; float: left;}
+.UCD_TT_T_X{height: 20px; width: 20px; float: right; cursor: pointer; margin: 5px; background: url(../img/icon.png) -14px -39px;}
+
+/*工具栏分项目样式*/
+#UCD_TT_Z{ width:160px; min-height:300px; overflow-y:auto; overflow-x:hidden;}/*中间部分样式。*/
+#UCD_TT_Z div { margin-left: 8px; width: 100%;  height: 30px; line-height: 30px; text-indent: 1em; font-weight: bold; font-size: 12px; border-bottom: 1px solid #ccc; }
+#UCD_TT_Z div:hover{ background-color:#ccc;}
+#UCD_TT_Z div + #UCD_TT_Z_Help:hover{ background-color:#FFFFFF;}
+
+.UCD_TT_P{ cursor:pointer; width:140px; color:Black; text-indent:5px; background-color:#fff7dd; border:1px solid #ffedba;  margin:5px; margin-bottom:0px; }
+
+/*工具栏条目*/
+/*.UCD_TT
+.UCD_TT ul { margin:0; padding:0;}
+.UCD_TT li { line-height: 24px; height:24px;  cursor:pointer; width:160px; margin-top:3px;  }
+.UCD_TT li:hover { background-color:#ffefbb;  }
+.UCD_TT li div {  margin-left:15px;  float:left; display:block; border-radius: 1px;  width: 18px; height:15px; margin-top:5px; line-height: 15px;  text-align: center; vertical-align: middle; color: white; font-family: Arial; font-weight: bold; background: #6B6B6B;}
+.UCD_TT li span {  white-space: nowrap; margin-left:5px; display:block; float:left; text-overflow: ellipsis; width: 120px;vertical-align: middle;}
+
+.UCD_ToolT_TD{line-height: 24px; margin-left:-20px; cursor:pointer; backgroundColor: #6B6B6B; }
+.UCD_ToolT_TD em{margin: 2px 10px 0 11px;  display: inline-block; border-radius: 1px;  width: 20px; line-height: 15px;  text-align: center; vertical-align: middle; color: white; font-family: Arial; font-weight: bold; background: #6B6B6B;}*/
+
+
+.UCD_TT_B{ width:160px; height:100px; }/*左下角广告区域*/
+.UCD_TT_B_T{width:100px; margin:5px; text-align:center; border:1px solid gray; background-color:#fff7dd; }/*广告标题*/
+.UCD_TT_B_G{ width:140px; margin-left:10px; height:80px;}/*广告*/
+
+/*拖动对象*/
+.UCD_TOOLT_Drag {position:absolute; text-align:center; line-height:25px; width:100px; height:25px; border:1px solid gray;}

+ 6 - 0
css/UCD_Out.css

@@ -0,0 +1,6 @@
+/*引用外部项目的css文件*/
+
+/*切换到桌面和编程端的按钮*/
+#UCD_OT_QH{width:100px; height:20px; background-color:white;position:absolute; top:10px; left:10px;color:#333; line-height:20px;}
+.UCD_OT_QH_L{ width:20px; height:20px; background-position: -197px -97px; float:left;}
+.UCD_OT_QH_R{ width:80px; height:20px; float:left;}

+ 97 - 0
css/UCD_Right.css

@@ -0,0 +1,97 @@
+/*右边建立项目文件夹文件*/
+#UCD_RTree{display:none;overflow:hidden;width:220px;height:100%;float:left;font-size:12px;font-family:Consolas, 微软雅黑;}
+/*上部菜单用户信息*/
+.UCD_RT_H{ height:25px; width:100%; background-color:lightblue; line-height:25px;background-color:ButtonFace;}
+
+/*根目录样式*/
+.UCD_RT_Root{  width:100%; height:32px; background-color:#ffedba;line-height:32px; font-size:13px; border-left:1px solid white;     font-weight: bold; }/*根项目样式*/
+
+/*统计信息面板*/
+.UCD_RT_Root_TJ{ width:100%; height:32px; background-color:#ffedba;line-height:32px; font-size:13px; border-left:1px solid white;     font-weight: bold;}
+.UCD_RT_Root_TJ_NR{ float :left; padding-left:8px; height:100%; }
+.UCD_RT_Root_TJ_X{ cursor:pointer; width:20px; height:20px; line-height:20px; float:right;color:White; font-weight:bold; font-size:16px; }
+.UCD_RT_Root_TJ_X:hover{ color:Red;}
+.UCD_RT_Root_ZY{width:100%; height:25px; background-color:ButtonFace;line-height:25px; font-size:13px; font-weight:bold; border-top:2px solid white;}
+.UCD_RT_Root_Z{ margin-left:5px; width:80px; height:25px; float:left;background-color:ButtonFace;line-height:25px; }
+.UCD_RT_Root_C{ cursor:pointer; width:100px; height:25px; float:right; background-color:ButtonFace; text-align:center; line-height:25px; color:Red; }/*创建项目样式*/
+.UCD_RT_Root_C:hover{ color:Black;}
+
+/*树型区域*/
+#UCD_RT_Tree{ width:100%; height:100%; background-color:White; overflow-y:scroll; border-top:2px solid white;}
+
+/*树孩子节点样式*/
+
+.UCD_RT_USTreecontainA{ overflow: hidden;float: left; width:220px;}/*用户树形样式*/
+.UCD_RT_USTTitle      {width:auto; height:30px; padding-left:5px; overflow:hidden;}
+.UCD_RT_USTTitle:hover {  background-color:#f9f9f9; /*border-bottom:1px solid #ccc; border-top:1px solid #ccc;*/ }/*用户树形样式*/
+.UCD_RT_USTreesign{width: 16px;height: 18px;float: left;margin-top:5px; text-align: center; clear:both;}/*用户伸缩节点的样式*/
+
+.UCD_RT_USTreeusestudiodisktreeA{  float: left; height: 28px; min-width:110px; max-width: 140px;  }/*左边文件夹样式*/
+.UCD_RT_USTreecontainA i {float: left; width: 20px; display: inline-block; height: 28px; margin-right: 5px; cursor:pointer;}/*文件图标样式*/
+.UCD_RT_USTreecontainA span{ cursor:pointer; height:22px; min-width:80px; line-height:22px;  margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; display:block;}
+
+/*增删查改样式*/
+.UCD_RT_ZSCG_TB{background-position: -104px -54px; width:20px; height:16px; float:left; }/*增加删除图片*/
+
+/*此处position 起到了固定右边的作用,多测试才能证明是否正确,必须加right:0*/
+.UCD_RT_ZSCG{  float:right;right:0px; margin-right:20px; width:20px; height:20px; line-height:20px; }
+/*.UCD_RT_ZSCG:hover { background-color:Gray; }*/
+.UCD_RT_ZSCG_T{background: #6B6B6B; width:18px; text-align:center; color:White; height:18px; margin-top:5px; line-height:18px; cursor:pointer; float:left;}/*设置图标*/
+
+
+
+.UCD_RT_USTreeComputerIcon{ background-position: -5px -9px;  width: 25px;height: 18px;}/*disk图标*/
+.UCD_RT_USTreeAlbumIcon{background-position: -2px -78px;width: 32px;height: 32px;}/*disk相册图标*/
+
+.UCD_RT_Icon { background-image: url(../img/icon.png); }
+.UCD_RT_ProIcon  {background-position:-371px 0px; }/*项目图标*/
+.UCD_RT_FolderIcon {background-position: -344px 0px; }/*文件夹图标*/
+.UCD_RT_FileIcon {background-position: -277px 0px; } /*文件图标*/
+
+.UCD_RT_USTreeMusicIcon{background-position: -33px -8px;width: 32px;height: 32px;}/*disk音乐图标*/
+.UCD_RT_USTreeVideoIcon{background-position: -91px -9px;width: 32px;height: 32px;}/*disk视频图标*/
+.UCD_RT_USTreeFolderEncryptIcon{background-position: -738px -77px;width: 32px;height: 32px;}/*文件夹加密图标*/
+.UCD_RT_USTreeFolderIcon{background-position: -171px -9px;width: 32px;height: 32px;}/*文件夹原图标*/
+.UCD_RT_USTreeRecycleBin  { background-position: -116px -3px; margin-left:13px; width: 32px;height: 32px; float:left; cursor:pointer;}/*回收站*/
+.UCD_RT_USTreeRecycleBintxt { float:left; margin:8px 0 0 2px;cursor:pointer; }
+.UCD_RT_USTreeRecycleSetup  { background-position: -144px -9px; margin-left:26px;}/*设置*/
+
+
+
+.UCD_RT_I_D_A  { background-position:-170px -5px;}/*添加文件夹图片*/
+.UCD_RT_I_D_Lock  {background-position:-22px -200px; }/*Lock图片*/
+.UCD_RT_I_D_UN   { background-position:-50px -175px; }/*解密的图片*/
+.UCD_RT_I_D_UL  { background-position:-50px -175px;}/*UnLock图片*/
+.UCD_RT_I_D_E   { background-position:-221px -10px;}/*extend文件夹伸展图标*/
+.UCD_RT_I_D_S   { background-position:-201px -10px;}/*shrink文件夹收缩图标*/
+
+
+
+/*创建项目样式*/
+.UCD_TR_CP { height:70px; width:350px; }
+.UCD_TR_CP_T { margin-left:20px; font-weight:bold; height:25px; line-height:25px;}
+.UCD_TR_CP_MS { width:110px; margin-left:20px; height:25px; line-height:25px; float:left;}
+.UCD_RT_CP_Input { width:180px; height:20px; float:left;}
+
+
+
+/*---------------------------------------------------------------------右键命令行创建文件文件夹区域----------------------------------------------*/
+.UCD_RT_FUP        { width: 400px; height: 181px; background-color: White; position: absolute; border: 1px solid black; display: none;}
+.UCD_RT_FUPH {width: 100%;height: 30px;background: url(../images/navigation.png);-moz-border-radius: 5px 5px 0 0;-webkit-border-radius: 5px 5px 0 0;border-radius: 0;box-shadow: 0px 1px 1px #888888;}
+.UCD_RT_FUPHT      { float:left; margin:7px 0 0 10px; color:White;}
+.UCD_RT_FUPC       { width:100%; height:140px;}
+/*头部区域*/
+#UCD_RT_FUPCT      { margin-left:20px; height:20px; margin-top:10px; width:90%; line-height:20px; font-weight:bold; font-size:13px;white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
+/*内容区域*/
+.UCD_RT_FUPCC      { margin-top:10px; width:100%; height:104px; -webkit-overflow-scrolling:touch; overflow-x:hidden;overflow-y:auto; }
+/*单个内容样式*/
+.UCD_RT_Com:hover { background: #414141; color: #fff;}
+.UCD_RT_Com { margin-left: 17px; margin-bottom: 20px; box-shadow: 0px 1px 1px #888888; position: relative; font-size: 12px; font-weight: bold; text-align: center; background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f6f6f6), to(#e7e7e6)); float: left; border-radius: 20px; border: 1px solid #414141; height: 30px; line-height: 30px; color: #363636; cursor: pointer; width: 108px;}
+/*上传Input样式,上面为Div样式,下面为input样式,有技巧的*/
+.UCD_RT_Com_U      { background-position:-160px -30px; margin-left:30px;margin-bottom:5px; font-size:13px; font-weight:bold;  height:20px; line-height:20px; background-color: rgb(0, 136, 204); color: rgb(255, 255, 255); cursor: pointer;  width: 70px; }/*div样式*/
+#UCD_RT_Com_Up     { clear:both; display:block;width:100%; height:100%; cursor:pointer; border:0;color:#666666;background:#eeeeee;-moz-user-select: -moz-none;-webkit-user-select: none;opacity:0;filter:alpha(opacity=0);-moz-opacity:0; position:absolute; top:0px; left:0px;}
+
+
+.UCD_RT_FUPW       { width:100%; height:30px;}
+.UCD_RT_FUPW   div { float:left;}
+.UCD_RT_FUPWT      { color:#BBBBBB; margin: 0px 0 0 10px; font-family:宋体; }

+ 34 - 0
css/UCD_Run.css

@@ -0,0 +1,34 @@
+/*UCD_R作为运行时的样式表*/
+.UCD_R_Tab_Line {cursor:pointer; height:20px; padding-right:6px; line-height:25px; color:#000;}/*行号*/
+.UCD_R_C_Line {line-height:20px; white-space:pre-wrap;}/*代码样式*/
+
+/*Error区域样式表*/
+.UCD_R_E_L { line-height:20px;}
+.UCD_R_E_L:hover {color:Gray;}
+
+.UCD_R_E_Help{ color:Red; font-size:12px;}
+.UCD_R_E_Help:hover{ color:Black;}
+
+/*弹出的Confirm对话框样式*/
+/*.UCD_R_CF { margin-left:20px; width: 300px; height:100px; text-align:left;}
+.UCD_R_CF_AL{ color:red;}
+.UCD_R_CF_WB{ color:black;}*/
+
+
+
+
+/*--------------------------------------------------编辑器提示信息区域------------------------------*/
+#UCD_TP_TB{ background-color:White;height:190px; min-width:200px; position: absolute;top:0px; left:0px; border:1px solid #ccc; overflow-x:hidden; overflow-y:scroll;}
+/*单个条目样式*/
+.UCD_TP_TB_N { height:20px}
+.UCD_TP_TB_N:hover { background-color:Silver;  }
+.UCD_TP_TB_N_D{ border:1px solid white; margin-left:20px; height: 20px; line-height:20px;}/*变量文字*/
+.UCD_TP_TB_N_D:hover{ background-color:rgb(255,236,181);}/*变量文字hover*/
+.UCD_TP_TB_N_T{ float:left; height:20px; width:20px; margin-left:5px; line-height:20px; }/*变量图标*/
+
+/*结果显示窗体*/
+#UCD_R_Result { position:absolute; display:block;}
+/*帮助窗口样式*/
+#UCD_R_ErrHelpWin{ position:absolute; display:block; border:1px solid silver;}
+/*详细错误处理窗口*/
+#UCD_R_ErrHelp, #UCD_R_InAlert{position:absolute; display:block; border:1px solid silver;}

+ 133 - 0
css/UCD_SL.css

@@ -0,0 +1,133 @@
+/*首页示例样式*/
+
+#UCD_SL{ position:absolute;  background-color:White;  display:block;  width:960px; height:70%;position:absolute; top:40px; left:5%; }
+.UCD_SL{ width:20px; height:20px; float:right; font-size:20px;}
+
+/*切换语言*/
+#UCD_L_C{position: absolute;background-color: White;display: block;width: 537px;top: 250px;left:5%;z-index:100;}
+.UCD_L_C_T{width:100%;height: 30px;-moz-border-radius: 5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;border-radius: 0px 0px 0 0;}
+.UCD_SL_C_N{  width:535px; height:271px; border-radius: 0 0 5px 5px; border:1px solid #333333; color:Black; overflow-x:hidden; overflow-y:scroll;}
+.UCD_SL_C_N > p{ margin: 12px 12px 0; font-weight: bold;}
+.UCD_SL_C_L{ width: 98%; height: 70px;}
+.UCD_SL_C_L > div{ width: 145px; height: 41px; text-align: center; line-height: 41px; border-radius: 50px; font-size: 14px; float: left; color: #474747; border: 1px solid #474747; margin: 24px 0px 0px 21px; cursor: pointer; font-weight: bold; 
+                    box-shadow: 0px 1px 0px #8a93a1;background: -webkit-gradient(linear, 0% 0%, 0% 100%,from(#f6f6f6), to(#e9e9e9));}
+.UCD_SL_C_L div:hover{color: White; background:#4c4c4c;}
+
+
+/*头部区域样式,修改了模版颜色*/
+.UCD_SL_T{width:100%;height:30px;background-color:black;-moz-border-radius: 0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;/* border-top: 3px solid #8c8c8c; */}
+.UCD_SL_T{background: -webkit-gradient(linear, left top, left bottom, from(#5a5a5a), to(#3f3f3f));}
+/*.UCD_SL_T_X{ width:30px; float:right; line-height:25px; cursor:pointer; font-size:16px; color:White; font-weight:bold;}*/
+.UCD_SL_T_X{ width:25px; height:30px; float:right; line-height:30px; cursor:pointer; font-size:25px; color:White; font-weight:bold;}
+.UCD_SL_T_X:hover{font-size:30px;}
+/*中部最大区域*/
+.UCD_SL_N{width: 100%;border: 1px solid black;background-color:White;overflow-x:hidden;/*overflow-y:scroll;*/}
+
+.UCD_SL_N_T{height: 75px;background-color: #fff7dd;}/*头部区域*/
+.UCD_SL_N_T_B{ float:left; width:70px;height:70px;}/*头部坐标区域*/
+.UCD_SL_N_T_B_I{width: 60px;height: 53px;float: left;margin-top: 7px;margin-left: 10px;}/*图标*/
+.UCD_SL_N_T_B_N{float:left;  width:360px; text-indent:20px; padding-top:10px;}/*口号*/
+.UCD_SL_N_T_B_N_K { font-size:20px; color:#333; height:35px;}
+.UCD_SL_N_T_B_N_L { color:Blue; cursor:pointer; float:right; height:20px; line-height:20px;}
+
+.UCD_SL_N_T_D{ float:right; background-position:-6px -218px; width:160px; height:90px; cursor:pointer;}/*头部右边区域*/
+.UCD_SL_N_T_D_B {height:25px;line-height:25px; float:left; }
+
+
+/*精华区域、提问区域,搜索样式*/
+.UCD_SL_CD{float: left;text-align: center;height: 75px;margin-left: 50px;}
+.UCD_SL_CD_C  {height: 75px;float: left;line-height: 75px;padding-right: 10px;width:75px;cursor:pointer}
+.UCD_SL_CD_C hover { background-color:Silver; }
+.UCD_SL_CD_S{margin-left: 7px;width:320px;float:left;}
+.UCD_SL_CD_S input{ float:left; height:18px; width:180px;}
+.UCD_SL_CD_S div{float:left;height:25px;line-height:25px;/* background-color:White; */width:50px;text-align:center;margin-left:3px;}
+
+
+
+#UCD_SL_N_F{ margin:10px; margin-left:15px; width:900px; height:60px; background-color:White;  font-weight:bold; font-size:16px;}
+/*#UCD_SL_N_F div{ float:left; margin-left:20px; height:30px; line-height:30px; cursor:pointer; }*/
+/*#UCD_SL_N_F div:hover{ color:Red;}*/
+.UCD_SL_N_F_L{ width:260px; height:60px; float:left;}
+.UCD_SL_N_F_L div{ float:left; margin:5px; font-size:14px; color:tomato;  font-family:@Adobe 繁黑體 Std B; }
+.UCD_SL_N_F_L div:hover { background-color:rgb(0,136,204);}
+#UCD_SL_N_F_R{ width:640px; height:60px; float:left;}/*百度广告*/
+
+.UCD_SL_NN{ width:100%; height:100%; }
+
+#UCD_SL_N_N{ width:100%; min-height:600px; height:100%; font-family:cursive;overflow:hidden   }/*内容区域*/
+/*单条流式布局样式,很奇怪,把float:left写在$$里面的style里面居然不生效,这是一个bug,以后再考虑*/
+.UCD_SL_N_N_L{ float:left;}
+
+
+.UCD_SL_N_N_C{ border:2px solid white; width:140px;   margin:10px; float:left;}  /*单个条目包容器*/
+.UCD_SL_N_N_C:hover{  cursor:pointer;}
+.UCD_SL_N_N_C_RD {width:140px;height:20px;/* background-color:buttonface */}/*高度为0居然可以透明!*/
+.UCD_SL_N_N_C_I { width:185px; height:185px;}/*图片展示*/
+
+.UCD_SL_NN_B{/* height:200px; */}/*页脚*/
+
+
+/*没有示例程序时的提示div*/
+.UCD_SL_TS{font-weight:bold;color:Blue; margin-left:20px; font-size:16px;}
+
+
+
+
+/*发布项目区域*/
+#UCD_FB{  width:500px; height:480px; background-color:White; }
+/*中间样式*/
+.UCD_FB_N{ margin:20px; margin-top:10px;}
+/*头部样式*/
+#UCD_FB_N_T{ height:30px; line-height:30px;}
+/*单行样式*/
+.UCD_FB_N_N_N{ min-height:30px;}
+/*项目简介*/
+.UCD_FB_N_B{width:450px; height:200px; }
+#UCD_FB_N_N_T{ width:350px; height:180px;}
+
+.UCD_FB_N_CK{ height:30px;}
+.UCD_FB_N_CK div {float:left; height:30px; line-height:30px;}
+#UCD_FB_N_CK_CK{ margin-left:20px;}
+
+#UCD_FB_N_N_I{ width:220px;}
+.UCD_FB_NR { width:450px; height:100px;}
+.UCD_FB_NR_L{ width:300px; height:100px; float:left;}
+.UCD_FB_NR_R{    width: 145px;
+    height: 125px;
+    overflow: hidden;
+    float: left;
+    border: 1px solid ButtonFace;}
+#UCD_FB_NR_IMG{ margin-left:10px; width:120px; height:120px;border:2px solid white; cursor:pointer;}
+
+/*发布按钮*/
+.UCD_FB_N_N_N_F{ width:250px; float:left;}
+.UCD_FB_N_N_N_S{ width:100px; height:20px; color:Black;}
+.UCD_SL_CD_S{width: 180px;float: left;margin-top: 20px;}
+.UCD_SL_CD_S input{float: left;width: 180px;height: 28px;border-radius: 20px;background-color: #fcfaf2;border: 1px solid #c2c2c2;padding-left: 10px;}
+.UCD_SL_CD_S input
+{
+    background: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#f0f0f0));
+}
+.UCD_SL_CD_S div{cursor:pointer;float: left;height: 16px;line-height: 25px;width: 16px;margin-left: -30px;background-image: url(../img/search.png);background-repeat: no-repeat;margin-top: 7px;}
+.UCD_SL_N_T_D{float:right;width: 166px;height:75px;cursor:pointer;ma;margin-right: 20px;}/*头部右边区域*/
+.UCD_SL_N_N_C{border: 1px solid #eee;width: 185px;margin: 10px;float: left;height: 320px;overflow: hidden;}  /*单个条目包容器*/
+.UCD_SL_N_N_C:hover{  cursor:pointer;}
+.UCD_SL_N_N_C_N{/* text-indent: 2em; */word-break:break-all;width: 90%;height: 70px;margin: auto;overflow: hidden;/* height: auto; */line-height: 23px;font-size: 13px;font-family: 'Microsoft Yahei';display: -webkit-box;overflow: hidden;text-overflow: ellipsis;-webkit-line-clamp: 3;-webkit-box-orient: vertical;}/*内容介绍*/
+.UCD_SL_N_N_C_T{width:100%;height:30px;line-height:30px;font-weight:bold;overflow:hidden;/* text-align:center; */font-family: Microsoft Yahei;text-indent: 15px;margin-top: 15px;}/*标题*/
+.UCD_SL_N_N_C_R {display:none;float: right;width:20px;height:20px;background:url(../img/pl.png);/* border:1px solid black; */}/*评论*/
+.UCD_SL_N_N_C_S { display:none; margin-left:20px; float:left; width:30px; height:18px; background-color:#e53e49; border:1px solid black;}/*审核*/
+.UCD_SL_N_N_C_D {display:none;float:right;width:20px;height:20px;background:url(../img/dt.png);/* border:1px solid black; */margin-right: 2px;}/*大图*/
+.UCD_SL_N_N_C_XG { display:none; float:right; width:20px; height:20px;margin-right:5px;background:url(../images/example_xg.jpg);background-size:100% 100%; }/*修改*/
+.UCD_SL_N_N_C_SC { display:none; float:right; width:20px; height:20px;margin-right:-67px;margin-top:-165px;background:url(../images/example_delete.jpg);background-size:100% 100%; }/*删除*/
+
+.UCD_SL_NN_B{/* height:200px; */}/*页脚*/
+#UCD_SL_N_N{width:100%;min-height:600px;height:100%;font-family:cursive;background: #f6f6f6;}/*内容区域*/
+/*单条流式布局样式,很奇怪,把float:left写在$$里面的style里面居然不生效,这是一个bug,以后再考虑*/
+.UCD_SL_N_N_L{ float:left; height:auto;}
+.UCD_SL_N_N_C{border: 1px solid #eee;width: 185px;margin: 10px;float: left;height: 320px;overflow: hidden;/* padding-bottom: 10px; */background: white;}  /*单个条目包容器*/
+.UCD_SL_N_N_C:hover{  cursor:pointer;}
+.UCD_SL_N_N_C_RD {width:100%;height:20px;/* background: white; */margin-top: -20px;position: relative;/* border: none; */}/*高度为0居然可以透明!*/
+.UCD_SL_N_N_C_I { width:185px; height:185px;}/*图片展示*/
+.UD_SYF_SCO {
+    overflow-x: hidden
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 57 - 0
css/UCD_TOP.css


+ 131 - 0
css/UJ.css

@@ -0,0 +1,131 @@
+/*html,body{ width:100%; height:100%; margin:0; padding:0; font-family:Consolas; font-size:14px;}*/
+
+/*所有生成控件的样式*/
+
+
+/*由于需要源代码显示,所以最好不要有样式,全部内置到代码中。。。。。大家要学习新的方法。*/
+
+
+
+/*全部绝对定位,以便于在界面上定位*/
+/*弹窗样式*/
+.Radius5{-moz-border-radius: 5px;-webkit-border-radius:5px;border-radius:0;}
+.UDL						{background-image:url(http://www.1473.cn/img/dialogue-1.png);}
+.U_UI_dialogue			    {width:350px;position:absolute;top:200px;left:100px; -moz-box-shadow: 0px 1px 5px #8e8e8e; -webkit-box-shadow: 0px 1px 5px #8e8e8e;box-shadow: 0px 1px 5px #8e8e8e;background-color:white;border:1px solid #e4e4e4;}
+.U_UI_dltop				    {width:100%;height:33px; }
+.U_UI_dldrag				{width:80%;height:100%;float:left;font-size:16px;line-height:35px;font-family:"微软雅黑";color:#5e93d7; text-indent:10px;}
+.U_UI_dlclose				{width:25px;height:25px;float:right;cursor:pointer; margin-right:10px;}
+.U_UI_dlcontent			    {width:100%;float:left;}
+.U_UI_dltext				{width:90%;height:80%;margin-left:5%;}
+.U_UI_dlbutton			    {width:160px;height:30px; float:right; margin:0 8px 8px 0;}
+.U_UI_dlyes				    {width:50px;height:30px; text-align:center;float:right;color:White;font-family:微软雅黑;line-height:30px; cursor:pointer; background-color:#3398ff; margin-right:15px;  }	
+.U_UI_dlno				    {width:60px;height:32px;background-position:-98px -218px;float:left;margin-left:5px;}
+.U_UI_dlno:hover			{background-position:-34px -94px; cursor:pointer;}
+.U_UI_dlnoSR                { width:250px; height:43px; float:left; margin:0px; background-position:-27px -15px; margin:10px 0 0 47px; }
+
+/*命令窗口关闭按钮样式*/
+.UDK_UP_TC       { width:30px; height:28px; float:right; line-height:20px; margin:0 3px 0 5px; background-position:-170px -220px;}
+.UDK_UP_TC:hover { background-position:-139px -220px; cursor:pointer;}
+
+
+
+
+/*-----------------------------------------------------------------------有思图片区域------------------------------------------------------------*/
+.U_ImgPic{background-image:url(http://www.1473.cn/img/U_Img.png);}/*图片樣式*/
+/*整体样式*/
+.U_Img{position:absolute; z-index:1; width:440px; background-color:#fff; min-width:400px; padding-bottom:10px; }/*  box-shadow: 0px 0px 10px #000000; -webkit-box-shadow:0 0 10px black; -moz-box-shadow:0 0 10px black; border-bottom:1px solid #949494;*/
+/*上一张的按钮*/
+.U_Img_Change{width:28px; height:33px; position:absolute; top:100px; z-index:2; cursor:pointer; }
+.U_Img_Change:hover{width:71px;}
+.U_Img_Prev{background-position:-50px -71px;  left:0px;}
+.U_Img_Prev:hover{background-position:-8px -71px; }
+/*下一张的按钮*/
+.U_Img_Next{background-position:-4px -121px; right:0px;}
+/*关闭按钮*/
+.U_Img_Close{width:83px;height:30px; background-position:-92px -72px; margin-right:5px; margin-top:3px;  cursor:pointer; float:right;}
+.U_Img_Close:hover{background-position:-92px -122px;}
+/*移动框*/
+.U_Img_Move{width:100%; height:25px; background-color:#4b75ad; cursor:pointer;}
+/*.U_Img_Move:hover{height:15px; top:0px; cursor:pointer;}*/
+/*U_Img图片框*/
+.U_Img_Info{cursor:pointer; min-height:100px;  overflow:hidden; margin-top:10px; }
+
+/*U_Img操作框  如放大缩小收藏*/  /*a标签是对应的功能操作*/
+.U_Img .U_Img_Operate{ text-align:left; overflow:hidden; line-height:35px; width:100%; height:35px; background-color:rgba(255,255,255,0.5); *background-color:#fff; }
+.U_Img:hover .U_Img_Operate{height:35px;}
+.U_Img .U_Img_Operate a{padding:0 5px; margin-top:5px; height:25px; line-height:25px; display:block; cursor:pointer; float:left;}
+.U_Img .U_Img_Operate a:hover{background-color:#333; color:#fff;}
+.U_Img .U_Img_Operate i{display:block; float:left; width:25px; height:25px;}
+.U_Img .U_Img_Operate div   {float:left;}
+.U_Img .U_Img_Operate a .zoomIn{background-position:0px -26px;}/*放大图标*/
+.U_Img .U_Img_Operate a:hover .zoomIn{background-position:0px -0px;}
+.U_Img .U_Img_Operate a .zoomOut{background-position:-26px -26px;}/*缩小图标*/
+.U_Img .U_Img_Operate a:hover .zoomOut{background-position:-26px -0px;}
+.U_Img .U_Img_Operate a .Lrotate{background-position:-51px -26px;}/*向左转图标*/
+.U_Img .U_Img_Operate a:hover .Lrotate{background-position:-51px -0px;}
+.U_Img .U_Img_Operate a .Rrotate{background-position:-76px -26px;}/*向右转图标*/
+.U_Img .U_Img_Operate a:hover .Rrotate{background-position:-76px -0px;}
+.U_Img .U_Img_Operate a .Love{background-position:-101px -26px;}/*收藏图标*/
+.U_Img .U_Img_Operate a:hover .Love{background-position:-101px -0px;}
+.U_Img .U_Img_Operate a .Download{background-position:-126px -26px;}/*下载图标*/
+.U_Img .U_Img_Operate a:hover .Download{background-position:-126px -0px;}
+.U_Img_transition{transition:All 0.2s ease;-webkit-transition:All 0.2s ease;-moz-transition:All 0.2s ease;-o-transition:All 0.2s ease;}/*未知属性 ie chrome无法识别*/
+
+/*U_Img评论区*/
+.U_Img_Comment{line-height:22px; display:none; padding:5px; margin:10px 0; list-style:none; overflow:hidden;}
+.U_Img_Comment li{border-bottom:1px dotted #ccc; padding:5px 0; margin:0;}
+.U_Img_Comment li .face{margin:5px; float:left;}
+.U_Img_Comment .U_Img_ComInput{ width:100%; color:#555; margin:0; padding:0; line-height:25px; height:50px;}
+
+
+/*--------------------------------------------------窗体区域样式表-------------------------------------------*/
+/*拉伸样式*/
+.UD_W_WT_H { position: absolute; overflow: hidden; cursor: n-resize; left: 0px; top: 0px; width: 100%; height: 5px; display: block; }
+.UD_W_WT_HL { position: absolute; overflow: hidden; cursor: ne-resize; right: 0px; top: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_HR { position: absolute; overflow: hidden; cursor: nw-resize; left: 0px; top: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_ML { position: absolute; overflow: hidden; cursor: w-resize; left: 0px; top: 0px; width: 5px; height: 100%; display: block; }
+.UD_W_WT_MR { position: absolute; overflow: hidden; cursor: e-resize; right: 0px; top: 0px; width: 5px; height: 100%; display: block; }
+.UD_W_WT_B { position: absolute; overflow: hidden; cursor: s-resize; left: 0px; bottom: 0px; width: 100%; height: 5px; display: block; }
+.UD_W_WT_BL { position: absolute; overflow: hidden; cursor: sw-resize; left: 0px; bottom: 0px; width: 7px; height: 12px; display: block; }
+.UD_W_WT_BR { position: absolute; overflow: hidden; cursor: se-resize; right: 0px; bottom: 0px; width: 7px; height: 12px; display: block;}
+
+
+/*桌面窗口整体样式,这里面有些没有用了,下一次清除掉。*/
+.UD_UIU                     {display:none; border-radius: 8px;  box-shadow: 0px 0px 10px #000000; -webkit-box-shadow:0 0 10px black; -moz-box-shadow:0 0 10px black; overflow: hidden;}
+.UD_WIMG                    {background:url(http://www.1473.cn/img/windowGround.png);} 
+.UD_ICON                    {background:url(http://www.1473.cn/img/windowOE.png); }
+.UD_ICONl                   {background-position:-2px 0px; width: 15px; height: 34px;float:left;clear:both;}
+.UD_ICONR                   {background-position:105px -36px;width: 15px; height: 34px;float:left;}
+.UD_ICONz                   {background-position: -21px -52px;padding:0 2px 2px 2px; background-color:White; width:auto; height:100%; clear:both; margin:auto;}
+.UD_ICONTl                  {width: 15px; height: 25px;float: left;background-position: -58px -12px;clear:both;}
+.UD_ICONTz                  {height: 25px; float: left;background-position: 0px -4088px;}
+.UD_ICONTR                  {width: 15px; height: 25px; float:left;background-position: -110px -12px;}
+.UD_ICONImg                 {width: 93px; height: 25px;background-position: -6px -45px; margin:auto; }
+.UD_W                       {position: absolute; }
+.UD_UserLeft                {-moz-box-shadow: 1px 2px 10px #3d3d3d; -webkit-box-shadow: 1px 2px 10px #3d3d3d; box-shadow: 1px 2px 10px #3d3d3d; width:130px; height:331px; float:left; background-position:-13px -76px;}
+.UD_UserLeftChild           {width:100%; height:98px; }
+.UD_UserNavigate            {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-15px -154px; }
+.UD_UserGroup               {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-45px -154px;}
+.UD_Userrecently            {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-116px -156px;}
+.UD_UserEmail               {width:26px; height:24px; margin-left:17px; margin-top:9px; float:left; background-position:-82px -155px;}
+.UD_UserNavigatefat         {width:129px; height:44px;cursor:pointer;}
+.UD_UserNavigatefat:hover   {background-color:#033b6c;}
+.UD_UserNavigatebo          {width:130px; height:29px; background-position:-17px -45px;float:left; clear:left;}
+.UD_Shadow                  {width:211px; height:331px; }
+.UD_SD                      {-moz-box-shadow: 1px 2px 10px #3d3d3d; -webkit-box-shadow: 1px 2px 10px #3d3d3d; box-shadow: 1px 2px 10px #3d3d3d;}
+.UD_W_TB                    {height: 34px; line-height:33px; width:100%;  float:left; }/*头部拖动区域样式*/
+.UD_W_TB_T                  {font-size:14px; font-weight:bold; color:#5e5e5e; font-family:微软雅黑; float:left;}/*拖动区域标题*/
+.UD_W_TB_S                  {height: 5px; width: 100%; display: block; }/*头部区域背景样式*/
+.UD_W_TB_WM                 {display:inline-block; float:right;}/*放大缩小区域*/
+.UD_W_TB_WMS                {width: 30px; color: #3366ff; height: 28px; line-height: 20px;  display: inline-block; float: right; }
+.UD_W_TB_WM span            {width: 30px; color: #3366ff; height: 28px; line-height: 20px;  display: inline-block; float: right; }/*放大缩小样式*/
+.UD_W_TB_WM span:hover      {color: #fff; cursor: pointer; }
+.UD_W_TB_MQ                 {display:inline-block; height:20px;margin:2px 0 0 10px;}/*头部说明区域*/
+.UD_W_TB_WM_Min             {background-position:-12px -80px }/*最小化图标*/
+.UD_W_TB_WM_Min:hover       {background-position: -12px -122px }
+.UD_W_TB_WM_Max             {background-position:-47px -79px; }/*最大化图标*/
+.UD_W_TB_WM_Max:hover       {background-position: -47px -121px; }
+.UD_W_TB_WM_Close           {background-position:-79px -80px; width:30px; height:25px; float:right; margin-right:5px; }/*关闭图标*/
+.UD_W_TB_WM_Close:hover     {background-position: -79px -122px; }
+.UD_W_WC                    {width: 100%; overflow: hidden; background-color:White; }/*整体样式*/
+.UD_ICONBG                  {background:url(http://www.1473.cn/img/newsbg.jpg) -5px 0px no-repeat;}

+ 57 - 0
css/U_Reg.css

@@ -0,0 +1,57 @@
+html body { width:746px; height:350px; margin:0; padding:0; background-color:White; font-size:14px;font-family:Consolas, 微软雅黑; color:#333;}/*总定义*/
+
+/*登录注册图片*/
+.UCD_RT_TreeIcon  {background-image: url(http://d.1473.cn/img/UCD_RT.png);}/*右侧树项目图标*/
+
+#U_R{ width:746px; height:350px; background-color:White;}/*大模版定义*/
+
+.U_R_L{  width:325px; height:340px; background-color:#eeeeee; margin:5px; float:left; margin-left:10px; } /*登录*/
+.U_R_L_T{ background-color:#34aadc; width:325px; height:85px;}/*登录头部定义*/
+.U_R_L_T div {float:left;}
+.U_R_L_T_L{color:White; font-size:30px; margin-top:30px; margin-left:20px;}
+
+
+.U_R_L_N{ width:325px; height:155px; margin-top:30px;}/*登录内容定义*/
+.U_R_L_N_T{ width:250px; height:30px; margin-left:30px;}/*登录输入框定义*/
+.U_R_L_N_T div { width:40px; margin-right:5px; text-align:right; height:30px; line-height:30px; float:left;}/*信息区域*/
+.U_R_L_N_T input { float:left; width:180px; height:25px; line-height:25px;}/*input定义*/
+
+.U_R_L_N_J{ width:250px; height:30px; margin-left:40px; margin-top:15px;}/*记住我的登录状态*/
+.U_R_L_N_J input{ width:16px; height:16px; margin-top:5px; float:left}/*checkbox*/
+.U_R_L_N_J div{ height:30px; line-height:30px;}
+
+/*登录和忘记密码*/
+.U_R_L_N_DW{ width:275px; height:40px; margin-left:45px;margin-top:10px;}
+/*登录按钮*/
+.U_R_L_N_D{cursor:pointer; float:left;  width:86px; height:32px; line-height:32px; color:White; font-weight:bold; background-color:#34aadc; text-align:center;}/*登录按钮*/
+.U_R_L_N_W{ float:right; cursor:pointer; }/*忘记密码*/
+
+
+.U_R_L_B{ width:325px; height:70px; background-color:#d2d2d2;}/*登录底部定义*/
+.U_R_L_B_S{ width:325px; height:30px; font-size:14px; line-height:30px; text-indent:2em; color:White;}/*第三方帐户登陆*/
+.U_R_L_B_B{ width:325px; height:40px;}/*第三方账号登录*/
+.U_R_L_B_B_QQ{ cursor:pointer; margin-left:20px; width:130px; height:30px; float:left; background-position: -11px -222px}/*QQ登录*/
+.U_R_L_B_B_WB{ cursor:pointer; margin-left:20px; width:130px; height:30px; float:left; background-position: -157px -222px;}/*微博登录*/
+
+
+/*--------------------------------------------------------------------------注册页面-------------------------------------*/
+.U_R_R{  width:375px; height:340px; background-color:#eeeeee; margin:5px; float:left; margin-left:20px; } /*注册*/
+.U_R_R_T{ background-color:#34aadc; width:375px; height:85px;}/*注册头部信息*/
+.U_R_R_T div {float:left;}
+
+
+.U_R_R_D{ margin:5px; margin-left:10px; height:30px; width:360px;}/*注册单个条目样式*/
+.U_R_R_D_D  { height:30px; line-height:30px; width:60px; float:left; text-align:right; margin-right:5px; }/*所有注册信息定义*/
+.U_R_R_D input { height:20px; line-height:20px; width:150px; float:left;}/*所有注册信息定义*/
+
+
+.U_R_R_X{margin:5px; margin-left:10px; height:30px; width:280px;}/*有思云协议*/
+.U_R_R_X_C{ float:left; width:20px; margin-left:50px; margin-top:5px; }/*选择框*/
+.U_R_R_X_X{ float:left; width:200px; height:30px; line-height:30px;}/*协议内容*/
+
+/*注册按钮*/
+.U_R_R_Z{ cursor:pointer; margin-left:140px; width:86px; height:32px; line-height:32px; color:White; font-weight:bold; background-color:#34aadc; text-align:center;}/*注册按钮*/
+
+
+/*错误提示*/
+.U_R_ErrorTip { float:left; width:130px;  text-align:left;  display:block; font-size:12px; cursor:text; height:30px; line-height:30px; }

+ 12 - 0
domain-policy.htm

@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <meta http-equiv="Cache-Control" content="max-age=8640000" />
+    <script type="text/javascript">
+        document.domain = '1473.cn';
+    </script>
+</head>
+<body>
+</body>
+</html>

+ 5 - 0
help.txt

@@ -0,0 +1,5 @@
+注释:  nodejs  调试参数
+/k node --debug-brk usmain.js  & pause   & exit
+
+注释: nodejs 非调试启动
+/k node usmain.js  & pause   & exit

BIN=BIN
images/007.png


BIN=BIN
images/base.gif


BIN=BIN
images/bg.gif


BIN=BIN
images/cd.gif


BIN=BIN
images/eis_1.gif


BIN=BIN
images/eis_2.gif


BIN=BIN
images/eis_bg.gif


BIN=BIN
images/empty.gif


BIN=BIN
images/example_delete.jpg


BIN=BIN
images/example_xg.jpg


BIN=BIN
images/folder.gif


BIN=BIN
images/folder.png


BIN=BIN
images/folderopen.gif


BIN=BIN
images/im/div.png


BIN=BIN
images/im/image.png


BIN=BIN
images/im/input.png


BIN=BIN
images/im/nav-list-bg.png


BIN=BIN
images/im/table.png


BIN=BIN
images/join.gif


BIN=BIN
images/joinbottom.gif


BIN=BIN
images/left_sidebar_bottom.png


BIN=BIN
images/left_sidebar_middle.png


BIN=BIN
images/left_sidebar_top.png


BIN=BIN
images/line.gif


BIN=BIN
images/logo - 副本.jpg


BIN=BIN
images/logo.png


BIN=BIN
images/menu_divider.png


BIN=BIN
images/minus.gif


BIN=BIN
images/minusbottom.gif


BIN=BIN
images/navi_sep.gif


BIN=BIN
images/navigation.png


BIN=BIN
images/page.gif


BIN=BIN
images/plus.gif


BIN=BIN
images/plusbottom.gif


BIN=BIN
images/sy.jpg


BIN=BIN
images/v1_bg.gif


BIN=BIN
images/v1_bg2.jpg


BIN=BIN
img/UCD_RT.png


BIN=BIN
img/icon.png


+ 417 - 0
index.html

@@ -0,0 +1,417 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns:wb="http://open.weibo.com/wb" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <!--强制ie7,ie8 innerText换行符为空格,不好办-->
+    <meta http-equiv="X-UA-Compatible" content="IE=7" />
+    <meta http-equiv="pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" />
+    <meta name="Keywords" content="在线编程|云编程|在线HTML|在线HTML5" />
+    <meta name="description" content="在线编程|云编程|javascript|html5。,无需安装、登录即可使用!国内首款在线编程平台,能带你快速学习Javascript编程,支持在线学习javascript,html5,css。后期会推出在线C语言,在线PHP等语言。。" />
+    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta property="wb:webmaster" content="31656711026d7228" />
+    <meta property="qc:admins" content="103224276361473636" />
+    <meta name="baidu-tc-cerfication" content="2380c76f3aa8a080de8fda7e2659a58b" />
+    <script type="text/javascript">        document.domain = "1473.cn";</script>
+    <!--引用1473的样式表-->
+    <link href="http://www.1473.cn/uform.css" rel="stylesheet" type="text/css" />
+    <!--js命名空间  U.CD   CSS命名空间   UCD_-->
+    <!--直接引用1473的js文件-->
+    <script src="http://www.1473.cn/uform.js" type="text/javascript"></script>
+    <script src="http://www.1473.cn/uformd.js" type="text/javascript"></script>
+    <!--主样式表-->
+    <link href="./css/UCD.css" rel="stylesheet" type="text/css" />
+    <!--上部菜单样式表-->
+    <link href="./css/UCD_TOP.css" rel="stylesheet" type="text/css" />
+    <!--左边控件样式表-->
+    <link href="./css/UCD_Left.css" rel="stylesheet" type="text/css" />
+    <!--中间代码窗口样式表-->
+    <link href="./css/UCD_Center.css" rel="stylesheet" type="text/css" />
+    <!--右边树的样式表-->
+    <link href="./css/UCD_Right.css" rel="stylesheet" type="text/css" />
+    <!--示例项目样式-->
+    <link href="./css/UCD_SL.css" rel="stylesheet" type="text/css" />
+    <!--运行时代码窗口的样式表-->
+    <link href="./css/UCD_Run.css" rel="stylesheet" type="text/css" />
+    <!--引用外部项目时的css样式表-->
+    <link href="./css/UCD_Out.css" rel="stylesheet" type="text/css" />
+    <!--引用1473的图片效果CSS-->
+    <link href="css/UJ.css" rel="stylesheet" type="text/css" />
+    <!--布局js文件-->
+    <script src="./js/U.CD.Layout.js" type="text/javascript"></script>
+    <!--运行时js文件-->
+    <script src="./js/U.CD.Run.js" type="text/javascript"></script>
+    <!--主js文件-->
+    <script src="./js/U.CD.js" type="text/javascript"></script>
+    <!--上部菜单栏js文件-->
+    <script src="./js/U.CD.Top.js" type="text/javascript"></script>
+    <!--左边控件js文件-->
+    <script src="./js/U.CD.Left.js" type="text/javascript"></script>
+    <!--用户登录注册等js-->
+    <script src="./js/U.CD.U.js" type="text/javascript"></script>
+    <!--右边树js文件-->
+    <script src="./js/U.CD.Right.js" type="text/javascript"></script>
+    <!--各种控件代码-->
+    <script src="./js/U.CD.CL.js" type="text/javascript"></script>
+    <!--代码区域js文件-->
+    <script src="./js/U.CD.Code.js" type="text/javascript"></script>
+    <!--代码提示js文件-->
+    <script src="./js/U.CD.Tips.js" type="text/javascript"></script>
+    <!--示例项目区域-->
+    <script src="./js/U.CD.SL.js" type="text/javascript"></script>
+    <!--文件类型,如果Html js等。-->
+    <script src="./js/U.CD.FileType.js" type="text/javascript"></script>
+    <!--url重新登。-->
+    <script src="./js/U.CD.Url.js" type="text/javascript"></script>
+    <!--其他杂项-->
+    <script src="./js/U.CD.Other.js" type="text/javascript"></script>
+    <!--C语言错误处理-->
+    <script src="./js/U.CD.CError.js" type="text/javascript"></script>
+    <!--引用1473主项目功能-->
+    <script src="./js/U.CD.OutApp.js" type="text/javascript"></script>
+    <!--终端-->
+    <script src="./js/U.CD.Wetty.js" type="text/javascript"></script>
+</head>
+<body oncontextmenu="return false">
+    <div id="UCD_Contain">
+        <!--上部菜单-->
+        <div id="UCD_TOP">
+            <img class="UCD_TOP_A" onclick="U.CD.OU.CHDesk('d')" alt="云编程" src="http://www.1473.cn/img/cloudlogo.png" />
+            <div class="UCD_TOP_List">
+                <!--<div class=" UCD_TOP_List brand">
+                首页</div>-->
+                <div class="UCD_TOP_List_C" id="UCD_TOP_L_XJ" onclick="U.CD.R.NewPro()">
+                    新建项目</div>
+                <div class="UCD_TOP_List_C" onclick="U.CD.R.NewFile()">
+                    新建文件</div>
+                <div class="UCD_TOP_List_C" onclick="U.CD.LO.HEToolbar()">
+                    工具箱</div>
+                <div class="UCD_TOP_List_C" onclick="U.CD.LO.OCZY()">
+                    资源管理器</div>
+                <!--<div class="UCD_TOP_List_C" id="UCD_TOP_L_CZ" onclick="U.CD.T.ReDo()">
+                重做</div>-->
+                <div class="UCD_TOP_List_C" onclick="U.CD.R.OpenRun()">
+                    运行</div>
+                <div id="UCD_TOP_SY" class="UCD_TOP_List_C" onclick="U.CD.T.SY()">
+                    切换语言</div>
+                <div id="Div1" class="UCD_TOP_List_C" onclick="U.CD.T.SuccessfulCase()">
+                    成功案例</div>
+                <div class="UCD_TOP_List_C" onclick="U.CD.OU.Forum()">
+                    论坛</div>
+                <div class="UCD_TOP_List_C" id="UCD_TOP_L_BC">
+                    保存
+                </div>
+                <div class="UCD_TOP_List_C" onclick="U.CD.Wetty.Init()">
+                    终端
+                </div>
+            </div>
+            <div id="UCD_TOP_AL">
+            </div>
+            <div id="UCD_TOP_L">
+                <div id="UCD_TOP_L_DL" onclick="U.CD.U.LoginApply() ">
+                    登陆</div>
+            </div>
+        </div>
+        <!--下部内容-->
+        <div id="UCD_Bottom">
+            <!--左边工具栏-->
+            <div class="UCD_TT" style="display: block;" id="UCD_TT">
+                <div class="UCD_TT_L">
+                    <div class="UCD_TT_L_T">
+                        <span>云</span> <span>端</span> <span>示</span><span>例</span>
+                    </div>
+                    <div class="UCD_TT_L_T" onclick="U.CD.LO.HEToolbar()">
+                        <span>工</span> <span>具</span> <span>箱</span></div>
+                </div>
+                <div class="UCD_TT_R" id="UCD_TT_R">
+                    <div class="UCD_TT_T">
+                        <div id="UCD_TT_T_N">
+                            C语言</div>
+                        <div class="UCD_TT_T_X" onclick="U.CD.LO.HEToolbar()">
+                        </div>
+                    </div>
+                    <div id="UCD_TT_Z">
+                        <!--<div class="UCD_TT_B_G"><iframe src="proxy.html?id=897887" width="125" height="125" scrolling="no" frameborder="0" style="display:block;margin:0"></iframe></div>-->
+                    </div>
+                </div>
+            </div>
+            <!--分割线-->
+            <!--<div class="UCD_Split">
+            <div title="展开" onclick="U.CD.LO.HEToolbar(this)" class="UCD_Split_BT">
+            </div>
+        </div>-->
+            <!--代码和效果展示区域-->
+            <div id="UCD_CT" class="UCD_CT">
+                <!--代码切换选项卡-->
+                <div id="UCD_CT_Top_Tab">
+                    <ul>
+                    </ul>
+                </div>
+                <!--代码和代码预览窗口-->
+                <div id="UCD_CT_CT">
+                    <!--具体代码以及行号-->
+                    <div id="UCD_CT_HH_Code">
+                        <!--代码行号-->
+                        <div id="UCD_CT_HH_CT">
+                        </div>
+                        <!--具体代码-->
+                        <div id="UCD_CT_Code">
+                            <div id="UCD_CT_Code_CT" spellcheck="false" contenteditable="true">
+                            </div>
+                        </div>
+                    </div>
+                    <!--代码预览窗口-->
+                    <div id="UCD_CT_IF">
+                        <div class="UCD_CT_IF_T">
+                            <!--     <div class="UCD_CT_IF_T_RE">
+                                输出窗口</div>-->
+                            <div class="UCD_CT_IF_T_CM">
+                                <div id="UCD_CT_IF_PL">
+                                    评论</div>
+                                <div onclick="U.CD.R.Help()">
+                                    帮助</div>
+                                <!--<div onclick="U.CD.CD.ExecIF($('#UCD_CT_Code_CT')[0])">设计窗口运行</div>
+                            <div onclick="U.CD.R.OpenRun()">新窗口运行</div>-->
+                            </div>
+                        </div>
+                        <!--<iframe src="RS.htm" scrolling="yes" frameborder="0" width="100%" name="UCD_CT_SM_IF" id="UCD_CT_SM_IF"></iframe>-->
+                        <div style="overflow: scroll; width: 100%; -moz-user-select: -moz-all; -webkit-user-select: auto;"
+                            onselectstart="U.M.StopBubble(); return true;" id="UCD_CT_SM_IF">
+                        </div>
+                    </div>
+                </div>
+                <!--保存和视图-->
+                <div id="UCD_CT_BT">
+                    <div class="UCD_CT_BT_Com" onclick="U.CD.LO.View()">
+                        输出</div>
+                    <div class="UCD_CT_BT_Com" onclick="U.CD.LO.Split()">
+                        拆分</div>
+                    <div class="UCD_CT_BT_Com" onclick="U.CD.LO.Code()">
+                        代码</div>
+                </div>
+            </div>
+            <!--右边建立项目、文件夹、文件-->
+            <div id="UCD_RTree" style="display: none;">
+            </div>
+        </div>
+        <!--新建文件件和文件面板,这个也可以独立成一个控件,现在是在1473主项目中拷贝的上传文件的样式。-->
+        <div id="UCD_RT_FUP" class="UCD_RT_FUP Radius5" style="display: none;">
+            <div class="UCD_RT_FUPH" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+                <div class="UCD_RT_FUPHT">
+                    云编程命令接口窗口</div>
+                <div title="关闭" class="UCD_RT_DiskGE UDK_UP_TC" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                    onmousedown="U.M.StopBubble()">
+                </div>
+            </div>
+            <div class="UCD_RT_FUPC">
+                <div id="UCD_RT_FUPCT">
+                </div>
+                <div id="UCD_RT_FUPCC" class="UCD_RT_FUPCC">
+                </div>
+            </div>
+            <!--<div class="UCD_RT_FUPW">
+                <div class="UCD_RT_FUPWT">
+                    提示:选取上面的命令行进入相应功能!
+                </div>
+            </div>-->
+        </div>
+        <!--示例项目-->
+        <div id="UCD_SL" style="display: none;">
+            <div class="UCD_SL_T" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+                <div class="UCD_RT_FUPHT">
+                    成功案例
+                </div>
+                <div title="关闭" class="UCD_SL_T_X" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                    onmousedown="U.M.StopBubble()">
+                    ×
+                </div>
+            </div>
+        </div>
+        <div id="UCD_L_C" class="Radius5" style="display: none">
+            <div class="UCD_L_C_T" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+                <div class="UCD_RT_FUPHT">
+                    云编程语言切换窗口
+                </div>
+                <div title="关闭" class="UCD_SL_T_X" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                    onmousedown="U.M.StopBubble()">
+                    x
+                </div>
+            </div>
+            <div class="UCD_SL_C_N">
+                <p>
+                    请选择你所要进行切换的语言:</p>
+                <div class="UCD_L_C_L">
+                    <div onclick="U.CD.CL.Change('C')">
+                        C语言
+                    </div>
+                    <div onclick="U.CD.CL.Change('PHP')">
+                        PHP
+                    </div>
+                    <div onclick="U.CD.CL.Change('Python')">
+                        Python
+                    </div>
+                    <div onclick="U.CD.CL.Change('Nodejs')">
+                        Nodejs
+                    </div>
+                    <div onclick="U.CD.CL.Change('Ruby')">
+                        Ruby
+                    </div>
+                    <div onclick="U.CD.CL.Change('Perl')">
+                        Perl
+                    </div>
+                    <div onclick="U.CD.CL.Change('Lisp')">
+                        Lisp
+                    </div>
+                    <div onclick="U.CD.CL.Change('Net')">
+                        Net
+                    </div>
+                    <div onclick="U.CD.CL.Change('Html5')">
+                        前端
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!--发布项目样式区域-->
+        <div id="UCD_FB" class="UCD_RT_FUP Radius5">
+            <!--            <div class="UCD_RT_FUPH" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+                <div class="UCD_RT_FUPHT">
+                    发布项目窗口</div>
+                <div title="关闭" class="UCD_RT_DiskGE UDK_UP_TC" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                    onmousedown="U.M.StopBubble()">
+                </div>
+            </div>-->
+            <div class="UCD_FB_N">
+                <div id="UCD_FB_N_T">
+                </div>
+                <div id="UCD_FB_N_N" class="UCD_FB_N_N">
+                    <div class="UCD_FB_N_N_N">
+                        <span style="margin-top: -230px;">项目名称:</span><input type="text" id="UCD_FB_N_N_Name" />
+                    </div>
+                    <div class="UCD_FB_N_B">
+                        <span>项目简介:</span><textarea id="UCD_FB_N_N_T"></textarea>
+                    </div>
+                    <div class="UCD_FB_N_CK">
+                        <div>
+                            项目类型:
+                        </div>
+                        <div id="UCD_FB_N_CK_CK">
+                            <input type="radio" checked="checked" />
+                        </div>
+                    </div>
+                    <div class="UCD_FB_NR">
+                        <div class="UCD_FB_NR_L">
+                            <div class="UCD_FB_N_N_N">
+                                <span>项目图片:</span><input type="file" value="上传图片" id="UCD_FB_N_N_I" name="UCD_FB_N_N_I"
+                                    multiple="true" accept="image/gif,image/jpeg,image/png" onchange="U.CD.O.UPFile(this)" />
+                            </div>
+                            <div class="UCD_FB_N_N_N">
+                                <span>项目价格:</span><input type="text" id="UCD_FB_N_N_P" />
+                            </div>
+                            <div class="UCD_FB_N_N_N">
+                                <div class="UCD_FB_N_N_N_F">
+                                </div>
+                                <input id="UCD_FB_N_N_N_S" type="submit" value="点此发布" />
+                            </div>
+                        </div>
+                        <div class="UCD_FB_NR_R">
+                            <img alt="云操作系统" id="UCD_FB_NR_IMG" title="http://www.1473.cn/img/qqew.jpg" src="http://www.1473.cn/img/qqew.jpg" />
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="UCD_RT_FUPW">
+                <div class="UCD_RT_FUPWT">
+                    提示:选取上面的命令行进入相应功能!
+                </div>
+            </div>
+        </div>
+        <!--登录注册区域-->
+        <!--<div id="UCD_LR" class="UCD_LR Radius5" style="display: none;">
+        <div class="UCD_SL_T" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_RT_FUPHT">
+                云注册 云登录</div>
+            <div title="关闭" class="UCD_SL_T_X" onclick="U.CD.U.CloseW(this);" onmousedown="U.M.StopBubble()">
+                X
+            </div>
+        </div>
+        <div class="UCD_LR_N">
+            <iframe src="http://d.1473.cn/U_LR_I.htm" scrolling="no" frameborder="0" width="746"
+                height="350" name="UCD_LR_I" id="UCD_LR_I"></iframe>
+        </div>
+    </div>-->
+        <!--全局LoadingDiv-->
+        <div id="UCD_LD">
+            <span>初始化数据,请稍候。。。</span> <span class="UCD_LD_Reload" onclick="this.parentNode.style.display='none'">
+                X </span>
+        </div>
+        <!--语言切换-->
+        <div id="UCD_L">
+            <div class="UCD_L_H" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+                <div class="UCD_L_H_L">
+                    编程语言切换面板</div>
+                <div class="UCD_L_H_X" onclick="U.CD.CL.CloseChange(this)" onmousedown="U.M.StopBubble()">
+                    X</div>
+            </div>
+            <div class="UCD_L_C">
+                <div class="UCD_L_C_T">
+                    无需安装linux环境!无需复杂的配置!瞬间切换语言环境!</div>
+                <div class="UCD_L_C_L">
+                    <div onclick="U.CD.CL.Change('C')">
+                        C语言</div>
+                    <div onclick="U.CD.CL.Change('PHP')">
+                        PHP</div>
+                    <div onclick="U.CD.CL.Change('Python')">
+                        Python</div>
+                    <div onclick="U.CD.CL.Change('Nodejs')">
+                        Nodejs</div>
+                    <div onclick="U.CD.CL.Change('Ruby')">
+                        Ruby</div>
+                    <div onclick="U.CD.CL.Change('Perl')">
+                        Perl</div>
+                    <div onclick="U.CD.CL.Change('Lisp')">
+                        Lisp</div>
+                    <div onclick="U.CD.CL.Change('Net')">
+                        Net</div>
+                    <div onclick="U.CD.CL.Change('Html5')">
+                        前端</div>
+                </div>
+                <div class="UCD_LCC">
+                    <div onclick="U.CD.SL.LangSL('C')" style="margin-left: 30px;">
+                        C示例</div>
+                    <div onclick="U.CD.SL.LangSL('PHP')">
+                        PHP示例</div>
+                    <div onclick="U.CD.SL.LangSL('Net')">
+                        Net示例</div>
+                    <div onclick="U.CD.SL.LangSL('Python')">
+                        Python示例</div>
+                    <div onclick="U.CD.SL.LangSL('Nodejs')">
+                        Nodejs示例</div>
+                    <div onclick="U.CD.SL.LangSL('Ruby')">
+                        Ruby示例</div>
+                    <div onclick="U.CD.SL.LangSL('Perl')">
+                        Perl示例</div>
+                    <div onclick="U.CD.SL.LangSL('Lisp')">
+                        Lisp示例</div>
+                </div>
+                <div id="UCD_L_C_GG">
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--调用1473主域内容测试-->
+    <!--<iframe src="http://www.1473.cn" id="UCD_M" name="UCD_M"
+    width="0" height="0"></iframe> <div id="UCD_M1473"></div>-->
+</body>
+</html>
+<script>
+    var _hmt = _hmt || [];
+    (function () {
+        var hm = document.createElement("script");
+        hm.src = "https://hm.baidu.com/hm.js?34d86e4f882eb037cfeb64edfe9101e9";
+        var s = document.getElementsByTagName("script")[0];
+        s.parentNode.insertBefore(hm, s);
+    })();
+</script>

+ 394 - 0
index1.htm

@@ -0,0 +1,394 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns:wb="http://open.weibo.com/wb" xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <title></title>
+    <!--强制ie7,ie8 innerText换行符为空格,不好办-->
+    <meta http-equiv="X-UA-Compatible" content="IE=7" />
+    <meta http-equiv="pragma" content="no-cache" />
+    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
+    <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" />
+    <meta name="Keywords" content="在线编程|云编程|在线HTML|在线HTML5" />
+    <meta name="description" content="在线编程|云编程|javascript|html5。,无需安装、登录即可使用!国内首款在线编程平台,能带你快速学习Javascript编程,支持在线学习javascript,html5,css。后期会推出在线C语言,在线PHP等语言。。" />
+    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta property="wb:webmaster" content="31656711026d7228" />
+    <meta property="qc:admins" content="103224276361473636" />
+    <meta name="baidu-tc-cerfication" content="2380c76f3aa8a080de8fda7e2659a58b" />
+    <script type="text/javascript">        document.domain = "1473.cn";</script>
+    <!--引用1473所有样式-->
+    <link href="http://www.1473.cn/css/UC21.css" rel="stylesheet" type="text/css" />
+    <link href="http://c.1473.cn/UCDC.css" rel="stylesheet" type="text/css" />
+    
+
+    <!--js命名空间  U.CD   CSS命名空间   UCD_-->
+    <!--直接引用1473的js文件-->
+    <script src="http://www.1473.cn/uform.js" type="text/javascript"></script>
+    <!--测试把1473主项目作为子iframe引用到本项目-->
+    <script src="http://www.1473.cn/js/UC/UD21.js" type="text/javascript"></script>
+
+    <script src="http://c.1473.cn/UCDC.js" type="text/javascript"></script>
+
+
+</head>
+<body oncontextmenu="return false">
+    <div id="UCD_Contain">
+    <!--上部菜单-->
+    <div id="UCD_TOP">
+        <img class="UCD_TOP_A" onclick="U.CD.OU.CHDesk('d')" alt="云编程" src="http://www.1473.cn/img/cloudlogo.png" />
+        <div class="UCD_TOP_List">
+            <!--<div class=" UCD_TOP_List brand">
+                首页</div>-->
+            <div class="UCD_TOP_List_C" id="UCD_TOP_L_XJ" onclick="U.CD.R.NewPro()">
+                新建项目</div>
+            <div class="UCD_TOP_List_C"  onclick="U.CD.R.NewFile()">
+                新建文件</div>
+            <div class="UCD_TOP_List_C" id="UCD_TOP_L_BC">
+                保存</div>
+            <div class="UCD_TOP_List_C" onclick="U.CD.LO.HEToolbar()">
+                工具箱</div>
+            <div class="UCD_TOP_List_C" onclick="U.CD.LO.OCZY()">
+                资源管理器</div>
+            <!--<div class="UCD_TOP_List_C" id="UCD_TOP_L_CZ" onclick="U.CD.T.ReDo()">
+                重做</div>-->
+            <div class="UCD_TOP_List_C" onclick="U.CD.R.OpenRun()">
+                运行</div>
+            <div id="UCD_TOP_SY" class="UCD_TOP_List_C" onclick="U.CD.T.SY()">
+                切换语言</div>
+            <div class="UCD_TOP_List_C" onclick="U.CD.OU.Forum()">
+                论坛</div>
+        </div>
+        <div id="UCD_TOP_AL">
+        </div>
+        <div id="UCD_TOP_L">
+            <div id="UCD_TOP_L_DL" onclick="U.CD.U.LoginApply() ">
+                登陆</div>
+        </div>
+    </div>
+    <!--下部内容-->
+    <div id="UCD_Bottom">
+        <!--左边工具栏-->
+        <div id="UCD_TT" class="UCD_TT" style="display: block;">
+            <div class="UCD_TT_T">
+                <div id="UCD_TT_T_N">
+                    C语言</div>
+                <div class="UCD_TT_T_X" onclick="U.CD.LO.HEToolbar(this)">
+                    X</div>
+            </div>
+            <div id="UCD_TT_Z">
+                <!--<div class="UCD_TT_B_G"><iframe src="proxy.html?id=897887" width="125" height="125" scrolling="no" frameborder="0" style="display:block;margin:0"></iframe></div>-->
+            </div>
+        </div>
+        <!--分割线-->
+        <!--<div class="UCD_Split">
+            <div title="展开" onclick="U.CD.LO.HEToolbar(this)" class="UCD_Split_BT">
+            </div>
+        </div>-->
+        <!--代码和效果展示区域-->
+        <div id="UCD_CT" class="UCD_CT">
+            <!--代码切换选项卡-->
+            <div id="UCD_CT_Top_Tab">
+                <ul>
+                </ul>
+            </div>
+            <!--代码和代码预览窗口-->
+            <div id="UCD_CT_CT">
+                <!--具体代码以及行号-->
+                <div id="UCD_CT_HH_Code">
+                    <!--代码行号-->
+                    <div id="UCD_CT_HH_CT">
+                    </div>
+                    <!--具体代码-->
+                    <div id="UCD_CT_Code">
+                        <div id="UCD_CT_Code_CT" spellcheck="false" contenteditable="true">
+                        </div>
+                    </div>
+                </div>
+                <!--代码预览窗口-->
+                <div id="UCD_CT_IF">
+                    <div class="UCD_CT_IF_T">
+                        <div class="UCD_CT_IF_T_RE">
+                            输出窗口</div>
+                        <div class="UCD_CT_IF_T_CM">
+                            <div id="UCD_CT_IF_PL">
+                                评论</div>
+                            <div onclick="U.CD.R.Help()">
+                                帮助</div>
+                            <!--<div onclick="U.CD.CD.ExecIF($('#UCD_CT_Code_CT')[0])">设计窗口运行</div>
+                            <div onclick="U.CD.R.OpenRun()">新窗口运行</div>-->
+                        </div>
+                    </div>
+                    <!--<iframe src="RS.htm" scrolling="yes" frameborder="0" width="100%" name="UCD_CT_SM_IF" id="UCD_CT_SM_IF"></iframe>-->
+                    <div style="overflow: scroll; width: 100%; -moz-user-select: -moz-all; -webkit-user-select: auto;"
+                        onselectstart="U.M.StopBubble(); return true;" id="UCD_CT_SM_IF">
+                    </div>
+                </div>
+            </div>
+            <!--保存和视图-->
+            <div id="UCD_CT_BT">
+                <div class="UCD_CT_BT_Com" onclick="U.CD.LO.View()">
+                    输出</div>
+                <div class="UCD_CT_BT_Com" onclick="U.CD.LO.Split()">
+                    拆分</div>
+                <div class="UCD_CT_BT_Com" onclick="U.CD.LO.Code()">
+                    代码</div>
+            </div>
+        </div>
+        <!--右边建立项目、文件夹、文件-->
+        <div id="UCD_RTree" style="display: none;">
+        </div>
+    </div>
+    <!--新建文件件和文件面板,这个也可以独立成一个控件,现在是在1473主项目中拷贝的上传文件的样式。-->
+    <div id="UCD_RT_FUP" class="UCD_RT_FUP Radius5" style="display: none;">
+        <div class="UCD_RT_FUPH" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_RT_FUPHT">
+                云编程命令接口窗口</div>
+            <div title="关闭" class="UCD_RT_DiskGE UDK_UP_TC" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                onmousedown="U.M.StopBubble()">
+            </div>
+        </div>
+        <div class="UCD_RT_FUPC">
+            <div id="UCD_RT_FUPCT">
+            </div>
+            <div id="UCD_RT_FUPCC" class="UCD_RT_FUPCC">
+            </div>
+        </div>
+        <div class="UCD_RT_FUPW">
+            <div class="UCD_RT_FUPWT">
+                提示:选取上面的命令行进入相应功能!
+            </div>
+        </div>
+    </div>
+    <!--示例项目-->
+    <div id="UCD_SL" class="Radius5" style="display: none;">
+        <div class="UCD_SL_T" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_RT_FUPHT">
+                云编程语言切换窗口</div>
+            <div title="关闭" class="UCD_SL_T_X" onclick="U.CD.T.CloseSY(this);" onmousedown="U.M.StopBubble()">
+                X
+            </div>
+        </div>
+        <div class="UCD_SL_N">
+            <div class="UCD_SL_N_T">
+                <div class="UCD_SL_N_T_B">
+                    <img class="UCD_SL_N_T_B_I" alt="http://www.1473.cn" src="http://www.1473.cn/img/cloudlogo.png" />
+                    <div class="UCD_SL_N_T_B_N">
+                        <!--<div class="UCD_SL_N_T_B_N_K">
+                            云编程:让你我一起编程,共同进步。</div>
+                        <div class="UCD_SL_N_T_B_N_L" onclick='U.CD.SL.PubPro()'>
+                            发布自己的项目</div>-->
+                        <div id="UCD_SL_N_F_R"></div>
+                    </div>
+                </div>
+                <div class="UCD_SL_N_T_D">
+                    <div style="width:150px;">
+                        <img style="float: left;" alt="http://www.1473.cn" width="64" height="64" src="http://www.1473.cn/img/qqew.jpg"
+                            onclick="window.open('http://www.1473.cn')" />
+                        <div style="float: left; width: 80px; margin-top:5px;">
+                            <div style="width:230px; height:25px;"> <wb:follow-button uid="3934163141" type="red_1" width="67" height="24" ></wb:follow-button> </div>
+                            <a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=bd0da8199b3ba73a4812241efaba9b444b8cb7646016a13a7d31730c9c09e0a8">
+                                <img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="javascript高手群"
+                                        title="javascript高手群"></a>
+                        </div>
+                    </div>
+                    <!--<div class="UCD_SL_N_T_D_B"> 技术QQ群:337510064。</div>-->
+                    <input class="UCD_SL_N_T_B_N_L" type=button onclick='U.CD.SL.PubPro()' value="发布自己的项目" />
+                </div>
+            </div>
+            <div class="UCD_L_C_T">
+                无需安装linux环境!无需复杂的配置!瞬间切换语言环境!</div>
+            <div class="UCD_L_C_L">
+                <div onclick="U.CD.CL.Change('C')" >
+                    C语言</div>
+                <div onclick="U.CD.CL.Change('PHP')">
+                    PHP</div>
+                <div onclick="U.CD.CL.Change('Python')">
+                    Python</div>
+                <div onclick="U.CD.CL.Change('Nodejs')">
+                    Nodejs</div>
+                <div onclick="U.CD.CL.Change('Ruby')">
+                    Ruby</div>
+                <div onclick="U.CD.CL.Change('Perl')">
+                    Perl</div>
+                <div onclick="U.CD.CL.Change('Lisp')">
+                    Lisp</div>
+                <div onclick="U.CD.CL.Change('Net')">
+                    Net</div>
+                <div onclick="U.CD.CL.Change('Html5')">
+                    前端</div>
+            </div>
+            <!--<div id="UCD_SL_N_F">
+                <div class="UCD_SL_N_F_L">
+                </div>
+            </div>-->
+            <div class="UCD_L_N">
+                <div class="UCD_L_NU_T">
+                    最近访问用户</div>
+                <div id="UCD_L_NU"></div>
+            </div>
+
+            <div class="UCD_SL_CD">
+                <div class="UCD_SL_CD_C" onclick="U.CD.SL.Type('JH')">
+                    精品区域</div>
+                <div class="UCD_SL_CD_C" onclick="U.CD.SL.Type('TW')">
+                    提问区域</div>
+                <div class="UCD_SL_CD_C" onclick="U.CD.SL.Type('ZY')">
+                    作业区域</div>
+                <div class="UCD_SL_CD_C" onclick="U.CD.SL.Type('KJ')">
+                    控件区域</div>
+                <div class="UCD_SL_CD_S">
+                    <input type="text" /><div onclick="U.CD.SL.Sou(this)">
+                        搜索</div>
+                </div>
+            </div>
+            <div class="UCD_SL_NN">
+                <div id="UCD_SL_N_N">
+                </div>
+                <div class="UCD_SL_NN_B">
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--发布项目样式区域-->
+    <div id="UCD_FB" class="UCD_RT_FUP Radius5" style="display: none;">
+        <div class="UCD_RT_FUPH" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_RT_FUPHT">
+                发布项目窗口</div>
+            <div title="关闭" class="UCD_RT_DiskGE UDK_UP_TC" onclick="U.D.WindowMin(this.parentNode.parentNode);"
+                onmousedown="U.M.StopBubble()">
+            </div>
+        </div>
+        <div class="UCD_FB_N">
+            <div id="UCD_FB_N_T">
+            </div>
+            <div id="UCD_FB_N_N" class="UCD_FB_N_N">
+                <div class="UCD_FB_N_N_N">
+                    <span style="margin-top: -230px;">项目名称:</span><input type="text" id="UCD_FB_N_N_Name" />
+                </div>
+                <div class="UCD_FB_N_B">
+                    <span>项目简介:</span><textarea id="UCD_FB_N_N_T"></textarea>
+                </div>
+                <div class="UCD_FB_N_CK">
+                    <div>
+                        项目类型:
+                    </div>
+                    <div id="UCD_FB_N_CK_CK">
+                        <input type="radio" checked="checked" />
+                    </div>
+                </div>
+                <div class="UCD_FB_NR">
+                    <div class="UCD_FB_NR_L">
+                        <div class="UCD_FB_N_N_N">
+                            <span>项目图片:</span><input type="file" value="上传图片" id="UCD_FB_N_N_I" name="UCD_FB_N_N_I"
+                                multiple="true" accept="image/gif,image/jpeg,image/png" onchange="U.CD.O.UPFile(this)" />
+                        </div>
+                        <div class="UCD_FB_N_N_N">
+                            <span>项目价格:</span><input type="text" id="UCD_FB_N_N_P" />
+                        </div>
+                        <div class="UCD_FB_N_N_N">
+                            <div class="UCD_FB_N_N_N_F">
+                            </div>
+                            <input id="UCD_FB_N_N_N_S" type="submit" value="点此发布" />
+                        </div>
+                    </div>
+                    <div class="UCD_FB_NR_R">
+                        <img alt="云操作系统" id="UCD_FB_NR_IMG" title="http://www.1473.cn/img/qqew.jpg" src="http://www.1473.cn/img/qqew.jpg" />
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="UCD_RT_FUPW">
+            <div class="UCD_RT_FUPWT">
+                提示:选取上面的命令行进入相应功能!
+            </div>
+        </div>
+    </div>
+    <!--登录注册区域-->
+    <!--<div id="UCD_LR" class="UCD_LR Radius5" style="display: none;">
+        <div class="UCD_SL_T" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_RT_FUPHT">
+                云注册 云登录</div>
+            <div title="关闭" class="UCD_SL_T_X" onclick="U.CD.U.CloseW(this);" onmousedown="U.M.StopBubble()">
+                X
+            </div>
+        </div>
+        <div class="UCD_LR_N">
+            <iframe src="http://d.1473.cn/U_LR_I.htm" scrolling="no" frameborder="0" width="746"
+                height="350" name="UCD_LR_I" id="UCD_LR_I"></iframe>
+        </div>
+    </div>-->
+    <!--全局LoadingDiv-->
+    <div id="UCD_LD">
+        <span>初始化数据,请稍候。。。</span> <span class="UCD_LD_Reload" onclick="this.parentNode.style.display='none'">X
+            </span>
+    </div>
+    <!--语言切换-->
+    <div id="UCD_L">
+        <div class="UCD_L_H" onmousedown="U.M.StopBubble();U.D.DragMouseDown(this.parentNode);">
+            <div class="UCD_L_H_L">
+                编程语言切换面板</div>
+            <div class="UCD_L_H_X" onclick="U.CD.CL.CloseChange(this)" onmousedown="U.M.StopBubble()">
+                X</div>
+        </div>
+        <div class="UCD_L_C">
+            <div class="UCD_L_C_T">
+                无需安装linux环境!无需复杂的配置!瞬间切换语言环境!</div>
+            <div class="UCD_L_C_L">
+                <div onclick="U.CD.CL.Change('C')" >
+                    C语言</div>
+                <div onclick="U.CD.CL.Change('PHP')">
+                    PHP</div>
+                <div onclick="U.CD.CL.Change('Python')">
+                    Python</div>
+                <div onclick="U.CD.CL.Change('Nodejs')">
+                    Nodejs</div>
+                <div onclick="U.CD.CL.Change('Ruby')">
+                    Ruby</div>
+                <div onclick="U.CD.CL.Change('Perl')">
+                    Perl</div>
+                <div onclick="U.CD.CL.Change('Lisp')">
+                    Lisp</div>
+                <div onclick="U.CD.CL.Change('Net')">
+                    Net</div>
+                <div onclick="U.CD.CL.Change('Html5')">
+                    前端</div>
+            </div>
+            <div class="UCD_LCC">
+                <div onclick="U.CD.SL.LangSL('C')" style="margin-left: 30px;">
+                    C示例</div>
+                <div onclick="U.CD.SL.LangSL('PHP')">
+                    PHP示例</div>
+                <div onclick="U.CD.SL.LangSL('Net')">
+                    Net示例</div>
+                <div onclick="U.CD.SL.LangSL('Python')">
+                    Python示例</div>
+                <div onclick="U.CD.SL.LangSL('Nodejs')">
+                    Nodejs示例</div>
+                <div onclick="U.CD.SL.LangSL('Ruby')">
+                    Ruby示例</div>
+                <div onclick="U.CD.SL.LangSL('Perl')">
+                    Perl示例</div>
+                <div onclick="U.CD.SL.LangSL('Lisp')">
+                    Lisp示例</div>
+            </div>
+          
+            <div id="UCD_L_C_GG"></div>
+        </div>
+    </div>
+    </div>
+    <!--调用1473主域内容测试-->
+    <!--<iframe src="http://www.1473.cn" id="UCD_M" name="UCD_M" width="0" height="0"></iframe>
+    <div id="UCD_M1473"></div>-->
+</body>
+</html>
+<%-- ----------------------------------------------通用函数------------------------------------ --%>
+<!--广告区域-->
+<script src="http://www.1473.cn/js/UD/U.D.AD.js" type="text/javascript"></script>
+
+<%--腾讯QQ,微博等的集成js--%>
+<script src="http://www.1473.cn/js/UU/U.U.OT.js" type="text/javascript"></script>
+
+
+
+
+

+ 169 - 0
js/U.CD.CError.js

@@ -0,0 +1,169 @@
+//注册C语言错误处理问题
+
+Namespace.register("U.CD.CE");
+
+//所有错误类型全局变量!
+U.CD.CE.EI = [
+    [ "case label does not reduce to an integer constant", "GCC中,case语句后面只能跟常量,比如:1,2等,不能是表达式!也不能是变量" ],
+    [ "duplicate case value", "Switch语句的每个case必须有一个唯一的常量表达式值。否则导致此类错误发生." ],
+    [ "undeclared (first use in this function)", "前面的变量没有定义,需要明确定义为 int aaa,或者其他类型." ],
+    [ "unknown type name ‘student’", "定义结构体时发生的错误,不知道的类型 student." ],
+    [ "incompatible types when assigning to type ‘char[10]’ from type ‘char *’","不能给字符串数组直接赋值,只能用字符串拷贝函数strcpy拷贝。"],
+    [ "expected ‘;’ before ‘for’", "for循环前面变量没有定义,错误在前面一句话。" ],
+    ["expected ‘;’ before ‘int’", "在整形前面没有分号,其实是上一句前面少一个分号!"],
+    ["unknown type name", "变量未定义,请定义为int 或者其他类型。"],
+    ["expected ‘;’ before ‘)’ token", "在括号前要加分号!"],
+    ["warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat]", "printf打印语句%d必须对应一个变量"],
+    ["stray", "不能输入中文字符!"]
+];
+
+U.CD.CE.Net = [
+    ["The name `printf' does not exist in the current context"," 系统中不存在此函数!"],
+    ["Literal of type double cannot be implicitly converted to type `float'. Add suffix `f' to create a literal of this type", "浮点型变量定义必须在数字后面加f"],
+    ["Unexpected symbol `class', expecting `.', `::', `;', `<', or `='","using语句后面没有加;分号"],
+    ["does not contain a static `Main' method suitable for an entry point", "必须有一个名字为Main的静态函数"],
+    ["Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type", "C#数组定义方法和C不一样,是这样定义的int[] i"],
+    ["Array initializers can only be used in a variable or field initializer. Try using a new expression instead",""],
+    ["An object reference is required to access non-static member `main.max(int, int)'", "方法必须定义为静态的才能给Main调用"],
+    ["Array type specifier, [], must appear before parameter name",""],
+    ["System.Console' does not contain a definition for `Wrtie'","输出语句的Write您打错了"],
+    ["Wrong preprocessor directive",""],
+    [],
+    []
+];
+
+U.CD.CE.Python = [
+    ["Non-ASCII character '\xe5' in file ./userfiles/cb58171ad95315b8bc6c3dc095b660b2.py on line 1, but no encoding declared", "暂时不支持中文!"],
+    ["expected an indented block",""],
+    []
+];
+
+U.CD.CE.Ruby = [
+    ["undefined method `[]' for nil:NilClass", "Ruby循环和传统语言不一样,是小于等于,不是小于,意味着循环10次是从0到9,不是从0到10."],
+    ["undefined local variable or method","没有定义的变量或者方法,需要定义!"],
+    []
+]
+
+
+//-----------------------------------------------错误处理逻辑--------------------------------------------
+
+//判断编译是否成功。
+U.CD.CE.BuildErr = function (s) {
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i;
+    for (i = 0; i < z.length; i++) if (z[i].indexOf('标准错误输出') > -1) return true;
+    return false;
+}
+
+//默认的错误处理函数,不指定行数,也不定义帮助
+U.CD.CE.DefErr = function (d, s) {
+    s = s.replace(/标准错误输出:/g, ""); //替换掉所有标准错误输出只留下第一个
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i;
+    d.innerHTML = ""; //行号清空
+    for (i = 0; i < z.length; i++) { $$("div", { "className": "UCD_R_E_L", "innerText": z[i] }, d); } //绘制行号
+}
+
+
+
+//C语言错误处理方法。
+U.CD.CE.CErr = function (d, s) {
+    var z = s.replace(/\r\n/g, '\n').split('\n'), t, b,i;
+    d.innerHTML = ""; //行号清空
+    for (i = 0; i < z.length; i++) {
+        //标准错误输出:./output/de135e620dfcb01a10d36297a54708c2.c:5:1: error: ‘asfdsadf’ undeclared (first use in this function)
+        t = z[i].split(':'); //需要把上面的字符拆分出来,以指出具体错误。
+        t.splice(1, 1); //去掉output/文件名.物理删除
+        z[i] = t.join(':'); //合并截取掉的字符串输出。
+        //如果是错误输出,追加帮助信息,警告信息暂时不理,其他信息也不理了。
+        if (t[3] && t[3].trim() == "error") {
+            b = $$("div", { "className": "UCD_R_E_L", "innerText": z[i], "onclick": [U.CD.CE.CErrLine, ([t, "retElement"])] }, d);
+            $$("span", { "innerText": "             帮助", "className": "UCD_R_E_Help", "onclick": [[U.M.StopBubble], [U.CD.CE.CErrHelp, ([t])]] }, b);
+        }
+        else {
+            $$("div", { "className": "UCD_R_E_L", "innerText": z[i] }, d); ; //绘制行号
+        }
+    }
+}
+
+//单击错误时转到相应错误行。传入的参数为行列
+U.CD.CE.CErrLine = function (t, o) {
+    var l = $("#UCD_CT_Code_CT")[0], row;
+    var r = t[1] - 1, c = t[2];
+    //如果数组第三位是错误,则智能标识错误。
+    if (U.CD.R.CErrF != null) U.CD.R.CErrF.style.backgroundColor = "white"; //把以前的错误信息颜色重置。
+    U.CD.R.CErrF = l.getElementsByTagName("div")[r];
+    U.CD.R.CErrF.style.backgroundColor = "red";
+}
+//具体错误帮助
+U.CD.CE.CErrHelp = function (t) {
+    //首先判断是否已经有帮助在后面
+    var b = U.CD.CE.EI, i, r = null;
+    for (i = 0; i < b.length; i++) {
+        if (t[4].indexOf(b[i][0]) > -1) {
+            r = b[i];
+        }
+    }
+    if (r) { U.UI.SUForms(r[1], "错误处理窗口", "UCD_R_ErrHelp", "color:red;", 300, 200); }
+    else { alert("暂未收录此错误,请到反馈意见中添加此错误类型!"); }
+}
+
+
+//Nodejs错误处理,nodejs错误只会显示第一次出错的地方,有多个"标准错误输出:",需要截取掉。组成一行。
+U.CD.CE.NodeErr = function (d, s) {
+    s = s.replace(/标准错误输出:/g, ""); //替换掉所有标准错误输出只留下第一个
+    var z = s.replace(/\r\n/g, '\n').split('\n'), t, b;
+    d.innerHTML = ""; //行号清空
+    for (i = 0; i < z.length; i++) {
+        //如果是错误输出,追加帮助信息,警告信息暂时不理,其他信息也不理了。
+        if (z[i].indexOf("标准错误输出:test.js:")>-1) {
+            b = $$("div", { "className": "UCD_R_E_L", "innerText": z[i], "onclick": [U.CD.CE.NodeErrLine, ([z[i], "retElement"])] }, d);
+            $$("span", { "innerText": "             帮助", "className": "UCD_R_E_Help", "onclick": [[U.M.StopBubble], [U.CD.CE.NodeErrHelp, ([t])]] }, b);
+        }
+        else { $$("div", { "className": "UCD_R_E_L", "innerText": z[i] }, d); } //绘制行号
+    }
+}
+U.CD.CE.NodeErrLine = function (t, o) {
+    var l = $("#UCD_CT_Code_CT")[0];
+    var r = parseInt(t.split(':')[2])-1;
+    //如果数组第三位是错误,则智能标识错误。
+    if (U.CD.R.CErrF != null) U.CD.R.CErrF.style.backgroundColor = "white"; //把以前的错误信息颜色重置。
+    U.CD.R.CErrF = l.getElementsByTagName("div")[r];
+    U.CD.R.CErrF.style.backgroundColor = "red";
+}
+U.CD.CE.NodeErrHelp = function () {
+    //首先判断是否已经有帮助在后面
+    var b = U.CD.CE.EI, i, r = null;
+    for (i = 0; i < b.length; i++) {
+        if (t[4].indexOf(b[i][0]) > -1) {
+            r = b[i];
+        }
+    }
+    if (r) { U.UI.SUForms(r[1], "错误处理窗口", "UCD_R_ErrHelp", "color:red;", 300, 200); }
+    else { alert("暂未收录此错误,请到反馈意见中添加此错误类型!"); }
+}
+
+
+
+//PHP语言错误处理方法
+U.CD.PHPErr = function (d, s) {
+    
+}
+
+
+
+//--------------lisp语言错误处理方式-----------------
+//lisp语言由于bug的原因会报EFAULT Bad address错误,需要另外处理,以弹出正确结构。因为是Bug,暂时放在前台处理。
+U.CD.CE.LispErr = function (d,s) {
+    //判断标准错误输出和运行环境Linux+Lisp语言中间是否有字符,或者判断第二行是否有字符,如果程序错误z[2]中应该包含了标准错误输出
+    //lisp print语句会先换行导致z[1]为空  format不会先换行,所以这里有点麻烦
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i, r = "";
+    var k = s.substring(17, s.indexOf("标准错误输出")); //截取"运行环境Linux+Lisp语言"和"标准错误输出"之间的字符串,如果为空则表示有错误
+    if (k.lTrim().length == 0) {
+        //U.CD.CE.DefErr($("#UCD_CT_SM_IF")[0], "Linux+Lisp程序出错,请把 (format t \"hello\")语句放在第一行,逐行判断错误!");
+        U.CD.CE.DefErr($("#UCD_CT_SM_IF")[0], s);
+    }
+    //去掉标准错误字样,只显示正确结果
+    else {
+        for (i = 0; i < z.length; i++) { if (z[i].indexOf("标准错误输出") > -1) break; else r += z[i] + "\n"; }
+        U.CD.R.ORAsynOK(r);
+    }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 412 - 0
js/U.CD.CL.js


+ 446 - 0
js/U.CD.Code.js

@@ -0,0 +1,446 @@
+/*代码显示窗口*/
+Namespace.register("U.CD.CD");
+
+
+//还需要解决的问题是粘贴过来的多行字符会折换成一行。
+
+
+//------------------------------------------------------当拖动一个元素到iframe区域后,追加代码到Code区域-------------------------------
+//参数h为待追加元素。
+U.CD.CD.AppendHTML = function (h) {
+    //获取代码区域
+    var _HH = $("#UCD_CT_HH_CT")[0], _CA = $("#UCD_CT_Code_CT")[0]; //行号和代码区域
+    var _ins = U.CD.CD.SplitHTML(h.outerHTML); //待插入元素数组。//有些浏览器不支持此属性,没办法。只能随主流。
+    //找到Body所在节点。
+    var _codes = _CA.getElementsByTagName("div"); //获取代码区域div数组,以循环查找body。解决了前后空格问题
+    for (var i = 0; i < _codes.length; i++) {
+        if (_codes[i].innerText.trim().toLowerCase() == "<body>") {//找到Body后追加添加的元素。
+            //找到>符合的位置,下面元素前面追加几个空格
+            var _space = _codes[i].innerText.indexOf('>')-1;
+            //在元素前面追加空格,封装到U.MS。很多地方要用到。
+            for (var j = 0; j < _ins.length; j++) {
+                var _d = $$("div", { "className": "UCD_R_C_Line", "innerText": _ins[j].addPreSpace(_space) });  //带插入div内容,addPreSpace在字符串前面追加n个空格
+                _CA.insertBefore(_d, _codes[i + 1 + j]); //javascript只有插入前面的函数,插入位置需要计算。
+                U.CD.CD.DrawLine(_HH, _CA); //插入行号。
+            }
+            return; //插入完毕后返回
+        }
+    }
+}
+
+//---------------------------------------------------初始化时根据iframe的内容刷新代码区域的初始内容--------------------------------
+//代码区域初始化函数。好像还没有初始化哦。只能在系统第一次运行时调用?
+U.CD.CD.Init = function (node) {
+    //获取CD文件的内容追加到Code区域,最好能实现换行操作,此种方法由于不支持Chrome,所以另外做了一个函数。
+    //var _i = $("#UCD_CT_SM_IF")[0]; _i.src = "http://d.1473.cn/RS.htm?ver="+Math.random();
+    //U.MD.IframeLoad(_i, [[U.CD.CD.InitAsyn, ([_i])]]); 
+    //用户未登录或者点击新建文件时之前执行的内容。直接获取iframe中内容,反馈到代码窗口。当结果视图有值时,新建文件就会有内容,导出出错,必须重新刷新。
+    //U.CD.CD.DrawCode($("#UCD_CT_SM_IF")[0].contentWindow.document.documentElement.outerHTML);
+    U.CD.CD.DrawCode(U.CD.CD.InitCode(),false);//初始化代码后绘制在代码窗口
+    U.CD.R.Save(node); //初始化保存按钮。此处还可以简化,明天再来。
+}
+//iframe加载Cd.htm异步回调。
+U.CD.CD.InitAsyn = function (i) {
+    //如果是Chrome,缓存了上一次iframe的内容,好心做了坏事啊。。iframe还是记录了上一次的内容。
+    //看来初始化要换一种方法,直接写入编码到代码区域,然后输出到iframe中。
+    U.CD.CD.DrawCode(i.contentWindow.document.documentElement.outerHTML, true); 
+} //获取RS.htm的所有内容。
+
+//------------------------------------------------根据代码窗口刷新结果窗口的值。----------------------------------------
+//根据代码区域的innerText刷新iframe显示结果,很多地方用到,封装为一个函数。小窗口运行效果。
+//参数_CA为$("#UCD_CT_Code_CT")[0]代码元素。给代码窗口赋值,只能通过给代码窗口赋值,然后获取代码窗口innerText,才能最简单的得到给iframe打印的值,否则会带html标签到iframe。
+U.CD.CD.DisNode = function (node) {
+    var _CA = $("#UCD_CT_Code_CT")[0]; //行号和代码区域
+    //数据库中保存的是所有的Div,带了样式,如果不带样式,则javascript,css必须用算法计算出来,比较复杂,暂时解决不了。,
+    _CA.innerHTML = node.Content;    //所以暂时浪费存储,求取简单化。,此上下2句话是把包含了hmtl标记的字符全部转换为没有html标记的字符,有技巧。
+    //晕,下面这句做执行时做就OK了。
+    //_CA.innerText = U.CD.CD.Is1473Domain(_CA.innerText); //检测node.Content是否包含了1473主域,没包含会导致跨域问题,直接追加一个1473主域js。
+    U.CD.CD.DrawCode(_CA.innerText, false); //调用统一的往代码窗口赋值函数,包括初始化从iframe中获取,已经装载用户自己的文件代码。
+    U.CD.R.Save(node); //保存结果?在打开的时候给保存按钮赋予保存事件!因为会打开多个文件,每个文件都会有对象的事件,一直发生变化
+}
+
+//--------------------------------------------------------------通用方法---------------------------------------------
+//当在Code编辑区中按下了回车键时,执行换行符操作,并刷新结果窗口,键盘回车键可能是13,也可能是10
+//gs触发的格式:比如通过onkeydown触发的,返回qt。做switch判断到底是什么样子的键盘事件
+//r是返回值。
+//一个复杂的函数,统一的功能,用户统一处理函数,做一个回调。
+U.CD.R.Wrap = function (gs, r) {
+
+    //_HH代码行号 _CA代码区域 _T 提示信息
+    var _HH = $("#UCD_CT_HH_CT")[0], _CA = $("#UCD_CT_Code_CT")[0], _T = $("#UCD_TP_TB")[0];
+    var _k = event.keyCode; //键盘按下的键值
+    //U.CD.Tip.KeyDown(_k, r); //转到代码提示窗口判断,由于键盘事件是依附于某一个div。所以要单独做在提示框中。
+    //alert(_k); //因为主空函数编辑器区域把光标也监控了,所以排除0这个键值,即光标。
+    //如果按下了Tab键盘,空4格子,已经在UC里面统一处理了。。。。
+    if (_k == 9) {
+        //var _R = U.D.E.GetSelectionRange(window, $("#UCD_CT_Code_CT")[0], document);    //获取光标位置。
+        //var _G = _R.Replace("&nbsp;&nbsp;&nbsp;&nbsp;"); //追加4个空格到光标前面
+        //U.M.StopDefault();
+        //$("#UCD_CT_Code_CT").addAttrArray({ "onkeydown": U.CD.R.Wrap }); //要重新添加代码框键盘事件才能再次触发?
+    }
+    //如果按下了删除Delete键盘。有可能用户删除了一个字符,也可能删除了一个行的div。需要重新计算行数,才能匹配
+    if (_k == 46) {
+        //此函数响应不及时,原因还待分析,暂时这样。
+        var _last, _lines = _HH.childNodes.length - _CA.childNodes.length;
+        for (var i = 0; i <= _lines; i++) {
+            _last = _HH.lastElementChild || _HH.lastChild; //兼容写法,其实可以做成自己的函数,这里要做自己的函数!!!
+            _HH.removeChild(_last);
+        }
+    }
+    if (_k == 10 || _k == 13) {
+        //如果代码输入提示框已经出现,则回车键作用于提示框
+        if (_T.style.display == "none") {
+            //先检查是否在主域文件之上写了代码,如果写了,在Ie里面会识别不了下面的js,所以,不允许。//获取当前光标选中的字符包含的div。  
+            if (!U.CD.CD.StrFilter(U.CD.TipR.GetPStyle())) { U.M.StopDefault(); return; } //首先检测有些特殊字符会导致浏览器假死的问题,例如ie7使用!!会导致浏览器假死。。
+            U.CD.CD.DrawLine(_HH, _CA); //添加新行
+            //同时需要检测新行的颜色为绿色,则要变成默认的,编辑器比较复杂啊
+            //U.CD.CD.FushIframe(_CA); //根据代码窗口内容刷新小窗口iframe中立时显示的内容
+        }
+    }
+    if (_k == 0) { _T.style.display = "none"; U.CD.R.CErrF.style.backgroundColor = "white"; } //获取到编辑区域光标事件后,隐藏提示框,并重置代码窗口错误行的颜色
+    //如果是.号,显示代码提示窗口。/如果是鼠标获取到了光标,并按下了,则隐藏提示框。//如果是.和并且没有按住Shift键 
+    //代码提示功能要做完善,至少要1个月,还要考虑兼容性问题,暂时不实现!!!!!!!!!!!!!!!!!!!!
+    if (_k == 190 && window.event.shiftKey == false) {
+        if (U.CD.Tip.IsJs(r[0])) {//判断提示框是否为javascript
+            //U.CD.TipR.Replace("."); // //U.CD.TipR.GetGBWZ(r[0]);   //得到位置索引,可以用Replace函数直接替换。
+            //U.CD.Tip.Show();
+            //U.M.StopDefault();
+            return;
+        }
+        if (U.CD.Tip.IsCss()) { }        //判断提示框是否为css,这部分还没开始做
+    }
+
+    //当按了Delete键盘,删除代码时,判断删除的代码是否包含了跨域js文件,如果有,提示用户不能删除。
+    if (_k == 46) {
+        //判断选择的文件是否包含了跨域文件,如果包含了,则要提示用户。
+        //var s = U.CD.TipR.GetSelectedText();
+        //if (U.CD.CD.IsDeleteDomain(s)) { U.M.StopDefault(); return; } //U.M.StopDefault可以阻止浏览器默认行为。
+
+    }
+
+    _HH.style.height = _CA.scrollHeight + "px";        //设置行号滚动窗口
+}
+
+
+//嗯,原来javascript本身是有回车换行符号的,不过用记事本看不到的。这解决了一个问题。
+//但也引起了一个新的问题。
+//暂时用传入参数区分是初始化还是从数据库中获取,从数据库中获取回车换行是正确的,初始化时取iframe的outerhtml回车换行是不正确的
+U.CD.CD.SplitHTML = function (h, init) {
+    if (init) return U.CD.CD.SplitHTMLInit(h);
+    //如果是Chrome或者FireFox,换行符号是'\n'
+    //如果是ie8,换行符号是空格。这就很难办了
+    //如果是ie7,换行符号是'\r\n'
+    var _B = U.CI.getBrowser(); //获取浏览器信息
+    //if (_B.browser == "msie" && _B.ver == "7.0") return h.split('\r\n');
+    //为了识别换行,暂时强制让浏览器兼容ie7.
+    //if (_B.browser == "msie" && _B.ver == "8.0") {  return U.CD.CD.SplitHTMLInit(h); }
+    //替换所有的\r\n为\n,但苹果好像不是这样兼容的
+    return h.replace(/\r\n/g, '\n').split('\n');
+
+
+}
+
+ //拆分HTML编码,适合于编辑器,不止是拆分html编码,同时还需要把中间的文字提出出来,例如javascript代码,div中间的文字等。
+ //在IE7浏览器下面,通过下标[]操作尽然无法获取到此下标对应的字符,得到undefined,所以采用charAt函数。
+ //最基本的字符串拆分,才是最复杂的,比如json增删查改。Google,百度就靠这个
+ //做得不完善,还需要继续完善。还差前面4个空格的判断了。。!!
+ U.CD.CD.SplitHTMLInit = function (h) {
+     //h = h.trim(); //看1473U.MS里面,去掉所有空格回车。晕,此函数不正确。
+     //h = h.replace(/\s+/g, "");//这句正确,修改到1473UC中。但对于本项目不起作用,因为有些地方还必须要空格
+     var i, s, e = 0, a = []; //a为返回的数组,i循环变量。s为<的起始点位置记录。e为单个字符的起始位置。
+     for (i = 0; i < h.length; i++) {
+         if (h.charAt(i) == "<") {
+             if (e > s) {//如果e>s,表示e的记录晚于上一个s。
+                 if (h.substring(e, i).replace(/\s+/g, "") != "")//有时候把前面4个空格,Tab等也作为一个数组了,需呀判断剔除,暂时这样写,以后用1473的函数,
+                     a.push(h.substring(e, i)); //记录文本数据。还差一个记录前面空格了
+             }
+             s = i;
+         }
+         if (h.charAt(i) == ">") {
+             if (h.charAt(i + 1) != "<") {
+                 e = i + 1; //记录不是html标记的起始位置。
+             }
+             a.push(h.substring(s, i + 1));
+         }
+     };
+     return a;
+ }
+
+
+//把传入进来的html内容,不带<div></div>的加上div分行标签。此处在控件中追加控件后会调用。。。比较重要。
+ U.CD.CD.DrawCode = function (h, init) {
+     //这里为什么不原样获取数据库内容和RS.htm中的内容,然后原样输出呢?因为获取RS.htm里面的内容排版是混乱的。同时有些特殊标记,例如注释等需要特别解析。
+     //$("#UCD_CT_Code_CT").addAttrArray({ "onkeydown": U.CD.R.Wrap }); //给键盘事件,比如回车键赋予新函数。监控回车变化。
+     var _HH = $("#UCD_CT_HH_CT")[0], _CA = $("#UCD_CT_Code_CT")[0]; //行号和代码区域
+     var _a = U.CD.CD.SplitHTML(h, init), i; //行号
+     _CA.innerHTML = ""; //代码内容清空。
+     _HH.innerHTML = ""; //行号清空
+     for (i = 0; i < _a.length; i++) {
+         $$("div", { "className": "UCD_R_Tab_Line", "innerHTML": i + 1 }, _HH); //绘制行号
+         //如果是注释,则标记绿色
+         U.CD.CD.AllFilComments(_a[i], _CA);
+     }
+     _HH.style.height = _CA.scrollHeight+"px";        //设置行号滚动窗口
+     //U.CD.CD.FushIframe(_CA); //反馈到结果视图中。
+
+ }
+//绘制行号
+U.CD.CD.DrawLine = function (_HH,_CA) {
+    var _line = _HH.getElementsByTagName("div").length + 1; //增加一个行号
+    $$("div", { "className": "UCD_R_Tab_Line", "innerHTML": _line }, _HH); //绘制行号
+    _HH.style.height = _CA.scrollHeight+"px";        //设置行号滚动窗口
+}
+
+
+
+
+
+
+
+
+
+//初始化代码区域,不传递
+U.CD.CD.InitCode = function () {
+    return U.CD.CL.LangArr[U.CD.CL.Lang(U.CD.USLang)][0]; //初始化默认返回每种语言的第一位。
+    //var _d = "#include <stdio.h>\nvoid main(){\n    printf(\"hello world\");\n}\n";
+    //if (s) _d += s + "\n"; //如果传递了参数,则把参数加在body里面,否则执行初始化代码
+    //_d += "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
+    //return _d;
+}
+
+//在字符串前面追加n个空格,参数s为待插入字符,n为在第几个字符位置插入,以后还可以继续改写
+U.M.Setprototype(String, "InsertStr", function (s, n) {  var t = this.substr(0, n); var e = this.substr(n, this.length);  return t + s + e;});
+//返回元素位于父亲节点的索引位置,返回-1表示错误。因为有可能为0,不能返回false.
+U.M.IndexOfParent = function (o) {
+    var f = o.parentNode, i, s;
+    if (!f) return -1; //找不到父亲节点,返回
+    s = f.childNodes;
+    for (i = 0; i < s.length; i++) if (s[i] == o) return i;
+    return -1;
+}
+//首先检测有些特殊字符会导致浏览器假死的问题,例如ie7使用!!会导致浏览器假死。。
+U.CD.CD.StrFilter = function (SO) {
+    var s = SO.innerText;
+    //判断SO是否位于跨域js之前,如果是之前,返回false。并提示用户在正确的地方输入。使用新方法解决了此问题
+    //先检查是否在主域文件之上写了代码,如果写了,在Ie里面会识别不了下面的js
+    //if (U.CD.CD.GetInPos(SO) < 4) { alert("输入位置不对,请看下面注释!"); return false; }
+    U.CD.CD.FilterComments(s);
+    var _B = U.CI.getBrowser(); //获取浏览器信息
+    if (_B.browser == "msie" && (_B.ver == "7.0" || _B.ver == "8.0")) {
+        //如果包含了!!号,则提示用户ie7不允许输入!!号,返回
+        if (s.indexOf("!!") > -1) { alert("IE7,8输入'!!'会导致浏览器假死,请仔细检查!"); return false; }
+    }
+    return true;
+}
+
+//用户用户回车时的位置。
+U.CD.CD.GetInPos = function (SO) {
+    var _C,i;
+    //如果用户拷贝代码,则会出现多层div。需要找到id为UCD_CT_Code_CT的div。
+    for (i = 0; i < 100; i++) {
+        if (SO.parentNode.id != "UCD_CT_Code_CT") { SO = SO.parentNode;}
+        else { _C = SO; break;}
+    }
+    return U.M.IndexOfParent(_C);
+}
+
+
+ //添加注释函数,还没完成,以后继续。主要用户按下回车键获取当前行的判断
+U.CD.CD.FilterComments = function (s) {
+    //如果是//,则表示注释,标记为绿色。怎么标记?插入span标签?
+    var _G = U.CD.TipR.GetPStyle(),_fz=false; //获取当前光标选中的字符包含的div。 
+    if (s.indexOf("<!--") >= 0 && s.indexOf("-->") >= 0) { _fz = true; } //<!--  -->html注释。
+    if (s.lTrim().substr(0, 2) == "//") { _fz = true; } //  //注释。
+    if (_fz) { $(_G).addAttrArray({ "style": { "cssText": "color:green"} }); }
+    else { $(_G).addAttrArray({ "style": { "cssText": "color:#333"} }); }
+}
+//添加注释,当获取用户文件数据时使用。会循环调用此函数
+U.M.Setprototype(String, "lTrim", function () { return this.replace(/(^\s*)/g, ""); }); //去掉左边空格
+U.CD.CD.AllFilComments = function (s, _CA) {
+    //这里是复杂条件,该如何做?暂时如此,因为以后还会添加
+    var _fz = false;
+    if (s.indexOf("<!--") >= 0 && s.indexOf("-->") >= 0) { _fz = true; } //<!--  -->html注释。
+    if (s.lTrim().substr(0, 2) == "//") { _fz = true; } //  //注释。
+    //实际添加条目。
+    if (_fz) { $$("div", { "style": { "color": "green" }, "className": "UCD_R_C_Line", "innerText": s }, _CA); }
+    else { $$("div", { "className": "UCD_R_C_Line", "innerText": s }, _CA); }  //如果没有内容,则追加一行div,以后的新行都会是div,否则是p标签。 
+}
+
+U.M.Setprototype(String, "RemoveNBSP", function () { return this.replace(/&nbsp;/ig, ""); }); //去掉所有的&nbsp标签
+
+//去掉运行结果或者错误结果中每行字符的右边空格以及目录标识。
+U.CD.CD.ExecLangBack = function (s) {
+    //如果用户在ide中输入的是数字,则s.replace会出错。需要转换为字符串
+    if (typeof (s) == "number") s = s.toString();
+
+    //截取掉以./userfiles/开始的+32位guid字符,. / 在正则表达式中必须加转义字符反斜杠\,有些编译型的格式为/output/userfiles,解释型的为./output
+    //s = s.replace(/\.\/userfiles\/\w{32}/g, "test");
+    s = s.replace(/(\.\/output|\.|)\/userfiles\/\w{32}/g, "test"); //(\.\/output|\.|)表示或者.或者./output或者什么都没有(在nodejs中会什么什么都没有), 所有转义前面加反斜杠\
+
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i, s = "";
+
+    for (i = 0; i < z.length; i++) {
+        //晕,昨天发现Chrome在div的中间有空格都不行。需要判断div中是否有nbsp字符?
+        //if (z[i].indexOf("<") >= 0 && z[i].indexOf(">") >= 0){ z[i] = z[i].RemoveNBSP(); }//去掉所有$nbsp。不起作用!!很难调试。
+        //else { z[i] = z[i].lTrim().Rtrim(); } //去掉左右空格
+        z[i] = z[i].lTrim().Rtrim();
+        s += z[i] + "\n"; //添加换行符
+        //昨天遇到样式表前面留空格,在Chrome中也会运行错误。实现此函数比较麻烦。也不麻烦,有了思路再看。因为此处是运行时,所以其实不需要前面的if判断,所有空格全部清除。
+    }
+    //return z.join(""); //这是把字符串数组转为字符串的函数,但会去掉回车符号,不能使用。
+    return s;
+}
+U.CD.CD.ExecIFCompChrome = function (s) {
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i, s = "";
+    for (i = 0; i < z.length; i++) {
+        //晕,昨天发现Chrome在div的中间有空格都不行。需要判断div中是否有nbsp字符?
+        //if (z[i].indexOf("<") >= 0 && z[i].indexOf(">") >= 0){ z[i] = z[i].RemoveNBSP(); }//去掉所有$nbsp。不起作用!!很难调试。
+        //else { z[i] = z[i].lTrim().Rtrim(); } //去掉左右空格
+        z[i] = z[i].Rtrim();
+        //Python居然用空格作为标识来运行程序,晕了!只能排出掉Python语言
+        if(U.CD.USLang!="Python")
+            z[i] = z[i].lTrim();  //Chrome浏览器必须要截取掉左边的空格,奇怪了
+        s += z[i] + "\n"; //添加换行符
+        //昨天遇到样式表前面留空格,在Chrome中也会运行错误。实现此函数比较麻烦。也不麻烦,有了思路再看。因为此处是运行时,所以其实不需要前面的if判断,所有空格全部清除。
+    }
+    //return z.join(""); //这是把字符串数组转为字符串的函数,但会去掉回车符号,不能使用。
+    return s;
+}
+
+
+
+
+
+
+
+
+//--------------------------------------暂时无用的函数-------------------------------------------------------------------------
+//绘制运行窗口的代码!初始化时会运行,从数据库中获取代码后也会运行。在代码窗口输入内容时不执行。
+U.CD.R.NoUse = function (_CA) {
+    var _HH = $("#UCD_CT_HH_CT")[0];
+    //判断代码内容是否有多个<div style="line-height:20px;">嵌套。只允许出现一个,但徐嘉伟那边可以有多个,代码难度很大。
+    var _code = U.CD.R.RemoveMoreLine(_CA); //计算是否有重复的div,历史遗留问题。
+    _CA.innerHTML = _code.innerHTML; //反向赋值,否则无法显示,这处逻辑比较乱。思路不是很流畅。
+    _HH.innerHTML = ""; //清空所有行号?
+    var _nodes = _code.getElementsByTagName("div");
+    //如果没有内容,则追加一行div,以后的新行都会是div,否则是p标签。
+    if (_nodes.length == 0) { $$("div", { "className": "UCD_R_C_Line", "innerHTML": "" }, $("#UCD_CT_Code_CT")[0]); }
+    //循环绘制行号。内容已经有了,不需要绘制了
+    for (var i = 0; i < _nodes.length; i++) {
+        $$("div", { "className": "UCD_R_Tab_Line", "innerHTML": i + 1 }, _HH); //绘制行号
+    }
+    //_HH.scrollTop = $("#UCD_CT_Code_CT")[0].scrollHeight;        //设置行号滚动窗口
+}
+//判断代码内容是否有多个<div style="line-height:20px;">嵌套。只允许出现一个,但徐嘉伟那边可以有多个,代码难度很大。解决历史遗留问题。
+U.CD.R.RemoveMoreLine = function (c) {
+    if (c.innerHTML == "") return c; //如果code为空,返回
+    //var _r = c.cloneNode(); //用赋值语句是无法清除节点的,因为赋值2个对象修改任何一个另外一个也会修改,只能克隆。。使用克隆方法会遇到节点减少的问题。 //采用创建新节点的方式。
+    var _r = document.createElement("div"); //创建一个新的div接受代码窗口赋值,否则,会出现引用循环问题。
+    var _nodes = c.getElementsByTagName("div");
+    for (var i = 0; i < _nodes.length; i++) {
+        if (!_nodes[i].getElementsByTagName("div").length > 0)
+            _r.appendChild(_nodes[i].cloneNode(true)); //克隆节点带true才能把里面内容全部拷贝。
+    }
+    return _r;
+}
+
+
+//此函数可以刷新子iframe框架的内容。如果是Chrome浏览器,则不能,Chrome不支持iframe窗口的location.reload。是Chrome的一个Bug
+U.CD.CD.IFReload = function () {
+    //$("#UCD_CT_SM_IF")[0].contentWindow.document.body.innerHTML += ""; //执行iframe中的内容,这是bug?
+    //var _jr = $("#UCD_CT_SM_IF")[0].contentDocument || $("#UCD_CT_SM_IF")[0].contentWindow.document;
+    //判断浏览器。
+    if (U.CI.getBrowser().browser == "chrome") { U.CD.CD.ExecIF($("#UCD_CT_Code_CT")[0]); }
+    else {
+        var _jr = window.frames["UCD_CT_SM_IF"].document;
+        _jr.location.reload();
+    }
+}
+//检查是否为htm
+U.UP.IsHTML = function () {}
+//是否删除了UJ.js文件,如果删除了,提示用户,用于键盘回车键按下的时候。
+U.CD.CD.IsDeleteDomain = function (s) {
+    var z = s.replace(/\r\n/g, '\n').split('\n'), i;
+    for (i = 0; i < z.length; i++) {
+        if (z[i].lTrim().Rtrim() == "<script src='http://d.1473.cn/UJ.js' type='text/javascript'></script>") {
+            U.CD.CD.AlertDomain();
+            return true;
+        }
+    }
+    return false;
+}
+//当出现错误时在视图页面填充错误信息以及用户提醒。
+U.CD.CD.FillErrorInfo = function () {
+    var _d = "<html  xmlns='http://www.w3.org/1999/xhtml'>\n<head>\n    <title></title>\n    <link href='http://d.1473.cn/UJ.css' rel='stylesheet' type='text/css' />\n    <script src='http://d.1473.cn/UJ.js' type='text/javascript'></script>\n</head>\n<body>\n<div style='color:red; font-size:20px;'>\n出错啦!!!\n</div>\n<div>\n代码中必须包含跨域文件http://d.1473.cn/uj.js。这是所有浏览器公有问题。\n</div>\n</body>\n</html>";
+    U.CD.CD.DrawCode(_d, false);
+}
+
+//US.G = {}; //做一个统一的全部变量存放地方。否则,变量比较乱。
+//US.G.ImgType = ["jpg", "gif", "png", "bmp", "jpeg"]; //太多地方要判断是否为图片了。做一个全局变量,否则很乱。为了避免重复,循环是全部转小写判断
+//判断是否为图片类型,filename为文件名,辅助函数,以后可删除。放在UC里面了
+//U.UP.IsImg = function (filename) {
+//    var ext = U.UP.GetUpName(filename)[1].toLowerCase(); //得到文件扩展名并转换为小写。
+//    var _A = US.G.ImgType, i; //全部转小写。
+//    for (i = 0; i < _A.length; i++) {
+//        if (ext == _A[i])
+//            return true;
+//    }
+//    return false;
+//}
+
+//重新刷新iframe的新方法。。看起来无刷新,参数为代码区域的div...这句会到处调用,,这样可以做立时显示了,效果更好。
+U.CD.CD.FushIframe = function (_CA) {
+    //下面用try catch做功能,。
+    try { U.CD.CD.ExecIF(_CA); }
+    catch (e) { U.CD.CD.AlertDomain(); }
+}
+//独立出这个函数是为了加try catch。,暂时无用。
+U.CD.CD.ExecIF = function (_CA) {
+    //直接执行下面一句话会不停的往iframe里面追加内容,是追加,不是替换,会导致重复,
+    //$("#UCD_CT_SM_IF")[0].contentWindow.document.write(_CA.innerText);
+    //晕了,搞了半天,其实只需要做运行时自动追加一个<script src="http://d.1473.cn/UJ.js" type="text/javascript"></script>即可。
+    //_CA.innerText=U.CD.CD.Is1473Domain(_CA.innerText);
+
+    var s = U.CD.CD.ExecIFText(_CA); //判断Chrome浏览器在效果左右边加&nbsp的问题。
+
+    //用这几句话会替换iframe中的内容,并且无需重新装载iframe,像本机操作。
+    var newDoc = $("#UCD_CT_SM_IF")[0].contentWindow.document.open("text/html", "replace");
+    newDoc.write(s);
+    //if()  ie7有Bug,按道理需要newDoc.close(),但ie7敲入特殊字符(!!)会导致整个屏幕死掉。解决方案可以判断ie7,不关闭。暂时全部不要close。
+    //排除会导致ie7假死的字符。
+    //if (U.CI.getBrowser().browser != "rv") newDoc.close(); //rv是firefox的标记,奇怪了
+    newDoc.close();
+}
+U.M.Setprototype(String, "Rtrim", function () { return this.replace(/(\s*$)/g, ""); }); //去掉右边空格
+//传入代码窗口div,得到里面的innerText,由于兼容性问题,需要独立一个函数。
+U.CD.CD.ExecIFText = function (_CA) {
+    var s = _CA.innerText || _CA.textContent; //textContent兼容FireFox,但好像还是有问题
+    //s = s.replace(/&nbsp;/ig, ""); //去掉所有的nbsp,因为是输出结果,所有可以这样做。
+    //如果是chrome浏览器,需要去掉除html标签行的左右空格。
+    if (U.CI.getBrowser().browser == "chrome") { s = U.CD.CD.ExecIFCompChrome(s); }
+    if (U.CI.getBrowser().browser == "firefox") { s = U.CD.CD.ExecIFCompChrome(s); }
+    if (U.CI.getBrowser().browser == "rv") { s = U.CD.CD.ExecIFCompChrome(s); } //rv也是firefox的
+
+    //强制追加一行,不管有没有<script src="http://d.1473.cn/UJ.js" type="text/javascript"></script>。只是做执行时追加,以前想得太复杂。
+    s = s + "\n" + "<script src='http://d.1473.cn/UJ.js' type='text/javascript'></script>";
+    s = s + "\n" + "<link href='http://d.1473.cn/UJ.css' rel='stylesheet' type='text/css' />";
+    return s;
+}
+//判断是否有1473主域,否则会出现跨域访问。如果没有,则需要在head中追加。
+U.CD.CD.Is1473Domain = function (s) {
+    var i, _t = s.replace(/\r\n/g, '\n').split('\n');
+    //找到1473主域js,不理会,直接返回
+    for (i = 0; i < _t.length; i++) { if (_t[i].toLowerCase().indexOf("http://d.1473.cn/UJ.js".toLowerCase()) > -1) return s; }
+    //大于7行,则插入到head中插入比较复杂,暂时不理会这个函数
+    if (_t.length > 7) {
+        _t.splice(5, 0, "<script src='http://d.1473.cn/UJ.js' type='text/javascript'></script>");
+        //合并输出到s。此功能暂未实现。
+    }
+    //小于4行,则视为乱码,另外初始化代码区域,把内容追加到body中。
+    if (_t.length < 4) {
+        s = U.CD.CD.InitCode(s); //追加s到初始化代码的body中。
+    }
+    return s;
+}
+
+

+ 7 - 0
js/U.CD.FileType.js

@@ -0,0 +1,7 @@
+Namespace.register("U.CD.F"); //注册运行js
+
+//如果是html文件,则自动追加一些内容进去。
+
+U.CD.F.HTML = function () {
+    return "&lt;<html>&gt;<head></head><body><div style='width:150px; height:100px; background-color:blue;'>哈,从最简单元素div开始</div></body></html>";
+}

+ 94 - 0
js/U.CD.Layout.js

@@ -0,0 +1,94 @@
+Namespace.register("U.CD.LO"); //注册布局
+//此js虽然简单,但要整理一个逻辑还是比较费力,暂时如此了
+//太多地方需要做宽高控制了,定义一些全局变量。
+
+
+
+/*由于html设计原理的时效性,导致宽高不能auto,用js代码补齐*/
+U.CD.LO.SetWH = function () {
+    if (!document.body.clientHeight) { location.href = location.href; } //如果没有客户端信息,则再次刷新本页
+    //在项目开始时全部用100%,保证用户能看到全貌,然后在此处最终定义宽高。
+    //纵向
+    $("#UCD_TOP")[0].style.height = "37px";
+    $("#UCD_CT_Top_Tab")[0].style.height = "30px"; //中间头部切换栏
+    //$("#UCD_CT_BT")[0].style.height = "20px"; //中间底部命令行
+    //横向
+    //    $("#UCD_TT")[0].style.width = "190px"; //左边工具栏宽度
+
+    $("#UCD_CT")[0].style.width = document.body.clientWidth - 190 + "px"; //右边代码区域宽度
+
+
+
+    //设置高度,高度无法100%;使用document.body.clientHeight必须CSS放前面?保证html body的值为100%,得不到,需要判断//window.screen.availWidth//document.documentElement.clientWidth //document.documentElement.innerWidth 
+    $("#UCD_Bottom")[0].style.height = document.body.clientHeight - $("#UCD_TOP")[0].clientHeight + "px"; //底部所有元素高度
+
+    //中间代码,代码结果窗口高度
+    var _ch = $("#UCD_Bottom")[0].clientHeight - $("#UCD_CT_Top_Tab")[0].clientHeight - $("#UCD_CT_BT")[0].clientHeight;
+    if (_ch > 0) {
+        $("#UCD_CT_CT")[0].style.height = _ch - 10 + "px";
+        $("#UCD_CT_HH_Code")[0].style.height = parseInt((_ch - 10) * 0.68) + "px";
+        $("#UCD_CT_IF")[0].style.height = parseInt((_ch - 10) * 0.32) + "px";
+    }
+    //代码窗口宽度,有可能小于0,判断一下
+    //var _cw = $("#UCD_CT_CT")[0].clientWidth - $("#UCD_CT_IF")[0].clientWidth - 2;
+    //if (_cw > 0) $("#UCD_CT_HH_Code")[0].style.width = _cw + "px";
+    //工具栏控件区域高度
+    var ub = $("#UCD_Bottom")[0].clientHeight - 35;
+    ub > 0 ? $("#UCD_TT_Z")[0].style.height = ub + "px" : "0px";
+
+    //如果资源窗口没有显示,则扩大代码区域,_tt是左边工具栏宽度 _ct是中间区域宽度 _rt是右边区域宽度 6是分割线宽度
+    var _tt = $("#UCD_TT")[0], _ct = $("#UCD_CT")[0], _rt = $("#UCD_RTree")[0], _aw = document.body.clientWidth, _bk = 4;
+    //如果资源管理器和工具栏都不可显示,则
+    if (_aw != 0) {
+        if (_tt.style.display == "none" && _rt.style.display == "none") { _ct.style.width = _aw - _bk + "px"; }
+        if (_tt.style.display == "none" && _rt.style.display == "block") { _ct.style.width = _aw - _rt.clientWidth - _bk + "px"; }
+        if (_tt.style.display == "block" && _rt.style.display == "none") { _ct.style.width = _aw - _tt.clientWidth - _bk + "px"; }
+        if (_tt.style.display == "block" && _rt.style.display == "block") { _ct.style.width = _aw - _tt.clientWidth - _rt.clientWidth - _bk + "px"; }
+    }
+
+    //结果显示窗口给固定宽高才能有滚动条。
+    var _if = $("#UCD_CT_SM_IF")[0], _ifct = $("#UCD_CT_IF")[0];
+    _if.width = _if.parentNode.clientWidth + "px"; //必须设置宽度才有效? //iframe的100%不起作用啊。
+    if (_ifct.clientHeight - 20 > 0) { _if.style.height = _ifct.clientHeight - 24 + "px"; }
+
+
+    //代码区域宽度等于 包容器减去行号宽度
+    var _code = $("#UCD_CT_Code")[0], _hh = $("#UCD_CT_HH_CT")[0], _rq = $("#UCD_CT_HH_Code")[0]
+    _code.style.width = _rq.clientWidth - _hh.clientWidth + "px";
+
+}
+
+//单击左边分割线时,隐藏工具栏窗口?o为传递进来的控件类型
+U.CD.LO.HEToolbar = function (o) {
+    $("#UCD_TT_R")[0].style.display = $("#UCD_TT_R")[0].style.display == "none" ? "block" : "none";
+    U.CD.LO.SetWH();
+}
+//关闭资源管理器影响的布局//关闭资源管理器
+U.CD.LO.CloseZY = function () { $("#UCD_RTree")[0].style.display = "none"; U.CD.LO.SetWH(); }
+//打开资源管理器
+U.CD.LO.OpenZY = function () { $("#UCD_RTree")[0].style.display = "block"; U.CD.LO.SetWH(); }
+//打开或者关闭资源管理器,在顶部菜单使用
+U.CD.LO.OCZY = function () { $("#UCD_RTree")[0].style.display = $("#UCD_RTree")[0].style.display == "none" ? "block" : "none"; U.CD.LO.SetWH(); }
+
+//视图全屏模式,
+U.CD.LO.View = function () {
+    var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0], _if = $("#UCD_CT_SM_IF")[0]
+    _c.style.display = "none";
+    _v.style.display = "block"; _v.style.height = "100%";
+    U.CD.LO.SetWH();
+}
+//代码模式
+U.CD.LO.Code = function () {
+    var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0];
+    _v.style.display = "none";
+    _c.style.display = "block"; _c.style.height = "100%";
+//    U.CD.LO.SetWH();
+}
+//拆分模式
+U.CD.LO.Split = function () {
+    var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0];
+    //_v.style.width = "100%"; _c.style.width = "100%";
+    _v.style.height = "30%"; _c.style.height = "70%";
+    _v.style.display = "block"; _c.style.display = "block";
+    U.CD.LO.SetWH();
+}

+ 126 - 0
js/U.CD.Left.js

@@ -0,0 +1,126 @@
+Namespace.register("U.CD.L"); //注册左边控件栏js。
+
+
+
+
+//拖动时鼠标松开执行的函数。
+U.CD.L.ConMUp = function (SO, EV) {
+    //计算各种元素的位置。
+    EV = this.E; var _TF = SO.innerHTML, _UDOD, _UDPD = $("#UCD_CT_SM_IF"), _LT = _UDPD.GetElementInfo(), _L = EV["X"] - _LT["BCRL"], _T = EV["Y"] - _LT["BCRT"]; document.body.removeChild(SO);
+    //如果在iframe范围内,追加效果,还需要判断在Code窗口内,这个地方在iframe宽高发生改变时有问题!!!!以后再测试
+    if (_L > 0 && _L < _LT["OW"] && _T > 0 && _T < _LT["OH"]) {
+        switch (_TF) {
+            case "button": _UDOD = U.CD.C.Button(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "reset": _UDOD = U.CD.C.Reset(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "submit": _UDOD = U.CD.C.Submit(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "text": _UDOD = U.CD.C.Text(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "password": _UDOD = U.CD.C.Password(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "radio": _UDOD = U.CD.C.Radio(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "checkbox": _UDOD = U.CD.C.Checkbox(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "form": _UDOD = U.CD.C.Form(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "img": _UDOD = U.CD.C.Img(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "img": _UDOD = U.CD.C.Img(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //img
+            case "table": U.CD.C.Table(_UDPD, _L, _T); break; //表格
+            case "textarea": _UDOD = U.CD.C.Textarea(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //textarea
+            case "div": _UDOD = U.CD.C.Div(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //div
+            case "p": _UDOD = U.CD.C.P(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //段落
+            case "h": _UDOD = U.CD.C.H(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //标题
+            case "ul": U.CD.C.Ul(_UDPD, _L, _T); break; //无序列表
+            case "ol": U.CD.C.Ol(_UDPD, _L, _T); break; //有序列表
+            case "navigation": _UDOD = U.CD.C.Navigation(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //导航条
+            case "pagination": _UDOD = U.CD.C.Pagination(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //分页
+            case "switchingcard": _UDOD = U.CD.C.Switchingcard(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break; //切换卡
+            case "search": _UDOD = U.CD.C.Search(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "register": _UDOD = U.CD.C.Register(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "shade": _UDOD = U.CD.C.ShadeForms(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "buttongroup": _UDOD = U.CD.C.ButtonGrop(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "bar": _UDOD = U.CD.C.Bar(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "preview": _UDOD = U.CD.C.Preview(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            //case "select": _UDOD = U.CD.C.Select(); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;    
+            case "select": _UDOD = U.CD.C.Select(_UDPD, _L, _T); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+            case "comfirm": _UDOD = U.CD.UC.Confirm(_UDPD, _L, _T); U.CD.L.AppendIF(_UDOD, _UDPD, _L, _T); break;
+        }
+    }
+}
+
+//把元素追加到iframe中,并根据iframe中内容返回给代码区域。
+U.CD.L.AppendIF = function (_UDOD, _UDPD, _L, _T) {
+    $(_UDOD).addAttrArray({ "style": { "left": _L + "px", "top": _T + "px"} }); //修改左上角坐标。
+
+    //把iframe中的代码获取出来追加到div中,如何实现?必须先在代码区域打出,否则outerHTML会自动去掉里面的文字。!
+    //U.CD.CD.DrawCode(_UDPD[0].contentWindow.document.documentElement.outerHTML);//这样做会导致非html元素,例如文字js css 元素中的内容样式发生改变
+    U.CD.CD.AppendHTML(_UDOD);
+    //在iframe中添加拖动属性,暂时不要此功能!
+    //$(_UDOD).addAttrArray({ "onclick": U.M.apply(this, [[U.D.iconmove, ([_UDOD, null, { "UP": U.CD.L.IFConMUp}])]]) });
+    //$(_UDOD).onclick = U.M.apply(this, [[U.D.iconmove, ([_UDOD, null, { "UP": U.CD.L.IFConMUp}])]]);
+    //$(_UDOD).onclick = function () { alert("123"); }
+    _UDPD[0].contentWindow.document.body.appendChild(_UDOD); //此处才是真正的往子iframe中追加节点。然后反馈到页面,凡是从小读取RS.htm就会初始化?
+    _UDPD[0].contentWindow.document.body.innerHTML += ""; //执行iframe中的内容,这是bug?
+
+
+}
+
+
+//创建拖动对象
+U.CD.L.moudt = function (TF) {
+    //获取坐标
+    var _UDOD, _EV = U.M.GetMousep();
+    //创建拖动的元素
+    _UDOD = $$("div", { "className": "UCD_TOOLT_Drag", "style": { "top": _EV["Y"] + "px", "left": _EV["X"] + "px" }, "innerHTML": TF }, document.body);
+    //由于采用了ul li元素,拖动时会出现问题。下面代码解决。
+    try { U.D.iconmove(_UDOD, window.frames["UCD_CT_SM_IF"], { "UP": U.CD.L.ConMUp }) } //桌面图标移动,由于用户会删除初始化js代码,导致错误,需要捕获,并修正。但还是会有问题啊
+    catch (e) {//有点纠结,把RS.htm重新赋值出来,暂时如此
+        _UDOD.releaseCapture(); _UDOD.parentNode.removeChild(_UDOD); document.onmouseup = null; //释放焦点,移除拖动节点,拖动事件赋空。
+        //拖动出错后确认重新获取代码,调用初始化函数
+        U.UI.Confirm("<div style=' color:red;text-align:left; margin-left:10px; height:25px;'>所有文件必须引用 http://d.1473.cn/UJ.js ,否则会拒绝访问,请仔细检查</div> ", [U.CD.CD.Init, ([])], "");
+        return;
+    }
+}
+
+
+//桌面图标移动
+U.CD.L.iconmove = function (SO, UW) {
+    var _C = new U.CD.L.ICM(SO, UW); _C.init(SO, UW); _C.id = "UCD_Left_DO"; //等到一个拖动对象
+    document.onmousemove = U.M.apply(_C, [[_C.move]]); document.onmouseup = U.M.apply(_C, [[_C.up]]); //设置
+    (UW) && (UW.document.onmousemove = document.onmousemove) && (UW.document.onmouseup = document.onmouseup); //chrome的iframe文档是勾连在一起的,ie是分开的。所以有兼容性问题
+}
+
+//桌面图标移动
+U.CD.L.ICM = function (SO, UW) {
+    this.X = SO.offsetLeft, this.Y = SO.offsetTop;
+    this.W = UW; this.SW; this.SO = SO; this.E;
+}
+
+//桌面图标移动
+U.CD.L.ICM.prototype = {
+    //初始化逻辑
+    init: function (SO, UAPP) {
+        var _EV = U.M.GetMousep(); this.E = _EV;
+        this.SW = [0, 0, US.Width - 65, US.Height - 240, _EV["X"] - SO.offsetLeft, _EV["Y"] - SO.offsetTop]; //移动位置的偏差
+        SO.setCapture();
+    },
+    //移动逻辑
+    move: function () {
+        var _EV;
+        if (event) { _EV = U.M.GetMousep(); } else { var _UFED = $("#" + this.W.name).GetElementInfo(); _EV = this.W.U.M.GetMousep(); _EV["X"] += _UFED["BCRL"]; _EV["Y"] += _UFED["BCRT"]; }
+        if (this.E["X"] - _EV["X"] != 0 && this.E["Y"] - _EV["Y"] != 0) {
+            var _X = _EV["X"] - this.SW[4]; //鼠标移动过程横坐标
+            var _Y = _EV["Y"] - this.SW[5]; //鼠标移动过程纵坐标
+            if (_X < this.SW[1]) { _X = this.SW[1]; }
+            else if (_X > this.SW[2]) { _X = this.SW[2]; }
+            if (_Y < this.SW[0]) { _Y = this.SW[0]; }
+            else if (_Y > this.SW[3]) { _Y = this.SW[3]; }
+            $(this.SO).addAttrArray({ "style": { "left": _X + "px", "top": _Y + "px"} });
+            //U.D.MoveCase = true; //允许拖动不允许点击
+            this.E = _EV;
+        }
+    },
+    //释放事件
+    up: function () {
+        U.CD.L.ConMUp(this.SO, this.E); //松开鼠标调动绘制控件的函数
+        this.SO.releaseCapture(); this.W.document.onmousemove = this.W.document.onmouseup = document.onmousemove = document.onmouseup = null; //释放
+    }
+}
+//
+//打开或者关闭控件列表
+U.CD.L.OpenOrCloseList = function (SO) { SO.style.display = SO.style.display == "none" ? "block" : "none"; }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 129 - 0
js/U.CD.Other.js


+ 174 - 0
js/U.CD.OutApp.js

@@ -0,0 +1,174 @@
+
+Namespace.register("U.CD.OU"); //注册引用1473主项目的js,添加交友等功能。
+//注意事项
+//1、两边的htmlbody元素定义需要一致
+//2、需要重载主项目的window.onload以及以下的几个函数。重载方法在下面有记载。
+
+
+//获取1473主项目body中的所有内容,追加到本项目末尾,以调用硬盘,好友等功能。
+U.CD.OU.Get1473 = function () {
+    //首先创建一个名为US_M_IF的iframe
+    $$("iframe", { "id": "US_M_IF", "name": "US_M_IF", "style": { "cssText": "width:0px;height:0px;"} }, document.body);
+    //再创建一个名为US_M_DIV的div用于复制节点
+    var m = $$("div", { "id": "US_M_DIV", "style": { "cssText": "width:0px; height:100%; position:absolute; top:0px; left:0px;  overflow:hidden;"} }, document.body);
+    var i = $("#US_M_IF")[0]; i.src = "http://www.1473.cn";
+    U.MD.IframeLoad(i, [[U.CD.OU.Get1473Asyn, ([i, m])]]);
+}
+//获取到1473主项目后回调处理
+U.CD.OU.Get1473Asyn = function (f, m) {
+    //循环克隆添加1473主项目的节点到编程平台,把html元素对应拷贝到编程平台,这种方法不可行
+    //采用innerHTML的方式才能移除掉iframe中的信息。否则,事件会失效。
+    //var m = $("#US_M_IF")[0];
+    m.innerHTML = f.contentWindow.document.body.innerHTML;
+    document.body.removeChild(f); //移除了此iframe后所有事件丢失了。
+    U.CD.OU.RemoveJS(m); //移除掉很多不需要的js和注释
+    U.D.FLoad(); //重新执行UD.js中的window.onload。
+    U.CD.OU.Dis1473Ele(); //把需要显示的元素加载到body中
+    //添加本项目window.resize事件到主项目window.resize,window.onload和window.onresize是同名函数。只能这样处理
+    //但1473主项目的window.onreisze函数脱离环境运行不成功,等会再研究
+    U.M.AddEvent("resize", window, U.CD.LO.SetWH);
+}
+U.CD.OU.RemoveJS = function (m) {
+    //移除掉广告js,因为本项目中已经有了,移除时只能从大到小循环
+    var d = m.childNodes, i;
+    for (i = d.length - 1; i > 0; i--) {
+        if (d[i].tagName == "SCRIPT" || d[i].tagName == "!") {
+            //如果是QQ登录Web登录,则移动到body末尾。这种方式出错,改为Html直接引用
+            //if (d[i].src.indexOf("U.U.OT.js") > -1) document.body.appendChild(d[i]);
+            m.removeChild(d[i]);
+        }
+    }
+}
+//主项目的静态元素需要显示在子项目中的,全部提到body层
+U.CD.OU.Dis1473Ele = function () {
+    //此处还可以把其他不可见,但本项目需要的元素移动上来。
+    document.body.appendChild($("#UU_UR_Win")[0]);
+    document.body.appendChild($("#addnewFriendsGroup")[0]); //追加添加好友的函数
+    document.body.appendChild($("#UU_N_UProDiv")[0]); //个人信息面板
+    document.body.appendChild($("#UseStudioU_MP")[0]); //音乐面板
+    //document.body.appendChild($("#UseStudioUserDiskDiv")[0]);//硬盘面板
+    document.body.appendChild($("#UF_UP_UserBoard")[0]); //好友面板
+    document.body.appendChild($("#UDK_FUP")[0]); //flash上传面板
+    document.body.appendChild($("#UDK_UP")[0]); //普通文件上传面板,上传区分了2个,比较特殊
+    document.body.appendChild($("#UF_S_Div")[0]); //查找好友
+    document.body.appendChild($("#UF_GM_FMDiv")[0]); //好友管理面板
+    document.body.appendChild($("#UF_DM_AFSWindow")[0]); //添加好友面板
+    document.body.appendChild($("#UU_N_CD")[0]); //添加自己的头像设置
+
+}
+
+//重写U.D.SetDTop,让包含编程端和1473主项目的div,不再置顶。
+//框架到最顶层,已经出现的div,点击任何一个地方都可以置顶。。
+//U.D.SetDTop = function (UEL) {
+//    var _UE = U.M.GetEvent(); UEL = UEL || U.D.GetPD(_UE.srcElement); U.M.StopBubble(); //阻止冒泡
+//    if (UEL.id == "UCD_Contain" || UEL.id == "US_M_IF") return;
+//    if (UEL && U.M.GetStyle(UEL, "position") == "absolute" && UEL.tagName.toLocaleLowerCase() == "div") { UEL.style.zIndex = (top.US.ZV++); }
+//}
+
+
+
+
+//本项目和桌面互相切换函数,参数t为空,则切换主项目,否则,切换回本项目,以后会添加更多切换类型
+U.CD.OU.CHDesk = function (t) {
+    var s = $("#US_M_DIV")[0], d = $("#UCD_Contain")[0];
+    if (t == "d") { (new U.Img.Animate()).LScreenSwitch(s, d, function () { U.CD.OU.CHButton("切换编程端", "c", s) }); }
+    else { (new U.Img.Animate()).LScreenSwitch(d, s, function () { /*U.CD.OU.CHButton("切换到桌面","d",d);*/ }); }
+    if ($("#UD_Chat")[0]) $("#UD_Chat")[0].style.display = "none"; //如果聊天框存在,让它不显示。
+    if ($("#UD_ZY")[0]) $("#UD_ZY")[0].style.display = "none";
+}
+//向主项目添加一个切换回来的按钮,type是返回哪个界面的标示符,只有2个界面,以后可能会添加比较多。参数s是每个端具体的div
+U.CD.OU.CHButton = function (n, t, s) {
+    if ($("#UCD_OT_QH")[0]) return; //如果存在,则不再添加
+    var a = $$("div", { "id": "UCD_OT_QH", "onclick": [[U.CD.OU.CHDesk, ([t])]] }, s);
+    $$("div", { "className": "UD_NUB UCD_OT_QH_L" }, a);
+    $$("div", { "className": "UCD_OT_QH_R", "innerHTML": n }, a);
+}
+
+//调用1473登录窗口,如果此元素是动态的,会直接加到body。如果是静态的,则需要把元素移动到body层。
+U.CD.OU.Login = function () {
+    U.D.DT.DLTC(3);
+}
+
+//把1473主项目异步登录函数赋予这个全局变量,然后就可以重写主项目的异步登录函数,让它同时执行1473登录和本项目登录。
+U.CD.OU.LoginAsyn = U.U.L.AsynUlL;
+U.U.L.AsynUlL = function (request, TF) {
+    U.CD.OU.LoginAsyn(request, TF); //执行1473登录回调。
+    U.CD.U.LoginAsyn(request); //执行本项目登录,由于会顺次执行,所以需要修改一些信息
+}
+
+//执行用户退出操作
+U.CD.OU.LogoutAsyn = U.U.L.TCUL;
+U.U.L.TCUL = function () {
+    U.CD.OU.LogoutAsyn(); //主项目退出
+    U.CD.U.Logout(); //退出编程端
+}
+
+//弹出个人信息面板
+U.CD.OU.ProDiv = function () {
+    U.D.DT.DKGEZL();
+    //    U.U.UPD();
+    //    U.D.SetDTop($("#UU_N_UProDiv")[0]); //置于顶层
+}
+
+
+//异步获取新增用户,由于主项目模版只有9位,所以新做一个
+U.CD.OU.GNU = function () {
+    U.A.Request("UseStudioManage.NetAdditionData", (["27"]), U.CD.OU.GNUAsyn, ([""]));
+}
+//新增用户异步处理。
+U.CD.OU.GNUAsyn = function (r) {
+    r = r.value;
+    if (r) {
+        var _UDFD = document.createDocumentFragment();
+        _UDFD = $("#UCD_L_NU")[0]; _UDFD.innerHTML = "";
+        var l = r.length > 39 ? 39 : r.length;
+        for (var i = 0; i < l; i++) {
+            //$$("img", { "src": U.M.GetImgU(r[i].UserThumbnailImageHead), "title": r[i].UserNickName, "onerror": U.M.ImgError }, _UDFD);
+            $$("img", { "src": U.M.GetImgU(r[i].UserThumbnailImageHead), "title": r[i].UserNickName, "onerror": U.M.ImgError, "onclick": [[U.M.StopBubble], [U.U.I.POUW, ([r[i].UserID])]] }, _UDFD);
+        }
+    }
+}
+
+//m为主版块id,c为子版块id
+U.CD.OU.Forum = function (m, c) {
+    U.D.DT.YYDK("PB", ["3c779543-bc1a-4851-af22-af9ba97a5f33"]);
+    //    //(_UTF == null) && (_UTF = ["http://pb.1473.cn/PublicBoards.aspx?NavigatePath=" + UAF, [["window.frames['UseStudioStudyControlDivIframe'].U.BB.Navigateonload", ([UAF || ''])]]]);
+    //    //第2个参数好像没有用,按道理应该是主版块id
+    //    U.M.divdoubleClick('UseStudioStudyControlDiv', '28d8089d-ee85-4f9b-b1b6-8c1d8ccff719', null, null, 'SUB28d8089d-ee85-4f9b-b1b6-8c1d8ccff719');
+    //    //U.M.divdoubleClick('UseStudioStudyControlDiv', '', null, null, 'SUB3c779543-bc1a-4851-af22-af9ba97a5f33');
+    //    U.D.SetDTop($("#UseStudioStudyControlDiv")[0]);
+}
+
+//调用主项目回复信息,如果用户未登录,提示用户登录
+U.CD.OU.Reply = function (id) {
+    if (!U.MS.Guid.test(id)) { alert("评论id应该是guid"); return; }
+    U.D.CM.CKPLXS(id, "编程平台");
+}
+
+
+//   1、新项目引入1473需要做什么?
+//
+//
+//  
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//   2、跨域需要引用什么?怎么做
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+

+ 574 - 0
js/U.CD.Right.js

@@ -0,0 +1,574 @@
+Namespace.register("U.CD.RT");
+//注册右边个人项目栏js。把右边的树的js全部搬到这个地方。
+
+///
+U.CD.RT.Init = function () {
+}
+
+//-------------------------------------------------------------右边树目录的创建----------------------------------------------------------------
+//当获取用户数据后装载用户的右边树节点。第一个参数是后台返回数据,第二个参数为当前选择的项目,如果没有这个参数,则默认显示第一个项目
+U.CD.RT.LUDataAsyn = function (r) {
+
+    U.CD.LO.OpenZY();
+    //打开资源管理器
+    var _ld = r.context[0];
+    (_ld) && (_ld.parentNode.removeChild(_ld));
+    var i, _pnum = 0;
+    if (r.value == "" || r.value == "null") {
+        //添加改用户的基本信息,后台会判断是否为合法用户,用在后台传递认证的方式已经解决。
+        //U.ACD.Request(U.CD.AjaxUrl, ([type, userid, node.ID, node.Deep, Guid.newGuid(), input.value]), U.CD.RT.CP_OKAsyn, ([""]));
+        U.UI.Confirm("没取到该用户数据,确认重新获取!", [U.CD.U.LUData, ([US.userinfo])], "");
+        return;
+    }
+    //这个要注释。这是基本数据结构,他的合理性牵涉到前台所有代码的规范性。
+    //var _u = eval("(" + r.value + ")"); //由于r.value带了双引号,必须按照这种方式进行转换。比较奇特。
+    var _u = r.value;
+    //由于r.value带了双引号,必须按照这种方式进行转换。比较奇特。
+    U.CD.U.CUser = U.CD.U.AUsers[_u.UserID] = _u;
+    //集合加数组功能。//添加进用户集合中。同时赋予当前操作用户。
+    var L = _u.TNode[0].TNode;
+    //这要注释。TNode代表用户项目目录的标识。第一个TNode代表了根目录。第二个TNode代表了根目录的所有孩子节点。
+
+    //右边树目录区域,上面为资源管理器,下边为树目录。
+    var _mdiv = $("#UCD_RTree")[0];
+    _mdiv.innerHTML = "";
+    //清空以前用户数据。
+    //设置资源管理器样式
+    var _zygl = $$("div", {
+        "className": "UCD_RT_Root"
+    }, _mdiv);
+    //资源管理器
+    //    var _gl = $$("div", { "className": "UCD_RT_Root_TJ" }, _zygl);
+    //    for (i = 0; i < L.length; i++) { if (!L[i].IsDelete) _pnum++; } //统计项目个数
+    $$("div", {
+        "className": "UCD_RT_Root_TJ_NR",
+        "innerHTML": "资源管理器"
+    }, _zygl);
+    $$("div", {
+        "className": "UCD_TT_T_X",
+        "onclick": [[U.CD.LO.CloseZY]],
+        "style": {
+            "margin": "3px"
+        },
+    }, _zygl);
+    //    var _zy = $$("div", { "className": "UCD_RT_Root_ZY" }, _zygl);
+    //    $$("div", { "className": "UCD_RT_Root_Z", "innerHTML": "资源管理器" }, _zy);
+    //如果用户已经登录,才能有创建项目按钮
+    //    if (U.CD.U.IsUSelf())
+    //        $$("div", { "className": "UCD_RT_Root_C", "innerHTML": "创建项目", "onclick": [[U.CD.RT.CProject, ([_u.UserID, _u.TNode[0]])]] }, _zy); //创建项目按钮
+    //如果是查看其它人的资料,需要屏蔽树的操作菜单,屏蔽掉保存按钮,屏蔽掉用户登录。关闭示例项目
+    if (!U.CD.U.IsUSelf())
+        U.CD.Url.ForbUser();
+
+    ///清理掉以前项目的所有数据。
+
+    //如果传递了项目id,则选中该项目,否则,选取第一个项目。    ///装载现有项目的数据。实现选中当前项目和当前文件的功能。
+    //因为有些节点被删除了,IsDelete=true。不能作为第一个节点。按道理数据库就不应该筛选出来,以后再搞!!!!
+    var _cp = r.context[1], _sel, _cso;
+    //定义当前选中的节点,
+    //此处需要清空数组,那么清空数组功能需要放在UC去实现。参考1473上面贴出的文章。
+    if (_cp) {
+        for (i = 0; i < L.length; i++) {
+            if (L[i].ID == _cp) {
+                _sel = L[i];
+                L = [];
+                L.push(_sel);
+                break;
+            }
+        }
+    } else {
+        for (i = 0; i < L.length; i++) {
+            if (!L[i].IsDelete) {
+                _sel = L[i];
+                break;
+            }
+        }
+    }
+
+    //创建树的总面板。
+    var TreeDiv = $$("div", {
+        "id": "UCD_RT_Tree"
+    }, _mdiv)
+    for (i = 0; i < L.length; i++) {
+        U.CD.RT.F_L_Node(L[i], _u.UserID, TreeDiv);
+    }
+    //遍历每个节点。    //生成右边树结构。
+
+    //指定当前项目和文件
+    if (!_sel)
+        return;
+    //如果找不到项目,则返回
+    _cso = TreeDiv.getElementsByTagName("div")["UCD_Tree" + _sel.ID];
+    //找到树节点。
+    if (_sel)
+        U.CD.RT.SM(_cso, _u.UserID, _sel);
+    //如果有子项目,展开第一个项目。
+
+    //选中第一个文件节点。也要循环判断是否删除了。晕,以后一定后台解决此问题。
+    var _ffile = null;
+    for (i = 0; i < _sel.TNode.length; i++) {
+        if (!_sel.TNode[i].IsDelete && _sel.TNode[i].Type == "file") {
+            _ffile = _sel.TNode[i];
+            break;
+        }
+    }
+    if (_ffile) {
+        _ffile.Content = unescape(_ffile.Content);
+        U.CD.R.LoadFC(_ffile);
+    }
+
+    if (_ffile && _ffile.Name)
+        document.title = _ffile.Name;
+    //设置网页标题
+
+}
+
+//不知道什么原因,有可能mongodb,mysql不稳定,有时候取不到数据,此函数刷新页面,重新获取数据
+//U.CD.RT.LUDReload = function () { U.CD.Init(); }
+
+//右边子元素
+U.CD.RT.CLV = function (L, UDOD, UUID) {
+    var _UDFD = document.createDocumentFragment();
+    for (var i = 0; i < L.length; i++) {
+        U.CD.RT.F_L_Node(L[i], UUID, _UDFD);
+        //遍历每个节点。
+    }
+    UDOD.appendChild(_UDFD);
+}
+
+//每个节点的信息。,参数1为单个节点node,参数2为用户id,参数3为所有节点的文档碎片。
+U.CD.RT.F_L_Node = function (node, UUID, _UDFD) {
+    var _UDIC, _UDTD, UDSD, _UDA;
+    if (node.IsDelete)
+        return;
+    //不列出已经删除的节点。
+    if (node.Deep == "2") {
+        _UDIC = "UCD_RT_ProIcon";
+    }//项目图标。
+    else {
+        _UDIC = "UCD_RT_FolderIcon";
+    }
+    //文件夹图标。
+    if (node.Type == "file") {
+        if (U.UP.IsImg(node.Name))
+            _UDIC = "UCD_RT_USTreeAlbumIcon";
+        else
+            _UDIC = "UCD_RT_FileIcon";
+    }
+    //文件图标
+    _UDTD = $$("div", {
+        "className": "UCD_RT_USTreecontainA",
+        "onclick": [[U.M.StopBubble], [U.CD.RT.DBC, ([node.ID])]]
+    }, _UDFD);
+    _UDSD = $$("div", {
+        "className": "UCD_RT_USTTitle",
+        "id": "UCD_Tree" + node.ID,
+        "onclick": [U.CD.RT.SM, (["retElement", UUID, node])]
+    }, _UDTD);
+    $$("div", {
+        "className": "UCD_RT_DiskGE UCD_RT_I_D_E UCD_RT_USTreesign"
+    }, _UDSD);
+    _UDA = $$("a", {
+        "className": "UCD_RT_USTreeusestudiodisktreeA",
+        "title": node.Name
+    }, _UDSD);
+    //if (U.CD.U.IsUSelf())
+        U.CD.RT.F_OP(_UDSD, UUID, node);
+    //如果用户已经登录、增加一个增删查改功能
+    $$("i", {
+        "className": "UCD_RT_Icon " + _UDIC
+    }, _UDA);
+    $$("span", {
+        "innerHTML": node.Name
+    }, _UDA);
+
+}
+
+//文件夹和文件操作面板
+U.CD.RT.F_OP = function (_UDTD, userid, node) {
+    var _ZSCG = $$("div", {
+        "className": "UCD_RT_ZSCG"
+    }, _UDTD);
+    var _c;
+    if (node.Type == "folder") {
+        _c = $$("div", {
+            "className": "UCD_RT_ZSCG_T",
+            "title": "发布项目!",
+            "innerHTML": "✿",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.Panel, (["retElement", userid, node])]]
+        }, _ZSCG);
+        //统一设置面板
+    } else
+        _c = $$("div", {
+            "className": "UCD_RT_ZSCG_T",
+            style: {
+                "margin-left": "-10px"
+            },
+            "title": "发布项目!",
+            "innerHTML": "✿",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.Panel, (["retElement", userid, node])]]
+        }, _ZSCG);
+    //统一设置面板
+
+}
+
+//伸展树形目录。
+U.CD.RT.SM = function (SO, UUID, node) {
+    if (node.Type == "folder") {
+        U.CD.U.CUser.CurrentSO = SO.parentNode;
+        U.CD.U.CUser.CurrentNode = node;
+    }
+    //记录当前单击文件夹节点
+    var _pre = U.CD.U.CUser.PreClickNode;
+    if (_pre)
+        _pre.style.backgroundcolor = "white";
+    //清除上次单击节点的样式。
+    if (node.Type == "file") {
+        node.Content = unescape(node.Content);
+        U.CD.R.LoadFC(node);
+        return;
+    }
+    //如果单击的是文件,打开文件。
+    var _UDOB = $("div", SO)[0];
+    //获取点击目录里的a标签 修改里的样式和获取id
+    var _L = $("div", SO.parentNode).length - 3;
+    //获取张开的孩子,增加一个功能就要修改这里,,要有统一处理方案。
+    var _CT = "UCD_RT_DiskGE UCD_RT_I_D_E UCD_RT_USTreesign";
+    //伸张的样式
+    if (_L > 1) {
+        SO.parentNode.removeChild(SO.parentNode.lastChild);
+    }//未伸展
+    else {
+        //伸展
+        //var _VA = U.CD.U.CUser.TNode.Select({ "ID": UDID })[0].TNode; //选取需要展示的数据。   U.Entity还需要继续改写。。。
+        var _VA = node.TNode;
+        //获取节点的子节点,选取需要展示的数据。   U.Entity还需要继续改写。。。
+        if (_VA != null) {
+            U.CD.RT.LV(_VA, SO.parentNode, UUID);
+            _CT = "UCD_RT_DiskGE UCD_RT_I_D_S UCD_RT_USTreesign";
+        }
+        //展开所有的子目录
+    }
+    _UDOB.className = _CT;
+    //伸缩的杨思
+    U.CD.RT.VM(SO, UUID, node);
+    //改变单击的样式
+}
+//这里是说明右边的树形栏视图
+U.CD.RT.LV = function (L, UDD, UUID) {
+    var _UDOD = $$("div", {
+        "style": {
+            "marginLeft": "10px"
+        }
+    }, UDD);
+    U.CD.RT.CLV(L, _UDOD, UUID);
+}
+//单击菜单时的效果 伸缩时候的点击元素效果
+U.CD.RT.VM = function (SO, userid, node) {
+    //if (US.Disk.diskfileTree[1][5]) { $(US.Disk.diskfileTree[1][5]); US.Disk.diskfileTree[1][5].style.border = "0"; US.Disk.diskfileTree[1][5].style.backgroundColor = ""; } //删除上次点击左边菜单变化的a标签
+    SO.style.backgroundColor = "rgb(234, 234, 234)";
+    //颜色变化
+    U.CD.U.CUser.PreClickNode = SO;
+    //把变化的对象放入 下次点击清理
+    //记录当前选中节点,以便新建文件时使用,其他地方也可以使用。此处需要找孩子节点才方便,否则,需要修改程序。
+    //if (node.Deep == 2) { U.CD.U.CUser.CurrentSO = SO.parentNode; U.CD.U.CUser.CurrentNode = node; }//为啥要深度等于2?
+
+}
+U.CD.RT.DBC = function () { }
+
+//-----------------------------------------------------------新建一个项目,或者文件夹。---------------------------------------------------
+
+//新建控制面板。
+
+U.CD.RT.Panel = function (SO, userid, node) {
+    var _UDUP = $("#UCD_RT_FUP")[0]
+      , _UDUT = $("#UCD_RT_FUPCT")[0];
+    //获取命令窗口
+    var _NR = $("#UCD_RT_FUPCC")[0];
+    _NR.innerHTML = "";
+    //获取内容窗口
+    _UDUT.innerHTML = "当前目录:<span>" + node.Name + "</span>。";
+    //如果是文件夹或者项目则创建相应菜单,否则是文件,创建相应菜单。
+    if (node.Type == "folder") {
+        //暂时做到这样,以后再加图标,美化界面
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "新建子文件夹",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_CF, ([SO, userid, node])]]
+        }, _NR);
+        //新建文件夹
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "修改文件夹",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_M, ([SO, userid, node])]]
+        }, _NR);
+        //修改
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "删除文件夹",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_DF, ([SO, userid, node])]]
+        }, _NR);
+        //删除
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "新建文件",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_NF, ([SO, userid, node])]]
+        }, _NR);
+        //新建文件
+        var _up = $$("div", {
+            "className": "UCD_RT_Com UCD_RT_TreeIcon",
+            "innerHTML": "上传照片"
+        }, _NR);
+        //上传图片
+        $$("input", {
+            "id": "UCD_RT_Com_Up",
+            "name": "UCD_RT_Com_Up",
+            "type": "file",
+            "multiple": "true",
+            "accept": "image/gif,image/jpeg,image/png",
+            "onchange": [[U.CD.O.TreeUPFile, (["retElement"])]]
+        }, _up);
+
+        if (node.Deep == 2)
+            $$("div", {
+                "className": "UCD_RT_Com",
+                "innerHTML": "发布项目和作业",
+                "onclick": [[U.M.StopBubble], [U.CD.SL.Publish, ([SO, userid, node])]]
+            }, _NR);
+        //上传图片
+    } else {
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "修改文件名",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_M, ([SO, userid, node])]]
+        }, _NR);
+        //修改文件名
+        $$("div", {
+            "className": "UCD_RT_Com",
+            "innerHTML": "删除文件",
+            "onclick": [[U.M.StopBubble], [U.CD.RT.CP_DF, ([SO, userid, node])]]
+        }, _NR);
+        //删除文件
+    }
+    if (_UDUP.style.display == "none") {
+        U.D.PopupWindow(_UDUP);
+    }
+    //onclick直接响应
+}
+
+//创建一个项目,从根节点创建,SO代表根节点。userid用户id,node是节点信息
+U.CD.RT.CProject = function (userid, node) {
+    //使用统一的创建对话框,减少代码量,传递不同的回调处理函数。js太智能。
+    U.CD.RT.NDialog("创建新项目", U.CD.RT.CP_OK, ([$("#UCD_RT_Tree")[0], userid, node, "Add_Folder"]));
+}
+//新建一个文件夹,从子节点创建
+U.CD.RT.CP_CF = function (SO, userid, node) {
+    U.CD.RT.NDialog("新建文件夹", U.CD.RT.CP_OK, ([SO, userid, node, "Add_Folder"]));
+}
+//新建一个文件。
+U.CD.RT.CP_NF = function (SO, userid, node) {
+    U.CD.RT.NDialog("新建文件,请自己添加扩展名!", U.CD.RT.CP_OK, ([SO, userid, node, "Add_File"]));
+}
+
+U.CD.RT.Display = function () {
+    $("#UCD_RT_FUP")[0].style.display = "none";
+}
+
+//新建项目或者文件夹或者修改公用弹出对话框函数。//参数1为Title,参数2为异步回调函数,参数3为异步函数参数数组。
+U.CD.RT.NDialog = function (T, C, P) {
+    var _UFFD = $$("div", {
+        "className": "UCD_TR_CP"
+    });
+    //调用主项目对话框,并构建一个显示用的Div。
+    $$("div", {
+        "className": "UCD_TR_CP_T",
+        "innerHTML": "您操作的当前目录为:<span style='color:red;'>" + P[2].Name + "</span>"
+    }, _UFFD);
+    //项目名称输入input
+    $$("div", {
+        "className": "UCD_TR_CP_MS",
+        "innerHTML": "请输入名称:"
+    }, _UFFD);
+    //项目名称输入input
+    var _p = $$("input", {
+        "className": "UCD_RT_CP_Input"
+    }, _UFFD);
+    P.push(_p);
+    //追加input为参数数组。居然后面函数参数的能自动拆分此数组?
+    //创建项目一定是在根元素下面。
+    var _CUM = new U.UI.Dialog(T, {
+        "width": "350px"
+    }, null, U.M.apply(_UFFD, [[C, P]]), _UFFD);
+    //js太智能了,可以自由拼凑参数!
+    U.D.PopupWindow(_CUM.Create());
+}
+
+//创建项目、文件夹、文件的函数,
+//参数为SO 为触发事件的页面元素,用户id ,node为父亲节点,input为新节点的input,不能直接传值,type为类型,文件或者目录,
+U.CD.RT.CP_OK = function (SO, userid, node, type, input, content) {
+    //节点基本信息,名字和id,id由前台生成。
+    var _fname = input.value, _fid = Guid.newGuid(), _nnode;
+    if (!U.CD.RT.VName(userid, _fname, type)) {
+        alert("名字不符合规范或者存在同名文件!");
+        return;
+    }
+    //前台添加一个节点,数组中也要添加节点。
+    if (type == "Add_File")
+        _nnode = {
+            "Name": _fname,
+            "CreateDate": new Date(),
+            "Type": "file",
+            "Content": "",
+            "ID": _fid,
+            "Deep": parseInt(node.Deep) + 1,
+            "IsPublic": true
+        };
+    else
+        _nnode = {
+            "Name": _fname,
+            "CreateDate": new Date(),
+            "Type": "folder",
+            "ID": _fid,
+            "Deep": parseInt(node.Deep) + 1,
+            "TNode": [],
+            "IsPublic": true
+        };
+    var L = [];
+    L.push(_nnode);
+    //追加一个节点,传递几个参数就追加几个。这种方式不科学,以后再改。因为硬盘是这样写的。
+
+    //如果不是根目录,或者className不是SO本身,需要找到添加子文件夹的父亲元素。
+    if (node.Deep > 1 && SO.className != "UCD_RT_USTreecontainA")
+        SO = SO.parentNode.parentNode.parentNode;
+
+    node.TNode.push(_nnode);
+    //同时向前台json中追加数据,没有json树真麻烦啊。。做json树操作是一定的。
+    if (node.Deep == "1")
+        U.CD.RT.CLV(L, $("#UCD_RT_Tree")[0], userid);
+        //根节点添加孩子节点,不会有margin右移操作
+        //向前台追加树结点。//如果连续追加多个,会多出很多margin:10px父亲节点,会出问题。
+    else if (SO.childNodes.length == 2) {
+        U.CD.RT.CLV(L, SO.lastChild, userid);
+        ;
+    } else {
+        U.CD.RT.LV(L, SO, userid);
+    }
+
+    //记录当前选中节点,以便新建文件时使用,其他地方也可以使用。此处需要找孩子节点才方便,否则,需要修改程序。
+    if (_nnode.Deep == 2) {
+        U.CD.U.CUser.CurrentSO = SO.lastChild;
+        U.CD.U.CUser.CurrentNode = _nnode;
+    }
+
+    //后台添加一个节点。传递了用户id,根元素id,根元素深度,新节点guid,新节点名字。
+    U.ACD.Request(U.CD.AjaxUrl, ([type, userid, node.ID, node.Deep, _nnode.ID, _nnode.Name]), U.CD.RT.CP_OKAsyn, ([""]));
+}
+//添加项目异步。是否添加成功或者失败,异步回调函数
+U.CD.RT.CP_OKAsyn = function (r) {
+    if (r.value == "false" || r.value == "") {
+        alert("添加失败,点此反馈信息");
+        return;
+    }
+    //var _node = eval("(" + r.value + ")"); //如果是文件添加成功,则刷新代码页面。
+    var _node = r.value;
+    //如果是文件添加成功,则刷新代码页面。
+    //如果是文件夹,则把焦点至于当前文件夹
+
+    //更新树节点。否则树和节点不同步。
+    if (_node.Type == "file") {
+        U.CD.R.LoadFC(_node);
+        //刷新代码和视图,选项卡,换行窗口。
+    }
+    alert("添加成功");
+}
+
+//--------------------------------------------------------------------删除功能确认----------------------------------------------------
+U.CD.RT.CP_DF = function (SO, userid, node) {
+    //L = L.Select({ "ID": id })[0]; //查找到指定节点。//从数据库删除,通过id如何查找其父亲节点?这是一个问题,U.E.Entity应该能够解决此问题。
+    U.UI.Confirm("你确定删除 <span style='color:blue;'>" + node.Name + "</span>分组吗?", [U.CD.RT.CP_D, ([SO, userid, node])], "");
+    var len = document.getElementsByClassName('UD_SYF_S UD_SYKO').length;
+    var len_t = document.getElementsByClassName('UD_SYF_ST').length;
+    var len_th = document.getElementsByClassName('UD_SYF_SS UD_SYI').length;
+    var len_f = document.getElementsByClassName('U_UI_OBY').length;
+    /*for(var izus = 0;izus<len;izus++){
+        document.getElementsByClassName('UD_SYF_S UD_SYKO')[izus].style.cssText="box-shadow: 0 0 0px 0px #fff;display:block;width: auto;height: auto;min-width: 300px;display: block;left: 578.5px;top: 400px;z-index: 9999;border-radius:0;-webkit-border-radius:0;"
+    }*/
+    for (var izuss = 0; izuss < len_t; izuss++) {
+        document.getElementsByClassName('UD_SYF_ST')[izuss].style.cssText = "background: url(../images/navigation.png);box-shadow: rgb(136, 136, 136) 0px 1px 2px;height:18px";
+    }
+    for (var j = 0; j < len_th; j++) {
+        document.getElementsByClassName('UD_SYF_SS UD_SYI')[j].style.cssText = "width: 18px;height: 17px;margin-right: 6px;margin-top: 3px;";
+    }
+    for (var z = 0; z < len_f; z++) {
+        document.getElementsByClassName('U_UI_OBY')[z].onmouseover = function () {
+            this.style.background = "#3b3b3b";
+        }
+        document.getElementsByClassName('U_UI_OBY')[z].onmouseout = function () {
+            this.style.background = "#bbb";
+        }
+    }
+}
+//删除功能
+U.CD.RT.CP_D = function (SO, userid, node) {
+    //首先前台删除该节点//找到节点位置
+    SO = SO.parentNode.parentNode.parentNode;
+    SO.parentNode.removeChild(SO);
+    U.ACD.Request(U.CD.AjaxUrl, (["Delete_Folder", userid, "0", node.ID]), U.CD.RT.CP_DAsyn, (["", node]));
+    U.CD.RT.Display();
+}
+//删除功能异步函数。
+U.CD.RT.CP_DAsyn = function (r) {
+    var node = r.context[1];
+    if (r.value) {
+        //清理Tab和代码栏目
+        var _UFUL = $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0];
+        //获取Tab栏
+        var UFLI = _UFUL.getElementsByTagName("li")["Tab" + node.ID];
+        //如果找到了节点,关闭节点,否则,直接提示删除。
+        if (UFLI) {
+            U.CD.CloseEdit(_UFUL, UFLI, node);
+            alert("删除节点" + node.Name + "成功!");
+        } else
+            alert("删除成功");
+    } else
+        alert("删除失败");
+}
+
+//----------------------------------------------------------------------修改功能----------------------------------------------------
+U.CD.RT.CP_M = function (SO, userid, node) {
+    U.CD.RT.NDialog("修改操作!!!", U.CD.RT.CP_MOK, ([SO, userid, node]));
+}
+//修改操作
+U.CD.RT.CP_MOK = function (SO, userid, node, input) {
+    var _fname = input.value;
+    //只能传递input,否则是空值。
+    if (!U.CD.RT.VName(userid, _fname)) {
+        alert("名字不符合规范或者存在同名文件!");
+        return;
+    }
+    SO.parentNode.parentNode.getElementsByTagName("span")[0].innerHTML = _fname;
+    //修改名称。
+    U.ACD.Request(U.CD.AjaxUrl, (["Update_Folder", userid, "0", node.ID, _fname]), U.CD.RT.CP_MOKAsyn, ([""]));
+    U.CD.RT.Display();
+}
+U.CD.RT.CP_MOKAsyn = function (r) {
+    r.value ? alert("修改成功") : alert("修改失败");
+}
+
+//---------------------------------公用函数--------------------------------------------
+//检查名字是否符合规范,在当前文件夹中是否存在同名文件
+U.CD.RT.VName = function (userid, _fname, type) {
+    var _ut = U.CD.U.AUsers[userid];
+    //找到用户在用户集合中的树信息。
+    //if (type == "Add_File") { if (!U.MS.FileName.test(_fname)) return false; } //如果是文件,则匹配文件名。文件名还是允许输入中文,不然新手很不习惯。//else { 
+    if (!U.MS.ZWFileName.test(_fname))
+        return false;
+    //借用了登陆注册的正则表达式,检验名字是否符合规范。
+    //U.E.Entity需要继续改写,此处要改写,没判断删除的文件夹
+    if (_$(_ut.TNode).FindOne({
+        "Name": _fname,
+        "IsDelete": false
+    }))
+        return false;
+    return true;
+}

+ 601 - 0
js/U.CD.Run.js

@@ -0,0 +1,601 @@
+//运行程序的js,主要功能设计编制好的代码进行运行。
+
+Namespace.register("U.CD.R");
+//注册运行js
+
+U.CD.R.CErrF = null;
+//当程序发生错误时改变代码窗口响应行的颜色。
+U.CD.R.CErrFBT = null;
+//错误时弹出错误帮助div
+
+//U.CD.U.CUser.CTab 保存了上一次的Tab栏数据
+
+//根据文件id装载文件,Tab窗口等。右键菜单单击文件时用到。文件id作为树节点id,需要修改为加UCD_RT前缀,表示此项目右键菜单。
+U.CD.R.LoadFC = function (node, language) {
+
+    //如果是图片类型,则直接显示图片
+    if (U.UP.IsImg(node.Name)) {
+        var _f = US.fs + node.Content.split("|")[1]
+          , _e = US.fs + node.Content.split("|")[0];
+        //拆分出缩略图和原图。
+        //var _if = $("#UCD_CT_SM_IF")[0].contentWindow.document.body; //U.Img.Create([{ 'Thm': _e, 'Img': _f }]);
+        //var _img = $$("img", { "src": _f, "onerror": [U.M.ImgError, (["this", 2])] }); _if.innerHTML = ""; _if.appendChild(_img);
+        //$$("div", { "onselectstart": function () { return true; }, "innerHTML": "图片路径:" + _f + "</br>缩略图路径:" + _e }, _if);
+        //var s = "<img src='"+ _f +"' onerror=''>";
+        var d = $$("div", {
+            "style": {
+                "cssText": " width:100%; height:100%;"
+            }
+        });
+        $$("img", {
+            "src": _e,
+            "style": {
+                "cssText": "margin:10px; max-width:500px; max-height:350px; cursor:pointer; "
+            },
+            "onclick": [[U.M.StopBubble], [U.Img.Create, ([{
+                "Thm": _e,
+                "Img": _f
+            }])]],
+            "onerror": [U.M.ImgError, (["this", 2])]
+        }, d);
+        $$("div", {
+            className: "UC_TF",
+            onselectstart: "U.M.StopBubble();return true;",
+            "innerHTML": "文件服务器名字为:" + _f
+        }, d);
+        U.UI.SUForms(d, "图片显示窗口", "UCD_R_ImgDis", "color:red;", 500, 400);
+        return;
+    }
+    //如果node.Conteng!="" 或者node.Content只有1行,或者node.Contet.split("!")是2个。则表明是上传的文件,弹出提示,非图片文件不能展示,请持续关注后续版本。
+    if (node.Content.split("|").length == 2 && node.Content.replace(/\r\n/g, '\n').split('\n').length == 1) {
+        alert("未知文件类型,非图片文件不能展示,请持续关注后续版本");
+        return;
+    }
+    if (!U.CD.ExistTab(node)) {
+        U.CD.R.CreateTab(node);
+    }
+    //如果不存在Tab栏中,则创建上部Tab栏。
+
+    //给评论按钮赋值
+    $("#UCD_CT_IF_PL")[0].onclick = function () {
+        U.CD.OU.Reply(node.ID);
+    }
+
+}
+//------------------------------------------------------------------------------上部TAb切换区域-------------------------------------------------------------
+//关闭一个编程窗口?
+U.CD.CloseEdit = function (UFUL, UFLI, UTREE) {
+    var _l = UFUL.getElementsByTagName("li");
+    //如果移除的是当前节点的值,把第一个节点置为当前节点,并且刷新数据,如果移除的节点是第一个,并且是当前节点,则把第二个节点置为第一个。,如果全部移除完毕,则清空数据?
+    if (UFLI == U.CD.U.CUser.CTab) {
+        //如果只有1个节点,则把Tab置空,把内容置空,写得比较累赘,一会再修改。
+        if (_l.length == 1) {
+            U.CD.R.ClearTab();
+            $("#UCD_CT_IF_PL")[0].onclick = function () {
+                U.CD.OU.Reply(U.CD.BRPID);
+            }
+            //给评论按钮赋值
+            return;
+        }
+        //如果移除的节点是第一个,则把第二个节点置为第一个。否则,把第一个节点置为当前节点。
+        if (UFLI == _l[0]) {
+            U.CD.ExistTab(_l[1].Data);
+        } else {
+            U.CD.ExistTab(_l[0].Data);
+        }
+    }
+    ; UFUL.removeChild(UFLI);
+    //在ul中移除该节点。
+}
+//清空Tab切换栏。会多处调用,独立为一个函数
+U.CD.R.ClearTab = function () {
+    if (U.CD.U.CUser)
+        U.CD.U.CUser.CTab = null;
+    $("#UCD_CT_Code_CT")[0].innerHTML = "";
+    U.CD.CD.Init();
+    //U.CD.CD.ExecIF($("#UCD_CT_Code_CT")[0]);
+    $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0].innerHTML = "";
+}
+//判断是否已经存在一个Tab标签,如果存在,则直接切换。?切换上部选项卡时没有保存以前选项卡的内容。
+U.CD.ExistTab = function (node) {
+    var _value = false;
+    //初始值,用于判断是否存在该选项卡。存在选项卡,置为true。
+    var _ul = $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0];
+    //获取选项卡ul标签。
+    var _l = _ul.getElementsByTagName("li");
+    //获取ul下面所有li标签。
+    for (var i = 0; i < _l.length; i++) {
+        //如果找到,返回li节点,数据保存在li节点中的Data属性中。,晕了,一直以名字来匹配,改用id
+        if (_l[i].id == "Tab" + node.ID) {
+            //_l[i].style.border = "2px solid green"; _value = true; //改变选择Tab的样式。
+            //            _l[i].style.backgroundColor = "white";
+            //            _l[i].style.borderColor = "#000";
+            //            _l[i].style.borderBottomColor = "white";
+            //            _l[i].style.marginTop = "4px";
+            _l[i].className += " UCD_CT_Top_CR";
+            _value = true;
+            //改变选择Tab的样式。
+            //切换Tab时,需要保存上一个Tab的结果,和冒泡排序交换值差不多。
+            if (U.CD.U.CUser.CTab)
+                _l["Tab" + U.CD.U.CUser.CTab.Data.ID].Data.Content = $("#UCD_CT_Code_CT")[0].innerHTML;
+            //保存上一次在代码窗口编辑的值到上一个Tab中。
+            U.CD.R.FlushCodePage(_l[i].Data);
+            //给代码窗口赋予值。
+            U.CD.U.CUser.CTab = _l[i];
+            //把切换到的li设置为当前。
+        } else {
+            _l[i].className = "UCD_CT_Top_Tab_Li";
+        }
+    }
+    return _value;
+}
+//创建代码区域的Tab栏切换效果。
+U.CD.R.CreateTab = function (node) {
+
+    //如果切换选项卡超过了7条数据,则删除第一条。这逻辑不对,应该是隐藏前面的,并做一个按钮能够浏览所有的。
+    var _ul = $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0];
+    U.CD.R.MoreTab(_ul);
+    //超过7个节点的处理,
+    //向后面追加新的Tab栏。
+    var _UFUL = $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0];
+    //获取Tab栏
+    //向Tab栏追加一个标签。
+    var _UFLI = $$("li", {
+        "class": "UCD_CT_Top_Tab_Li UCD_CT_Top_CR",
+        "id": "Tab" + node.ID,
+        "onclick": [U.CD.R.LoadFC, ([node])]
+    }, _UFUL);
+    $$("span", {
+        "innerHTML": node.Name,
+        "title": node.Name
+    }, _UFLI);
+    //$$("a", { "className": "UCD_RT_TreeIcon UCD_CT_Top_Tab_Close", "title": "close", "onmouseover": [[alert, (["123"])]], "onclick": [[U.M.StopBubble], [U.CD.CloseEdit, ([_UFUL, _UFLI, node])]] }, _UFLI);
+    $$("div", {
+        "className": "UCD_TT_T_X",
+        "style": {
+            "margin": "2px -12px"
+        },
+        "onclick": [[U.M.StopBubble], [U.CD.CloseEdit, ([_UFUL, _UFLI, node])]]
+    }, _UFLI);
+    //给当前正在使用的Tab赋内容。以保存每个代码视图。代码不多,但毕竟难懂。
+    if (U.CD.U.CUser.CTab)
+        _ul.getElementsByTagName("li")["Tab" + U.CD.U.CUser.CTab.Data.ID].Data.Content = $("#UCD_CT_Code_CT")[0].innerHTML;
+    //保存代码区域代码到。
+    //node.Content = unescape(node.Content); //解码
+    _UFLI.Data = node;
+    //保存数据到新属性中。
+    U.CD.U.CUser.CTab = _UFLI;
+    //把新创建的Tab加入当前。
+    U.CD.R.FlushCodePage(_UFLI.Data);
+    //刷新代码和视图页面。
+    //最好能做到Tab和Code和视图关联。暂时不做这个
+}
+//超过7个节点单独一个函数,以后可能还会完善。
+U.CD.R.MoreTab = function (_ul) {
+    var n = Math.floor($("#UCD_CT")[0].clientWidth / 160);
+    //根据用户的屏幕分辨率设置最大打开文件数量,li的宽度为140px
+    if (_ul.getElementsByTagName("li").length >= n) {
+        //当窗口数量大于7时,此时需要移除最前面的节点,如果最前面的节点刚好是当前节点,则把当前节点置为第二个。
+        var _c = _ul.getElementsByTagName("li")[0];
+        if (_c == U.CD.U.CUser.CTab) {
+            U.CD.U.CUser.CTab = _ul.getElementsByTagName("li")[1];
+        }
+        _ul.removeChild(_c);
+    }
+}
+
+//点击右边用户树目录时,创建代码页面。
+U.CD.R.FlushCodePage = function (node) {
+    //如果代码窗口值为""。则赋予RS.htm文件内容,以免报错。
+    if (node.Content == "")
+        U.CD.CD.Init(node);
+        //调用根据结果窗口刷新代码区域函数,获得初始值。有问题,不是初始化,一会再改。
+    else
+        U.CD.CD.DisNode(node);
+    //给代码窗口赋值,只能通过给代码窗口赋值,然后获取代码窗口innerText,才能最简单的得到给iframe打印的值,否则会带html标签到iframe。
+}
+
+//------------------------------------------------------保存功能,由于会打开多个文件,所以onclick的值会不停变化。---------------------------------------------------
+U.CD.R.Save = function (node) {
+    $("#UCD_TOP_L_BC")[0].onclick = function () {
+        var _c = U.CD.U.IsUSelf();
+        //获取用户登录Cookie.  _c.userid _c.username _c.Loginid
+        if (!_c) {
+            U.CD.U.LoginApply();
+            return;
+        }
+        //如果未登录,弹出登录窗口。
+        //如果没有传递节点名字,需要引导用户创建项目。创建文件
+        if (!node) {
+            //如果树节点中有项目,则建立在当前选中项目下面(这样太复杂),建立在第一个项目下面,如果没有项目,则提示用户将新建项目,并新建一个文件。这样太复杂了。
+            var _p = U.CD.U.CUser.TNode[0].TNode, _current = null, _nr;
+            _current = U.CD.U.CUser.CurrentNode
+            //当前项目节点
+            //for (var i = 0; i < _p.length; i++) { if (!_p[i].IsDelete) { _current = _p[i]; break; } } //找到第一个项目
+            if (_current) {
+                //此处还需要进一步修正,能够不用innerHTML最好。
+                _nr = "<div style=' color:red;text-align:left; margin-left:10px; height:25px;'>该文件已经自动选取了项目!</div>";
+                _nr += "<div style='text-align:left;margin-left:30px; height:16px; '> 确认将建立新的index.htm文件在'<span style=' color:blue;'>" + _current.Name + "'</span>项目中. </div>";
+                _nr += "<div style='text-align:left;margin-left:30px; height:16px; '>取消不做任何操作.建议在项目面板中新建文件。</div>";
+                U.UI.Confirm(_nr, [U.CD.R.SaveNewFile, ([_current, _c])], "");
+            } else {
+                U.UI.Confirm("<div style=' color:red;text-align:left; margin-left:10px; height:25px;'>您还未创建过项目!</div><div> 确认将建立一个名为Test的项目,取消不做任何操作</div> ", [U.CD.R.SaveNewFolder, ([_c])], "");
+            }
+            return;
+        }
+        //mongodb保存不了html标记,先编码。取出后解码。。由于情况比较特殊,输入内容有回车换行,这些html会自动转换,但又生成了很多div作为换行。所以是矛盾的,只能编码,解码
+        var _innertext = escape($("#UCD_CT_Code_CT")[0].innerHTML);
+        //获取代码区域内容,如果获取innerText,会取消掉回车换行符合?
+        //alert(US.userinfo.UserId);
+        U.ACD.Request(U.CD.AjaxUrl, (["Update_FileContent", _c.userid, node.Deep, node.ID, _innertext]), U.CD.R.SaveAsyn, (["", node]));
+        //保存代码。userid从cookie取
+    }
+}
+//保存功能异步函数
+U.CD.R.SaveAsyn = function (r) {
+    var i, node = r.context[1];
+    //得到上下文节点。
+    if (r.value && r.value != "null") {
+        var _l = $("#UCD_CT_Top_Tab")[0].getElementsByTagName("ul")[0].getElementsByTagName("li");
+        //获取ul下面所有li标签。//更新li节点信息。
+        for (i = 0; i < _l.length; i++) {
+            if (_l[i].id == "Tab" + node.ID) {
+                _l[i].Data.Content = node.Content;
+                alert("保存" + node.Name + "成功");
+                return;
+            }
+        }
+    } else {
+        if (node.Name == "云端示例")
+            alert("云端示例不允许保存!");
+        else
+            alert("保存失败");
+    }
+}
+//新用户登录后单击保存按钮自动创建一个名为Test的项目和一个名为index.htm的文件。
+U.CD.R.SaveNewFolder = function (_c) {
+    var node = {
+        "Name": "Test",
+        "CreateDate": new Date(),
+        "Type": "folder",
+        "ID": Guid.newGuid(),
+        "Deep": 2,
+        "TNode": [],
+        "IsPublic": true,
+        "IsDelete": false
+    };
+    ;//创建一个名为Test的项目.深度默认为2
+    var root = U.CD.U.CUser.TNode[0];
+    //U.CD.U.CUser未保存用户信息,不知道对后期有什么影响。获取该用户的节点信息,里面保存了根节点信息
+    U.ACD.Request(U.CD.AjaxUrl, (["Add_Folder", _c.userid, root.ID, root.Deep, node.ID, node.Name]), U.CD.R.SaveNewFile, (["", _c]));
+}
+//文件夹创建后建立文件,两种情况,一种是已经有文件夹创建文件,多传递了u参数,另外一种是后台创建新项目后返回的r值。
+U.CD.R.SaveNewFile = function (r, u) {
+    var _c, _pnode, node;
+    //直接使用传递的用户信息。//直接使用传递的当前项目信息。
+    if (u) {
+        _c = u;
+        _pnode = r;
+    } else {
+        //如果创建文件夹成功,继续创建文件//context保存了参数信息,不知道能否是集合,测试一下。强大,能返回集合。context[0]保存的是loadingdiv。//获取创建的文件夹节点
+        if (r.value != "false") {
+            _c = r.context[1];
+            //_pnode = eval("(" + r.value + ")");
+            _pnode = r.value;
+        } else {
+            alert("自动创建项目异常!");
+            return;
+        }
+    }
+    node = {
+        "Name": "test.cpp",
+        "CreateDate": new Date(),
+        "Type": "file",
+        "ID": Guid.newGuid(),
+        "Deep": parseInt(_pnode.Deep) + 1,
+        "IsPublic": true
+    };
+    U.ACD.Request(U.CD.AjaxUrl, (["Add_File", _c.userid, _pnode.ID, _pnode.Deep, node.ID, node.Name]), U.CD.R.SaveNewOK, (["", _c, _pnode, u]));
+    //继续添加文件,把项目也传递进去,以便前台添加
+
+}
+//添加项目和文件成功。
+U.CD.R.SaveNewOK = function (r) {
+    if (r.value != "false") {
+        var _c = r.context[1];
+        //用户信息
+        var _pnode = r.context[2];
+        //获取项目
+        var u = r.context[3];
+        //是否是在现有项目下新建文件,不传递表示又创建项目又创建文件。
+        //var _file = eval("(" + r.value + ")"); //获取文件
+        var _file = r.value;
+        //获取文件
+        _pnode.TNode.length = 0;
+        //清空数组,追加一个文件
+        _pnode.TNode.push(_file);
+        //追加文件到项目中
+        //如果没有项目信息,则追加项目,追加文件。否则,只追加文件
+        if (!u) {
+            U.CD.RT.F_L_Node(_pnode, _c.userid, $("#UCD_RT_Tree")[0]);
+            //追加项目
+            U.CD.RT.LV(_pnode.TNode, $("#UCD_RT_Tree")[0].firstChild, _c.userid);
+            //参数1为节点集合,参数2为节点的元素,参数3为用户id,创建文件需要树型右移操作。
+            //U.CD.U.CUser.CurrentSO = $("#UCD_RT_Tree")[0].firstChild; //不知道是否正确
+            U.CD.U.CUser.CurrentNode = _pnode;
+            //指定当前项目
+        } else {
+            U.CD.RT.LV(_pnode.TNode, $("#UCD_RT_Tree")[0].firstChild, _c.userid);
+            //参数1为节点集合,参数2为节点的元素,参数3为用户id,创建文件需要树型右移操作。
+        }
+        //同时选中文件
+        U.CD.R.LoadFC(_file);
+        //刷新代码和视图,选项卡,换行窗口。
+        alert("初始化用户文件成功");
+    } else
+        alert("初始化用户数据失败");
+}
+
+//-----------------------------------------------------------新建项目----------------------------------------------
+U.CD.R.NewPro = function () {
+    if (!U.U.L.DLTC()) {
+        U.CD.RT.CProject(US.userinfo.UserId, U.CD.U.CUser.TNode[0]);
+    }
+
+    //    var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie.  _c.userid _c.username _c.Loginid
+    //    if (!_c) { U.CD.U.LoginApply(); return; }  //如果未登录,弹出登录窗口。。
+    //    U.CD.RT.CProject(_c.userid, U.CD.U.CUser.TNode[0]);
+}
+
+//---------------------------------------------------------------新建文件---------------------------------------------------------
+U.CD.R.NewFile = function () {
+    var _c = U.CD.U.IsUSelf();
+    //获取用户登录Cookie.  _c.userid _c.username _c.Loginid
+    if (!_c) {
+        U.CD.U.LoginApply();
+        return;
+    }
+    //如果未登录,弹出登录窗口。。
+    //首先选取项目,如果没有项目,提醒用户创建项目
+    if (U.CD.U.CUser.TNode[0].TNode.length > 0) {
+        //var SO = $(".UCD_RT_ZSCG_T", U.CD.U.CUser.CurrentSO)[0];//根据类名获取元素的函数,暂时用其他方法解决
+        U.CD.RT.CP_NF(U.CD.U.CUser.CurrentSO, _c.userid, U.CD.U.CUser.CurrentNode);
+        //alert("人手不够,此功能以后开放!请在右边树里面中单击操作面板建立文件!!!!!");
+    } else {
+        U.CD.RT.CProject(_c.userid, U.CD.U.CUser.TNode[0]);
+    }
+
+}
+
+//--------------------------------------------------------------------------------------运行功能--------------------------------------------------------------------
+
+//大窗口运行html效果。老函数,暂时没用了。
+U.CD.R.run = function () {
+    //判断UCD_IF是否存在, 存在则刷新iframe,不存在创建窗口
+    var _i;
+    //定义一个变量,保存创建的结果iframe窗口
+    if ($("#UCD_IF")[0]) {
+        _i = $("#UCD_IF")[0];
+    } else {
+        var _c = $$("div", {
+            "id": "UCD_RUN"
+        }, document.body);
+        //创建一个运行窗口的div
+        var _t = $$("div", {
+            "className": "UCD_RUN_Head"
+        }, _c);
+        //头部信息
+        $$("div", {
+            "className": "UCD_RUN_Refesh",
+            "innerHTML": "重新运行"
+        }, _t);
+        //给头部信息赋予一个刷新按钮,即再次运行
+        $$("div", {
+            "className": "UCD_RUN_Close",
+            "innerHTML": "关闭",
+            "onclick": function () {
+                _c.style.display = 'none'
+            }
+        }, _t);
+        //给div赋予一个关闭按钮
+        var _i = $$("iframe", {
+            "className": "UCD_RUN_Iframe",
+            "id": "UCD_IF"
+        }, _c);
+        //添加显示结果的iframe。
+        //_i.src = "javascript:void((function(){document.open();document.domain='1473.cn';document.close()})())"; //一定要指定一个链接,为空都行,否则不会触发异步。
+    }
+    $("#UCD_RUN")[0].style.display = "block";
+    //把结果窗口置为可见。
+    var _i = $("#UCD_IF")[0];
+    _i.src = "RS.htm";
+    //刷新结果iframe窗口,这个是大窗口运行结果。和小窗口的不一样
+    U.MD.IframeLoad(_i, [[U.CD.CD.ILAsync, ([_i, $("#UCD_CT_Code_CT")[0]])]]);
+    ;
+}
+//开启另外一个窗口运行程序,javascript版本
+//U.CD.R.OpenRun = function () {
+//    var s = U.CD.CD.ExecIFText($("#UCD_CT_Code_CT")[0]);
+//    var _ta = $$("textarea", { "value": s });//为了解决chrome浏览器敲入nbsp出现的问题,用textarea过滤,但还是不行。等以后再解决了。
+//    s = _ta.value;
+//    var _w = window.open("javascript:void((function(){document.open();document.domain='1473.cn';document.close()})())", "_blank", '');
+//    var _new = _w.document.open('text/html', 'replace');
+//    _w.opener = null; // 防止代码对页面修改
+//    _new.write(s);
+//    _new.close();
+//}
+//C语言已经其他语言后台版本
+U.CD.R.OpenRun = function () {
+    var s = $("#UCD_CT_Code_CT")[0].innerText;
+    if (!U.CD.R.ForbidInput(s)) {
+        //U.UI.SUForms("暂时不支持输入语句scanf等,请直接赋值,敬请期待下一版", "提示!!!", "UCD_R_InAlert", "color:red;", 300, 200);
+        U.UI.Confirm("暂时不支持输入语句scanf等,请直接赋值,敬请期待下一版")
+        return;
+    }
+        //如果是Chrome,FireFox,需要过滤掉一些字符
+        s = U.CD.CD.ExecIFCompChrome(s);
+    if (!U.CD.FGuid)
+        U.CD.FGuid = Guid.newGuid().replace(/-/g, '');
+    //用Guid作为文件名,已经作为UC的一部分签入了
+    //"bkp代表了后端程序,s代表了文件内容,U.CD.FGuid代表了文件名的前面部分,U.CD.USLang代表了语言类型"
+    var _ld = U.CD.O.Loading("正在编译程序,请耐心等候.....");
+    try {
+        U.A.Request(U.CD.AjaxUrl, (["bkp", s, U.CD.FGuid, U.CD.USLang]), U.CD.R.ORAsyn, (["", _ld]));
+    } catch (e) {
+        U.Alert("数据库连接未成功,正在紧急修复中。。");
+        throw e
+    }
+}
+
+//运行程序异步处理。
+U.CD.R.ORAsyn = function (r) {
+    //处理换行
+    r.value = r.value.replaceStr(/\n/, '<br>')
+    var _ld = r.context[1];
+    _ld.parentNode.removeChild(_ld);
+    //移除进度条
+    //此处r.value如果返回1,2等数字会报错。!数字转字符串问题,以后总结好后需要写到U.A中。
+
+    if (!r.value) {
+        U.Alert('后端程序无响应,请稍后重试')
+    }
+    var s = U.CD.CD.ExecLangBack(r.value);
+    //去掉运行结果或者错误结果中每行字符的右边空格以及目录标识。s还是字符串,不是数组
+    //如果是Lisp语言,特殊处理,因为lisp语言有bug,正确的结果也在错误处理中。并且没有错误提示.
+    if (U.CD.USLang == "Lisp") {
+        U.CD.CE.LispErr($("#UCD_CT_SM_IF")[0], s);
+        return;
+    }
+    //如果程序编译正常,弹出结果窗口。否则,进入错误处理
+    if (U.CD.CE.BuildErr(s)) {
+        //判断语言类型
+        switch (U.CD.USLang) {
+            case "Python":
+            case "Perl":
+            case "Ruby":
+                U.CD.CE.DefErr($("#UCD_CT_SM_IF")[0], s);
+                break;
+            case "PHP":
+                U.CD.PHPErr($("#UCD_CT_SM_IF")[0], s);
+                break;
+            case "C":
+            case "Net":
+                U.CD.CE.CErr($("#UCD_CT_SM_IF")[0], s);
+                break;
+            case "Nodejs":
+                U.CD.CE.NodeErr($("#UCD_CT_SM_IF")[0], s);
+                break;
+            default:
+                break;
+        }
+
+        U.Alert("有错误!查看输出窗口以更正错误");
+    } else {
+        U.CD.R.ORAsynOK(s);
+    }
+}
+
+//弹出正确结果窗口
+U.CD.R.ORAsynOK = function (s) {
+    //运行结果窗口,类似windows平台。
+    //var SEW = [1, "50", "30%", "779", "420", "UCD_R_Result", "运行结果", "", s, "no", false, true, true, "background-color:black;color:white;overflow-y:scroll", true];
+    //var _f = { "Embed": SEW[0], "Top": SEW[1], "Left": SEW[2], "Width": SEW[3], "Height": SEW[4], "ContainerId": SEW[5], "titleName": SEW[6], "ContentId": SEW[7], "Content": SEW[8], "hasScroll": SEW[9], "hasMax": SEW[10], "hasMin": SEW[11], "hasDraw": SEW[12], "CStyle": SEW[13], "IsR": SEW[14] };
+    var _r = U.UI.Form({
+        min: false,
+        max: false,
+        id: 'UCD_R_Result',
+        style: {
+            'background-color': 'white',
+            'color': 'black',
+            'height': '400px'
+        },
+        title: '运行结果',
+        content: s,
+        SO: false
+    })
+    //var _r = U.UI.Form(_f, document.body); //向body追加窗体。
+    U.D.SetDTop(_r);
+    _r.getElementsByTagName("div")["UCD_R_ResultContent"].innerText = s;
+    //解决弹出窗体使用innerHTML而不是innerText的问题。
+    $("#UCD_CT_SM_IF")[0].innerHTML = "";
+    //清空错误输出窗口内容
+}
+
+//暂时不支持所有语言的输入语句
+U.CD.R.ForbidInput = function (s) {
+    //可以把所有语言的输入都放在数组中,统一判断
+    var _in = ["scanf", "fscanf"], n = _in.length, i;
+    for (i = 0; i < n; i++) {
+        if (s.indexOf(_in[i]) > -1) {
+            return false;
+        }
+    }
+    return true;
+}
+
+//小非模态窗口,只需要传递中间内容,即可生成一个窗口。s表示窗体中内容,title表示窗口标题,i表示窗口唯一id,c表示内容文字颜色,w是宽度,h是高度
+U.UI.SUForms = function (s, title, i, c, w, h) {
+    //窗体函数不支持坐标,还需要修正。窗口的样式position:absolute; display:block;需要内置进去
+    var l = (document.body.clientWidth - w) / 2
+      , t = (document.body.clientHeight - h - 50) / 2;
+    //  var SEW = [1, t, l, w, h, i, title, "", s, "no", false, false, false, c, true];
+    // var _f = { "Embed": SEW[0], "Top": SEW[1], "Left": SEW[2], "Width": SEW[3], "Height": SEW[4], "ContainerId": SEW[5], "titleName": SEW[6], "ContentId": SEW[7], "Content": SEW[8], "hasScroll": SEW[9], "hasMax": SEW[10], "hasMin": SEW[11], "hasDraw": SEW[12], "CStyle": SEW[13], "IsR": SEW[14] };
+    //var _r = U.UI.UForms(_f, document.body); //向body追加窗体。
+    var _r = U.UI.Form({
+        min: false,
+        max: false,
+        id: i,
+        style: {
+            width: "500px",
+            height: "500px"
+        },
+        content: c,
+        title: title,
+        hst: {
+            style: {
+                "padding": "0"
+            }
+        }
+    });
+    U.D.SetDTop(_r);
+}
+
+//错误窗口帮助,以后还可以再次封装小窗体,大窗体等,让代码更少
+U.CD.R.Help = function () {
+
+    var s = "1、下面为错误输出窗口。</br>2、窗口中凡是包含了error字符的是错误,必须修改完才能生成正确程序,</br>3、包含了note字符的是警告信息,可以忽略,</br>4、没有包含error和note的信息可以不理!";
+    U.UI.SUForms(s, "错误帮助窗口", "UCD_R_ErrHelpWin", "color:red;", 300, 200);
+}
+
+//停止运行结果窗口
+U.CD.R.Stop = function () {
+    if ($("#UCD_RUN")[0])
+        $("#UCD_RUN")[0].style.display = 'none';
+}
+//如果存在UCD_RUN,关闭它。
+
+//_i.src = "javascript:void((function(){document.open();document.domain='1473.cn';document.close()})())"; //一定要指定一个链接,为空都行,否则不会触发异步。
+
+//---------------------------------------------------------------------------自定义窗体-------------------------------------------------------------------------------
+//窗体初始化
+//暂有传参{ "Embed": 是否是Iframe, "Top": 偏移高, "Left": 偏移左, "Width": 长度, "Height": 高度, "ContainerId": id, "titleName": 标题, "ContentId": 内容区Id, "Content": 内容, "hasScroll": 内容区是否滚动, "hasMax": 是否允许放大, "hasMin": 是否允许缩小, "hasDraw": 是否拉伸, "CStyle": 内容区样式, "IsR": 关闭是否移除 }
+//U.UI.UForms = function (USW, UDPD) {
+//    var i, _UDOD, _UDTD, _UDSD, _UDCD, _UDED, _UECV, _UZC = /%/, UDGE = [["UD_W_WT_H", "up"], ["UD_W_WT_HL", "topRight"], ["UD_W_WT_HR", "topleft"], ["UD_W_WT_ML", "left"], ["UD_W_WT_MR", "right"], ["UD_W_WT_B", "down"], ["UD_W_WT_BL", "bottomLeft"], ["UD_W_WT_BR", "bottomRight"]];
+//    (_UZC.test(USW.Width)) && (USW.Width = US.Width * (parseInt(USW.Width) / 100)); (_UZC.test(USW.Height)) && (USW.Height = US.Height * (parseInt(USW.Height) / 100)); (_UZC.test(USW.Top)) && (USW.Top = US.Height * (parseInt(USW.Top) / 100)); (_UZC.test(USW.Left)) && (USW.Left = US.Width * (parseInt(USW.Left) / 100));
+//    _UDOD = $$("div", { "className": "UD_W UD_UIU", "id": USW.ContainerId, "style": { "width": USW.Width + "px", "height": USW.Height + "px", "left": USW.Left + "px", "top": USW.Top + "px"} });
+//    $$("div", { "className": "UD_ICON UD_ICONl" }, _UDOD);
+//    _UDTD = $$("div", { "className": "UD_WIMG UD_W_TB", "style": { "width": (USW.Width - 30) + "px" }, "onmousedown": [[U.D.DragMouseDown, ([_UDOD])]] }, _UDOD);
+//    $$("span", { "className": "UD_W_TB_T", "innerHTML": USW.titleName }, _UDTD);
+//    _UDSD = $$("div", { "className": "UD_W_TB_WM" }, _UDTD);
+//    $$("span", { "title": "关闭", "className": "UD_ICON UD_W_TB_WM_Close", "onmousedown": U.M.StopBubble, "onclick": [[(U.D.Tb ? U.D.Tb.PopupWinClose : U.D.CloseWindow), ([_UDOD, (USW.IsR ? "remove" : "")])]] }, _UDSD);
+//    (USW.hasMax) && ($$("span", { "title": "最大化", "className": "UD_ICON UD_W_TB_WM_Max", "onmousedown": U.M.StopBubble, "onclick": [[U.D.Windowmaximize, ([_UDOD])]] }, _UDSD));
+//    (USW.hasMin) && ($$("span", { "title": "最小化", "className": "UD_ICON UD_W_TB_WM_Min", "onmousedown": U.M.StopBubble, "onclick": [[U.D.WindowMin, ([_UDOD])]] }, _UDSD));
+//    $$("div", { "className": "UD_ICON UD_ICONR" }, _UDOD);
+//    _UDCD = $$("div", { "className": "UD_WIMG UD_ICONz", "onmousedown": U.M.StopBubble }, _UDOD); //, "style": { "height": USW.Height - 36 + "px" }
+//    _UDED = $$("div", { "id": USW.ContainerId + 'Content', "className": "UD_W_WC", "style": { "cssText": "height:100%;" + USW.CStyle} }, _UDCD);
+//    _UECV = { "with": [{ "Element": _UDCD, "hdiffer": -36 }, { "Element": _UDTD, "hdiffer": 0, "wdiffer": -30}], 'upf': [[U.M.apply($("span", _UDTD)[0], "retElement.style.marginLeft = (retElement.parentNode.parentNode.clientWidth - retElement.clientWidth) / 2 + 'px';")]] };
+//    if (USW.Embed == 0) { $$("iframe", { "id": USW.ContentId, "name": USW.ContentId, "frameborder": 0, "scrolling": USW.hasScroll, "src": USW.Content, "width": "100%", "height": "100%" }, _UDED); }
+//    else { if (typeof USW.Content == "object") { _UDED.appendChild(USW.Content); } else { _UDED.innerHTML = USW.Content; } }
+//    if (USW.hasDraw) { for (i = 0; i < UDGE.length; i++) { $$("span", { "className": UDGE[i][0], "onmousedown": [[U.D.Chatdrag, ([_UDOD, UDGE[i][1], _UECV])]] }, _UDOD); } }
+//    (UDPD) && (UDPD.appendChild(_UDOD)); return _UDOD;
+//}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 511 - 0
js/U.CD.SL.js


+ 122 - 0
js/U.CD.Tips.js

@@ -0,0 +1,122 @@
+Namespace.register("U.CD.Tip");
+
+
+//一个包含提示值得数组
+U.CD.Tip.d = ["getElementById", "getElementsByTagName", "toString", "valueOf", "appendChild", "apply", "call", "removeChild", "style", "getElementsByTagName", "getElementsByTagName", "getElementsByTagName"];
+U.CD.Tip.d.style = ["width", "height", "top", "left", "backgroundColor", "color", "", "", ""];
+//代码提示时响应此函数。
+U.CD.Tip.Init = function () {
+    //创建tips菜单在document.body中
+    var _TBOX = $$("div", { "id": "UCD_TP_TB", "style": { "display": "none"} }, document.body); //document.body
+    for (var i = 0; i < U.CD.Tip.d.length; i++) {//循环提示值数组
+        var _ct = $$("div", { "className": "UCD_TP_TB_N" }, _TBOX); //追加变量图标 
+        $$("div", { "className": "UCD_TP_TB_N_T", "innerHTML": "☆" }, _ct); //追加变量图标
+        $$("div", { "className": "UCD_TP_TB_N_D", "innerHTML": U.CD.Tip.d[i], "onmouseover": [U.CD.Tip.Active, ([i])], "onmousedown": [U.CD.Tip.SI, ([U.CD.Tip.d[i]])] }, _ct); //追加文件值和事件
+    }
+}
+
+
+//显示提示框函数
+U.CD.Tip.Show = function () {
+    var _T = $("#UCD_TP_TB")[0]; //提示框最大外框
+    //var _R = U.D.E.GetSelectionRange(window, $("#UCD_CT_Code_CT")[0], { "TF": "UCD_CODE", "CB": U.CD.R.Wrap }); //获取光标位置。必须重新获取光标位置,奇怪,以后研究
+    var _R = U.CD.TipR; //从全局变量获取
+    var _G = _R.GetPStyle(); //获取当前光标选中的字符包含的div。  
+    var _GWZ = _R.GetGBWZ(_G); //返回光标位于div行第几个的字符位置
+    var _if = U.M.GetElementInfo(_G);   //获取div的各种间距
+    if (_T.style.display == "none") { //如果存在tips框
+        _T.style.display = "block"; //不用创建直接显示
+        //获取行的距离+字符间距约为10*字符序列 //高度要加上行高   
+        _T.style.left = _if.BCRL + U.CD.Tip.GetStrWidth(_GWZ) + "px"; //_T.style.left = _if.BCRL + _GWZ * 10 + "px"; 
+        _T.style.top = _if.BCRT + 10 + "px"; _T.firstChild.style.backgroundColor = "silver"; _T.firstChild.focus(); //聚集
+        _T.onkeydown = U.M.apply(this, [[U.CD.Tip.KeyDown, ([_R])]]); //赋予键盘事件
+    }
+}
+//计算提示框的垂直位置,因为有些地方会导致下面看不到,以后再搞了。
+U.CD.Tip.YPosition = function () { }
+//获取光标坐标位置的函数,其他地方没有的,需要封装在编辑器中。临时创建一个span,字体大小和字体设置得和编辑器一样,计算宽度,用完删除。
+U.CD.Tip.GetStrWidth = function (_GWZ) {
+    var i, _re = ""; for (i = 0; i < _GWZ; i++) { _re += "a"; } //有些空格及特殊字符会导致问题,现在采用追加"aaaaaaaaaaaaaaa"试一下
+    var _w, _a = $$("div", { "innerHTML": _re, "style": { "cssText": "font-family:Consolas; font-size:14px; position:absolute;top:5000px;left:0px;"} }, document.body);
+    _w = _a.offsetWidth; document.body.removeChild(_a); return _w; //移除临时节点
+}
+
+//在body区域按下左键,隐藏提示框,还差一个在iframe区域如何判断是否按下左键。光标置于提示区域之外都要隐藏//提示框外壳//判断鼠标是否在提示框之外。
+U.CD.Tip.HidTip = function () { $("#UCD_TP_TB")[0].style.display = "none"; }
+
+//js实现hover;
+U.CD.Tip.Active = function (_index) {
+    var _t = $("#UCD_TP_TB")[0], _z = _t.childNodes; //获取tips菜单框 //获取提示数组
+    for (var i = 0; i < _z.length; i++) {
+        if (i == _index) { _z[i].style.backgroundColor = "rgb(255,236,181)"; }        //选中的索引数字
+        else { _z[i].style.backgroundColor = ""; }
+    }
+}
+
+//判断提示框的第几个元素被选中,也可做全局变量,暂时用局部变量。//循环选择返回选中的索引
+U.CD.Tip.CurPosition = function () {
+    var _t = $("#UCD_TP_TB")[0], _z = _t.childNodes; //获取tips菜单框     //获取提示数组 
+    for (var i = 0; i < _z.length; i++) { if (_z[i].style.backgroundColor != "") return i; }
+    return 0; //默认返回第一个。
+}
+
+//选择提示菜单单击时追加代码到代码区域.tipvalue 这是选中的值。_R为所选择的光标,参数r为选项的值。
+U.CD.Tip.SI = function (r) {
+    var _R = U.CD.TipR; //从全局变量获取
+    var _G = _R.Replace(r); //追加值到光标后面
+    $("#UCD_TP_TB")[0].style.display = "none"; // //获取Tip菜单隐藏
+    //U.M.StopBubble();此处会触发代码区域的回车键,如何阻止?
+}
+
+//键盘控制函数,一个程序只能有1个键盘控制函数,因此把此键盘函数注入到主程序键盘中。
+U.CD.Tip.KeyDown = function (_R) {
+    var _k = event.keyCode, _i = 0, _t = $("#UCD_TP_TB")[0], _z = _t.childNodes.length, _d; //获取tips菜单框 ,_z为数组长度,_d为选中的提示符。//获取提示数组
+    _i = U.CD.Tip.CurPosition();    //获取提示框的当前位置
+    if (_t.style.display != "none") {
+        if (_k == 38) { if (_i > 0) _i--; } //按下↑//初始>0//减一
+        if (_k == 40) { if (_i < _z) { _i++; } else { _i = _z - 1; } } //按下↓//小于数组长度//加一//选择最后一个
+        //按下回车键
+        if (_k == 10 || _k == 13) {
+            _R.Replace(""); _d = _t.childNodes[_i]; U.CD.Tip.SI(U.CD.Tip.d[_i], _R); U.M.StopDefault(); return;
+        }
+        if (_k == 8 || _k == 27) { U.CD.Tip.HidTip(); _R.Replace(""); } //按下了退格键,则隐藏提示框_k == 8  表示Backspace键盘  27代码esc键盘 //创建光标,使用空字符串
+        U.CD.Tip.Active(_i);
+
+    }
+}
+
+//判断是否该弹出提示框,条件为:从当前行往上找,没有找到script标签,则不弹出,如果找到script标签,则弹出。参数为当前行
+//以后的工作更加繁重,因为还有css样式的智能弹出。这个工作量比较大了
+U.CD.Tip.IsJs = function (h) {
+    //如果上一行为</sciprt>跳出  如果上一行是否有"<script" 这几个字符,则弹出提示
+    var _ch; //
+    //判断本行元素,判断字符前面是否有变量,如何判断呢?.前面是否有字符作为判断,并且中间没有.号,如果有.号,可以显示字符串函数!如有改动,以后再说。
+    //整个判断比较复杂,思路以后再理。
+    var _R = U.CD.TipR; var _G = _R.GetPStyle(); var _GWZ = _R.GetGBWZ(_G);
+    var _z = h.innerText.substr(0, _GWZ).trim(); //得到前面的字符。
+    if (_z.length <= 0) { return false; } // <=1是因为有1个.号
+    //判断上一行元素
+    while (h.previousSibling != null) {
+        h = h.previousSibling, _ch = h.innerText.trim();
+        if (_ch.substr(0, 9).toLowerCase() == "</script>") break; //跳出循环。
+        if (_ch.substr(0, 7).toLowerCase() == "<script") { return true; }
+    }
+    return false;
+}
+//判断提示框是否为css,包含了在html元素中的以及独立的css。
+U.CD.Tip.IsCss = function () { return false; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 40 - 0
js/U.CD.Top.js

@@ -0,0 +1,40 @@
+Namespace.register("U.CD.T"); //上部菜单栏js
+
+
+
+//重做功能的实现
+U.CD.T.ReDo = function () {
+    U.UI.Confirm("确认清空吗?代码将清除,但不会保存到数据库,刷新页面可还原以前的内容!", [U.CD.T.ReDoAsyn, ([""])], "");
+}
+U.CD.T.ReDoAsyn = function () {
+    //如果存在当前节点,则刷新已有文件的数据,否则,重新刷新页面,已有文件的数据保证在Tab的Li里面
+    if (U.CD.U.CUser.CTab == null) { U.CD.CD.Init(); }
+    else { U.CD.CD.Init(U.CD.U.CUser.CTab.Data); }
+}
+
+
+//弹出首页
+U.CD.T.SY = function () {
+    //U.ME.OpenWin("UCD_TOP_SY", "UCD_SL", (document.body.clientWidth - parseInt($("#UCD_SL")[0].style.width)) / 2 + "px", "40px", "960px", document.body.clientHeight - 20 - 20 - 80 + "px", 300);
+    U.CD.SL.L(); //调用示例初始化程序。
+}
+//关闭首页示例
+U.CD.T.CloseSY = function (o) {
+    U.D.WindowMin(o.parentNode.parentNode)
+}
+
+
+
+
+//不再使用的函数。。。。。。。。。。。。。。。。
+//点击头像修改个人信息,转到1473.cn
+U.CD.T.MPerInfo = function () {
+    U.UI.Confirm("修改个人信息请到www.1473.cn主站,确认将跳转!", [U.CD.T.MPIAsyn, ([""])], "");
+}
+//确认后跳转函数
+U.CD.T.MPIAsyn = function () {
+    window.open("http://www.1473.cn");
+}
+U.CD.T.SuccessfulCase = function () {
+    U.CD.SL.Init(); //调用示例初始化程序。
+}

+ 321 - 0
js/U.CD.U.js

@@ -0,0 +1,321 @@
+Namespace.register("U.CD.U");
+//用户登录后的js文件。
+
+//全局所有用户保存,试用U.E.Entity.
+//U.CD.U.Users = { "UserID": "", "CDTree": "" }; //生成一个集合模型。把用户id提出出来,后面带改用户的树形目录结构
+U.CD.U.AUsers = {};
+//生成一个列表,具有集合和数组的功能。包含了所有用户信息。
+U.CD.U.CUser = null;
+//当前正在操作的用户集合。
+//U.CD.U.CUser.PreClickNode  保存了右边树的节点单击颜色变化值。
+//U.CD.U.CUser.CurrentNode  保存了右边树的单击节点,以便新建文件时指定项目节点。
+//U.CD.U.CUser.CurrentSO  保存了右边树的单击节点元素,以便新建文件时指定项目节点。
+//U.CD.U.CUser.CTab = null;  //保存了上一次的Tab栏数据
+//暂时使用下面变量防止主项目Ajax top.US.userinfo.UserId报错。US.fs是头像文件位置。
+//var US = {}; US.userinfo = {};US.fs = "http://fs.1473.cn/";
+
+//打开登录注册窗体
+U.CD.U.LoginApply = function (judge) {
+    //var _r = $("#UCD_LR")[0];
+    //U.D.PopupWindow(_r);
+    //$("#UCD_LR").animate({ "left": document.body.clientWidth / 2 - 597 / 2 + "px", "top": document.body.clientHeight / 2 - 484 / 2 + "px", "display": "block" }, 100);
+    //$("#UU_LUName")[0].focus(); // 输入框自动聚焦
+    //U.ME.OpenWin("UCD_TOP_L_DL", "UCD_LR", document.body.clientWidth / 2 - 597 / 2 + "px", document.body.clientHeight / 2 - 484 / 2 + "px", "750px", "380px", 300);
+
+    // U.CD.OU.Login();
+    U.U.L.DLTC(3);
+}
+
+//登录异步处理
+U.CD.U.LoginAsyn = function (r) {
+    //给信息面板获取值.1473主项目写法。
+    var context = r.context;
+    r = r.value;
+    if (r == null) {
+        return;
+    } else if (r == false) {
+        return;
+    } else if (r[0].IsShielding == 1) {
+        return;
+    } else if (r[0].IsShielding == 2) {
+        return;
+    } else {
+        //US.userinfo = r[0][0]; //把用户信息变成全局
+        //document.title = US.userinfo.UserName; //网页标题变成名字(为了测试是否登录成功)
+        //$("#UCD_TOP_L_TX")[0].src = US.fs + US.userinfo.UserThumbnailImageHead; //右边拓展页面的头像
+        //$("#UCD_TOP_L_TX")[0].onerror = U.M.ImgError;
+        //$("#UCD_TOP_L_UI")[0].innerHTML = US.userinfo.UserName;
+        U.CD.U.LogPanel(US.userinfo);
+        //这一句话居然没有权限?想半天想不明白
+        U.CD.U.LUData(US.userinfo);
+        //判断该用户是否存在,如果存在,返回源代码数据,不存在,向源代码资源管理器追加一条记录。
+        //重置整体布局
+
+        $("#UCD_TOP_AL")[0].innerHTML = "";
+        //提示用户未登录信息为空。
+        $("#UCD_RTree")[0].style.display = "block";
+        //头部的右边拓展按钮可见
+        //U.CD.LO.OpenZY(); //打开资源管理器
+        U.CD.Url.AllowUser();
+        //登录后打开保存、提示框信息等登录用户的权限。
+    }
+}
+
+//登录后的用户面板
+U.CD.U.LogPanel = function (u) {
+    var d = $("#UCD_TOP_L")[0];
+    d.innerHTML = "";
+    //$$("div", { "id": "UCD_TOP_L_UI", "innerHTML": u.UserName }, d); //追加用户信息
+    $$("div", {
+        "className": "UCD_TOP_L_HYYP",
+        "innerHTML": "硬盘",
+        "onclick": [[U.D.DT.YYDK, (["Disk", {"userid":US.userinfo.UserId,"directoryid":US.DG}])]]
+    }, d);
+    //追加硬盘信息
+    $$("div", {
+        "className": "UCD_TOP_L_HYYP",
+        "innerHTML": "好友",
+        "style": {
+            "margin-right": "15px"
+        },
+        "onclick": [[U.D.DT.YYDK, (["Friend"])]]
+    }, d);
+    //追加好友信息
+    //    $$("div", { "className": "UCD_TOP_L_HYYP", "innerHTML": "博客", "onclick": [[U.D.DT.YYDK, (["Blog"])]] }, d); //追加好友信息
+    $$("img", {
+        "id": "UCD_TOP_L_TX",
+        "src": US.fs + u.UserThumbnailImageHead,
+        "alt": "http://www.1473.cn",
+        "onclick": [[U.CD.OU.ProDiv, ([""])]],
+        "onerror": U.M.ImgError
+    }, d);
+    //追加用户头像
+    $$("div", {
+        "id": "UCD_TOP_L_UI",
+        "innerHTML": u.UserNickName ? u.UserNickName : u.UserName
+    }, d);
+    //追加用户头像
+    $$("div", {
+        "id": "UCD_TOP_L_TC",
+        "innerHTML": "退出",
+        "onclick": function () {
+            if (US.userinfo.UserId && confirm('是否退出' + US.userinfo.UserName + '账号')) {
+                U.U.L.TCUL();
+            }
+        }
+    }, d);
+    //追加退出按钮
+
+    //$("#UF_UP_UserBoard")[0].style.display = "none"; //好友面板需要点击才弹出,直接隐藏
+    $(".UD_SYHR")[0].style.display = "none";
+    //好友面板需要点击才弹出,直接隐藏
+}
+
+//好友交流模块
+/*
+
+//交流模块与ufrom接口测试及调优方案
+
+//好友大小变化
+U.F.FSIZE = function () {
+$("#UD_SYH").childg(0, 1).addAttrArray({ "style": { "top": (US.Height - 530) / 2, "right": "0px"} }); //
+}
+
+//初始化好友函数
+U.F.CSHFG = function () {
+var _UDTD = $("#UD_SYH").addAttrArray({ "style": { "display": "block"} })[0], _UDOD = $(".UD_SYHZLTI", U.F.W.QHFG(_UDTD, [{ "display": "none", "left": "auto" }, { "display": "block", "top": (US.Height - 530) / 2, "right": "0px"}], true)[0])[0];
+$($("img", _UDOD)[0] || $$("img")).addAttrArray({ "onerror": U.M.ImgError, "src": U.M.GetImgU(US.userinfo.UserThumbnailImageHead), "onclick": U.U.DKGEZL }).appendTo(_UDOD); //添加当前使用用户的头像
+U.F.RPFG(US.Friend[4].length ? US.Friend[4] : US.Friend[1], $("div#UD_SYHRC", _UDTD)[0]); U.F.PUF($("div#UD_SYHZLZ", _UDTD)[0], US.Friend[1]); //打印好友
+}
+
+//初始化好友
+U.F.RPFG = function (UDE, UDOD) {
+var i, _UDFD = $$("frag"), _UDAD = $(UDOD).Child();
+for (i = 1; i < _UDAD.length; i++) { UDOD.removeChild(_UDAD[i]); }
+if (UDE.length) { for (i = 0; (i < UDE.length && i < 11); i++) { $$("img", { "onerror": U.M.ImgError, "title": UDE[i]["FriendsDescript"], "className": "UD_SYHRCI", "src": U.M.GetImgU(UDE[i].UserThumbnailImageHead), "alt": UDE[i].FriendsDescript || UDE[i].UserNickName, "onclick": [[U.M.StopBubble], [U.F.N.QXXHFXT, ([null, UDOD, UDE[i].UserId])], [U.F.W.HTOFM, ([UDE[i], true])]] }, _UDFD); } }
+else {
+_UDTD = $$("div", { "className": "UD_SYHRCT" }, _UDFD);
+_UDSD = $$("div", { "className": "UD_SYHRCTS" }, _UDTD);
+$$("img", { "src": "http://www.1473.cn/img/YSUN.png" }, _UDSD);
+$$("div", { "className": "UD_SYHRCTZ UD_SYI" }, _UDTD);
+$$("div", { "className": "UD_SYHRCTX", "innerHTML": "暂时无追随" }, _UDTD);
+}
+UDOD.appendChild(_UDFD);
+}
+
+//用户列表好友分组打印
+U.F.PUF = function (UDOD) {
+var i, _UDBD, _UDCD, _UDFD, _UDFG = US.Friend[0], _UDSP = $$("frag"); UDOD.innerText = "";
+for (i = 0; i < _UDFG.length; i++) {
+_UDFD = _$(US.Friend[1]).Select({ "FriendsGroupID": _UDFG[i].FriendsGroupID });
+_UDBD = $$("div", { "TID": _UDFG[i].FriendsGroupID, "className": "UD_SYHZLZO" }, _UDSP);
+$$("div", { "className": "UD_SYHZLZOT", "innerHTML": _UDFG[i].FriendsGroupName + "(" + _UDFD.length + ")", "onclick": [[U.F.ZKPUF, ([_UDBD])]] }, _UDBD);
+_UDCD = $$("div", { "className": "UD_SYHZLZOC" }, _UDBD);
+if (US.Friend[1].length) { U.F.TYDYF(_UDCD, _UDFD); } else { U.F.TYDYFK(_UDCD); }
+}
+UDOD.appendChild(_UDSP);
+}
+
+//统一打印
+U.F.TYDYF = function (UDOD, UDE, UTF) {
+var i, _UTF, _UDTD, _UDSD, _UDGD, _UDFD = $($$("frag"));
+if (UDE.length) {
+for (i = 0; i < UDE.length; i++) {
+_UDTD = $$("div", { "className": "UD_SYHZLZOCO", "onclick": [[U.F.W.HTOFM, ([UDE[i]])]], "TID": UDE[i].GroupManageID || UDE[i].UserId });
+_UDSD = $$("div", { "className": "UD_SYHZLZOCOI" }, _UDTD);
+if (UDE[i].GroupManageID || UDE[i].tf) { U.F.GQTX(UDE[i].GroupManageID ? UDE[i] : _$(US.Friend[2]).Select({ "GroupManageID": UDE[i].UserId })[0], _UDSD, 4, [35, 35]); }
+else { $$("img", { "onerror": U.M.ImgError, "title": "点击查看", "onclick": [[U.M.StopBubble], [U.U.I.UIFZX, ([UDE[i].UserId])]], "src": U.M.GetImgU(UDE[i].UserThumbnailImageHead) }, _UDSD); }
+_UDGD = $$("div", { "className": "UD_SYHZLZOCOR UTDF" }, _UDTD);
+$$("div", { "className": "UD_SYHZLZOCORN UTDF", "innerHTML": UDE[i].FriendsDescript || UDE[i].UserNickName || UDE[i].GroupManageName }, _UDGD);
+$$("div", { "className": "UD_SYHZLZOCORT UTDF", "innerHTML": UDE[i].UserIndividualitysignature || UDE[i].GroupManageRemark || "" }, _UDGD);
+_UDFD.append(_UDTD, 0, UDE[i].IsLogin == 1 ? (_UTF = true, _UDFD.firstChild) : null);
+}
+$(UDOD).append(_UDFD, 0, _UTF ? UDOD.firstChild : null);
+}
+else { UDOD.style.display = "none"; }
+}
+
+//打印空好友
+U.F.TYDYFK = function (UDOD) {
+_UDTD = $$("div", { "className": "UD_SYHZLZT" }, UDOD);
+_UDSD = $$("div", { "className": "UD_SYHZLZTS" }, _UDTD);
+$$("img", { "src": "http://www.1473.cn/img/YSUN.png" }, _UDSD);
+$$("div", { "className": "UD_SYHZLZTZ UD_SYI" }, _UDTD);
+$$("div", { "className": "UD_SYHZLZTX", "innerHTML": "暂时没有添加追随!!" }, _UDTD);
+}
+
+*/
+U.CD.U.Friend = function () {
+
+    var T = new Date();
+    //函数初始调用时间
+
+    U.D.DT.YYDK("Friend");
+    //调用好友窗体,生成好友窗体
+    var T1 = new Date();
+    console.log("函数运行时间" + T1 - T);
+}
+
+//退出后以及初始化时的面板
+U.CD.U.LogoutPanel = function () {
+    var d = $("#UCD_TOP_L")[0];
+    d.innerHTML = "";
+    $$("div", {
+        "id": "UCD_TOP_L_DL",
+        "innerHTML": "登录",
+        "onclick": [[U.CD.U.LoginApply, ([""])]]
+    }, d);
+    //头部的登录按钮可见
+}
+
+//获取用户登录cookie,UID是传的用户id,传入用户id获取对应的用户cookie,不传获取最后一个登录cookie。
+U.CD.U.GLID = function (UID) {
+    var i, _AID, _L, _ULL = document.cookie.lastIndexOf("Loginid");
+    if (_ULL > -1) {
+        _AID = eval("[{\"" + document.cookie.substring((document.cookie.indexOf("usestudiosso") + 13), (document.cookie.lastIndexOf("Loginid") + 44)).replace(/=/gm, "\":\"").replace(/&/gm, "\"},{\"") + "\"}]"),
+        _L = (_AID.length / 3);
+        if (UID) {
+            ; for (i = 0; i < _AID.length; i++) {
+                if (_AID[i]["userid"] == UID) {
+                    return {
+                        "userid": UID,
+                        "username": _AID[i + _L].username,
+                        "Loginid": _AID[i + (_L * 2)].Loginid
+                    };
+                }
+            }
+        } else {
+            return {
+                "userid": _AID[_L - 1].userid,
+                "username": _AID[_L * 2 - 1].username,
+                "Loginid": _AID[_L * 3 - 1].Loginid
+            };
+        }
+    }
+}
+
+//判断是否用户自己在操作的函数。
+U.CD.U.IsUSelf = function () {
+    if (U.CD.U.CUser == null) {
+        return false
+    }
+    ;//用户未执行登录操作,当前用户为空,让用户重新登录
+    var _c = U.CD.U.GLID(U.CD.U.CUser.UserID);
+    //获取用户登录Cookie.  _c.userid _c.username _c.Loginid
+    if (!_c) {
+        return false;
+    }
+    //如果未登录,弹出登录窗口。如果当前用户未登录,只是给人查看,则提示用户登录
+    if (_c.userid != U.CD.U.CUser.UserID)
+        return false;
+        //不保险,再加一句话判断
+    else
+        return _c;
+}
+
+//用户执行退出操作。
+U.CD.U.Logout = function () {
+    //如果1473主项目已经清除了用户id,则此处只需要清理编程端界面。
+    if (!US.userinfo.UserId) {
+        //执行清理资源操作
+        U.CD.R.ClearTab();
+        //清理Tab窗口
+        $("#UCD_RTree")[0].innerHTML = "";
+        //清理目录树
+        U.CD.LO.CloseZY();
+        //关闭资源树。
+        U.CD.U.LogoutPanel();
+        //退出用户面板
+        $("#UCD_RTree")[0].style.display = "none";
+        //头部的右边拓展按钮可见
+    }
+}
+
+//判断用户登录后装载用户数据
+U.CD.U.LUData = function (u) {
+    //mode为接受参数的标志。第一个参数为后台增删查改类型,后面参数为实际传递的参数。//选取数据?其他,还未登录,不需要选取数据,以后再看
+    //u.UserId有时候为空,下午再解决
+    U.ACD.Request(U.CD.AjaxUrl, (["Select_OneUserByID", u.UserId, U.CD.USLang]), U.CD.RT.LUDataAsyn, ([""]));
+}
+
+//--------------------------------不再需要的函数---------------------------------------------
+U.CD.U.Login = function () {
+    var _UN = $("#UCD_LR_L_A_T")[0].value;
+    var _UP = $("#UCD_LR_L_P_T")[0].value;
+    var _UL = "编程端登录";
+    //登录地址,因为调用的新浪api,不知道在手机端效果如何,暂时
+    //U.A.Request("UseStudioManage.uploadUserinfo", ([_username, _password, "", 0]));
+    //四个参数,第一个要用Chrome去查询函数名字,然后在www.1473.cn项目里面找。。第二个参数向后台传递的参数,是一个数组。第三个参数是异步回调。第四个参数是做Loading。
+    var _ld = U.CD.Loading.cloneNode();
+    _ld.innerHTML = "正在登陆中,请稍后!";
+    U.A.Request("UseStudioManage.uploadUserinfo", ([_UN, _UP, _UL || "", 3]), U.CD.U.LoginAsyn, ([_ld]));
+    //加载用户信息 且进行异步处理
+}
+//用户通过Cookie自动登录
+U.CD.U.CookieL = function () {
+    if (U.M.GetUF()) {
+        return;
+    }
+    //获取#!后面的值,如果有,则不登陆。表示是查看其它用户信息
+    var _UIF = U.CD.U.GLID();
+    //获取用户登录的cookie
+    if (_UIF && _UIF.userid && _UIF.userid.length == 36) {
+        U.A.Request("UseStudioManage.LoginByCookie", ([_UIF.userid, _UIF.username, Guid.newGuid(), "", 0]), U.CD.U.LoginAsyn, ([""]));
+    }
+    //加载用户信息 且进行异步处理
+    //if (_UIF && _UIF.userid && _UIF.userid.length == 36) { U.A.Request("UseStudioManage.LoginByCookie", ([_UIF.userid, _UIF.username, Guid.newGuid(), US.NLInfo.LogAddr || "", 0]), U.U.L.AsynUlL, (["", US.NLInfo.LogAddr])); } //加载用户信息 且进行异步处理
+}
+//添加一个用户,用户成功登陆后如果没有创建用户信息,则添加用户信息
+U.CD.AddUserInfo = function (u) {
+    //根据userid创建一个项目,如果该userid不存在,创建时需要添加用户信息
+    var _userid = u.UserId;
+    var _userName = u.UserName;
+    //var _request = US.Ajax.Request({ "mode": "AddUserInfo", "userid": _userid, "username": _userName });
+    //mode为接受参数的标志。第一个参数为后台增删查改类型,后面参数为实际传递的参数。
+    //U.A.Request(U.CD.AjaxUrl, (["SelectOneUserByID", ID]), U.CD.RT.LUDataAsyn, ([""]));
+}
+//关闭登录窗体
+U.CD.U.CloseW = function (o) {
+    //U.D.WindowMin(o.parentNode.parentNode);
+    U.ME.CloseWin("UCD_TOP_L_DL", "UCD_LR", 200, U.ME.ChangeColor("UCD_TOP_L_DL", "red"));
+}

+ 133 - 0
js/U.CD.Url.js

@@ -0,0 +1,133 @@
+Namespace.register("U.CD.Url"); //用户登录后的js文件。
+
+//-----------------------------------------------------------------------------引导执行---------------------------------------------------------------------
+
+//U.CD.Url.M = U.D.G.UrlGuide;
+//重载主项目的url引导函数。让其不能执行
+U.D.G.UrlGuide = function () {
+}
+
+
+U.CD.Url.Init = function () {
+    //获取传参,如果有#!等字符,执行url重写。否则,执行一般处理
+
+
+    var _UR = U.M.GetUF(); //获取传参
+    if (_UR) {
+        if (_UR[0] == "#!" && !_UR[1]) return;
+        if (_UR[0] == "#!" && _UR[1] && !_UR[2]) U.CD.Url.Lang(_UR[1]);
+        if (_UR[0] == "#!" && _UR[1] && _UR[2]) { U.CD.Url.Lang(_UR[1]); U.CD.Url.Param(_UR[2]); }
+    }
+    else {
+        //如果没有url重写,显示首页介绍。
+        //显示示例项目,按道理该将此函数放在上面一个函数里面以实现任意窗口大小一致。没时间了,以后再说
+        //setTimeout(function () { U.CD.SL.Init(); }, 1000); //我还奇怪了,Chrome居然要延迟才能从nodejs中获取数据,太奇怪!
+    }
+}
+
+//参数中只带语言的处理方法
+//参数:r string  代表具体的语言,例如"C","PHP"等
+U.CD.Url.Lang = function (r) {
+    //判断是否是传递各种语言进来,如果是,则跳转到相应语言,否则,进入具体示例程序。
+    if (r && U.CD.Langs.indexOf(r) == -1) { alert("无此语言"); return; }
+    U.CD.USLang = r;
+    document.title = r + "语言"; U.CD.CL.Change(r); 
+    $("#UCD_SL")[0].style.display = "none";
+}
+
+//url参数拆分
+U.CD.Url.Param = function (r) {
+    //判断是1473主项目的url重载还是本项目的url重载,Chrome不能很好支持此对象
+    //if (arguments.caller.callee !== U.CD.Init) { U.CD.Url.M(); return; }
+    if (!r) return;
+    r = decodeURI(r).split("|"); //第一个为项目id,第二个为用户id
+    U.CD.Url.Load(r);
+}
+
+//后台编程语言特有方法,加载各种语言用户示例程序。
+//U.CD.Url.SL = function (r) {
+//    if (!r) return;
+//    r = decodeURI(r[1]).split("|"); //第一个为项目id,第二个为用户id
+//    U.CD.Url.Load(r);
+//}
+
+//重写主项目url重载,现在是完全去掉了主项目的内容,以后再修改
+//去MySql获取该项目信息。从而得到用户信息
+U.CD.Url.Load = function (r) {
+    if (!U.MS.Guid.test(r[1])) return; //如果r[1]为""或者不是Guid,则退出
+    //mode为接受参数的标志。第一个参数为后台增删查改类型,后面参数为实际传递的参数。//选取数据?其他,还未登录,不需要选取数据,以后再看
+    var _ld = U.CD.O.Loading("正在装载该示例数据,请稍后。。。。。。");
+    U.ACD.Request(U.CD.AjaxUrl, (["Select_OneUserByID", r[1], U.CD.USLang]), U.CD.RT.LUDataAsyn, ([_ld, r[0]])); //去mongodb获取该用户所有数据,同时传递项目id做选中操作。
+    document.location.hash = "#!/" + U.CD.USLang + "/" + encodeURI(r[0] + "|" + r[1]);
+    $("#UCD_SL")[0].style.display = "none"; //隐藏示例程序
+}
+
+//执行屏蔽操作,屏蔽掉一些按钮。
+U.CD.Url.ForbUser = function () {
+    $("#UCD_TOP_L_BC")[0].style.display = "none"; //屏蔽掉保存按钮
+    $("#UCD_TOP_AL")[0].innerHTML = "无保存该文件权限!"; //给用户提示正在查看其他人的项目
+//    $("#UCD_TOP_AL")[0].style.backgroundColor = "white";
+    //单击切换选项时,未登录弹出登录界面,登录后切换回自己项目。
+    $("#UCD_TOP_AL")[0].onclick = function () {
+        var u = U.CD.U.GLID();
+        if (u) {
+            U.ACD.Request(U.CD.AjaxUrl, (["Select_OneUserByID", u.userid, U.CD.USLang]), U.CD.RT.LUDataAsyn, ([""]));
+            U.CD.Url.AllowUser();
+        }
+        else { U.CD.U.LoginApply() }
+    };
+}
+
+//登录后开启屏蔽掉的选项
+U.CD.Url.AllowUser = function () {
+    $("#UCD_TOP_L_BC")[0].style.display = "block"; //登录后允许保存按钮
+    $("#UCD_TOP_AL")[0].innerHTML = ""; //给用户提示正在查看其他人的项目
+    //    $("#UCD_TOP_AL")[0].style.backgroundColor = "rgb(0,136,204)";
+}
+
+
+
+
+//-------------------------------------------------------------------------------辅助函数--------------------------------------------------------------------
+
+
+//----------------------------------------暂时未使用的函数--------------------------------------
+//主引导函数
+U.CD.Url.UrlGuide = function () {
+    var _UR = U.M.GetUF(); //获取传参
+    if (_UR) {
+        U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_One", _UR[1]]), U.CD.Url.AsynUrlGuide, ([""]));
+
+        //        if (_UR[2]) {
+        //            var _CID = _UR[3] || "";
+        //            if (_UR[1] == "pb" || _UR[1] == "tg" || _UR[1] == "file") { U.CD.Url.Guide(_UR[1], null, (_CID == "" ? _UR[2] : "")); }
+        //            else { U.A.Request("UseStudioManage.GetUserIdByUsername", ([_UR[2]]), U.CD.Url.AsynUrlGuide, (["", _UR[1], _CID])); } //异步处理
+        //        }
+        //        else if (_UR[1] != "") { U.CD.Url.Guide(_UR[1]); }
+    }
+}
+
+//执行引导
+U.CD.Url.Guide = function (TF, UID, CID) {
+    var _TF = true;
+    switch (TF) {
+        //用户文件夹索引                                              
+        case "disk": case "photo": case "video":
+            CID = TF == "disk" ? US.DG : (TF == "photo" ? US.PG : US.VG); //网盘位置ID
+            U.M.divdoubleClick("UseStudioUserDiskDiv", CID, UID, null); //查看Disk对应的位置
+            break;
+        //文件索引                  
+        case "file":
+            U.Dk.GetDsikFID(CID);
+            break;
+        case "Office":
+
+            break;
+        default: break;
+    }
+}
+//改变地址栏,改变hash不会刷新页面
+U.CD.Url.UrlWrite = function (_url, _title) {
+    document.location.hash = "!/" + _url;
+    document.title = _title + " - 云操作系统";
+}

+ 161 - 0
js/U.CD.Wetty.js

@@ -0,0 +1,161 @@
+//Wetty主机的部署地址。
+U.CD.Wetty.src="http://10.3.15.219:3000";
+//执行创建文件,创建主机的api.
+U.CD.Wetty.Server="http://10.3.14.30:3001";
+Namespace.register("U.CD.Wetty");
+U.CD.Wetty.ifameWetty = $$('iframe', {
+    src: U.CD.Wetty.src,
+    style: {
+        cssText: "width: 100%;height: 100%;overflow: hidden;border:none",
+    },
+    id: "ifameWetty"
+})
+
+/**
+ * 初始化ifame窗体并执行登陆操作
+ */
+U.CD.Wetty.Init = function () {
+    U.UI.Form({
+        title: '终端',
+        style: {
+            'overflow-y': 'hidden',
+            'overflow-x': 'hidden',
+            width: 1010,
+            height: 700
+        },
+        content: U.CD.Wetty.ifameWetty
+    })
+    //'<iframe src="http://10.3.14.30:3000" style="width: 100%;height: 100%;overflow: hidden;border:none" id="ifameWetty"></iframe>'
+    setTimeout(U.CD.Wetty.login, 300)
+}
+
+/**
+ * 通过postMessage方法发送消息至socket.io client
+ * @param {string} str 
+ */
+U.CD.Wetty.send = function (str) {
+    window.frames['ifameWetty'].contentWindow.postMessage(str,  U.CD.Wetty.src);
+}
+
+/**
+ * 提交代码区域内容至后端
+ */
+U.CD.Wetty.run = function () {
+    var fileName = 'test' + new Date().getTime() + '.c';
+    var s = $("#UCD_CT_Code_CT")[0].innerText;
+    if (!U.CD.R.ForbidInput(s)) {
+        //U.UI.SUForms("暂时不支持输入语句scanf等,请直接赋值,敬请期待下一版", "提示!!!", "UCD_R_InAlert", "color:red;", 300, 200);
+        U.UI.Confirm("暂时不支持输入语句scanf等,请直接赋值,敬请期待下一版")
+        return;
+    }
+    //如果是Chrome,FireFox,需要过滤掉一些字符
+    s = U.CD.CD.ExecIFCompChrome(s);
+    var data = {
+    user : U.CD.FGuid  || 'user', // guid
+    name: fileName, // 
+    value: s
+    }
+    s = s.replace(/\\/g, '\\\\\\\\')
+    s = s.replace(/(\'|\")/g, '\\\"')
+    var data2 = "user=" + (U.CD.FGuid  || 'user') + "&name=" + fileName + "&value=" + encodeURIComponent(s);
+        xhr = new XMLHttpRequest();
+        xhr.open('POST', U.CD.Wetty.Server+'/createFile', true); //加入当前时间以避免缓存
+        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+        xhr.responseType = 'json';
+        xhr.send(data2);
+        xhr.onload = function (res) {
+            if (res.target.response.ret) {
+                setTimeout(U.CD.Wetty.send('gcc ' + res.target.response.value + ' -o ' + res.target.response.value + '.exe'), 1000)
+                setTimeout(U.CD.Wetty.send('./' + res.target.response.value + '.exe'), 1000)
+            }else{
+                alert(res.target.response.value)
+            }
+  };
+}
+/**
+ * 根据后端回显执行ssh登陆操作
+ */
+U.CD.Wetty.login = function () {
+        var ssh = 'ssh root@localhost -p ' + '8000'
+        var fnList = ['usestudio', 'usestudio-1', ssh, 'yes', '123456']
+        var index = 0
+        var fnStart = function () {
+                if (fnList[index]) {
+                    U.CD.Wetty.send(fnList[index])
+                    console.log(fnList[index]);
+                    index++
+                    if (index === 5) {
+                        window.removeEventListener('message', checkData, false);
+                        U.CD.Wetty.run();
+                    }
+                }
+            },
+            checkData = function (event) {
+                if (event.data.includes('Password:')) {
+                    fnStart();
+                }
+                if (event.data.includes('Welcome to Ubuntu 16.04.2 LTS')) {
+                    fnStart();
+                }
+                if (event.data.includes('root@localhost\'s password:')) {
+                    fnStart(); 
+                }
+            }
+
+        window.addEventListener('message', checkData, false);
+        fnStart();
+}
+/**
+ * 在容器内创建虚拟机
+ */
+U.CD.Wetty.reg = function () {
+    U.CD.Ajax.get(U.CD.Wetty.Server+'/createMachine/' + $('#UCD_TOP_L_UI')[0].innerHTML, function (port) {
+        var ssh = 'ssh root@localhost -p ' + port
+        var fnList = ['usestudio', 'usestudio-1', ssh, 'yes', '123456']
+        var index = 0
+        var fnStart = function () {
+                if (fnList[index]) {
+                    U.CD.Wetty.send(fnList[index])
+                    index++
+                } else { 
+                    clearInterval(jsq)
+                }
+            }
+
+        var jsq = setInterval(fnStart, 1000)
+    })
+}
+U.CD.Ajax = {
+    /**
+     * 发出GET请求并执行回调函数
+     * @param {string} url 
+     * @param {function} fn 
+     */
+    get: function (url, fn) {
+        var obj = new XMLHttpRequest();  // XMLHttpRequest对象用于在后台与服务器交换数据          
+        obj.open('GET', url, true);
+        obj.onreadystatechange = function () {
+            if (obj.readyState == 4 && obj.status == 200 || obj.status == 304) { // readyState == 4说明请求已完成
+                fn.call(this, obj.responseText);  //从服务器获得数据
+            }
+        };
+        obj.send();
+    },
+    /**
+     * 发出POST请求并执行回调函数
+     * @param {string} url 
+     * @param {string} data 
+     * @param {function} fn 
+     */
+    post: function (url, data, fn) {         // datat应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式
+        var obj = new XMLHttpRequest();
+        obj.open("POST", url, true);
+        obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  // 添加http头,发送信息至服务器时内容编码类型
+        obj.onreadystatechange = function () {
+            if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) {  // 304未修改
+                fn.call(this, obj.responseText);
+            }
+        };
+        obj.send(data);
+    }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 120 - 0
js/U.CD.js


+ 5 - 0
node_modules/mongodb/.travis.yml

@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+  - 0.6
+  - 0.8
+  - 0.10 # development version of 0.8, may be unstable

+ 23 - 0
node_modules/mongodb/CONTRIBUTING.md

@@ -0,0 +1,23 @@
+## Contributing to the driver
+
+### Bugfixes
+
+- Before starting to write code, look for existing [tickets](https://github.com/mongodb/node-mongodb-native/issues) or [create one](https://github.com/mongodb/node-mongodb-native/issues/new) for your specific issue. That way you avoid working on something that might not be of interest or that has been addressed already in a different branch.
+- Fork the [repo](https://github.com/mongodb/node-mongodb-native) _or_ for small documentation changes, navigate to the source on github and click the [Edit](https://github.com/blog/844-forking-with-the-edit-button) button.
+- Follow the general coding style of the rest of the project:
+  - 2 space tabs
+  - no trailing whitespace
+  - comma last
+  - inline documentation for new methods, class members, etc
+  - 0 space between conditionals/functions, and their parenthesis and curly braces
+    - `if(..) {`
+    - `for(..) {`
+    - `while(..) {`
+    - `function(err) {`
+- Write tests and make sure they pass (execute `make test` from the cmd line to run the test suite).
+
+### Documentation
+
+To contribute to the [API documentation](http://mongodb.github.com/node-mongodb-native/) just make your changes to the inline documentation of the appropriate [source code](https://github.com/mongodb/node-mongodb-native/tree/master/docs) in the master branch and submit a [pull request](https://help.github.com/articles/using-pull-requests/). You might also use the github [Edit](https://github.com/blog/844-forking-with-the-edit-button) button.
+
+If you'd like to preview your documentation changes, first commit your changes to your local master branch, then execute `make generate_docs`. Make sure you have the python documentation framework sphinx installed `easy_install sphinx`. The docs are generated under `docs/build'. If all looks good, submit a [pull request](https://help.github.com/articles/using-pull-requests/) to the master branch with your changes.

+ 28 - 0
node_modules/mongodb/Makefile

@@ -0,0 +1,28 @@
+NODE = node
+NPM = npm
+NODEUNIT = node_modules/nodeunit/bin/nodeunit
+DOX = node_modules/dox/bin/dox
+name = all
+
+total: build_native
+
+test_functional:
+	node test/runner.js -t functional
+
+test_ssl:
+	node test/runner.js -t ssl	
+
+test_replicaset:
+	node test/runner.js -t replicaset
+
+test_sharded:
+	node test/runner.js -t sharded
+
+test_auth:
+	node test/runner.js -t auth
+
+generate_docs:
+	$(NODE) dev/tools/build-docs.js
+	make --directory=./docs/sphinx-docs --file=Makefile html
+
+.PHONY: total

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 442 - 0
node_modules/mongodb/Readme.md


+ 1 - 0
node_modules/mongodb/index.js

@@ -0,0 +1 @@
+module.exports = require('./lib/mongodb');

+ 40 - 0
node_modules/mongodb/install.js

@@ -0,0 +1,40 @@
+var spawn = require('child_process').spawn,
+  exec = require('child_process').exec;
+
+process.stdout.write("================================================================================\n");
+process.stdout.write("=                                                                              =\n");
+process.stdout.write("=  To install with C++ bson parser do <npm install mongodb --mongodb:native>   =\n");
+process.stdout.write("=                                                                              =\n");
+process.stdout.write("================================================================================\n");
+
+// Check if we want to build the native code
+var build_native = process.env['npm_package_config_native'] != null ? process.env['npm_package_config_native'] : 'false';
+build_native = build_native == 'true' ? true : false;
+// If we are building the native bson extension ensure we use gmake if available
+if(build_native) {
+  // Check if we need to use gmake
+  exec('which gmake', function(err, stdout, stderr) {
+    // Set up spawn command
+    var make = null;
+    // No gmake build using make
+    if(err != null) {
+      make = spawn('make', ['total']);
+    } else {
+      make = spawn('gmake', ['total']);
+    }
+
+    // Execute spawn
+    make.stdout.on('data', function(data) {
+      process.stdout.write(data);
+    })
+
+    make.stderr.on('data', function(data) {
+      process.stdout.write(data);
+    })
+
+    make.on('exit', function(code) {
+      process.stdout.write('child process exited with code ' + code + "\n");
+    })
+  });  
+}
+

+ 339 - 0
node_modules/mongodb/lib/mongodb/admin.js

@@ -0,0 +1,339 @@
+/*!
+ * Module dependencies.
+ */
+var Collection = require('./collection').Collection,
+    Cursor = require('./cursor').Cursor,
+    DbCommand = require('./commands/db_command').DbCommand,
+    utils = require('./utils');
+
+/**
+ * Allows the user to access the admin functionality of MongoDB
+ *
+ * @class Represents the Admin methods of MongoDB.
+ * @param {Object} db Current db instance we wish to perform Admin operations on.
+ * @return {Function} Constructor for Admin type.
+ */
+function Admin(db) {
+  if(!(this instanceof Admin)) return new Admin(db);
+  this.db = db;
+};
+
+/**
+ * Retrieve the server information for the current
+ * instance of the db client
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from buildInfo or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.buildInfo = function(callback) {
+  this.serverInfo(callback);
+}
+
+/**
+ * Retrieve the server information for the current
+ * instance of the db client
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from serverInfo or null if an error occured.
+ * @return {null} Returns no result
+ * @api private
+ */
+Admin.prototype.serverInfo = function(callback) {
+  this.db.executeDbAdminCommand({buildinfo:1}, function(err, doc) {
+    if(err != null) return callback(err, null);
+    return callback(null, doc.documents[0]);
+  });
+}
+
+/**
+ * Retrieve this db's server status.
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from serverStatus or null if an error occured.
+ * @return {null}
+ * @api public
+ */
+Admin.prototype.serverStatus = function(callback) {
+  var self = this;
+
+  this.db.executeDbAdminCommand({serverStatus: 1}, function(err, doc) {
+    if(err == null && doc.documents[0].ok === 1) {
+      callback(null, doc.documents[0]);
+    } else {
+      if(err) return callback(err, false);
+      return callback(utils.toError(doc.documents[0]), false);
+    }
+  });
+};
+
+/**
+ * Retrieve the current profiling Level for MongoDB
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from profilingLevel or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.profilingLevel = function(callback) {
+  var self = this;
+
+  this.db.executeDbAdminCommand({profile:-1}, function(err, doc) {
+    doc = doc.documents[0];
+
+    if(err == null && doc.ok === 1) {
+      var was = doc.was;
+      if(was == 0) return callback(null, "off");
+      if(was == 1) return callback(null, "slow_only");
+      if(was == 2) return callback(null, "all");
+        return callback(new Error("Error: illegal profiling level value " + was), null);
+    } else {
+      err != null ? callback(err, null) : callback(new Error("Error with profile command"), null);
+    }
+  });
+};
+
+/**
+ * Ping the MongoDB server and retrieve results
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from ping or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.ping = function(options, callback) {
+  // Unpack calls
+  var args = Array.prototype.slice.call(arguments, 0);
+  callback = args.pop();
+
+  this.db.executeDbAdminCommand({ping: 1}, callback);
+}
+
+/**
+ * Authenticate against MongoDB
+ *
+ * @param {String} username The user name for the authentication.
+ * @param {String} password The password for the authentication.
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from authenticate or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.authenticate = function(username, password, callback) {
+  this.db.authenticate(username, password, {authdb: 'admin'}, function(err, doc) {
+    return callback(err, doc);
+  })
+}
+
+/**
+ * Logout current authenticated user
+ *
+ * @param {Object} [options] Optional parameters to the command.
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from logout or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.logout = function(callback) {
+  this.db.logout({authdb: 'admin'},  function(err, doc) {
+    return callback(err, doc);
+  })
+}
+
+/**
+ * Add a user to the MongoDB server, if the user exists it will
+ * overwrite the current password
+ *
+ * Options
+ *  - **safe** {true | {w:n, wtimeout:n} | {fsync:true}, default:false}, executes with a getLastError command returning the results of the command on MongoDB.
+ *
+ * @param {String} username The user name for the authentication.
+ * @param {String} password The password for the authentication.
+ * @param {Object} [options] additional options during update.
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from addUser or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.addUser = function(username, password, options, callback) {
+  var args = Array.prototype.slice.call(arguments, 2);
+  callback = args.pop();
+  options = args.length ? args.shift() : {};
+
+  options.dbName = 'admin';
+  // Add user
+  this.db.addUser(username, password, options, function(err, doc) {
+    return callback(err, doc);
+  })
+}
+
+/**
+ * Remove a user from the MongoDB server
+ *
+ * Options
+ *  - **safe** {true | {w:n, wtimeout:n} | {fsync:true}, default:false}, executes with a getLastError command returning the results of the command on MongoDB.
+ *
+ * @param {String} username The user name for the authentication.
+ * @param {Object} [options] additional options during update.
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from removeUser or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.removeUser = function(username, options, callback) {
+  var self = this;
+  var args = Array.prototype.slice.call(arguments, 1);
+  callback = args.pop();
+  options = args.length ? args.shift() : {};
+  options.dbName = 'admin';
+
+  this.db.removeUser(username, options, function(err, doc) {
+    return callback(err, doc);
+  })
+}
+
+/**
+ * Set the current profiling level of MongoDB
+ *
+ * @param {String} level The new profiling level (off, slow_only, all)
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from setProfilingLevel or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.setProfilingLevel = function(level, callback) {
+  var self = this;
+  var command = {};
+  var profile = 0;
+
+  if(level == "off") {
+    profile = 0;
+  } else if(level == "slow_only") {
+    profile = 1;
+  } else if(level == "all") {
+    profile = 2;
+  } else {
+    return callback(new Error("Error: illegal profiling level value " + level));
+  }
+
+  // Set up the profile number
+  command['profile'] = profile;
+
+  this.db.executeDbAdminCommand(command, function(err, doc) {
+    doc = doc.documents[0];
+
+    if(err == null && doc.ok === 1)
+      return callback(null, level);
+    return err != null ? callback(err, null) : callback(new Error("Error with profile command"), null);
+  });
+};
+
+/**
+ * Retrive the current profiling information for MongoDB
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from profilingInfo or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.profilingInfo = function(callback) {
+  try {
+    new Cursor(this.db, new Collection(this.db, DbCommand.SYSTEM_PROFILE_COLLECTION), {}, {}, {dbName: 'admin'}).toArray(function(err, items) {
+        return callback(err, items);
+    });
+  } catch (err) {
+    return callback(err, null);
+  }
+};
+
+/**
+ * Execute a db command against the Admin database
+ *
+ * @param {Object} command A command object `{ping:1}`.
+ * @param {Object} [options] Optional parameters to the command.
+ * @param {Function} callback this will be called after executing this method. The command always return the whole result of the command as the second parameter.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.command = function(command, options, callback) {
+  var self = this;
+  var args = Array.prototype.slice.call(arguments, 1);
+  callback = args.pop();
+  options = args.length ? args.shift() : {};
+
+  // Execute a command
+  this.db.executeDbAdminCommand(command, options, function(err, doc) {
+    // Ensure change before event loop executes
+    return callback != null ? callback(err, doc) : null;
+  });
+}
+
+/**
+ * Validate an existing collection
+ *
+ * @param {String} collectionName The name of the collection to validate.
+ * @param {Object} [options] Optional parameters to the command.
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from validateCollection or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.validateCollection = function(collectionName, options, callback) {
+  var args = Array.prototype.slice.call(arguments, 1);
+  callback = args.pop();
+  options = args.length ? args.shift() : {};
+
+  var self = this;
+  var command = {validate: collectionName};
+  var keys = Object.keys(options);
+
+  // Decorate command with extra options
+  for(var i = 0; i < keys.length; i++) {
+    if(options.hasOwnProperty(keys[i])) {
+      command[keys[i]] = options[keys[i]];
+    }
+  }
+
+  this.db.executeDbCommand(command, function(err, doc) {
+    if(err != null) return callback(err, null);
+    doc = doc.documents[0];
+
+    if(doc.ok === 0)
+      return callback(new Error("Error with validate command"), null);
+    if(doc.result != null && doc.result.constructor != String)
+      return callback(new Error("Error with validation data"), null);
+    if(doc.result != null && doc.result.match(/exception|corrupt/) != null)
+      return callback(new Error("Error: invalid collection " + collectionName), null);
+    if(doc.valid != null && !doc.valid)
+      return callback(new Error("Error: invalid collection " + collectionName), null);
+
+    return callback(null, doc);
+  });
+};
+
+/**
+ * List the available databases
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from listDatabases or null if an error occured.
+ * @return {null} Returns no result
+ * @api public
+ */
+Admin.prototype.listDatabases = function(callback) {
+  // Execute the listAllDatabases command
+  this.db.executeDbAdminCommand({listDatabases:1}, {}, function(err, doc) {
+    if(err != null) return callback(err, null);
+    return callback(null, doc.documents[0]);
+  });
+}
+
+/**
+ * Get ReplicaSet status
+ *
+ * @param {Function} callback this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the results from replSetGetStatus or null if an error occured.
+ * @return {null}
+ * @api public
+ */
+Admin.prototype.replSetGetStatus = function(callback) {
+  var self = this;
+
+  this.db.executeDbAdminCommand({replSetGetStatus:1}, function(err, doc) {
+    if(err == null && doc.documents[0].ok === 1)
+      return callback(null, doc.documents[0]);
+    if(err) return callback(err, false);
+    return callback(utils.toError(doc.documents[0]), false);
+  });
+};
+
+/**
+ * @ignore
+ */
+exports.Admin = Admin;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1762 - 0
node_modules/mongodb/lib/mongodb/collection.js


+ 29 - 0
node_modules/mongodb/lib/mongodb/commands/base_command.js

@@ -0,0 +1,29 @@
+/**
+  Base object used for common functionality
+**/
+var BaseCommand = exports.BaseCommand = function BaseCommand() {
+};
+
+var id = 1;
+BaseCommand.prototype.getRequestId = function getRequestId() {
+  if (!this.requestId) this.requestId = id++;
+  return this.requestId;
+};
+
+BaseCommand.prototype.setMongosReadPreference = function setMongosReadPreference(readPreference, tags) {}
+
+BaseCommand.prototype.updateRequestId = function() {
+  this.requestId = id++;
+  return this.requestId;
+};
+
+// OpCodes
+BaseCommand.OP_REPLY = 1;
+BaseCommand.OP_MSG = 1000;
+BaseCommand.OP_UPDATE = 2001;
+BaseCommand.OP_INSERT =	2002;
+BaseCommand.OP_GET_BY_OID = 2003;
+BaseCommand.OP_QUERY = 2004;
+BaseCommand.OP_GET_MORE = 2005;
+BaseCommand.OP_DELETE =	2006;
+BaseCommand.OP_KILL_CURSORS =	2007;

+ 241 - 0
node_modules/mongodb/lib/mongodb/commands/db_command.js

@@ -0,0 +1,241 @@
+var QueryCommand = require('./query_command').QueryCommand,
+  InsertCommand = require('./insert_command').InsertCommand,
+  inherits = require('util').inherits,
+  utils = require('../utils'),
+  crypto = require('crypto');
+
+/**
+  Db Command
+**/
+var DbCommand = exports.DbCommand = function(dbInstance, collectionName, queryOptions, numberToSkip, numberToReturn, query, returnFieldSelector, options) {
+  QueryCommand.call(this);
+  this.collectionName = collectionName;
+  this.queryOptions = queryOptions;
+  this.numberToSkip = numberToSkip;
+  this.numberToReturn = numberToReturn;
+  this.query = query;
+  this.returnFieldSelector = returnFieldSelector;
+  this.db = dbInstance;
+
+  // Make sure we don't get a null exception
+  options = options == null ? {} : options;
+  // Let us defined on a command basis if we want functions to be serialized or not
+  if(options['serializeFunctions'] != null && options['serializeFunctions']) {
+    this.serializeFunctions = true;
+  }
+};
+
+inherits(DbCommand, QueryCommand);
+
+// Constants
+DbCommand.SYSTEM_NAMESPACE_COLLECTION = "system.namespaces";
+DbCommand.SYSTEM_INDEX_COLLECTION = "system.indexes";
+DbCommand.SYSTEM_PROFILE_COLLECTION = "system.profile";
+DbCommand.SYSTEM_USER_COLLECTION = "system.users";
+DbCommand.SYSTEM_COMMAND_COLLECTION = "$cmd";
+DbCommand.SYSTEM_JS_COLLECTION = "system.js";
+
+// New commands
+DbCommand.NcreateIsMasterCommand = function(db, databaseName) {
+  return new DbCommand(db, databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'ismaster':1}, null);
+};
+
+// Provide constructors for different db commands
+DbCommand.createIsMasterCommand = function(db) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'ismaster':1}, null);
+};
+
+DbCommand.createCollectionInfoCommand = function(db, selector) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_NAMESPACE_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, 0, selector, null);
+};
+
+DbCommand.createGetNonceCommand = function(db, options) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'getnonce':1}, null);
+};
+
+DbCommand.createAuthenticationCommand = function(db, username, password, nonce, authdb) {
+  // Use node md5 generator
+  var md5 = crypto.createHash('md5');
+  // Generate keys used for authentication
+  md5.update(username + ":mongo:" + password);
+  var hash_password = md5.digest('hex');
+  // Final key
+  md5 = crypto.createHash('md5');
+  md5.update(nonce + username + hash_password);
+  var key = md5.digest('hex');
+  // Creat selector
+  var selector = {'authenticate':1, 'user':username, 'nonce':nonce, 'key':key};
+  // Create db command
+  return new DbCommand(db, authdb + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NONE, 0, -1, selector, null);
+};
+
+DbCommand.createLogoutCommand = function(db) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'logout':1}, null);
+};
+
+DbCommand.createCreateCollectionCommand = function(db, collectionName, options) {
+  var selector = {'create':collectionName};
+  // Modify the options to ensure correct behaviour
+  for(var name in options) {
+    if(options[name] != null && options[name].constructor != Function) selector[name] = options[name];
+  }
+  // Execute the command
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, selector, null);
+};
+
+DbCommand.createDropCollectionCommand = function(db, collectionName) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'drop':collectionName}, null);
+};
+
+DbCommand.createRenameCollectionCommand = function(db, fromCollectionName, toCollectionName, options) {
+  var renameCollection = db.databaseName + "." + fromCollectionName;
+  var toCollection = db.databaseName + "." + toCollectionName;
+  var dropTarget = options && options.dropTarget ? options.dropTarget : false;
+  return new DbCommand(db, "admin." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'renameCollection':renameCollection, 'to':toCollection, 'dropTarget':dropTarget}, null);
+};
+
+DbCommand.createGetLastErrorCommand = function(options, db) {
+
+  if (typeof db === 'undefined') {
+    db =  options;
+    options = {};
+  }
+  // Final command
+  var command = {'getlasterror':1};
+  // If we have an options Object let's merge in the fields (fsync/wtimeout/w)
+  if('object' === typeof options) {
+    for(var name in options) {
+      command[name] = options[name]
+    }
+  }
+
+  // Special case for w == 1, remove the w
+  if(1 == command.w) {
+    delete command.w;
+  }
+
+  // Execute command
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, command, null);
+};
+
+DbCommand.createGetLastStatusCommand = DbCommand.createGetLastErrorCommand;
+
+DbCommand.createGetPreviousErrorsCommand = function(db) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'getpreverror':1}, null);
+};
+
+DbCommand.createResetErrorHistoryCommand = function(db) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'reseterror':1}, null);
+};
+
+DbCommand.createCreateIndexCommand = function(db, collectionName, fieldOrSpec, options) {
+  var fieldHash = {};
+  var indexes = [];
+  var keys;
+
+  // Get all the fields accordingly
+  if('string' == typeof fieldOrSpec) {
+    // 'type'
+    indexes.push(fieldOrSpec + '_' + 1);
+    fieldHash[fieldOrSpec] = 1;
+
+  } else if(utils.isArray(fieldOrSpec)) {
+
+    fieldOrSpec.forEach(function(f) {
+      if('string' == typeof f) {
+        // [{location:'2d'}, 'type']
+        indexes.push(f + '_' + 1);
+        fieldHash[f] = 1;
+      } else if(utils.isArray(f)) {
+        // [['location', '2d'],['type', 1]]
+        indexes.push(f[0] + '_' + (f[1] || 1));
+        fieldHash[f[0]] = f[1] || 1;
+      } else if(utils.isObject(f)) {
+        // [{location:'2d'}, {type:1}]
+        keys = Object.keys(f);
+        keys.forEach(function(k) {
+          indexes.push(k + '_' + f[k]);
+          fieldHash[k] = f[k];
+        });
+      } else {
+        // undefined (ignore)
+      }
+    });
+
+  } else if(utils.isObject(fieldOrSpec)) {
+    // {location:'2d', type:1}
+    keys = Object.keys(fieldOrSpec);
+    keys.forEach(function(key) {
+      indexes.push(key + '_' + fieldOrSpec[key]);
+      fieldHash[key] = fieldOrSpec[key];
+    });
+  }
+
+  // Generate the index name
+  var indexName = typeof options.name == 'string'
+    ? options.name
+    : indexes.join("_");
+
+  var selector = {
+    'ns': db.databaseName + "." + collectionName,
+    'key': fieldHash,
+    'name': indexName
+  }
+
+  // Ensure we have a correct finalUnique
+  var finalUnique = options == null || 'object' === typeof options
+    ? false
+    : options;
+
+  // Set up options
+  options = options == null || typeof options == 'boolean'
+    ? {}
+    : options;
+
+  // Add all the options
+  var keys = Object.keys(options);
+  for(var i = 0; i < keys.length; i++) {
+    selector[keys[i]] = options[keys[i]];
+  }
+
+  if(selector['unique'] == null)
+    selector['unique'] = finalUnique;
+
+  var name = db.databaseName + "." + DbCommand.SYSTEM_INDEX_COLLECTION;
+  var cmd = new InsertCommand(db, name, false);
+  return cmd.add(selector);
+};
+
+DbCommand.logoutCommand = function(db, command_hash, options) {
+  var dbName = options != null && options['authdb'] != null ? options['authdb'] : db.databaseName;
+  // Create logout command
+  return new DbCommand(db, dbName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, command_hash, null);
+}
+
+DbCommand.createDropIndexCommand = function(db, collectionName, indexName) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'deleteIndexes':collectionName, 'index':indexName}, null);
+};
+
+DbCommand.createReIndexCommand = function(db, collectionName) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'reIndex':collectionName}, null);
+};
+
+DbCommand.createDropDatabaseCommand = function(db) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, {'dropDatabase':1}, null);
+};
+
+DbCommand.createDbCommand = function(db, command_hash, options) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, command_hash, null, options);
+};
+
+DbCommand.createAdminDbCommand = function(db, command_hash) {
+  return new DbCommand(db, "admin." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT, 0, -1, command_hash, null);
+};
+
+DbCommand.createAdminDbCommandSlaveOk = function(db, command_hash) {
+  return new DbCommand(db, "admin." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT | QueryCommand.OPTS_SLAVE, 0, -1, command_hash, null);
+};
+
+DbCommand.createDbSlaveOkCommand = function(db, command_hash, options) {
+  return new DbCommand(db, db.databaseName + "." + DbCommand.SYSTEM_COMMAND_COLLECTION, QueryCommand.OPTS_NO_CURSOR_TIMEOUT | QueryCommand.OPTS_SLAVE, 0, -1, command_hash, null, options);
+};

+ 114 - 0
node_modules/mongodb/lib/mongodb/commands/delete_command.js

@@ -0,0 +1,114 @@
+var BaseCommand = require('./base_command').BaseCommand,
+  inherits = require('util').inherits;
+
+/**
+  Insert Document Command
+**/
+var DeleteCommand = exports.DeleteCommand = function(db, collectionName, selector, flags) {
+  BaseCommand.call(this);
+
+  // Validate correctness off the selector
+  var object = selector;
+  if(Buffer.isBuffer(object)) {
+    var object_size = object[0] | object[1] << 8 | object[2] << 16 | object[3] << 24;        
+    if(object_size != object.length)  {
+      var error = new Error("delete raw message size does not match message header size [" + object.length + "] != [" + object_size + "]");
+      error.name = 'MongoError';
+      throw error;
+    }
+  }
+  
+  this.flags = flags;
+  this.collectionName = collectionName;
+  this.selector = selector;
+  this.db = db;
+};
+
+inherits(DeleteCommand, BaseCommand);
+
+DeleteCommand.OP_DELETE =	2006;
+
+/*
+struct {
+    MsgHeader header;                 // standard message header
+    int32     ZERO;                   // 0 - reserved for future use
+    cstring   fullCollectionName;     // "dbname.collectionname"
+    int32     ZERO;                   // 0 - reserved for future use
+    mongo.BSON      selector;               // query object.  See below for details.
+}
+*/
+DeleteCommand.prototype.toBinary = function() {
+  // Calculate total length of the document
+  var totalLengthOfCommand = 4 + Buffer.byteLength(this.collectionName) + 1 + 4 + this.db.bson.calculateObjectSize(this.selector, false, true) + (4 * 4);
+  // Let's build the single pass buffer command
+  var _index = 0;
+  var _command = new Buffer(totalLengthOfCommand);
+  // Write the header information to the buffer
+  _command[_index + 3] = (totalLengthOfCommand >> 24) & 0xff;     
+  _command[_index + 2] = (totalLengthOfCommand >> 16) & 0xff;
+  _command[_index + 1] = (totalLengthOfCommand >> 8) & 0xff;
+  _command[_index] = totalLengthOfCommand & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write the request ID
+  _command[_index + 3] = (this.requestId >> 24) & 0xff;     
+  _command[_index + 2] = (this.requestId >> 16) & 0xff;
+  _command[_index + 1] = (this.requestId >> 8) & 0xff;
+  _command[_index] = this.requestId & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  // Write the op_code for the command
+  _command[_index + 3] = (DeleteCommand.OP_DELETE >> 24) & 0xff;     
+  _command[_index + 2] = (DeleteCommand.OP_DELETE >> 16) & 0xff;
+  _command[_index + 1] = (DeleteCommand.OP_DELETE >> 8) & 0xff;
+  _command[_index] = DeleteCommand.OP_DELETE & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+
+  // Write the collection name to the command
+  _index = _index + _command.write(this.collectionName, _index, 'utf8') + 1;
+  _command[_index - 1] = 0;    
+
+  // Write the flags
+  _command[_index + 3] = (this.flags >> 24) & 0xff;     
+  _command[_index + 2] = (this.flags >> 16) & 0xff;
+  _command[_index + 1] = (this.flags >> 8) & 0xff;
+  _command[_index] = this.flags & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Document binary length
+  var documentLength = 0
+
+  // Serialize the selector
+  // If we are passing a raw buffer, do minimal validation
+  if(Buffer.isBuffer(this.selector)) {
+    documentLength = this.selector.length;
+    // Copy the data into the current buffer
+    this.selector.copy(_command, _index);
+  } else {
+    documentLength = this.db.bson.serializeWithBufferAndIndex(this.selector, this.checkKeys, _command, _index) - _index + 1;
+  }
+  
+  // Write the length to the document
+  _command[_index + 3] = (documentLength >> 24) & 0xff;     
+  _command[_index + 2] = (documentLength >> 16) & 0xff;
+  _command[_index + 1] = (documentLength >> 8) & 0xff;
+  _command[_index] = documentLength & 0xff;
+  // Update index in buffer
+  _index = _index + documentLength;
+  // Add terminating 0 for the object
+  _command[_index - 1] = 0;      
+  return _command;
+};

+ 83 - 0
node_modules/mongodb/lib/mongodb/commands/get_more_command.js

@@ -0,0 +1,83 @@
+var BaseCommand = require('./base_command').BaseCommand,
+  inherits = require('util').inherits,
+  binaryutils = require('../utils');
+
+/**
+  Get More Document Command
+**/
+var GetMoreCommand = exports.GetMoreCommand = function(db, collectionName, numberToReturn, cursorId) {
+  BaseCommand.call(this);
+
+  this.collectionName = collectionName;
+  this.numberToReturn = numberToReturn;
+  this.cursorId = cursorId;
+  this.db = db;
+};
+
+inherits(GetMoreCommand, BaseCommand);
+
+GetMoreCommand.OP_GET_MORE = 2005;
+
+GetMoreCommand.prototype.toBinary = function() {
+  // Calculate total length of the document
+  var totalLengthOfCommand = 4 + Buffer.byteLength(this.collectionName) + 1 + 4 + 8 + (4 * 4);
+  // Let's build the single pass buffer command
+  var _index = 0;
+  var _command = new Buffer(totalLengthOfCommand);
+  // Write the header information to the buffer
+  _command[_index++] = totalLengthOfCommand & 0xff;
+  _command[_index++] = (totalLengthOfCommand >> 8) & 0xff;
+  _command[_index++] = (totalLengthOfCommand >> 16) & 0xff;
+  _command[_index++] = (totalLengthOfCommand >> 24) & 0xff;     
+
+  // Write the request ID
+  _command[_index++] = this.requestId & 0xff;
+  _command[_index++] = (this.requestId >> 8) & 0xff;
+  _command[_index++] = (this.requestId >> 16) & 0xff;
+  _command[_index++] = (this.requestId >> 24) & 0xff;     
+
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+
+  // Write the op_code for the command
+  _command[_index++] = GetMoreCommand.OP_GET_MORE & 0xff;
+  _command[_index++] = (GetMoreCommand.OP_GET_MORE >> 8) & 0xff;
+  _command[_index++] = (GetMoreCommand.OP_GET_MORE >> 16) & 0xff;
+  _command[_index++] = (GetMoreCommand.OP_GET_MORE >> 24) & 0xff;     
+
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+
+  // Write the collection name to the command
+  _index = _index + _command.write(this.collectionName, _index, 'utf8') + 1;
+  _command[_index - 1] = 0;    
+
+  // Number of documents to return
+  _command[_index++] = this.numberToReturn & 0xff;
+  _command[_index++] = (this.numberToReturn >> 8) & 0xff;
+  _command[_index++] = (this.numberToReturn >> 16) & 0xff;
+  _command[_index++] = (this.numberToReturn >> 24) & 0xff;     
+  
+  // Encode the cursor id
+  var low_bits = this.cursorId.getLowBits();
+  // Encode low bits
+  _command[_index++] = low_bits & 0xff;
+  _command[_index++] = (low_bits >> 8) & 0xff;
+  _command[_index++] = (low_bits >> 16) & 0xff;
+  _command[_index++] = (low_bits >> 24) & 0xff;     
+  
+  var high_bits = this.cursorId.getHighBits();
+  // Encode high bits
+  _command[_index++] = high_bits & 0xff;
+  _command[_index++] = (high_bits >> 8) & 0xff;
+  _command[_index++] = (high_bits >> 16) & 0xff;
+  _command[_index++] = (high_bits >> 24) & 0xff;     
+  // Return command
+  return _command;
+};

+ 147 - 0
node_modules/mongodb/lib/mongodb/commands/insert_command.js

@@ -0,0 +1,147 @@
+var BaseCommand = require('./base_command').BaseCommand,
+  inherits = require('util').inherits;
+
+/**
+  Insert Document Command
+**/
+var InsertCommand = exports.InsertCommand = function(db, collectionName, checkKeys, options) {
+  BaseCommand.call(this);
+
+  this.collectionName = collectionName;
+  this.documents = [];
+  this.checkKeys = checkKeys == null ? true : checkKeys;
+  this.db = db;
+  this.flags = 0;
+  this.serializeFunctions = false;
+
+  // Ensure valid options hash
+  options = options == null ? {} : options;
+
+  // Check if we have keepGoing set -> set flag if it's the case
+  if(options['keepGoing'] != null && options['keepGoing']) {
+    // This will finish inserting all non-index violating documents even if it returns an error
+    this.flags = 1;
+  }
+
+  // Check if we have keepGoing set -> set flag if it's the case
+  if(options['continueOnError'] != null && options['continueOnError']) {
+    // This will finish inserting all non-index violating documents even if it returns an error
+    this.flags = 1;
+  }
+
+  // Let us defined on a command basis if we want functions to be serialized or not
+  if(options['serializeFunctions'] != null && options['serializeFunctions']) {
+    this.serializeFunctions = true;
+  }
+};
+
+inherits(InsertCommand, BaseCommand);
+
+// OpCodes
+InsertCommand.OP_INSERT =	2002;
+
+InsertCommand.prototype.add = function(document) {
+  if(Buffer.isBuffer(document)) {
+    var object_size = document[0] | document[1] << 8 | document[2] << 16 | document[3] << 24;
+    if(object_size != document.length)  {
+      var error = new Error("insert raw message size does not match message header size [" + document.length + "] != [" + object_size + "]");
+      error.name = 'MongoError';
+      throw error;
+    }
+  }
+
+  this.documents.push(document);
+  return this;
+};
+
+/*
+struct {
+    MsgHeader header;             // standard message header
+    int32     ZERO;               // 0 - reserved for future use
+    cstring   fullCollectionName; // "dbname.collectionname"
+    BSON[]    documents;          // one or more documents to insert into the collection
+}
+*/
+InsertCommand.prototype.toBinary = function() {
+  // Calculate total length of the document
+  var totalLengthOfCommand = 4 + Buffer.byteLength(this.collectionName) + 1 + (4 * 4);
+  // var docLength = 0
+  for(var i = 0; i < this.documents.length; i++) {
+    if(Buffer.isBuffer(this.documents[i])) {
+      totalLengthOfCommand += this.documents[i].length;
+    } else {
+      // Calculate size of document
+      totalLengthOfCommand += this.db.bson.calculateObjectSize(this.documents[i], this.serializeFunctions, true);
+    }
+  }
+
+  // Let's build the single pass buffer command
+  var _index = 0;
+  var _command = new Buffer(totalLengthOfCommand);
+  // Write the header information to the buffer
+  _command[_index + 3] = (totalLengthOfCommand >> 24) & 0xff;
+  _command[_index + 2] = (totalLengthOfCommand >> 16) & 0xff;
+  _command[_index + 1] = (totalLengthOfCommand >> 8) & 0xff;
+  _command[_index] = totalLengthOfCommand & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write the request ID
+  _command[_index + 3] = (this.requestId >> 24) & 0xff;
+  _command[_index + 2] = (this.requestId >> 16) & 0xff;
+  _command[_index + 1] = (this.requestId >> 8) & 0xff;
+  _command[_index] = this.requestId & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  // Write the op_code for the command
+  _command[_index + 3] = (InsertCommand.OP_INSERT >> 24) & 0xff;
+  _command[_index + 2] = (InsertCommand.OP_INSERT >> 16) & 0xff;
+  _command[_index + 1] = (InsertCommand.OP_INSERT >> 8) & 0xff;
+  _command[_index] = InsertCommand.OP_INSERT & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write flags if any
+  _command[_index + 3] = (this.flags >> 24) & 0xff;
+  _command[_index + 2] = (this.flags >> 16) & 0xff;
+  _command[_index + 1] = (this.flags >> 8) & 0xff;
+  _command[_index] = this.flags & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write the collection name to the command
+  _index = _index + _command.write(this.collectionName, _index, 'utf8') + 1;
+  _command[_index - 1] = 0;
+
+  // Write all the bson documents to the buffer at the index offset
+  for(var i = 0; i < this.documents.length; i++) {
+    // Document binary length
+    var documentLength = 0
+    var object = this.documents[i];
+
+    // Serialize the selector
+    // If we are passing a raw buffer, do minimal validation
+    if(Buffer.isBuffer(object)) {
+      documentLength = object.length;
+      // Copy the data into the current buffer
+      object.copy(_command, _index);
+    } else {
+      // Serialize the document straight to the buffer
+      documentLength = this.db.bson.serializeWithBufferAndIndex(object, this.checkKeys, _command, _index, this.serializeFunctions) - _index + 1;
+    }
+
+    // Write the length to the document
+    _command[_index + 3] = (documentLength >> 24) & 0xff;
+    _command[_index + 2] = (documentLength >> 16) & 0xff;
+    _command[_index + 1] = (documentLength >> 8) & 0xff;
+    _command[_index] = documentLength & 0xff;
+    // Update index in buffer
+    _index = _index + documentLength;
+    // Add terminating 0 for the object
+    _command[_index - 1] = 0;
+  }
+
+  return _command;
+};

+ 98 - 0
node_modules/mongodb/lib/mongodb/commands/kill_cursor_command.js

@@ -0,0 +1,98 @@
+var BaseCommand = require('./base_command').BaseCommand,
+  inherits = require('util').inherits,
+  binaryutils = require('../utils');
+
+/**
+  Insert Document Command
+**/
+var KillCursorCommand = exports.KillCursorCommand = function(db, cursorIds) {
+  BaseCommand.call(this);
+
+  this.cursorIds = cursorIds;
+  this.db = db;
+};
+
+inherits(KillCursorCommand, BaseCommand);
+
+KillCursorCommand.OP_KILL_CURSORS = 2007;
+
+/*
+struct {
+    MsgHeader header;                 // standard message header
+    int32     ZERO;                   // 0 - reserved for future use
+    int32     numberOfCursorIDs;      // number of cursorIDs in message
+    int64[]   cursorIDs;                // array of cursorIDs to close
+}
+*/
+KillCursorCommand.prototype.toBinary = function() {
+  // Calculate total length of the document
+  var totalLengthOfCommand = 4 + 4 + (4 * 4) + (this.cursorIds.length * 8);
+  // Let's build the single pass buffer command
+  var _index = 0;
+  var _command = new Buffer(totalLengthOfCommand);
+  // Write the header information to the buffer
+  _command[_index + 3] = (totalLengthOfCommand >> 24) & 0xff;     
+  _command[_index + 2] = (totalLengthOfCommand >> 16) & 0xff;
+  _command[_index + 1] = (totalLengthOfCommand >> 8) & 0xff;
+  _command[_index] = totalLengthOfCommand & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write the request ID
+  _command[_index + 3] = (this.requestId >> 24) & 0xff;     
+  _command[_index + 2] = (this.requestId >> 16) & 0xff;
+  _command[_index + 1] = (this.requestId >> 8) & 0xff;
+  _command[_index] = this.requestId & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  // Write the op_code for the command
+  _command[_index + 3] = (KillCursorCommand.OP_KILL_CURSORS >> 24) & 0xff;     
+  _command[_index + 2] = (KillCursorCommand.OP_KILL_CURSORS >> 16) & 0xff;
+  _command[_index + 1] = (KillCursorCommand.OP_KILL_CURSORS >> 8) & 0xff;
+  _command[_index] = KillCursorCommand.OP_KILL_CURSORS & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+
+  // Number of cursors to kill
+  var numberOfCursors = this.cursorIds.length;
+  _command[_index + 3] = (numberOfCursors >> 24) & 0xff;     
+  _command[_index + 2] = (numberOfCursors >> 16) & 0xff;
+  _command[_index + 1] = (numberOfCursors >> 8) & 0xff;
+  _command[_index] = numberOfCursors & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Encode all the cursors
+  for(var i = 0; i < this.cursorIds.length; i++) {
+    // Encode the cursor id
+    var low_bits = this.cursorIds[i].getLowBits();
+    // Encode low bits
+    _command[_index + 3] = (low_bits >> 24) & 0xff;     
+    _command[_index + 2] = (low_bits >> 16) & 0xff;
+    _command[_index + 1] = (low_bits >> 8) & 0xff;
+    _command[_index] = low_bits & 0xff;
+    // Adjust index
+    _index = _index + 4;
+      
+    var high_bits = this.cursorIds[i].getHighBits();
+    // Encode high bits
+    _command[_index + 3] = (high_bits >> 24) & 0xff;     
+    _command[_index + 2] = (high_bits >> 16) & 0xff;
+    _command[_index + 1] = (high_bits >> 8) & 0xff;
+    _command[_index] = high_bits & 0xff;
+    // Adjust index
+    _index = _index + 4;
+  }
+  
+  return _command;
+};

+ 261 - 0
node_modules/mongodb/lib/mongodb/commands/query_command.js

@@ -0,0 +1,261 @@
+var BaseCommand = require('./base_command').BaseCommand,
+  inherits = require('util').inherits;
+
+/**
+  Insert Document Command
+**/
+var QueryCommand = exports.QueryCommand = function(db, collectionName, queryOptions, numberToSkip, numberToReturn, query, returnFieldSelector, options) {
+  BaseCommand.call(this);
+
+  // Validate correctness off the selector
+  var object = query,
+    object_size;
+  if(Buffer.isBuffer(object)) {
+    object_size = object[0] | object[1] << 8 | object[2] << 16 | object[3] << 24;
+    if(object_size != object.length) {
+      var error = new Error("query selector raw message size does not match message header size [" + object.length + "] != [" + object_size + "]");
+      error.name = 'MongoError';
+      throw error;
+    }
+  }
+
+  object = returnFieldSelector;
+  if(Buffer.isBuffer(object)) {
+    object_size = object[0] | object[1] << 8 | object[2] << 16 | object[3] << 24;
+    if(object_size != object.length) {
+      var error = new Error("query fields raw message size does not match message header size [" + object.length + "] != [" + object_size + "]");
+      error.name = 'MongoError';
+      throw error;
+    }
+  }
+
+  // Make sure we don't get a null exception
+  options = options == null ? {} : options;
+  // Set up options
+  this.collectionName = collectionName;
+  this.queryOptions = queryOptions;
+  this.numberToSkip = numberToSkip;
+  this.numberToReturn = numberToReturn;
+
+  // Ensure we have no null query
+  query = query == null ? {} : query;
+  // Wrap query in the $query parameter so we can add read preferences for mongos
+  this.query = query;
+  this.returnFieldSelector = returnFieldSelector;
+  this.db = db;
+
+  // Let us defined on a command basis if we want functions to be serialized or not
+  if(options['serializeFunctions'] != null && options['serializeFunctions']) {
+    this.serializeFunctions = true;
+  }
+};
+
+inherits(QueryCommand, BaseCommand);
+
+QueryCommand.OP_QUERY = 2004;
+
+/*
+ * Adds the read prefrence to the current command
+ */
+QueryCommand.prototype.setMongosReadPreference = function(readPreference, tags) {
+  // If we have readPreference set to true set to secondary prefered
+  if(readPreference == true) {
+    readPreference = 'secondaryPreferred';
+  } else if(readPreference == 'false') {
+    readPreference = 'primary';
+  }
+
+  // Force the slave ok flag to be set if we are not using primary read preference
+  if(readPreference != false && readPreference != 'primary') {
+    this.queryOptions |= QueryCommand.OPTS_SLAVE;
+  }
+
+  // Backward compatibility, ensure $query only set on read preference so 1.8.X works
+  if((readPreference != null || tags != null) && this.query['$query'] == null) {
+    this.query = {'$query': this.query};
+  }
+
+  // If we have no readPreference set and no tags, check if the slaveOk bit is set
+  if(readPreference == null && tags == null) {
+    // If we have a slaveOk bit set the read preference for MongoS
+    if(this.queryOptions & QueryCommand.OPTS_SLAVE) {
+      this.query['$readPreference'] = {mode: 'secondary'}
+    } else {
+      this.query['$readPreference'] = {mode: 'primary'}
+    }
+  }
+
+  // Build read preference object
+  if(typeof readPreference == 'object' && readPreference['_type'] == 'ReadPreference') {
+    this.query['$readPreference'] = readPreference.toObject();
+  } else if(readPreference != null) {
+    // Add the read preference
+    this.query['$readPreference'] = {mode: readPreference};
+
+    // If we have tags let's add them
+    if(tags != null) {
+      this.query['$readPreference']['tags'] = tags;
+    }
+  }
+}
+
+/*
+struct {
+    MsgHeader header;                 // standard message header
+    int32     opts;                   // query options.  See below for details.
+    cstring   fullCollectionName;     // "dbname.collectionname"
+    int32     numberToSkip;           // number of documents to skip when returning results
+    int32     numberToReturn;         // number of documents to return in the first OP_REPLY
+    BSON      query ;                 // query object.  See below for details.
+  [ BSON      returnFieldSelector; ]  // OPTIONAL : selector indicating the fields to return.  See below for details.
+}
+*/
+QueryCommand.prototype.toBinary = function() {
+  // Total length of the command
+  var totalLengthOfCommand = 0;
+  // Calculate total length of the document
+  if(Buffer.isBuffer(this.query)) {
+    totalLengthOfCommand = 4 + Buffer.byteLength(this.collectionName) + 1 + 4 + 4 + this.query.length + (4 * 4);
+  } else {
+    totalLengthOfCommand = 4 + Buffer.byteLength(this.collectionName) + 1 + 4 + 4 + this.db.bson.calculateObjectSize(this.query, this.serializeFunctions, true) + (4 * 4);
+  }
+
+  // Calculate extra fields size
+  if(this.returnFieldSelector != null && !(Buffer.isBuffer(this.returnFieldSelector)))  {
+    if(Object.keys(this.returnFieldSelector).length > 0) {
+      totalLengthOfCommand += this.db.bson.calculateObjectSize(this.returnFieldSelector, this.serializeFunctions, true);
+    }
+  } else if(Buffer.isBuffer(this.returnFieldSelector)) {
+    totalLengthOfCommand += this.returnFieldSelector.length;
+  }
+
+  // Let's build the single pass buffer command
+  var _index = 0;
+  var _command = new Buffer(totalLengthOfCommand);
+  // Write the header information to the buffer
+  _command[_index + 3] = (totalLengthOfCommand >> 24) & 0xff;
+  _command[_index + 2] = (totalLengthOfCommand >> 16) & 0xff;
+  _command[_index + 1] = (totalLengthOfCommand >> 8) & 0xff;
+  _command[_index] = totalLengthOfCommand & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write the request ID
+  _command[_index + 3] = (this.requestId >> 24) & 0xff;
+  _command[_index + 2] = (this.requestId >> 16) & 0xff;
+  _command[_index + 1] = (this.requestId >> 8) & 0xff;
+  _command[_index] = this.requestId & 0xff;
+  // Adjust index
+  _index = _index + 4;
+  // Write zero
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  _command[_index++] = 0;
+  // Write the op_code for the command
+  _command[_index + 3] = (QueryCommand.OP_QUERY >> 24) & 0xff;
+  _command[_index + 2] = (QueryCommand.OP_QUERY >> 16) & 0xff;
+  _command[_index + 1] = (QueryCommand.OP_QUERY >> 8) & 0xff;
+  _command[_index] = QueryCommand.OP_QUERY & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Write the query options
+  _command[_index + 3] = (this.queryOptions >> 24) & 0xff;
+  _command[_index + 2] = (this.queryOptions >> 16) & 0xff;
+  _command[_index + 1] = (this.queryOptions >> 8) & 0xff;
+  _command[_index] = this.queryOptions & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Write the collection name to the command
+  _index = _index + _command.write(this.collectionName, _index, 'utf8') + 1;
+  _command[_index - 1] = 0;
+
+  // Write the number of documents to skip
+  _command[_index + 3] = (this.numberToSkip >> 24) & 0xff;
+  _command[_index + 2] = (this.numberToSkip >> 16) & 0xff;
+  _command[_index + 1] = (this.numberToSkip >> 8) & 0xff;
+  _command[_index] = this.numberToSkip & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Write the number of documents to return
+  _command[_index + 3] = (this.numberToReturn >> 24) & 0xff;
+  _command[_index + 2] = (this.numberToReturn >> 16) & 0xff;
+  _command[_index + 1] = (this.numberToReturn >> 8) & 0xff;
+  _command[_index] = this.numberToReturn & 0xff;
+  // Adjust index
+  _index = _index + 4;
+
+  // Document binary length
+  var documentLength = 0
+  var object = this.query;
+
+  // Serialize the selector
+  if(Buffer.isBuffer(object)) {
+    documentLength = object.length;
+    // Copy the data into the current buffer
+    object.copy(_command, _index);
+  } else {
+    // Serialize the document straight to the buffer
+    documentLength = this.db.bson.serializeWithBufferAndIndex(object, this.checkKeys, _command, _index, this.serializeFunctions) - _index + 1;
+  }
+
+  // Write the length to the document
+  _command[_index + 3] = (documentLength >> 24) & 0xff;
+  _command[_index + 2] = (documentLength >> 16) & 0xff;
+  _command[_index + 1] = (documentLength >> 8) & 0xff;
+  _command[_index] = documentLength & 0xff;
+  // Update index in buffer
+  _index = _index + documentLength;
+  // Add terminating 0 for the object
+  _command[_index - 1] = 0;
+
+  // Push field selector if available
+  if(this.returnFieldSelector != null && !(Buffer.isBuffer(this.returnFieldSelector)))  {
+    if(Object.keys(this.returnFieldSelector).length > 0) {
+      var documentLength = this.db.bson.serializeWithBufferAndIndex(this.returnFieldSelector, this.checkKeys, _command, _index, this.serializeFunctions) - _index + 1;
+      // Write the length to the document
+      _command[_index + 3] = (documentLength >> 24) & 0xff;
+      _command[_index + 2] = (documentLength >> 16) & 0xff;
+      _command[_index + 1] = (documentLength >> 8) & 0xff;
+      _command[_index] = documentLength & 0xff;
+      // Update index in buffer
+      _index = _index + documentLength;
+      // Add terminating 0 for the object
+      _command[_index - 1] = 0;
+    }
+  } if(this.returnFieldSelector != null && Buffer.isBuffer(this.returnFieldSelector))  {
+    // Document binary length
+    var documentLength = 0
+    var object = this.returnFieldSelector;
+
+    // Serialize the selector
+    documentLength = object.length;
+    // Copy the data into the current buffer
+    object.copy(_command, _index);
+
+    // Write the length to the document
+    _command[_index + 3] = (documentLength >> 24) & 0xff;
+    _command[_index + 2] = (documentLength >> 16) & 0xff;
+    _command[_index + 1] = (documentLength >> 8) & 0xff;
+    _command[_index] = documentLength & 0xff;
+    // Update index in buffer
+    _index = _index + documentLength;
+    // Add terminating 0 for the object
+    _command[_index - 1] = 0;
+  }
+
+  // Return finished command
+  return _command;
+};
+
+// Constants
+QueryCommand.OPTS_NONE = 0;
+QueryCommand.OPTS_TAILABLE_CURSOR = 2;
+QueryCommand.OPTS_SLAVE = 4;
+QueryCommand.OPTS_OPLOG_REPLY = 8;
+QueryCommand.OPTS_NO_CURSOR_TIMEOUT = 16;
+QueryCommand.OPTS_AWAIT_DATA = 32;
+QueryCommand.OPTS_EXHAUST = 64;
+QueryCommand.OPTS_PARTIAL = 128;

+ 0 - 0
node_modules/mongodb/lib/mongodb/commands/update_command.js


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio