taskjuggler 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -1,1301 +0,0 @@
1
- /* This notice must be untouched at all times.
2
- Copyright (c) 2002-2008 Walter Zorn. All rights reserved.
3
-
4
- wz_tooltip.js v. 5.31
5
-
6
- The latest version is available at
7
- http://www.walterzorn.com
8
- or http://www.devira.com
9
- or http://www.walterzorn.de
10
-
11
- Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
12
- Last modified: 7.11.2008
13
-
14
- Easy-to-use cross-browser tooltips.
15
- Just include the script at the beginning of the <body> section, and invoke
16
- Tip('Tooltip text') to show and UnTip() to hide the tooltip, from the desired
17
- HTML eventhandlers. Example:
18
- <a onmouseover="Tip('Some text')" onmouseout="UnTip()" href="index.htm">My home page</a>
19
- No container DIV required.
20
- By default, width and height of tooltips are automatically adapted to content.
21
- Is even capable of dynamically converting arbitrary HTML elements to tooltips
22
- by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
23
- which means you can put important, search-engine-relevant stuff into tooltips.
24
- Appearance & behaviour of tooltips can be individually configured
25
- via commands passed to Tip() or TagToTip().
26
-
27
- Tab Width: 4
28
- LICENSE: LGPL
29
-
30
- This library is free software; you can redistribute it and/or
31
- modify it under the terms of the GNU Lesser General Public
32
- License (LGPL) as published by the Free Software Foundation; either
33
- version 2.1 of the License, or (at your option) any later version.
34
-
35
- This library is distributed in the hope that it will be useful,
36
- but WITHOUT ANY WARRANTY; without even the implied warranty of
37
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
38
-
39
- For more details on the GNU Lesser General Public License,
40
- see http://www.gnu.org/copyleft/lesser.html
41
- */
42
-
43
- var config = new Object();
44
-
45
-
46
- //=================== GLOBAL TOOLTIP CONFIGURATION =========================//
47
- var tt_Debug = false // false or true - recommended: false once you release your page to the public
48
- var tt_Enabled = true // Allows to (temporarily) suppress tooltips, e.g. by providing the user with a button that sets this global variable to false
49
- var TagsToTip = true // false or true - if true, HTML elements to be converted to tooltips via TagToTip() are automatically hidden;
50
- // if false, you should hide those HTML elements yourself
51
-
52
- // For each of the following config variables there exists a command, which is
53
- // just the variablename in uppercase, to be passed to Tip() or TagToTip() to
54
- // configure tooltips individually. Individual commands override global
55
- // configuration. Order of commands is arbitrary.
56
- // Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900', FADEIN, 400)"
57
-
58
- config. Above = false // false or true - tooltip above mousepointer
59
- config. BgColor = '#C3C8DA' // Background colour (HTML colour value, in quotes)
60
- config. BgImg = '' // Path to background image, none if empty string ''
61
- config. BorderColor = '#999999'
62
- config. BorderStyle = 'solid' // Any permitted CSS value, but I recommend 'solid', 'dotted' or 'dashed'
63
- config. BorderWidth = 1
64
- config. CenterMouse = true // false or true - center the tip horizontally below (or above) the mousepointer
65
- config. ClickClose = false // false or true - close tooltip if the user clicks somewhere
66
- config. ClickSticky = true // false or true - make tooltip sticky if user left-clicks on the hovered element while the tooltip is active
67
- config. CloseBtn = true // false or true - closebutton in titlebar
68
- config. CloseBtnColors = ['#505050', '#FFFFFF', '#A0A0A0', '#000000'] // [Background, text, hovered background, hovered text] - use empty strings '' to inherit title colours
69
- config. CloseBtnText = '&nbsp;X&nbsp;' // Close button text (may also be an image tag)
70
- config. CopyContent = true // When converting a HTML element to a tooltip, copy only the element's content, rather than converting the element by its own
71
- config. Delay = 750 // Time span in ms until tooltip shows up
72
- config. Duration = 0 // Time span in ms after which the tooltip disappears; 0 for infinite duration, < 0 for delay in ms _after_ the onmouseout until the tooltip disappears
73
- config. Exclusive = false // false or true - no other tooltip can appear until the current one has actively been closed
74
- config. FadeIn = 400 // Fade-in duration in ms, e.g. 400; 0 for no animation
75
- config. FadeOut = 400
76
- config. FadeInterval = 30 // Duration of each fade step in ms (recommended: 30) - shorter is smoother but causes more CPU-load
77
- config. Fix = null // Fixated position, two modes. Mode 1: x- an y-coordinates in brackets, e.g. [210, 480]. Mode 2: Show tooltip at a position related to an HTML element: [ID of HTML element, x-offset, y-offset from HTML element], e.g. ['SomeID', 10, 30]. Value null (default) for no fixated positioning.
78
- config. FollowMouse = false // false or true - tooltip follows the mouse
79
- config. FontColor = '#000044'
80
- config. FontFace = 'Verdana,Geneva,sans-serif'
81
- config. FontSize = '8pt' // E.g. '9pt' or '12px' - unit is mandatory
82
- config. FontWeight = 'normal' // 'normal' or 'bold';
83
- config. Height = 0 // Tooltip height; 0 for automatic adaption to tooltip content, < 0 (e.g. -100) for a maximum for automatic adaption
84
- config. JumpHorz = false // false or true - jump horizontally to other side of mouse if tooltip would extend past clientarea boundary
85
- config. JumpVert = true // false or true - jump vertically "
86
- config. Left = false // false or true - tooltip on the left of the mouse
87
- config. OffsetX = 14 // Horizontal offset of left-top corner from mousepointer
88
- config. OffsetY = 4 // Vertical offset
89
- config. Opacity = 100 // Integer between 0 and 100 - opacity of tooltip in percent
90
- config. Padding = 10 // Spacing between border and content
91
- config. Shadow = true // false or true
92
- config. ShadowColor = '#A0A0A0'
93
- config. ShadowWidth = 4
94
- config. Sticky = false // false or true - fixate tip, ie. don't follow the mouse and don't hide on mouseout
95
- config. TextAlign = 'left' // 'left', 'right' or 'justify'
96
- config. Title = '' // Default title text applied to all tips (no default title: empty string '')
97
- config. TitleAlign = 'center' // 'left' or 'right' - text alignment inside the title bar
98
- config. TitleBgColor = '#7A7A7A' // If empty string '', BorderColor will be used
99
- config. TitleFontColor = '#FFFFFF' // Color of title text - if '', BgColor (of tooltip body) will be used
100
- config. TitleFontFace = '' // If '' use FontFace (boldified)
101
- config. TitleFontSize = '' // If '' use FontSize
102
- config. TitlePadding = 2
103
- config. Width = -600 // Tooltip width; 0 for automatic adaption to tooltip content; < -1 (e.g. -240) for a maximum width for that automatic adaption;
104
- // -1: tooltip width confined to the width required for the titlebar
105
- //======= END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW ==============//
106
-
107
-
108
-
109
-
110
- //===================== PUBLIC =============================================//
111
- function Tip()
112
- {
113
- tt_Tip(arguments, null);
114
- }
115
- function TagToTip()
116
- {
117
- var t2t = tt_GetElt(arguments[0]);
118
- if(t2t)
119
- tt_Tip(arguments, t2t);
120
- }
121
- function UnTip()
122
- {
123
- tt_OpReHref();
124
- if(tt_aV[DURATION] < 0 && (tt_iState & 0x2))
125
- tt_tDurt.Timer("tt_HideInit()", -tt_aV[DURATION], true);
126
- else if(!(tt_aV[STICKY] && (tt_iState & 0x2)))
127
- tt_HideInit();
128
- }
129
-
130
- //================== PUBLIC PLUGIN API =====================================//
131
- // Extension eventhandlers currently supported:
132
- // OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow, OnMoveBefore,
133
- // OnMoveAfter, OnHideInit, OnHide, OnKill
134
-
135
- var tt_aElt = new Array(10), // Container DIV, outer title & body DIVs, inner title & body TDs, closebutton SPAN, shadow DIVs, and IFRAME to cover windowed elements in IE
136
- tt_aV = new Array(), // Caches and enumerates config data for currently active tooltip
137
- tt_sContent, // Inner tooltip text or HTML
138
- tt_t2t, tt_t2tDad, // Tag converted to tip, and its DOM parent element
139
- tt_musX, tt_musY,
140
- tt_over,
141
- tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed tooltip
142
-
143
- function tt_Extension()
144
- {
145
- tt_ExtCmdEnum();
146
- tt_aExt[tt_aExt.length] = this;
147
- return this;
148
- }
149
- function tt_SetTipPos(x, y)
150
- {
151
- var css = tt_aElt[0].style;
152
-
153
- tt_x = x;
154
- tt_y = y;
155
- css.left = x + "px";
156
- css.top = y + "px";
157
- if(tt_ie56)
158
- {
159
- var ifrm = tt_aElt[tt_aElt.length - 1];
160
- if(ifrm)
161
- {
162
- ifrm.style.left = css.left;
163
- ifrm.style.top = css.top;
164
- }
165
- }
166
- }
167
- function tt_HideInit()
168
- {
169
- if(tt_iState)
170
- {
171
- tt_ExtCallFncs(0, "HideInit");
172
- tt_iState &= ~(0x4 | 0x8);
173
- if(tt_flagOpa && tt_aV[FADEOUT])
174
- {
175
- tt_tFade.EndTimer();
176
- if(tt_opa)
177
- {
178
- var n = Math.round(tt_aV[FADEOUT] / (tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa)));
179
- tt_Fade(tt_opa, tt_opa, 0, n);
180
- return;
181
- }
182
- }
183
- tt_tHide.Timer("tt_Hide();", 1, false);
184
- }
185
- }
186
- function tt_Hide()
187
- {
188
- if(tt_db && tt_iState)
189
- {
190
- tt_OpReHref();
191
- if(tt_iState & 0x2)
192
- {
193
- tt_aElt[0].style.visibility = "hidden";
194
- tt_ExtCallFncs(0, "Hide");
195
- }
196
- tt_tShow.EndTimer();
197
- tt_tHide.EndTimer();
198
- tt_tDurt.EndTimer();
199
- tt_tFade.EndTimer();
200
- if(!tt_op && !tt_ie)
201
- {
202
- tt_tWaitMov.EndTimer();
203
- tt_bWait = false;
204
- }
205
- if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])
206
- tt_RemEvtFnc(document, "mouseup", tt_OnLClick);
207
- tt_ExtCallFncs(0, "Kill");
208
- // In case of a TagToTip tip, hide converted DOM node and
209
- // re-insert it into DOM
210
- if(tt_t2t && !tt_aV[COPYCONTENT])
211
- tt_UnEl2Tip();
212
- tt_iState = 0;
213
- tt_over = null;
214
- tt_ResetMainDiv();
215
- if(tt_aElt[tt_aElt.length - 1])
216
- tt_aElt[tt_aElt.length - 1].style.display = "none";
217
- }
218
- }
219
- function tt_GetElt(id)
220
- {
221
- return(document.getElementById ? document.getElementById(id)
222
- : document.all ? document.all[id]
223
- : null);
224
- }
225
- function tt_GetDivW(el)
226
- {
227
- return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0);
228
- }
229
- function tt_GetDivH(el)
230
- {
231
- return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0);
232
- }
233
- function tt_GetScrollX()
234
- {
235
- return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0));
236
- }
237
- function tt_GetScrollY()
238
- {
239
- return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0));
240
- }
241
- function tt_GetClientW()
242
- {
243
- return tt_GetWndCliSiz("Width");
244
- }
245
- function tt_GetClientH()
246
- {
247
- return tt_GetWndCliSiz("Height");
248
- }
249
- function tt_GetEvtX(e)
250
- {
251
- return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX + tt_GetScrollX())) : 0);
252
- }
253
- function tt_GetEvtY(e)
254
- {
255
- return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY + tt_GetScrollY())) : 0);
256
- }
257
- function tt_AddEvtFnc(el, sEvt, PFnc)
258
- {
259
- if(el)
260
- {
261
- if(el.addEventListener)
262
- el.addEventListener(sEvt, PFnc, false);
263
- else
264
- el.attachEvent("on" + sEvt, PFnc);
265
- }
266
- }
267
- function tt_RemEvtFnc(el, sEvt, PFnc)
268
- {
269
- if(el)
270
- {
271
- if(el.removeEventListener)
272
- el.removeEventListener(sEvt, PFnc, false);
273
- else
274
- el.detachEvent("on" + sEvt, PFnc);
275
- }
276
- }
277
- function tt_GetDad(el)
278
- {
279
- return(el.parentNode || el.parentElement || el.offsetParent);
280
- }
281
- function tt_MovDomNode(el, dadFrom, dadTo)
282
- {
283
- if(dadFrom)
284
- dadFrom.removeChild(el);
285
- if(dadTo)
286
- dadTo.appendChild(el);
287
- }
288
-
289
- //====================== PRIVATE ===========================================//
290
- var tt_aExt = new Array(), // Array of extension objects
291
-
292
- tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags
293
- tt_body,
294
- tt_ovr_, // HTML element the mouse is currently over
295
- tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML, 4=Moz, 5=W3C
296
- tt_maxPosX, tt_maxPosY,
297
- tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with mouse |= 4, exclusive |= 8
298
- tt_opa, // Currently applied opacity
299
- tt_bJmpVert, tt_bJmpHorz,// Tip temporarily on other side of mouse
300
- tt_elDeHref, // The tag from which we've removed the href attribute
301
- // Timer
302
- tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0),
303
- tt_tFade = new Number(0), tt_tWaitMov = new Number(0),
304
- tt_bWait = false,
305
- tt_u = "undefined";
306
-
307
-
308
- function tt_Init()
309
- {
310
- tt_MkCmdEnum();
311
- // Send old browsers instantly to hell
312
- if(!tt_Browser() || !tt_MkMainDiv())
313
- return;
314
- tt_IsW3cBox();
315
- tt_OpaSupport();
316
- tt_AddEvtFnc(document, "mousemove", tt_Move);
317
- // In Debug mode we search for TagToTip() calls in order to notify
318
- // the user if they've forgotten to set the TagsToTip config flag
319
- if(TagsToTip || tt_Debug)
320
- tt_SetOnloadFnc();
321
- // Ensure the tip be hidden when the page unloads
322
- tt_AddEvtFnc(window, "unload", tt_Hide);
323
- }
324
- // Creates command names by translating config variable names to upper case
325
- function tt_MkCmdEnum()
326
- {
327
- var n = 0;
328
- for(var i in config)
329
- eval("window." + i.toString().toUpperCase() + " = " + n++);
330
- tt_aV.length = n;
331
- }
332
- function tt_Browser()
333
- {
334
- var n, nv, n6, w3c;
335
-
336
- n = navigator.userAgent.toLowerCase(),
337
- nv = navigator.appVersion;
338
- tt_op = (document.defaultView && typeof(eval("w" + "indow" + "." + "o" + "p" + "er" + "a")) != tt_u);
339
- tt_ie = n.indexOf("msie") != -1 && document.all && !tt_op;
340
- if(tt_ie)
341
- {
342
- var ieOld = (!document.compatMode || document.compatMode == "BackCompat");
343
- tt_db = !ieOld ? document.documentElement : (document.body || null);
344
- if(tt_db)
345
- tt_ie56 = parseFloat(nv.substring(nv.indexOf("MSIE") + 5)) >= 5.5
346
- && typeof document.body.style.maxHeight == tt_u;
347
- }
348
- else
349
- {
350
- tt_db = document.documentElement || document.body ||
351
- (document.getElementsByTagName ? document.getElementsByTagName("body")[0]
352
- : null);
353
- if(!tt_op)
354
- {
355
- n6 = document.defaultView && typeof document.defaultView.getComputedStyle != tt_u;
356
- w3c = !n6 && document.getElementById;
357
- }
358
- }
359
- tt_body = (document.getElementsByTagName ? document.getElementsByTagName("body")[0]
360
- : (document.body || null));
361
- if(tt_ie || n6 || tt_op || w3c)
362
- {
363
- if(tt_body && tt_db)
364
- {
365
- if(document.attachEvent || document.addEventListener)
366
- return true;
367
- }
368
- else
369
- tt_Err("wz_tooltip.js must be included INSIDE the body section,"
370
- + " immediately after the opening <body> tag.", false);
371
- }
372
- tt_db = null;
373
- return false;
374
- }
375
- function tt_MkMainDiv()
376
- {
377
- // Create the tooltip DIV
378
- if(tt_body.insertAdjacentHTML)
379
- tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm());
380
- else if(typeof tt_body.innerHTML != tt_u && document.createElement && tt_body.appendChild)
381
- tt_body.appendChild(tt_MkMainDivDom());
382
- if(window.tt_GetMainDivRefs /* FireFox Alzheimer */ && tt_GetMainDivRefs())
383
- return true;
384
- tt_db = null;
385
- return false;
386
- }
387
- function tt_MkMainDivHtm()
388
- {
389
- return(
390
- '<div id="WzTtDiV"></div>' +
391
- (tt_ie56 ? ('<iframe id="WzTtIfRm" src="javascript:false" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>')
392
- : '')
393
- );
394
- }
395
- function tt_MkMainDivDom()
396
- {
397
- var el = document.createElement("div");
398
- if(el)
399
- el.id = "WzTtDiV";
400
- return el;
401
- }
402
- function tt_GetMainDivRefs()
403
- {
404
- tt_aElt[0] = tt_GetElt("WzTtDiV");
405
- if(tt_ie56 && tt_aElt[0])
406
- {
407
- tt_aElt[tt_aElt.length - 1] = tt_GetElt("WzTtIfRm");
408
- if(!tt_aElt[tt_aElt.length - 1])
409
- tt_aElt[0] = null;
410
- }
411
- if(tt_aElt[0])
412
- {
413
- var css = tt_aElt[0].style;
414
-
415
- css.visibility = "hidden";
416
- css.position = "absolute";
417
- css.overflow = "hidden";
418
- return true;
419
- }
420
- return false;
421
- }
422
- function tt_ResetMainDiv()
423
- {
424
- tt_SetTipPos(0, 0);
425
- tt_aElt[0].innerHTML = "";
426
- tt_aElt[0].style.width = "0px";
427
- tt_h = 0;
428
- }
429
- function tt_IsW3cBox()
430
- {
431
- var css = tt_aElt[0].style;
432
-
433
- css.padding = "10px";
434
- css.width = "40px";
435
- tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40);
436
- css.padding = "0px";
437
- tt_ResetMainDiv();
438
- }
439
- function tt_OpaSupport()
440
- {
441
- var css = tt_body.style;
442
-
443
- tt_flagOpa = (typeof(css.KhtmlOpacity) != tt_u) ? 2
444
- : (typeof(css.KHTMLOpacity) != tt_u) ? 3
445
- : (typeof(css.MozOpacity) != tt_u) ? 4
446
- : (typeof(css.opacity) != tt_u) ? 5
447
- : (typeof(css.filter) != tt_u) ? 1
448
- : 0;
449
- }
450
- // Ported from http://dean.edwards.name/weblog/2006/06/again/
451
- // (Dean Edwards et al.)
452
- function tt_SetOnloadFnc()
453
- {
454
- tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags);
455
- tt_AddEvtFnc(window, "load", tt_HideSrcTags);
456
- if(tt_body.attachEvent)
457
- tt_body.attachEvent("onreadystatechange",
458
- function() {
459
- if(tt_body.readyState == "complete")
460
- tt_HideSrcTags();
461
- } );
462
- if(/WebKit|KHTML/i.test(navigator.userAgent))
463
- {
464
- var t = setInterval(function() {
465
- if(/loaded|complete/.test(document.readyState))
466
- {
467
- clearInterval(t);
468
- tt_HideSrcTags();
469
- }
470
- }, 10);
471
- }
472
- }
473
- function tt_HideSrcTags()
474
- {
475
- if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done)
476
- return;
477
- window.tt_HideSrcTags.done = true;
478
- if(!tt_HideSrcTagsRecurs(tt_body))
479
- tt_Err("There are HTML elements to be converted to tooltips.\nIf you"
480
- + " want these HTML elements to be automatically hidden, you"
481
- + " must edit wz_tooltip.js, and set TagsToTip in the global"
482
- + " tooltip configuration to true.", true);
483
- }
484
- function tt_HideSrcTagsRecurs(dad)
485
- {
486
- var ovr, asT2t;
487
- // Walk the DOM tree for tags that have an onmouseover or onclick attribute
488
- // containing a TagToTip('...') call.
489
- // (.childNodes first since .children is bugous in Safari)
490
- var a = dad.childNodes || dad.children || null;
491
-
492
- for(var i = a ? a.length : 0; i;)
493
- {--i;
494
- if(!tt_HideSrcTagsRecurs(a[i]))
495
- return false;
496
- ovr = a[i].getAttribute ? (a[i].getAttribute("onmouseover") || a[i].getAttribute("onclick"))
497
- : (typeof a[i].onmouseover == "function") ? (a[i].onmouseover || a[i].onclick)
498
- : null;
499
- if(ovr)
500
- {
501
- asT2t = ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/);
502
- if(asT2t && asT2t.length)
503
- {
504
- if(!tt_HideSrcTag(asT2t[0]))
505
- return false;
506
- }
507
- }
508
- }
509
- return true;
510
- }
511
- function tt_HideSrcTag(sT2t)
512
- {
513
- var id, el;
514
-
515
- // The ID passed to the found TagToTip() call identifies an HTML element
516
- // to be converted to a tooltip, so hide that element
517
- id = sT2t.replace(/.+'([^'.]+)'.+/, "$1");
518
- el = tt_GetElt(id);
519
- if(el)
520
- {
521
- if(tt_Debug && !TagsToTip)
522
- return false;
523
- else
524
- el.style.display = "none";
525
- }
526
- else
527
- tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()."
528
- + " There exists no HTML element with that ID.", true);
529
- return true;
530
- }
531
- function tt_Tip(arg, t2t)
532
- {
533
- if(!tt_db || (tt_iState & 0x8))
534
- return;
535
- if(tt_iState)
536
- tt_Hide();
537
- if(!tt_Enabled)
538
- return;
539
- tt_t2t = t2t;
540
- if(!tt_ReadCmds(arg))
541
- return;
542
- tt_iState = 0x1 | 0x4;
543
- tt_AdaptConfig1();
544
- tt_MkTipContent(arg);
545
- tt_MkTipSubDivs();
546
- tt_FormatTip();
547
- tt_bJmpVert = false;
548
- tt_bJmpHorz = false;
549
- tt_maxPosX = tt_GetClientW() + tt_GetScrollX() - tt_w - 1;
550
- tt_maxPosY = tt_GetClientH() + tt_GetScrollY() - tt_h - 1;
551
- tt_AdaptConfig2();
552
- // Ensure the tip be shown and positioned before the first onmousemove
553
- tt_OverInit();
554
- tt_ShowInit();
555
- tt_Move();
556
- }
557
- function tt_ReadCmds(a)
558
- {
559
- var i;
560
-
561
- // First load the global config values, to initialize also values
562
- // for which no command is passed
563
- i = 0;
564
- for(var j in config)
565
- tt_aV[i++] = config[j];
566
- // Then replace each cached config value for which a command is
567
- // passed (ensure the # of command args plus value args be even)
568
- if(a.length & 1)
569
- {
570
- for(i = a.length - 1; i > 0; i -= 2)
571
- tt_aV[a[i - 1]] = a[i];
572
- return true;
573
- }
574
- tt_Err("Incorrect call of Tip() or TagToTip().\n"
575
- + "Each command must be followed by a value.", true);
576
- return false;
577
- }
578
- function tt_AdaptConfig1()
579
- {
580
- tt_ExtCallFncs(0, "LoadConfig");
581
- // Inherit unspecified title formattings from body
582
- if(!tt_aV[TITLEBGCOLOR].length)
583
- tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR];
584
- if(!tt_aV[TITLEFONTCOLOR].length)
585
- tt_aV[TITLEFONTCOLOR] = tt_aV[BGCOLOR];
586
- if(!tt_aV[TITLEFONTFACE].length)
587
- tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE];
588
- if(!tt_aV[TITLEFONTSIZE].length)
589
- tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE];
590
- if(tt_aV[CLOSEBTN])
591
- {
592
- // Use title colours for non-specified closebutton colours
593
- if(!tt_aV[CLOSEBTNCOLORS])
594
- tt_aV[CLOSEBTNCOLORS] = new Array("", "", "", "");
595
- for(var i = 4; i;)
596
- {--i;
597
- if(!tt_aV[CLOSEBTNCOLORS][i].length)
598
- tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ? tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR];
599
- }
600
- // Enforce titlebar be shown
601
- if(!tt_aV[TITLE].length)
602
- tt_aV[TITLE] = " ";
603
- }
604
- // Circumvents broken display of images and fade-in flicker in Geckos < 1.8
605
- if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity != tt_u && !Array.every)
606
- tt_aV[OPACITY] = 99;
607
- // Smartly shorten the delay for fade-in tooltips
608
- if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100)
609
- tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100);
610
- }
611
- function tt_AdaptConfig2()
612
- {
613
- if(tt_aV[CENTERMOUSE])
614
- {
615
- tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0)) >> 1);
616
- tt_aV[JUMPHORZ] = false;
617
- }
618
- }
619
- // Expose content globally so extensions can modify it
620
- function tt_MkTipContent(a)
621
- {
622
- if(tt_t2t)
623
- {
624
- if(tt_aV[COPYCONTENT])
625
- tt_sContent = tt_t2t.innerHTML;
626
- else
627
- tt_sContent = "";
628
- }
629
- else
630
- tt_sContent = a[0];
631
- tt_ExtCallFncs(0, "CreateContentString");
632
- }
633
- function tt_MkTipSubDivs()
634
- {
635
- var sCss = 'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;',
636
- sTbTrTd = ' cellspacing="0" cellpadding="0" border="0" style="' + sCss + '"><tbody style="' + sCss + '"><tr><td ';
637
-
638
- tt_aElt[0].style.width = tt_GetClientW() + "px";
639
- tt_aElt[0].innerHTML =
640
- (''
641
- + (tt_aV[TITLE].length ?
642
- ('<div id="WzTiTl" style="position:relative;z-index:1;">'
643
- + '<table id="WzTiTlTb"' + sTbTrTd + 'id="WzTiTlI" style="' + sCss + '">'
644
- + tt_aV[TITLE]
645
- + '</td>'
646
- + (tt_aV[CLOSEBTN] ?
647
- ('<td align="right" style="' + sCss
648
- + 'text-align:right;">'
649
- + '<span id="WzClOsE" style="position:relative;left:2px;padding-left:2px;padding-right:2px;'
650
- + 'cursor:' + (tt_ie ? 'hand' : 'pointer')
651
- + ';" onmouseover="tt_OnCloseBtnOver(1)" onmouseout="tt_OnCloseBtnOver(0)" onclick="tt_HideInit()">'
652
- + tt_aV[CLOSEBTNTEXT]
653
- + '</span></td>')
654
- : '')
655
- + '</tr></tbody></table></div>')
656
- : '')
657
- + '<div id="WzBoDy" style="position:relative;z-index:0;">'
658
- + '<table' + sTbTrTd + 'id="WzBoDyI" style="' + sCss + '">'
659
- + tt_sContent
660
- + '</td></tr></tbody></table></div>'
661
- + (tt_aV[SHADOW]
662
- ? ('<div id="WzTtShDwR" style="position:absolute;overflow:hidden;"></div>'
663
- + '<div id="WzTtShDwB" style="position:relative;overflow:hidden;"></div>')
664
- : '')
665
- );
666
- tt_GetSubDivRefs();
667
- // Convert DOM node to tip
668
- if(tt_t2t && !tt_aV[COPYCONTENT])
669
- tt_El2Tip();
670
- tt_ExtCallFncs(0, "SubDivsCreated");
671
- }
672
- function tt_GetSubDivRefs()
673
- {
674
- var aId = new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE", "WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR");
675
-
676
- for(var i = aId.length; i; --i)
677
- tt_aElt[i] = tt_GetElt(aId[i - 1]);
678
- }
679
- function tt_FormatTip()
680
- {
681
- var css, w, h, pad = tt_aV[PADDING], padT, wBrd = tt_aV[BORDERWIDTH],
682
- iOffY, iOffSh, iAdd = (pad + wBrd) << 1;
683
-
684
- //--------- Title DIV ----------
685
- if(tt_aV[TITLE].length)
686
- {
687
- padT = tt_aV[TITLEPADDING];
688
- css = tt_aElt[1].style;
689
- css.background = tt_aV[TITLEBGCOLOR];
690
- css.paddingTop = css.paddingBottom = padT + "px";
691
- css.paddingLeft = css.paddingRight = (padT + 2) + "px";
692
- css = tt_aElt[3].style;
693
- css.color = tt_aV[TITLEFONTCOLOR];
694
- if(tt_aV[WIDTH] == -1)
695
- css.whiteSpace = "nowrap";
696
- css.fontFamily = tt_aV[TITLEFONTFACE];
697
- css.fontSize = tt_aV[TITLEFONTSIZE];
698
- css.fontWeight = "bold";
699
- css.textAlign = tt_aV[TITLEALIGN];
700
- // Close button DIV
701
- if(tt_aElt[4])
702
- {
703
- css = tt_aElt[4].style;
704
- css.background = tt_aV[CLOSEBTNCOLORS][0];
705
- css.color = tt_aV[CLOSEBTNCOLORS][1];
706
- css.fontFamily = tt_aV[TITLEFONTFACE];
707
- css.fontSize = tt_aV[TITLEFONTSIZE];
708
- css.fontWeight = "bold";
709
- }
710
- if(tt_aV[WIDTH] > 0)
711
- tt_w = tt_aV[WIDTH];
712
- else
713
- {
714
- tt_w = tt_GetDivW(tt_aElt[3]) + tt_GetDivW(tt_aElt[4]);
715
- // Some spacing between title DIV and closebutton
716
- if(tt_aElt[4])
717
- tt_w += pad;
718
- // Restrict auto width to max width
719
- if(tt_aV[WIDTH] < -1 && tt_w > -tt_aV[WIDTH])
720
- tt_w = -tt_aV[WIDTH];
721
- }
722
- // Ensure the top border of the body DIV be covered by the title DIV
723
- iOffY = -wBrd;
724
- }
725
- else
726
- {
727
- tt_w = 0;
728
- iOffY = 0;
729
- }
730
-
731
- //-------- Body DIV ------------
732
- css = tt_aElt[5].style;
733
- css.top = iOffY + "px";
734
- if(wBrd)
735
- {
736
- css.borderColor = tt_aV[BORDERCOLOR];
737
- css.borderStyle = tt_aV[BORDERSTYLE];
738
- css.borderWidth = wBrd + "px";
739
- }
740
- if(tt_aV[BGCOLOR].length)
741
- css.background = tt_aV[BGCOLOR];
742
- if(tt_aV[BGIMG].length)
743
- css.backgroundImage = "url(" + tt_aV[BGIMG] + ")";
744
- css.padding = pad + "px";
745
- css.textAlign = tt_aV[TEXTALIGN];
746
- if(tt_aV[HEIGHT])
747
- {
748
- css.overflow = "auto";
749
- if(tt_aV[HEIGHT] > 0)
750
- css.height = (tt_aV[HEIGHT] + iAdd) + "px";
751
- else
752
- tt_h = iAdd - tt_aV[HEIGHT];
753
- }
754
- // TD inside body DIV
755
- css = tt_aElt[6].style;
756
- css.color = tt_aV[FONTCOLOR];
757
- css.fontFamily = tt_aV[FONTFACE];
758
- css.fontSize = tt_aV[FONTSIZE];
759
- css.fontWeight = tt_aV[FONTWEIGHT];
760
- css.textAlign = tt_aV[TEXTALIGN];
761
- if(tt_aV[WIDTH] > 0)
762
- w = tt_aV[WIDTH];
763
- // Width like title (if existent)
764
- else if(tt_aV[WIDTH] == -1 && tt_w)
765
- w = tt_w;
766
- else
767
- {
768
- // Measure width of the body's inner TD, as some browsers would expand
769
- // the container and outer body DIV to 100%
770
- w = tt_GetDivW(tt_aElt[6]);
771
- // Restrict auto width to max width
772
- if(tt_aV[WIDTH] < -1 && w > -tt_aV[WIDTH])
773
- w = -tt_aV[WIDTH];
774
- }
775
- if(w > tt_w)
776
- tt_w = w;
777
- tt_w += iAdd;
778
-
779
- //--------- Shadow DIVs ------------
780
- if(tt_aV[SHADOW])
781
- {
782
- tt_w += tt_aV[SHADOWWIDTH];
783
- iOffSh = Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3);
784
- // Bottom shadow
785
- css = tt_aElt[7].style;
786
- css.top = iOffY + "px";
787
- css.left = iOffSh + "px";
788
- css.width = (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px";
789
- css.height = tt_aV[SHADOWWIDTH] + "px";
790
- css.background = tt_aV[SHADOWCOLOR];
791
- // Right shadow
792
- css = tt_aElt[8].style;
793
- css.top = iOffSh + "px";
794
- css.left = (tt_w - tt_aV[SHADOWWIDTH]) + "px";
795
- css.width = tt_aV[SHADOWWIDTH] + "px";
796
- css.background = tt_aV[SHADOWCOLOR];
797
- }
798
- else
799
- iOffSh = 0;
800
-
801
- //-------- Container DIV -------
802
- tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]);
803
- tt_FixSize(iOffY, iOffSh);
804
- }
805
- // Fixate the size so it can't dynamically change while the tooltip is moving.
806
- function tt_FixSize(iOffY, iOffSh)
807
- {
808
- var wIn, wOut, h, add, pad = tt_aV[PADDING], wBrd = tt_aV[BORDERWIDTH], i;
809
-
810
- tt_aElt[0].style.width = tt_w + "px";
811
- tt_aElt[0].style.pixelWidth = tt_w;
812
- wOut = tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0);
813
- // Body
814
- wIn = wOut;
815
- if(!tt_bBoxOld)
816
- wIn -= (pad + wBrd) << 1;
817
- tt_aElt[5].style.width = wIn + "px";
818
- // Title
819
- if(tt_aElt[1])
820
- {
821
- wIn = wOut - ((tt_aV[TITLEPADDING] + 2) << 1);
822
- if(!tt_bBoxOld)
823
- wOut = wIn;
824
- tt_aElt[1].style.width = wOut + "px";
825
- tt_aElt[2].style.width = wIn + "px";
826
- }
827
- // Max height specified
828
- if(tt_h)
829
- {
830
- h = tt_GetDivH(tt_aElt[5]);
831
- if(h > tt_h)
832
- {
833
- if(!tt_bBoxOld)
834
- tt_h -= (pad + wBrd) << 1;
835
- tt_aElt[5].style.height = tt_h + "px";
836
- }
837
- }
838
- tt_h = tt_GetDivH(tt_aElt[0]) + iOffY;
839
- // Right shadow
840
- if(tt_aElt[8])
841
- tt_aElt[8].style.height = (tt_h - iOffSh) + "px";
842
- i = tt_aElt.length - 1;
843
- if(tt_aElt[i])
844
- {
845
- tt_aElt[i].style.width = tt_w + "px";
846
- tt_aElt[i].style.height = tt_h + "px";
847
- }
848
- }
849
- function tt_DeAlt(el)
850
- {
851
- var aKid;
852
-
853
- if(el)
854
- {
855
- if(el.alt)
856
- el.alt = "";
857
- if(el.title)
858
- el.title = "";
859
- aKid = el.childNodes || el.children || null;
860
- if(aKid)
861
- {
862
- for(var i = aKid.length; i;)
863
- tt_DeAlt(aKid[--i]);
864
- }
865
- }
866
- }
867
- // This hack removes the native tooltips over links in Opera
868
- function tt_OpDeHref(el)
869
- {
870
- if(!tt_op)
871
- return;
872
- if(tt_elDeHref)
873
- tt_OpReHref();
874
- while(el)
875
- {
876
- if(el.hasAttribute && el.hasAttribute("href"))
877
- {
878
- el.t_href = el.getAttribute("href");
879
- el.t_stats = window.status;
880
- el.removeAttribute("href");
881
- el.style.cursor = "hand";
882
- tt_AddEvtFnc(el, "mousedown", tt_OpReHref);
883
- window.status = el.t_href;
884
- tt_elDeHref = el;
885
- break;
886
- }
887
- el = tt_GetDad(el);
888
- }
889
- }
890
- function tt_OpReHref()
891
- {
892
- if(tt_elDeHref)
893
- {
894
- tt_elDeHref.setAttribute("href", tt_elDeHref.t_href);
895
- tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref);
896
- window.status = tt_elDeHref.t_stats;
897
- tt_elDeHref = null;
898
- }
899
- }
900
- function tt_El2Tip()
901
- {
902
- var css = tt_t2t.style;
903
-
904
- // Store previous positioning
905
- tt_t2t.t_cp = css.position;
906
- tt_t2t.t_cl = css.left;
907
- tt_t2t.t_ct = css.top;
908
- tt_t2t.t_cd = css.display;
909
- // Store the tag's parent element so we can restore that DOM branch
910
- // when the tooltip is being hidden
911
- tt_t2tDad = tt_GetDad(tt_t2t);
912
- tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]);
913
- css.display = "block";
914
- css.position = "static";
915
- css.left = css.top = css.marginLeft = css.marginTop = "0px";
916
- }
917
- function tt_UnEl2Tip()
918
- {
919
- // Restore positioning and display
920
- var css = tt_t2t.style;
921
-
922
- css.display = tt_t2t.t_cd;
923
- tt_MovDomNode(tt_t2t, tt_GetDad(tt_t2t), tt_t2tDad);
924
- css.position = tt_t2t.t_cp;
925
- css.left = tt_t2t.t_cl;
926
- css.top = tt_t2t.t_ct;
927
- tt_t2tDad = null;
928
- }
929
- function tt_OverInit()
930
- {
931
- if(window.event)
932
- tt_over = window.event.target || window.event.srcElement;
933
- else
934
- tt_over = tt_ovr_;
935
- tt_DeAlt(tt_over);
936
- tt_OpDeHref(tt_over);
937
- }
938
- function tt_ShowInit()
939
- {
940
- tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true);
941
- if(tt_aV[CLICKCLOSE] || tt_aV[CLICKSTICKY])
942
- tt_AddEvtFnc(document, "mouseup", tt_OnLClick);
943
- }
944
- function tt_Show()
945
- {
946
- var css = tt_aElt[0].style;
947
-
948
- // Override the z-index of the topmost wz_dragdrop.js D&D item
949
- css.zIndex = Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 1010);
950
- if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE])
951
- tt_iState &= ~0x4;
952
- if(tt_aV[EXCLUSIVE])
953
- tt_iState |= 0x8;
954
- if(tt_aV[DURATION] > 0)
955
- tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true);
956
- tt_ExtCallFncs(0, "Show")
957
- css.visibility = "visible";
958
- tt_iState |= 0x2;
959
- if(tt_aV[FADEIN])
960
- tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] / tt_aV[FADEINTERVAL]));
961
- tt_ShowIfrm();
962
- }
963
- function tt_ShowIfrm()
964
- {
965
- if(tt_ie56)
966
- {
967
- var ifrm = tt_aElt[tt_aElt.length - 1];
968
- if(ifrm)
969
- {
970
- var css = ifrm.style;
971
- css.zIndex = tt_aElt[0].style.zIndex - 1;
972
- css.display = "block";
973
- }
974
- }
975
- }
976
- function tt_Move(e)
977
- {
978
- if(e)
979
- tt_ovr_ = e.target || e.srcElement;
980
- e = e || window.event;
981
- if(e)
982
- {
983
- tt_musX = tt_GetEvtX(e);
984
- tt_musY = tt_GetEvtY(e);
985
- }
986
- if(tt_iState & 0x4)
987
- {
988
- // Prevent jam of mousemove events
989
- if(!tt_op && !tt_ie)
990
- {
991
- if(tt_bWait)
992
- return;
993
- tt_bWait = true;
994
- tt_tWaitMov.Timer("tt_bWait = false;", 1, true);
995
- }
996
- if(tt_aV[FIX])
997
- {
998
- tt_iState &= ~0x4;
999
- tt_PosFix();
1000
- }
1001
- else if(!tt_ExtCallFncs(e, "MoveBefore"))
1002
- tt_SetTipPos(tt_Pos(0), tt_Pos(1));
1003
- tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter")
1004
- }
1005
- }
1006
- function tt_Pos(iDim)
1007
- {
1008
- var iX, bJmpMod, cmdAlt, cmdOff, cx, iMax, iScrl, iMus, bJmp;
1009
-
1010
- // Map values according to dimension to calculate
1011
- if(iDim)
1012
- {
1013
- bJmpMod = tt_aV[JUMPVERT];
1014
- cmdAlt = ABOVE;
1015
- cmdOff = OFFSETY;
1016
- cx = tt_h;
1017
- iMax = tt_maxPosY;
1018
- iScrl = tt_GetScrollY();
1019
- iMus = tt_musY;
1020
- bJmp = tt_bJmpVert;
1021
- }
1022
- else
1023
- {
1024
- bJmpMod = tt_aV[JUMPHORZ];
1025
- cmdAlt = LEFT;
1026
- cmdOff = OFFSETX;
1027
- cx = tt_w;
1028
- iMax = tt_maxPosX;
1029
- iScrl = tt_GetScrollX();
1030
- iMus = tt_musX;
1031
- bJmp = tt_bJmpHorz;
1032
- }
1033
- if(bJmpMod)
1034
- {
1035
- if(tt_aV[cmdAlt] && (!bJmp || tt_CalcPosAlt(iDim) >= iScrl + 16))
1036
- iX = tt_PosAlt(iDim);
1037
- else if(!tt_aV[cmdAlt] && bJmp && tt_CalcPosDef(iDim) > iMax - 16)
1038
- iX = tt_PosAlt(iDim);
1039
- else
1040
- iX = tt_PosDef(iDim);
1041
- }
1042
- else
1043
- {
1044
- iX = iMus;
1045
- if(tt_aV[cmdAlt])
1046
- iX -= cx + tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
1047
- else
1048
- iX += tt_aV[cmdOff];
1049
- }
1050
- // Prevent tip from extending past clientarea boundary
1051
- if(iX > iMax)
1052
- iX = bJmpMod ? tt_PosAlt(iDim) : iMax;
1053
- // In case of insufficient space on both sides, ensure the left/upper part
1054
- // of the tip be visible
1055
- if(iX < iScrl)
1056
- iX = bJmpMod ? tt_PosDef(iDim) : iScrl;
1057
- return iX;
1058
- }
1059
- function tt_PosDef(iDim)
1060
- {
1061
- if(iDim)
1062
- tt_bJmpVert = tt_aV[ABOVE];
1063
- else
1064
- tt_bJmpHorz = tt_aV[LEFT];
1065
- return tt_CalcPosDef(iDim);
1066
- }
1067
- function tt_PosAlt(iDim)
1068
- {
1069
- if(iDim)
1070
- tt_bJmpVert = !tt_aV[ABOVE];
1071
- else
1072
- tt_bJmpHorz = !tt_aV[LEFT];
1073
- return tt_CalcPosAlt(iDim);
1074
- }
1075
- function tt_CalcPosDef(iDim)
1076
- {
1077
- return iDim ? (tt_musY + tt_aV[OFFSETY]) : (tt_musX + tt_aV[OFFSETX]);
1078
- }
1079
- function tt_CalcPosAlt(iDim)
1080
- {
1081
- var cmdOff = iDim ? OFFSETY : OFFSETX;
1082
- var dx = tt_aV[cmdOff] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
1083
- if(tt_aV[cmdOff] > 0 && dx <= 0)
1084
- dx = 1;
1085
- return((iDim ? (tt_musY - tt_h) : (tt_musX - tt_w)) - dx);
1086
- }
1087
- function tt_PosFix()
1088
- {
1089
- var iX, iY;
1090
-
1091
- if(typeof(tt_aV[FIX][0]) == "number")
1092
- {
1093
- iX = tt_aV[FIX][0];
1094
- iY = tt_aV[FIX][1];
1095
- }
1096
- else
1097
- {
1098
- if(typeof(tt_aV[FIX][0]) == "string")
1099
- el = tt_GetElt(tt_aV[FIX][0]);
1100
- // First slot in array is direct reference to HTML element
1101
- else
1102
- el = tt_aV[FIX][0];
1103
- iX = tt_aV[FIX][1];
1104
- iY = tt_aV[FIX][2];
1105
- // By default, vert pos is related to bottom edge of HTML element
1106
- if(!tt_aV[ABOVE] && el)
1107
- iY += tt_GetDivH(el);
1108
- for(; el; el = el.offsetParent)
1109
- {
1110
- iX += el.offsetLeft || 0;
1111
- iY += el.offsetTop || 0;
1112
- }
1113
- }
1114
- // For a fixed tip positioned above the mouse, use the bottom edge as anchor
1115
- // (recommended by Christophe Rebeschini, 31.1.2008)
1116
- if(tt_aV[ABOVE])
1117
- iY -= tt_h;
1118
- tt_SetTipPos(iX, iY);
1119
- }
1120
- function tt_Fade(a, now, z, n)
1121
- {
1122
- if(n)
1123
- {
1124
- now += Math.round((z - now) / n);
1125
- if((z > a) ? (now >= z) : (now <= z))
1126
- now = z;
1127
- else
1128
- tt_tFade.Timer(
1129
- "tt_Fade("
1130
- + a + "," + now + "," + z + "," + (n - 1)
1131
- + ")",
1132
- tt_aV[FADEINTERVAL],
1133
- true
1134
- );
1135
- }
1136
- now ? tt_SetTipOpa(now) : tt_Hide();
1137
- }
1138
- function tt_SetTipOpa(opa)
1139
- {
1140
- // To circumvent the opacity nesting flaws of IE, we set the opacity
1141
- // for each sub-DIV separately, rather than for the container DIV.
1142
- tt_SetOpa(tt_aElt[5], opa);
1143
- if(tt_aElt[1])
1144
- tt_SetOpa(tt_aElt[1], opa);
1145
- if(tt_aV[SHADOW])
1146
- {
1147
- opa = Math.round(opa * 0.8);
1148
- tt_SetOpa(tt_aElt[7], opa);
1149
- tt_SetOpa(tt_aElt[8], opa);
1150
- }
1151
- }
1152
- function tt_OnCloseBtnOver(iOver)
1153
- {
1154
- var css = tt_aElt[4].style;
1155
-
1156
- iOver <<= 1;
1157
- css.background = tt_aV[CLOSEBTNCOLORS][iOver];
1158
- css.color = tt_aV[CLOSEBTNCOLORS][iOver + 1];
1159
- }
1160
- function tt_OnLClick(e)
1161
- {
1162
- // Ignore right-clicks
1163
- e = e || window.event;
1164
- if(!((e.button && e.button & 2) || (e.which && e.which == 3)))
1165
- {
1166
- if(tt_aV[CLICKSTICKY] && (tt_iState & 0x4))
1167
- {
1168
- tt_aV[STICKY] = true;
1169
- tt_iState &= ~0x4;
1170
- }
1171
- else if(tt_aV[CLICKCLOSE])
1172
- tt_HideInit();
1173
- }
1174
- }
1175
- function tt_Int(x)
1176
- {
1177
- var y;
1178
-
1179
- return(isNaN(y = parseInt(x)) ? 0 : y);
1180
- }
1181
- Number.prototype.Timer = function(s, iT, bUrge)
1182
- {
1183
- if(!this.value || bUrge)
1184
- this.value = window.setTimeout(s, iT);
1185
- }
1186
- Number.prototype.EndTimer = function()
1187
- {
1188
- if(this.value)
1189
- {
1190
- window.clearTimeout(this.value);
1191
- this.value = 0;
1192
- }
1193
- }
1194
- function tt_GetWndCliSiz(s)
1195
- {
1196
- var db, y = window["inner" + s], sC = "client" + s, sN = "number";
1197
- if(typeof y == sN)
1198
- {
1199
- var y2;
1200
- return(
1201
- // Gecko or Opera with scrollbar
1202
- // ... quirks mode
1203
- ((db = document.body) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2
1204
- // ... strict mode
1205
- : ((db = document.documentElement) && typeof(y2 = db[sC]) == sN && y2 && y2 <= y) ? y2
1206
- // No scrollbar, or clientarea size == 0, or other browser (KHTML etc.)
1207
- : y
1208
- );
1209
- }
1210
- // IE
1211
- return(
1212
- // document.documentElement.client+s functional, returns > 0
1213
- ((db = document.documentElement) && (y = db[sC])) ? y
1214
- // ... not functional, in which case document.body.client+s
1215
- // is the clientarea size, fortunately
1216
- : document.body[sC]
1217
- );
1218
- }
1219
- function tt_SetOpa(el, opa)
1220
- {
1221
- var css = el.style;
1222
-
1223
- tt_opa = opa;
1224
- if(tt_flagOpa == 1)
1225
- {
1226
- if(opa < 100)
1227
- {
1228
- // Hacks for bugs of IE:
1229
- // 1.) Once a CSS filter has been applied, fonts are no longer
1230
- // anti-aliased, so we store the previous 'non-filter' to be
1231
- // able to restore it
1232
- if(typeof(el.filtNo) == tt_u)
1233
- el.filtNo = css.filter;
1234
- // 2.) A DIV cannot be made visible in a single step if an
1235
- // opacity < 100 has been applied while the DIV was hidden
1236
- var bVis = css.visibility != "hidden";
1237
- // 3.) In IE6, applying an opacity < 100 has no effect if the
1238
- // element has no layout (position, size, zoom, ...)
1239
- css.zoom = "100%";
1240
- if(!bVis)
1241
- css.visibility = "visible";
1242
- css.filter = "alpha(opacity=" + opa + ")";
1243
- if(!bVis)
1244
- css.visibility = "hidden";
1245
- }
1246
- else if(typeof(el.filtNo) != tt_u)
1247
- // Restore 'non-filter'
1248
- css.filter = el.filtNo;
1249
- }
1250
- else
1251
- {
1252
- opa /= 100.0;
1253
- switch(tt_flagOpa)
1254
- {
1255
- case 2:
1256
- css.KhtmlOpacity = opa; break;
1257
- case 3:
1258
- css.KHTMLOpacity = opa; break;
1259
- case 4:
1260
- css.MozOpacity = opa; break;
1261
- case 5:
1262
- css.opacity = opa; break;
1263
- }
1264
- }
1265
- }
1266
- function tt_Err(sErr, bIfDebug)
1267
- {
1268
- if(tt_Debug || !bIfDebug)
1269
- alert("Tooltip Script Error Message:\n\n" + sErr);
1270
- }
1271
-
1272
- //============ EXTENSION (PLUGIN) MANAGER ===============//
1273
- function tt_ExtCmdEnum()
1274
- {
1275
- var s;
1276
-
1277
- // Add new command(s) to the commands enum
1278
- for(var i in config)
1279
- {
1280
- s = "window." + i.toString().toUpperCase();
1281
- if(eval("typeof(" + s + ") == tt_u"))
1282
- {
1283
- eval(s + " = " + tt_aV.length);
1284
- tt_aV[tt_aV.length] = null;
1285
- }
1286
- }
1287
- }
1288
- function tt_ExtCallFncs(arg, sFnc)
1289
- {
1290
- var b = false;
1291
- for(var i = tt_aExt.length; i;)
1292
- {--i;
1293
- var fnc = tt_aExt[i]["On" + sFnc];
1294
- // Call the method the extension has defined for this event
1295
- if(fnc && fnc(arg))
1296
- b = true;
1297
- }
1298
- return b;
1299
- }
1300
-
1301
- tt_Init();