pstuteville-scrubyt 0.4.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. data/CHANGELOG +355 -0
  2. data/COPYING +340 -0
  3. data/README.rdoc +121 -0
  4. data/Rakefile +120 -0
  5. data/VERSION +1 -0
  6. data/examples/README.txt +1 -0
  7. data/examples/events/delta/input.html +682 -0
  8. data/examples/events/delta/test.rb +16 -0
  9. data/examples/misc/auto_regex/input.html +22 -0
  10. data/examples/misc/auto_regex/test.rb +14 -0
  11. data/examples/misc/compound_example/advanced/test.rb +11 -0
  12. data/examples/misc/compound_example/advanced/tricky_compound.html +9 -0
  13. data/examples/misc/compound_example/regexp/regexp_compound.html +17 -0
  14. data/examples/misc/compound_example/regexp/test.rb +11 -0
  15. data/examples/misc/compound_example/simple/compound.html +5 -0
  16. data/examples/misc/compound_example/simple/test.rb +11 -0
  17. data/examples/misc/detail_page/detailpage.html +6 -0
  18. data/examples/misc/detail_page/index.html +9 -0
  19. data/examples/misc/detail_page/test.rb +17 -0
  20. data/examples/misc/google/test.rb +39 -0
  21. data/examples/misc/identical_examples/data_extractor_export.rb +12 -0
  22. data/examples/misc/identical_examples/input.html +16 -0
  23. data/examples/misc/identical_examples/test.rb +15 -0
  24. data/examples/misc/immediate_attribute_extraction/data_extractor_export.rb +10 -0
  25. data/examples/misc/immediate_attribute_extraction/input.html +16 -0
  26. data/examples/misc/immediate_attribute_extraction/test.rb +14 -0
  27. data/examples/misc/multiple_examples/input.html +7 -0
  28. data/examples/misc/multiple_examples/test.rb +22 -0
  29. data/examples/misc/on_click_next/next_page_link.rb +42 -0
  30. data/examples/misc/on_click_next/page_1.html +10 -0
  31. data/examples/misc/on_click_next/page_2.html +10 -0
  32. data/examples/misc/on_click_next/page_3.html +7 -0
  33. data/examples/misc/rubycorner/test.rb +29 -0
  34. data/examples/misc/rubyforge_login/test.rb +30 -0
  35. data/examples/misc/tables/ambigous_records/input.html +17 -0
  36. data/examples/misc/tables/ambigous_records/test.rb +37 -0
  37. data/examples/misc/tables/another_plain_table/input.html +15 -0
  38. data/examples/misc/tables/another_plain_table/test.rb +25 -0
  39. data/examples/misc/tables/complex_table/input.html +45 -0
  40. data/examples/misc/tables/complex_table/test.rb +30 -0
  41. data/examples/misc/tables/grab_rows/input.html +20 -0
  42. data/examples/misc/tables/grab_rows/test.rb +30 -0
  43. data/examples/misc/tables/plain_table/input.html +39 -0
  44. data/examples/misc/tables/plain_table/test.rb +35 -0
  45. data/examples/misc/tables/plain_table_morepages/2.html +38 -0
  46. data/examples/misc/tables/plain_table_morepages/3.html +33 -0
  47. data/examples/misc/tables/plain_table_morepages/input.html +40 -0
  48. data/examples/misc/tables/plain_table_morepages/test.rb +32 -0
  49. data/examples/misc/tables/plain_table_morepages_with_image/2.html +40 -0
  50. data/examples/misc/tables/plain_table_morepages_with_image/3.html +33 -0
  51. data/examples/misc/tables/plain_table_morepages_with_image/images/right_arrow.png +0 -0
  52. data/examples/misc/tables/plain_table_morepages_with_image/input.html +42 -0
  53. data/examples/misc/tables/plain_table_morepages_with_image/test.rb +32 -0
  54. data/examples/misc/tables/test_select_indices/input.html +46 -0
  55. data/examples/misc/tables/test_select_indices/test.rb +55 -0
  56. data/examples/misc/xpath_example_type/input.html +15 -0
  57. data/examples/misc/xpath_example_type/test.rb +18 -0
  58. data/examples/misc/yahoo_finance/test.rb +26 -0
  59. data/examples/social/blog_comment/test.rb +27 -0
  60. data/examples/social/del.icio.us/test.rb +22 -0
  61. data/examples/social/digg/test.rb +37 -0
  62. data/examples/social/dzone/test.rb +28 -0
  63. data/examples/social/linkedin/linkedin.rb +23 -0
  64. data/examples/social/reddit/test.rb +23 -0
  65. data/examples/tones_extractor_export.rb +23 -0
  66. data/examples/webshops/amazon/002-8212888-3924065.html +5311 -0
  67. data/examples/webshops/amazon/002-8212888-3924065_files/0130796034.jpg +0 -0
  68. data/examples/webshops/amazon/002-8212888-3924065_files/020161622X.jpg +0 -0
  69. data/examples/webshops/amazon/002-8212888-3924065_files/0321223675.jpg +0 -0
  70. data/examples/webshops/amazon/002-8212888-3924065_files/0465067107.jpg +0 -0
  71. data/examples/webshops/amazon/002-8212888-3924065_files/0470069155.jpg +0 -0
  72. data/examples/webshops/amazon/002-8212888-3924065_files/0470081201.jpg +0 -0
  73. data/examples/webshops/amazon/002-8212888-3924065_files/0596005253.jpg +0 -0
  74. data/examples/webshops/amazon/002-8212888-3924065_files/0596101325.jpg +0 -0
  75. data/examples/webshops/amazon/002-8212888-3924065_files/0596523696.jpg +0 -0
  76. data/examples/webshops/amazon/002-8212888-3924065_files/0672328844.jpg +0 -0
  77. data/examples/webshops/amazon/002-8212888-3924065_files/0764596861.jpg +0 -0
  78. data/examples/webshops/amazon/002-8212888-3924065_files/0974514055.jpg +0 -0
  79. data/examples/webshops/amazon/002-8212888-3924065_files/0976694069.jpg +0 -0
  80. data/examples/webshops/amazon/002-8212888-3924065_files/0977616606.jpg +0 -0
  81. data/examples/webshops/amazon/002-8212888-3924065_files/0977616614.jpg +0 -0
  82. data/examples/webshops/amazon/002-8212888-3924065_files/0977616630.jpg +0 -0
  83. data/examples/webshops/amazon/002-8212888-3924065_files/1590597362.jpg +0 -0
  84. data/examples/webshops/amazon/002-8212888-3924065_files/1594480060.jpg +0 -0
  85. data/examples/webshops/amazon/002-8212888-3924065_files/1932394699.jpg +0 -0
  86. data/examples/webshops/amazon/002-8212888-3924065_files/2841772101.jpg +0 -0
  87. data/examples/webshops/amazon/002-8212888-3924065_files/amzn-logo-118w.gif +0 -0
  88. data/examples/webshops/amazon/002-8212888-3924065_files/askville-adwidget-bullet.gif +0 -0
  89. data/examples/webshops/amazon/002-8212888-3924065_files/askville-logo-sm-adwidget-white-bg.gif +0 -0
  90. data/examples/webshops/amazon/002-8212888-3924065_files/book_display_on_website-icon.gif +0 -0
  91. data/examples/webshops/amazon/002-8212888-3924065_files/btn-inactive-no-ns.gif +0 -0
  92. data/examples/webshops/amazon/002-8212888-3924065_files/btn-inactive-no.gif +0 -0
  93. data/examples/webshops/amazon/002-8212888-3924065_files/btn-inactive-yes-ns.gif +0 -0
  94. data/examples/webshops/amazon/002-8212888-3924065_files/btn-inactive-yes.gif +0 -0
  95. data/examples/webshops/amazon/002-8212888-3924065_files/btn-no-tiny.gif +0 -0
  96. data/examples/webshops/amazon/002-8212888-3924065_files/btn-yes-tiny.gif +0 -0
  97. data/examples/webshops/amazon/002-8212888-3924065_files/buybox-button-find-gifts-a.gif +0 -0
  98. data/examples/webshops/amazon/002-8212888-3924065_files/c7y_badge_rn_1.gif +0 -0
  99. data/examples/webshops/amazon/002-8212888-3924065_files/cap-a9-3.gif +0 -0
  100. data/examples/webshops/amazon/002-8212888-3924065_files/drop-down-icon-small-arrow.gif +0 -0
  101. data/examples/webshops/amazon/002-8212888-3924065_files/endcap-a9-go-2.gif +0 -0
  102. data/examples/webshops/amazon/002-8212888-3924065_files/gb-open-new.gif +0 -0
  103. data/examples/webshops/amazon/002-8212888-3924065_files/gc-logo-popover-a.gif +0 -0
  104. data/examples/webshops/amazon/002-8212888-3924065_files/gift-cert-roto-pop-a.gif +0 -0
  105. data/examples/webshops/amazon/002-8212888-3924065_files/go-button-books.gif +0 -0
  106. data/examples/webshops/amazon/002-8212888-3924065_files/go-button.gif +0 -0
  107. data/examples/webshops/amazon/002-8212888-3924065_files/go-orange-trans.gif +0 -0
  108. data/examples/webshops/amazon/002-8212888-3924065_files/go_button_photo.gif +0 -0
  109. data/examples/webshops/amazon/002-8212888-3924065_files/logo-off.gif +0 -0
  110. data/examples/webshops/amazon/002-8212888-3924065_files/n2CoreLibs-events-18134.js +1407 -0
  111. data/examples/webshops/amazon/002-8212888-3924065_files/n2CoreLibs-n2v1-57871.css +364 -0
  112. data/examples/webshops/amazon/002-8212888-3924065_files/n2CoreLibs-simplePopover-41153.js +749 -0
  113. data/examples/webshops/amazon/002-8212888-3924065_files/n2CoreLibs-utilities-25439.js +1608 -0
  114. data/examples/webshops/amazon/002-8212888-3924065_files/orange-arrow.gif +0 -0
  115. data/examples/webshops/amazon/002-8212888-3924065_files/orange-arrow_002.gif +0 -0
  116. data/examples/webshops/amazon/002-8212888-3924065_files/popover-blurb.gif +0 -0
  117. data/examples/webshops/amazon/002-8212888-3924065_files/powered-by-a9.gif +0 -0
  118. data/examples/webshops/amazon/002-8212888-3924065_files/stars-3-5.gif +0 -0
  119. data/examples/webshops/amazon/002-8212888-3924065_files/stars-4-0.gif +0 -0
  120. data/examples/webshops/amazon/002-8212888-3924065_files/stars-4-5.gif +0 -0
  121. data/examples/webshops/amazon/002-8212888-3924065_files/stars-5-0.gif +0 -0
  122. data/examples/webshops/amazon/002-8212888-3924065_files/tagline-adwidget.gif +0 -0
  123. data/examples/webshops/amazon/002-8212888-3924065_files/topnav-cart.gif +0 -0
  124. data/examples/webshops/amazon/002-8212888-3924065_files/transparent-pixel.gif +0 -0
  125. data/examples/webshops/amazon/002-8212888-3924065_files/transparent-pixel_002.gif +0 -0
  126. data/examples/webshops/amazon/test.rb +27 -0
  127. data/examples/webshops/amazon-online/test.rb +34 -0
  128. data/examples/webshops/barnes_and_noble/test.rb +32 -0
  129. data/examples/webshops/barnes_offline/barnes_and_noble.html +115 -0
  130. data/examples/webshops/barnes_offline/barnes_and_noble_files/10964080.gif +0 -0
  131. data/examples/webshops/barnes_offline/barnes_and_noble_files/10999676.gif +0 -0
  132. data/examples/webshops/barnes_offline/barnes_and_noble_files/11018492.gif +0 -0
  133. data/examples/webshops/barnes_offline/barnes_and_noble_files/11656534.gif +0 -0
  134. data/examples/webshops/barnes_offline/barnes_and_noble_files/11985045.gif +0 -0
  135. data/examples/webshops/barnes_offline/barnes_and_noble_files/12052378.gif +0 -0
  136. data/examples/webshops/barnes_offline/barnes_and_noble_files/12138286.gif +0 -0
  137. data/examples/webshops/barnes_offline/barnes_and_noble_files/12533212.gif +0 -0
  138. data/examples/webshops/barnes_offline/barnes_and_noble_files/12533268.gif +0 -0
  139. data/examples/webshops/barnes_offline/barnes_and_noble_files/9583392.gif +0 -0
  140. data/examples/webshops/barnes_offline/barnes_and_noble_files/SearchProduct.css +626 -0
  141. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin3_gtpointup.gif +0 -0
  142. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_aboutshipping.gif +0 -0
  143. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_account.gif +0 -0
  144. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_colon.gif +0 -0
  145. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_giftreminder.gif +0 -0
  146. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_help.gif +0 -0
  147. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_orderstatus.gif +0 -0
  148. data/examples/webshops/barnes_offline/barnes_and_noble_files/admin_wishlist.gif +0 -0
  149. data/examples/webshops/barnes_offline/barnes_and_noble_files/bg.gif +0 -0
  150. data/examples/webshops/barnes_offline/barnes_and_noble_files/btnGoGrn.gif +0 -0
  151. data/examples/webshops/barnes_offline/barnes_and_noble_files/cleardot.gif +0 -0
  152. data/examples/webshops/barnes_offline/barnes_and_noble_files/cleardot_002.gif +0 -0
  153. data/examples/webshops/barnes_offline/barnes_and_noble_files/dot4.gif +0 -0
  154. data/examples/webshops/barnes_offline/barnes_and_noble_files/dotGold20.gif +0 -0
  155. data/examples/webshops/barnes_offline/barnes_and_noble_files/hdCantFind.gif +0 -0
  156. data/examples/webshops/barnes_offline/barnes_and_noble_files/hdSearchResults.gif +0 -0
  157. data/examples/webshops/barnes_offline/barnes_and_noble_files/hgg_tab_home_cold.gif +0 -0
  158. data/examples/webshops/barnes_offline/barnes_and_noble_files/hgg_tab_toy_cold.gif +0 -0
  159. data/examples/webshops/barnes_offline/barnes_and_noble_files/iframeKMP.js +172 -0
  160. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2.html +25 -0
  161. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/070226_mc_lnav_search.gif +0 -0
  162. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/XmlUtil.js +199 -0
  163. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/XslStyleSheet.js +1 -0
  164. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/kmp_gen.css +81 -0
  165. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/product-preview-core.js +337 -0
  166. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/product-preview.css +36 -0
  167. data/examples/webshops/barnes_offline/barnes_and_noble_files/kmp_iframe_cds2_data/productpreview.js +11 -0
  168. data/examples/webshops/barnes_offline/barnes_and_noble_files/linePagination.gif +0 -0
  169. data/examples/webshops/barnes_offline/barnes_and_noble_files/logo_bn05.gif +0 -0
  170. data/examples/webshops/barnes_offline/barnes_and_noble_files/navbar.js +34 -0
  171. data/examples/webshops/barnes_offline/barnes_and_noble_files/navbar_06.css +136 -0
  172. data/examples/webshops/barnes_offline/barnes_and_noble_files/popup_open.js +116 -0
  173. data/examples/webshops/barnes_offline/barnes_and_noble_files/qsearch3_vline_dots.gif +0 -0
  174. data/examples/webshops/barnes_offline/barnes_and_noble_files/qsearch4_search.gif +0 -0
  175. data/examples/webshops/barnes_offline/barnes_and_noble_files/qsearch_AdvSearch.jpg +0 -0
  176. data/examples/webshops/barnes_offline/barnes_and_noble_files/subnav_colon.gif +0 -0
  177. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_Bookclubs_cold.gif +0 -0
  178. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_bnjr_cold.gif +0 -0
  179. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_books_hot.gif +0 -0
  180. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_dvd_cold.gif +0 -0
  181. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_giftcards_cold.gif +0 -0
  182. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_home_cold.gif +0 -0
  183. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_member_cc_cold.gif +0 -0
  184. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_music_cold.gif +0 -0
  185. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_pipe.gif +0 -0
  186. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_textbooksonly_cold.gif +0 -0
  187. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_usedoop_cold.gif +0 -0
  188. data/examples/webshops/barnes_offline/barnes_and_noble_files/tab_videogames_cold.gif +0 -0
  189. data/examples/webshops/barnes_offline/barnes_and_noble_files/toppromo3_rule.gif +0 -0
  190. data/examples/webshops/barnes_offline/barnes_and_noble_files/toppromo_fastfree05.gif +0 -0
  191. data/examples/webshops/barnes_offline/barnes_and_noble_files/vcart_btn_checkout.gif +0 -0
  192. data/examples/webshops/barnes_offline/barnes_and_noble_files/vcart_icon_cart.gif +0 -0
  193. data/examples/webshops/barnes_offline/barnes_and_noble_files/vcart_topbot_rule.gif +0 -0
  194. data/examples/webshops/barnes_offline/barnes_and_noble_files/visualcart_prodid.js +401 -0
  195. data/examples/webshops/barnes_offline/test.rb +30 -0
  196. data/examples/webshops/buydig/2_files/03AA1BB9089A4A6A92CF23F280D664EB.jpg +0 -0
  197. data/examples/webshops/buydig/2_files/1008.gif +0 -0
  198. data/examples/webshops/buydig/2_files/1013.gif +0 -0
  199. data/examples/webshops/buydig/2_files/1020.gif +0 -0
  200. data/examples/webshops/buydig/2_files/106CF2FB84B446518397517C3E6D5AD8.jpg +0 -0
  201. data/examples/webshops/buydig/2_files/13-www.gif +0 -0
  202. data/examples/webshops/buydig/2_files/1E9BB2E56AB145FC9D6EF952703AF476.jpg +0 -0
  203. data/examples/webshops/buydig/2_files/1FCDFBE85CDB4D429EC2C8CB24D20457.jpg +0 -0
  204. data/examples/webshops/buydig/2_files/1pix.gif +0 -0
  205. data/examples/webshops/buydig/2_files/2014.gif +0 -0
  206. data/examples/webshops/buydig/2_files/2089.gif +0 -0
  207. data/examples/webshops/buydig/2_files/24992_medal.gif +0 -0
  208. data/examples/webshops/buydig/2_files/24BBCBA1397F4DDCBBBBE8456D6D6E5B.jpg +0 -0
  209. data/examples/webshops/buydig/2_files/281F8A6019B140F38DFD45EB7B69B0FB.jpg +0 -0
  210. data/examples/webshops/buydig/2_files/2975F866CB2149F7ACBC559C8E24E304.jpg +0 -0
  211. data/examples/webshops/buydig/2_files/316FC9256DC9460ABC3C5ECAF6C60286.jpg +0 -0
  212. data/examples/webshops/buydig/2_files/50569327D8B94252B95E449AE470E505.jpg +0 -0
  213. data/examples/webshops/buydig/2_files/519CDAB404FA4543B76B5F281468ACBF.jpg +0 -0
  214. data/examples/webshops/buydig/2_files/57D6146419A647BA89C96AF0B5CAB03C.jpg +0 -0
  215. data/examples/webshops/buydig/2_files/58E3F988E184448B8C0A59874AE123A8.jpg +0 -0
  216. data/examples/webshops/buydig/2_files/5E5B10197A4E4C9B9ECCD6309DBE4C54.jpg +0 -0
  217. data/examples/webshops/buydig/2_files/609A249177D04065B37B9161CB0BC92D.jpg +0 -0
  218. data/examples/webshops/buydig/2_files/676CEE8E53C2445982E991871B4DF613.jpg +0 -0
  219. data/examples/webshops/buydig/2_files/712BA08FAB524A31A76ABB9E2009FF8E.jpg +0 -0
  220. data/examples/webshops/buydig/2_files/734BD08D7A5049339393166491D09D21.jpg +0 -0
  221. data/examples/webshops/buydig/2_files/751E72B7003343248497FE6905F80787.jpg +0 -0
  222. data/examples/webshops/buydig/2_files/76493D4F02F14EF7B5886510604C7BB4.jpg +0 -0
  223. data/examples/webshops/buydig/2_files/79521E251278486DB29529C60C9D012A.jpg +0 -0
  224. data/examples/webshops/buydig/2_files/9C9AF82AC3B54BDC8C705278B50FDFD6.jpg +0 -0
  225. data/examples/webshops/buydig/2_files/BC3FD8307B9948FDB7EEF156D8629C37.jpg +0 -0
  226. data/examples/webshops/buydig/2_files/C0DD4574765047D1836F505E69DC8AE5.jpg +0 -0
  227. data/examples/webshops/buydig/2_files/C143F48515274A44B04F4B3E46306BD2.jpg +0 -0
  228. data/examples/webshops/buydig/2_files/C6B02E88F729464699DB275D140F4563.jpg +0 -0
  229. data/examples/webshops/buydig/2_files/CE334D6206DB4FA9AFDF339AEF0AF50F.jpg +0 -0
  230. data/examples/webshops/buydig/2_files/D66AE0DC865A4021AB300ED3A0C4CD11.jpg +0 -0
  231. data/examples/webshops/buydig/2_files/DEA2EC2093DC474D96B651068576DAE5.jpg +0 -0
  232. data/examples/webshops/buydig/2_files/F547677D83844042BF13A4BE6523BB50.jpg +0 -0
  233. data/examples/webshops/buydig/2_files/Rbbbonlineseal.gif +0 -0
  234. data/examples/webshops/buydig/2_files/TopSellers_bottom.gif +0 -0
  235. data/examples/webshops/buydig/2_files/TopSellers_ttl.gif +0 -0
  236. data/examples/webshops/buydig/2_files/addToFavorites_ttl.gif +0 -0
  237. data/examples/webshops/buydig/2_files/banner_CorporateSales.gif +0 -0
  238. data/examples/webshops/buydig/2_files/banner_Shipping.gif +0 -0
  239. data/examples/webshops/buydig/2_files/bizratehonoree.gif +0 -0
  240. data/examples/webshops/buydig/2_files/btn_submit.gif +0 -0
  241. data/examples/webshops/buydig/2_files/checkFlash.js +110 -0
  242. data/examples/webshops/buydig/2_files/checkFlash2.js +109 -0
  243. data/examples/webshops/buydig/2_files/cnetcertified.gif +0 -0
  244. data/examples/webshops/buydig/2_files/credPriceGrabber.gif +0 -0
  245. data/examples/webshops/buydig/2_files/credShopping.gif +0 -0
  246. data/examples/webshops/buydig/2_files/credential_paypal.gif +0 -0
  247. data/examples/webshops/buydig/2_files/credentials.gif +0 -0
  248. data/examples/webshops/buydig/2_files/dealtime.gif +0 -0
  249. data/examples/webshops/buydig/2_files/dvxstyle.css +754 -0
  250. data/examples/webshops/buydig/2_files/footer_021306_1_v1.gif +0 -0
  251. data/examples/webshops/buydig/2_files/func.js +132 -0
  252. data/examples/webshops/buydig/2_files/getseal +1 -0
  253. data/examples/webshops/buydig/2_files/help.gif +0 -0
  254. data/examples/webshops/buydig/2_files/home.gif +0 -0
  255. data/examples/webshops/buydig/2_files/java.js +155 -0
  256. data/examples/webshops/buydig/2_files/leftnv_help.gif +0 -0
  257. data/examples/webshops/buydig/2_files/logo.gif +0 -0
  258. data/examples/webshops/buydig/2_files/logo2.gif +0 -0
  259. data/examples/webshops/buydig/2_files/logo3.gif +0 -0
  260. data/examples/webshops/buydig/2_files/main.js +227 -0
  261. data/examples/webshops/buydig/2_files/mastercard_secured.gif +0 -0
  262. data/examples/webshops/buydig/2_files/newsBox_bkg.jpg +0 -0
  263. data/examples/webshops/buydig/2_files/newsBox_bottom.jpg +0 -0
  264. data/examples/webshops/buydig/2_files/newsBox_text.gif +0 -0
  265. data/examples/webshops/buydig/2_files/newsBox_ttl.jpg +0 -0
  266. data/examples/webshops/buydig/2_files/noimage75.gif +0 -0
  267. data/examples/webshops/buydig/2_files/orangeleftfrmbtm.gif +0 -0
  268. data/examples/webshops/buydig/2_files/pixel153.gif +0 -0
  269. data/examples/webshops/buydig/2_files/rightnv_bottom.gif +0 -0
  270. data/examples/webshops/buydig/2_files/search_btn_off.gif +0 -0
  271. data/examples/webshops/buydig/2_files/search_c1.gif +0 -0
  272. data/examples/webshops/buydig/2_files/search_c2.gif +0 -0
  273. data/examples/webshops/buydig/2_files/search_c3.gif +0 -0
  274. data/examples/webshops/buydig/2_files/search_c4.gif +0 -0
  275. data/examples/webshops/buydig/2_files/search_down.gif +0 -0
  276. data/examples/webshops/buydig/2_files/search_left.gif +0 -0
  277. data/examples/webshops/buydig/2_files/search_right.gif +0 -0
  278. data/examples/webshops/buydig/2_files/search_top.gif +0 -0
  279. data/examples/webshops/buydig/2_files/siteLinks_bottom.gif +0 -0
  280. data/examples/webshops/buydig/2_files/siteLinks_bullet.gif +0 -0
  281. data/examples/webshops/buydig/2_files/siteLinks_ttl.gif +0 -0
  282. data/examples/webshops/buydig/2_files/spacer.gif +0 -0
  283. data/examples/webshops/buydig/2_files/style.js +45 -0
  284. data/examples/webshops/buydig/2_files/styles.html +33 -0
  285. data/examples/webshops/buydig/2_files/track_orders.jpg +0 -0
  286. data/examples/webshops/buydig/2_files/urchin +534 -0
  287. data/examples/webshops/buydig/2_files/verified_by_visa.gif +0 -0
  288. data/examples/webshops/buydig/2_files/welcome.gif +0 -0
  289. data/examples/webshops/buydig/2_files/welcome_ttl.gif +0 -0
  290. data/examples/webshops/buydig/2_files/yahoologo.gif +0 -0
  291. data/examples/webshops/buydig/input.html +1194 -0
  292. data/examples/webshops/buydig/test.rb +31 -0
  293. data/examples/webshops/ebay/test.rb +32 -0
  294. data/examples/webshops/finewines_offline/_finewines.html +1739 -0
  295. data/examples/webshops/finewines_offline/_finewines_cut.html +371 -0
  296. data/examples/webshops/finewines_offline/_finewines_files/011064.jpg +0 -0
  297. data/examples/webshops/finewines_offline/_finewines_files/012674.jpg +0 -0
  298. data/examples/webshops/finewines_offline/_finewines_files/013268.jpg +0 -0
  299. data/examples/webshops/finewines_offline/_finewines_files/013300.jpg +0 -0
  300. data/examples/webshops/finewines_offline/_finewines_files/013409.jpg +0 -0
  301. data/examples/webshops/finewines_offline/_finewines_files/014340.jpg +0 -0
  302. data/examples/webshops/finewines_offline/_finewines_files/015073.jpg +0 -0
  303. data/examples/webshops/finewines_offline/_finewines_files/015255.jpg +0 -0
  304. data/examples/webshops/finewines_offline/_finewines_files/015479.jpg +0 -0
  305. data/examples/webshops/finewines_offline/_finewines_files/015487.jpg +0 -0
  306. data/examples/webshops/finewines_offline/_finewines_files/017038.jpg +0 -0
  307. data/examples/webshops/finewines_offline/_finewines_files/017129.jpg +0 -0
  308. data/examples/webshops/finewines_offline/_finewines_files/017145.jpg +0 -0
  309. data/examples/webshops/finewines_offline/_finewines_files/017152.jpg +0 -0
  310. data/examples/webshops/finewines_offline/_finewines_files/017285.jpg +0 -0
  311. data/examples/webshops/finewines_offline/_finewines_files/017392.jpg +0 -0
  312. data/examples/webshops/finewines_offline/_finewines_files/017400.jpg +0 -0
  313. data/examples/webshops/finewines_offline/_finewines_files/019778.jpg +0 -0
  314. data/examples/webshops/finewines_offline/_finewines_files/019786.jpg +0 -0
  315. data/examples/webshops/finewines_offline/_finewines_files/020503.jpg +0 -0
  316. data/examples/webshops/finewines_offline/_finewines_files/021253.jpg +0 -0
  317. data/examples/webshops/finewines_offline/_finewines_files/021279.jpg +0 -0
  318. data/examples/webshops/finewines_offline/_finewines_files/021337.jpg +0 -0
  319. data/examples/webshops/finewines_offline/_finewines_files/021352.jpg +0 -0
  320. data/examples/webshops/finewines_offline/_finewines_files/023002.jpg +0 -0
  321. data/examples/webshops/finewines_offline/_finewines_files/023135.jpg +0 -0
  322. data/examples/webshops/finewines_offline/_finewines_files/023143.jpg +0 -0
  323. data/examples/webshops/finewines_offline/_finewines_files/023788.jpg +0 -0
  324. data/examples/webshops/finewines_offline/_finewines_files/024166.jpg +0 -0
  325. data/examples/webshops/finewines_offline/_finewines_files/024182.jpg +0 -0
  326. data/examples/webshops/finewines_offline/_finewines_files/024216.jpg +0 -0
  327. data/examples/webshops/finewines_offline/_finewines_files/027268.jpg +0 -0
  328. data/examples/webshops/finewines_offline/_finewines_files/027516.jpg +0 -0
  329. data/examples/webshops/finewines_offline/_finewines_files/027862.jpg +0 -0
  330. data/examples/webshops/finewines_offline/_finewines_files/028118.jpg +0 -0
  331. data/examples/webshops/finewines_offline/_finewines_files/028936.jpg +0 -0
  332. data/examples/webshops/finewines_offline/_finewines_files/033894.jpg +0 -0
  333. data/examples/webshops/finewines_offline/_finewines_files/033902.jpg +0 -0
  334. data/examples/webshops/finewines_offline/_finewines_files/033910.jpg +0 -0
  335. data/examples/webshops/finewines_offline/_finewines_files/033936.jpg +0 -0
  336. data/examples/webshops/finewines_offline/_finewines_files/033944.jpg +0 -0
  337. data/examples/webshops/finewines_offline/_finewines_files/033951.jpg +0 -0
  338. data/examples/webshops/finewines_offline/_finewines_files/034553.jpg +0 -0
  339. data/examples/webshops/finewines_offline/_finewines_files/034561.jpg +0 -0
  340. data/examples/webshops/finewines_offline/_finewines_files/232439.jpg +0 -0
  341. data/examples/webshops/finewines_offline/_finewines_files/237834.jpg +0 -0
  342. data/examples/webshops/finewines_offline/_finewines_files/268359.jpg +0 -0
  343. data/examples/webshops/finewines_offline/_finewines_files/289082.jpg +0 -0
  344. data/examples/webshops/finewines_offline/_finewines_files/331603.jpg +0 -0
  345. data/examples/webshops/finewines_offline/_finewines_files/369686.jpg +0 -0
  346. data/examples/webshops/finewines_offline/_finewines_files/420257.jpg +0 -0
  347. data/examples/webshops/finewines_offline/_finewines_files/422014.jpg +0 -0
  348. data/examples/webshops/finewines_offline/_finewines_files/460410.jpg +0 -0
  349. data/examples/webshops/finewines_offline/_finewines_files/480533.jpg +0 -0
  350. data/examples/webshops/finewines_offline/_finewines_files/556795.jpg +0 -0
  351. data/examples/webshops/finewines_offline/_finewines_files/597054.jpg +0 -0
  352. data/examples/webshops/finewines_offline/_finewines_files/650606.jpg +0 -0
  353. data/examples/webshops/finewines_offline/_finewines_files/652628.jpg +0 -0
  354. data/examples/webshops/finewines_offline/_finewines_files/653790.jpg +0 -0
  355. data/examples/webshops/finewines_offline/_finewines_files/658450.jpg +0 -0
  356. data/examples/webshops/finewines_offline/_finewines_files/660027.jpg +0 -0
  357. data/examples/webshops/finewines_offline/_finewines_files/660951.jpg +0 -0
  358. data/examples/webshops/finewines_offline/_finewines_files/684514.jpg +0 -0
  359. data/examples/webshops/finewines_offline/_finewines_files/685131.jpg +0 -0
  360. data/examples/webshops/finewines_offline/_finewines_files/686865.jpg +0 -0
  361. data/examples/webshops/finewines_offline/_finewines_files/699330.jpg +0 -0
  362. data/examples/webshops/finewines_offline/_finewines_files/703017.jpg +0 -0
  363. data/examples/webshops/finewines_offline/_finewines_files/703140.jpg +0 -0
  364. data/examples/webshops/finewines_offline/_finewines_files/703850.jpg +0 -0
  365. data/examples/webshops/finewines_offline/_finewines_files/717306.jpg +0 -0
  366. data/examples/webshops/finewines_offline/_finewines_files/900274.jpg +0 -0
  367. data/examples/webshops/finewines_offline/_finewines_files/938225.jpg +0 -0
  368. data/examples/webshops/finewines_offline/_finewines_files/947440.jpg +0 -0
  369. data/examples/webshops/finewines_offline/_finewines_files/951319.jpg +0 -0
  370. data/examples/webshops/finewines_offline/_finewines_files/967893.jpg +0 -0
  371. data/examples/webshops/finewines_offline/_finewines_files/981407.jpg +0 -0
  372. data/examples/webshops/finewines_offline/_finewines_files/981613.jpg +0 -0
  373. data/examples/webshops/finewines_offline/_finewines_files/982421.jpg +0 -0
  374. data/examples/webshops/finewines_offline/_finewines_files/985598.jpg +0 -0
  375. data/examples/webshops/finewines_offline/_finewines_files/986737.jpg +0 -0
  376. data/examples/webshops/finewines_offline/_finewines_files/987503.jpg +0 -0
  377. data/examples/webshops/finewines_offline/_finewines_files/992800.jpg +0 -0
  378. data/examples/webshops/finewines_offline/_finewines_files/VintageslogoEN.gif +0 -0
  379. data/examples/webshops/finewines_offline/_finewines_files/blanc-up.gif +0 -0
  380. data/examples/webshops/finewines_offline/_finewines_files/btn_vintages_latest.gif +0 -0
  381. data/examples/webshops/finewines_offline/_finewines_files/cc_en.gif +0 -0
  382. data/examples/webshops/finewines_offline/_finewines_files/common.js +860 -0
  383. data/examples/webshops/finewines_offline/_finewines_files/drink.gif +0 -0
  384. data/examples/webshops/finewines_offline/_finewines_files/drinkhold.gif +0 -0
  385. data/examples/webshops/finewines_offline/_finewines_files/ec_en.gif +0 -0
  386. data/examples/webshops/finewines_offline/_finewines_files/ev_en.gif +0 -0
  387. data/examples/webshops/finewines_offline/_finewines_files/hold.gif +0 -0
  388. data/examples/webshops/finewines_offline/_finewines_files/index-wines-features.jpg +0 -0
  389. data/examples/webshops/finewines_offline/_finewines_files/indexSTYLE.css +398 -0
  390. data/examples/webshops/finewines_offline/_finewines_files/keyword_search.gif +0 -0
  391. data/examples/webshops/finewines_offline/_finewines_files/mm_menu.js +1 -0
  392. data/examples/webshops/finewines_offline/_finewines_files/nr_en.gif +0 -0
  393. data/examples/webshops/finewines_offline/_finewines_files/ontario_en.gif +0 -0
  394. data/examples/webshops/finewines_offline/_finewines_files/popup.js +81 -0
  395. data/examples/webshops/finewines_offline/_finewines_files/releases_nav.js +229 -0
  396. data/examples/webshops/finewines_offline/_finewines_files/so_en.gif +0 -0
  397. data/examples/webshops/finewines_offline/_finewines_files/spacer.gif +0 -0
  398. data/examples/webshops/finewines_offline/_finewines_files/top.gif +0 -0
  399. data/examples/webshops/finewines_offline/_finewines_files/urchin.js +576 -0
  400. data/examples/webshops/finewines_offline/_finewines_files/wom_en.gif +0 -0
  401. data/examples/webshops/finewines_offline/test.rb +30 -0
  402. data/examples/webshops/us1camera/1_files/1pix.gif +0 -0
  403. data/examples/webshops/us1camera/1_files/1pix_002.gif +0 -0
  404. data/examples/webshops/us1camera/1_files/CnetCertified.gif +0 -0
  405. data/examples/webshops/us1camera/1_files/CyberSource.gif +0 -0
  406. data/examples/webshops/us1camera/1_files/Images50.gif +0 -0
  407. data/examples/webshops/us1camera/1_files/Images50_002.gif +0 -0
  408. data/examples/webshops/us1camera/1_files/Images50_003.gif +0 -0
  409. data/examples/webshops/us1camera/1_files/Images50_004.gif +0 -0
  410. data/examples/webshops/us1camera/1_files/Images50_005.gif +0 -0
  411. data/examples/webshops/us1camera/1_files/Images50_006.gif +0 -0
  412. data/examples/webshops/us1camera/1_files/PriceGrabber.gif +0 -0
  413. data/examples/webshops/us1camera/1_files/QSearch.gif +0 -0
  414. data/examples/webshops/us1camera/1_files/ban-m.jpg +0 -0
  415. data/examples/webshops/us1camera/1_files/banner1.bin +0 -0
  416. data/examples/webshops/us1camera/1_files/banner3.bin +0 -0
  417. data/examples/webshops/us1camera/1_files/block1.jpg +0 -0
  418. data/examples/webshops/us1camera/1_files/block2.jpg +0 -0
  419. data/examples/webshops/us1camera/1_files/block3.jpg +0 -0
  420. data/examples/webshops/us1camera/1_files/block4.jpg +0 -0
  421. data/examples/webshops/us1camera/1_files/block5.jpg +0 -0
  422. data/examples/webshops/us1camera/1_files/block6.jpg +0 -0
  423. data/examples/webshops/us1camera/1_files/bos.js +280 -0
  424. data/examples/webshops/us1camera/1_files/box1.jpg +0 -0
  425. data/examples/webshops/us1camera/1_files/box2.jpg +0 -0
  426. data/examples/webshops/us1camera/1_files/box3.jpg +0 -0
  427. data/examples/webshops/us1camera/1_files/box4.jpg +0 -0
  428. data/examples/webshops/us1camera/1_files/dot.jpg +0 -0
  429. data/examples/webshops/us1camera/1_files/eDevix.gif +0 -0
  430. data/examples/webshops/us1camera/1_files/electronics1.jpg +0 -0
  431. data/examples/webshops/us1camera/1_files/getseal +1 -0
  432. data/examples/webshops/us1camera/1_files/pride.jpg +0 -0
  433. data/examples/webshops/us1camera/1_files/search.jpg +0 -0
  434. data/examples/webshops/us1camera/1_files/sidebutton.jpg +0 -0
  435. data/examples/webshops/us1camera/1_files/sslroilogic.js +49 -0
  436. data/examples/webshops/us1camera/1_files/style.css +1 -0
  437. data/examples/webshops/us1camera/1_files/tl.html +2 -0
  438. data/examples/webshops/us1camera/input.html +548 -0
  439. data/examples/webshops/us1camera/test.rb +37 -0
  440. data/lib/scrubyt/core/navigation/agents/firewatir.rb +285 -0
  441. data/lib/scrubyt/core/navigation/agents/mechanize.rb +315 -0
  442. data/lib/scrubyt/core/navigation/fetch_action.rb +63 -0
  443. data/lib/scrubyt/core/navigation/navigation_actions.rb +107 -0
  444. data/lib/scrubyt/core/scraping/compound_example.rb +30 -0
  445. data/lib/scrubyt/core/scraping/constraint.rb +169 -0
  446. data/lib/scrubyt/core/scraping/constraint_adder.rb +49 -0
  447. data/lib/scrubyt/core/scraping/filters/attribute_filter.rb +14 -0
  448. data/lib/scrubyt/core/scraping/filters/base_filter.rb +112 -0
  449. data/lib/scrubyt/core/scraping/filters/constant_filter.rb +9 -0
  450. data/lib/scrubyt/core/scraping/filters/detail_page_filter.rb +37 -0
  451. data/lib/scrubyt/core/scraping/filters/download_filter.rb +64 -0
  452. data/lib/scrubyt/core/scraping/filters/html_subtree_filter.rb +9 -0
  453. data/lib/scrubyt/core/scraping/filters/regexp_filter.rb +13 -0
  454. data/lib/scrubyt/core/scraping/filters/script_filter.rb +11 -0
  455. data/lib/scrubyt/core/scraping/filters/text_filter.rb +34 -0
  456. data/lib/scrubyt/core/scraping/filters/tree_filter.rb +138 -0
  457. data/lib/scrubyt/core/scraping/pattern.rb +359 -0
  458. data/lib/scrubyt/core/scraping/pre_filter_document.rb +14 -0
  459. data/lib/scrubyt/core/scraping/result_indexer.rb +90 -0
  460. data/lib/scrubyt/core/shared/extractor.rb +171 -0
  461. data/lib/scrubyt/logging.rb +154 -0
  462. data/lib/scrubyt/output/post_processor.rb +139 -0
  463. data/lib/scrubyt/output/result.rb +44 -0
  464. data/lib/scrubyt/output/result_dumper.rb +154 -0
  465. data/lib/scrubyt/output/result_node.rb +145 -0
  466. data/lib/scrubyt/output/scrubyt_result.rb +42 -0
  467. data/lib/scrubyt/utils/compound_example_lookup.rb +50 -0
  468. data/lib/scrubyt/utils/ruby_extensions.rb +85 -0
  469. data/lib/scrubyt/utils/shared_utils.rb +58 -0
  470. data/lib/scrubyt/utils/simple_example_lookup.rb +40 -0
  471. data/lib/scrubyt/utils/xpathutils.rb +202 -0
  472. data/lib/scrubyt.rb +53 -0
  473. data/pkg/scrubyt-0.4.31.gem +0 -0
  474. data/resources/allison/LICENSE +184 -0
  475. data/resources/allison/README +37 -0
  476. data/resources/allison/allison.css +301 -0
  477. data/resources/allison/allison.gif +0 -0
  478. data/resources/allison/allison.js +307 -0
  479. data/resources/allison/allison.rb +287 -0
  480. data/resources/allison/cache/BODY +588 -0
  481. data/resources/allison/cache/CLASS_INDEX +4 -0
  482. data/resources/allison/cache/CLASS_PAGE +1 -0
  483. data/resources/allison/cache/FILE_INDEX +4 -0
  484. data/resources/allison/cache/FILE_PAGE +1 -0
  485. data/resources/allison/cache/FONTS +1 -0
  486. data/resources/allison/cache/FR_INDEX_BODY +1 -0
  487. data/resources/allison/cache/IMGPATH +1 -0
  488. data/resources/allison/cache/INDEX +1 -0
  489. data/resources/allison/cache/JAVASCRIPT +307 -0
  490. data/resources/allison/cache/METHOD_INDEX +4 -0
  491. data/resources/allison/cache/METHOD_LIST +1 -0
  492. data/resources/allison/cache/SRC_PAGE +1 -0
  493. data/resources/allison/cache/STYLE +323 -0
  494. data/resources/allison/cache/URL +1 -0
  495. data/scrubyt.gemspec +609 -0
  496. data/test/blackbox_test.rb +60 -0
  497. data/test/blackbox_tests/basic/multi_root.expected.xml +8 -0
  498. data/test/blackbox_tests/basic/multi_root.rb +6 -0
  499. data/test/blackbox_tests/basic/simple.expected.xml +5 -0
  500. data/test/blackbox_tests/basic/simple.rb +5 -0
  501. data/test/blackbox_tests/basic/three_divs.html +12 -0
  502. data/test/blackbox_tests/detail_page/detail_page_1.html +7 -0
  503. data/test/blackbox_tests/detail_page/detail_page_2.html +7 -0
  504. data/test/blackbox_tests/detail_page/main_page_1.html +5 -0
  505. data/test/blackbox_tests/detail_page/main_page_2.html +6 -0
  506. data/test/blackbox_tests/detail_page/one_detail_page.expected.xml +7 -0
  507. data/test/blackbox_tests/detail_page/one_detail_page.rb +9 -0
  508. data/test/blackbox_tests/detail_page/two_detail_pages.expected.xml +12 -0
  509. data/test/blackbox_tests/detail_page/two_detail_pages.rb +9 -0
  510. data/test/blackbox_tests/next_page/next_page_link.expected.xml +11 -0
  511. data/test/blackbox_tests/next_page/next_page_link.rb +7 -0
  512. data/test/blackbox_tests/next_page/page_1.html +11 -0
  513. data/test/blackbox_tests/next_page/page_2.html +11 -0
  514. data/test/blackbox_tests/next_page/page_3.html +7 -0
  515. data/test/blackbox_tests/next_page/page_list_links.expected.xml +11 -0
  516. data/test/blackbox_tests/next_page/page_list_links.rb +7 -0
  517. data/test/blackbox_tests/next_page/page_list_links.tofix +7 -0
  518. data/todo/backlog.txt +73 -0
  519. data/todo/scenario_ideas.txt +19 -0
  520. metadata +637 -0
@@ -0,0 +1,1407 @@
1
+ //! ################################################################
2
+ //! Copyright (c) 2004-2005 Amazon.com, Inc., and its Affiliates.
3
+ //! All rights reserved.
4
+ //! Not to be reused without permission
5
+ //! $Change: 1238354 $
6
+ //! $Revision: #8 $
7
+ //! $DateTime: 2006/12/11 17:12:12 $
8
+ //! ################################################################
9
+ function n2EventsInitLibrary() { // Begin library code wrapper. Goes all the way to the bottom of the file
10
+ if (window.goN2LibMon) goN2LibMon.beginLoad('events', 'n2CoreLibs');
11
+ window.N2Instance = function(oFeature) {
12
+ this.className = 'N2Instance';
13
+ this.version = '1.1.0';
14
+ this.oFeature = oFeature;
15
+ this._timers = new Object(); // HASH of timerids for this object, indexed by timer name.
16
+ this.nSTATEDORMANT = 0;
17
+ this.nSTATEPREOPEN = 1;
18
+ this.nSTATEOPENING = 2;
19
+ this.nSTATEVISIBLE = 3;
20
+ this.nSTATECLOSING = 4;
21
+ this.activeState = this.nSTATEDORMANT;
22
+ this.instanceName = null;
23
+ this.oRegFeatureOpened = null;
24
+ }
25
+ new N2Instance();
26
+ window.N2Instance.prototype.getFeature = function() {
27
+ return this.oFeature;
28
+ }
29
+ window.N2Instance.prototype.getFeatureID = function() {
30
+ return (this.oRegFeatureOpened ? this.oRegFeatureOpened.getFeatureID() : "");
31
+ }
32
+ window.N2Instance.prototype.setRegFeatureOpened = function(oRegFeatureOpened) {
33
+ this.oRegFeatureOpened = oRegFeatureOpened;
34
+ }
35
+ window.N2Instance.prototype.getRegFeatureOpened = function() {
36
+ return this.oRegFeatureOpened;
37
+ }
38
+ window.N2Instance.prototype.getInstanceName = function() {
39
+ return this.instanceName;
40
+ }
41
+ window.N2Instance.prototype.getInstanceNameFromLinkInfo = function(oLNI) {
42
+ ;
43
+ return null;
44
+ }
45
+ window.N2Instance.prototype._setInstanceName = function(oLNI) {
46
+ ;
47
+ var instanceName = this.getInstanceNameFromLinkInfo(oLNI);
48
+ if (instanceName != this.instanceName) {
49
+ this.clearAllTimers();
50
+ this.instanceName = instanceName;
51
+ }
52
+ }
53
+ window.N2Instance.prototype.isDormant = function() {
54
+ return (this.activeState <= this.nSTATEDORMANT);
55
+ }
56
+ window.N2Instance.prototype.isPreOpen = function() {
57
+ return (this.nSTATEDORMANT < this.activeState && this.activeState <= this.nSTATEPREOPEN);
58
+ }
59
+ window.N2Instance.prototype.isOpening = function() {
60
+ return (this.nSTATEPREOPEN < this.activeState && this.activeState <= this.nSTATEOPENING);
61
+ }
62
+ window.N2Instance.prototype.isVisible = function() {
63
+ return (this.nSTATEOPENING < this.activeState && this.activeState <= this.nSTATEVISIBLE);
64
+ }
65
+ window.N2Instance.prototype.isClosing = function() {
66
+ return (this.nSTATEVISIBLE < this.activeState);
67
+ }
68
+ window.N2Instance.prototype.isActive = function() {
69
+ return this.isVisible();
70
+ };
71
+ window.N2Instance.prototype.setTimer = function(timerName, nMSDelay, eventData) {
72
+ this.clearTimer(timerName);
73
+ var timerObject = new Object();
74
+ this._timers[timerName] = timerObject;
75
+ ;//goN2Debug.info("N2Instance setting timer feature " + this.getFeatureID() + ", instance " + this.getInstanceName() + ", timer " + timerName + ", eventData " + eventData);
76
+ timerObject.eventData = eventData;
77
+ timerObject.timerid = setTimeout(
78
+ "N2Instance._timerFired('" +
79
+ this.getFeatureID() + "', '" +
80
+ this.getInstanceName() + "', '" +
81
+ timerName+"')",
82
+ nMSDelay);
83
+ }
84
+ window.N2Instance.prototype.clearTimer = function(timerName) {
85
+ var timerObject = this._timers[timerName];
86
+ if (timerObject) {
87
+ ;
88
+ clearTimeout(timerObject.timerid);
89
+ this._timers[timerName] = 0;
90
+ }
91
+ }
92
+ window.N2Instance.prototype.clearAllTimers = function() {
93
+ ;
94
+ for (var timerName in this._timers) {
95
+ this.clearTimer(timerName);
96
+ }
97
+ }
98
+ window.N2Instance._timerFired = function(featureID, instanceName, timerName) {
99
+ ;
100
+ var oFeature = goN2Events.lookupFeature(featureID);
101
+ ;
102
+ if (!oFeature) {
103
+ return;
104
+ }
105
+ var oInstance = oFeature.getInstance(featureID, instanceName);
106
+ ;
107
+ if (!oInstance) {
108
+ return;
109
+ }
110
+ var timerObject = oInstance._timers[timerName];
111
+ oInstance._timers[timerName] = 0;
112
+ ;
113
+ oInstance[timerName](timerObject.eventData);
114
+ }
115
+ window.N2FInstance = function(oFeature) {
116
+ N2FInstance.parentClass.call(this, oFeature);
117
+ this.className = 'N2FInstance';
118
+ this.version = '1.1.0';
119
+ this.bPreOpenDuringClose = false;
120
+ this.bMouseIsIn = false;
121
+ }
122
+ window.N2FInstance.prototype = new N2Instance();
123
+ window.N2FInstance.parentClass = N2Instance;
124
+ window.N2FInstance.prototype.getRawObject = function() {
125
+ ;
126
+ return null;
127
+ }
128
+ window.N2FInstance.prototype.getInstanceNameFromLinkInfo = function(oLNI) {
129
+ var name = N2FInstance.getInstanceNameFromLinkInfo(oLNI);
130
+ return name;
131
+ }
132
+ window.N2FInstance.getInstanceNameFromLinkInfo = function(oLNI) {
133
+ ;
134
+ var name = (oLNI.getID() ? N2Feature.prefixFInstanceNames + oLNI.getID() : null);
135
+ return name;
136
+ }
137
+ window.N2FInstance.prototype.isStatic = function() {
138
+ return false;
139
+ }
140
+ window.N2FInstance.prototype.assignInstance = function(oLNI) {
141
+ if (!this.isDormant()) {
142
+ ;
143
+ return false;
144
+ }
145
+ this._setInstanceName(oLNI);
146
+ return true;
147
+ }
148
+ window.N2FInstance.prototype.overlayClosed = function() {
149
+ return;
150
+ }
151
+ window.N2FInstance.prototype.notifyFInstanceHasMouse = function(bMouseIsInInstance) {
152
+ var bMouseWasIn = this.bMouseIsIn;
153
+ this.bMouseIsIn = bMouseIsInInstance;
154
+ if (this.oFeature.isDisabled()) {
155
+ return;
156
+ }
157
+ if (this.isStatic()) {
158
+ return;
159
+ }
160
+ if (bMouseWasIn && !bMouseIsInInstance) {
161
+ ;
162
+ this._scheduleClose(this.getRegFeatureOpened().getDelayCloseAfter());
163
+ } else if (!bMouseWasIn && bMouseIsInInstance) {
164
+ ;
165
+ this._cancelClose();
166
+ }
167
+ }
168
+ window.N2FInstance.prototype.mouseOverHotspotTrack = function(oLNI) {
169
+ ;//goN2Debug.info("feature instance mouseOverHotspotTrack; feature " + oLNI.getFeature() + ", feature instance '" + this.getInstanceName() + "'");
170
+ var oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
171
+ ;
172
+ if (this.oFeature.isDisabled()) {
173
+ return;
174
+ }
175
+ this._cancelClose();
176
+ }
177
+ window.N2FInstance.prototype.mouseOverHotspotOpen = function(oLNI, nFeatureFlags) {
178
+ ;//goN2Debug.info("feature instance mouseOverHotspotOpen; feature " + oLNI.getFeature() + ", feature instance '" + this.getInstanceName() + "'");
179
+ var oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
180
+ ;
181
+ if (this.oFeature.isDisabled()) {
182
+ return;
183
+ }
184
+ if (this.activeState<=this.nSTATEPREOPEN || this.isClosing()) {
185
+ this._scheduleOpen(oLNI, nFeatureFlags, oRegFeature.getDelayShowAfter());
186
+ } else {
187
+ ;
188
+ this._cancelClose();
189
+ }
190
+ }
191
+ window.N2FInstance.prototype.mouseOutHotspotClose = function(oLNI) {
192
+ ;//goN2Debug.info("feature instance mouseOutHotspotClose; feature " + this.getFeatureID() + ", feature instance '" + this.getInstanceName() + "'");
193
+ var oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
194
+ ;
195
+ if (this.activeState <= this.nSTATEDORMANT) {
196
+ } else if (this.activeState <= this.nSTATEPREOPEN) {
197
+ this._cancelOpen();
198
+ } else if (this.activeState <= this.nSTATEVISIBLE) {
199
+ this._scheduleClose(oRegFeature.getDelayReachWithin());
200
+ } else {
201
+ }
202
+ }
203
+ window.N2FInstance.prototype.clickHotspotOpen = function(oLNI, nFeatureFlags) {
204
+ ;//goN2Debug.info("feature instance clickHotspotOpen; feature " + this.getFeatureID() + ", feature instance '" + this.getInstanceName() + "'");
205
+ var oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
206
+ ;
207
+ this.openNow(oLNI, nFeatureFlags);
208
+ }
209
+ window.N2FInstance.prototype.mouseOver = function() {
210
+ ;//goN2Debug.info("feature instance mouseOver; feature " + this.getFeatureID() + ", feature instance '" + this.getInstanceName() + "'");
211
+ this.notifyFInstanceHasMouse(true);
212
+ }
213
+ window.N2FInstance.prototype.mouseOut = function() {
214
+ ;//goN2Debug.info("feature instance mouseOut; feature " + this.getFeatureID() + ", feature instance '" + this.getInstanceName() + "'");
215
+ this.notifyFInstanceHasMouse(false);
216
+ }
217
+ window.N2FInstance.prototype._scheduleOpen = function(oLNI, nFeatureFlags, nMSDelay) {
218
+ this.setRegFeatureOpened(goN2Events.lookupRegFeature(oLNI.getFeature()));
219
+ ;
220
+ var eventData = new Object();
221
+ eventData.oLNI = oLNI;
222
+ eventData.nFeatureFlags = nFeatureFlags;
223
+ this.setTimer("_timedOpen", nMSDelay, eventData);
224
+ if (this.isClosing()) {
225
+ this.bPreOpenDuringClose = true;
226
+ } else {
227
+ this.activeState = this.nSTATEPREOPEN;
228
+ }
229
+ }
230
+ window.N2FInstance.prototype._timedOpen = function(eventData) {
231
+ if (this.oFeature.isDisabled()) {
232
+ return;
233
+ }
234
+ this.openNow(eventData.oLNI, eventData.nFeatureFlags);
235
+ }
236
+ window.N2FInstance.prototype._cancelOpen = function() {
237
+ ;
238
+ this.clearTimer("_timedOpen");
239
+ }
240
+ window.N2FInstance.prototype._scheduleClose = function(nMSDelay) {
241
+ ;
242
+ if (this.isStatic()) {
243
+ return;
244
+ }
245
+ this.setTimer("_timedClose", nMSDelay, null);
246
+ }
247
+ window.N2FInstance.prototype._timedClose = function(eventData) {
248
+ this.closeNow();
249
+ }
250
+ window.N2FInstance.prototype._cancelClose = function() {
251
+ ;
252
+ this.clearTimer("_timedClose");
253
+ }
254
+ window.N2FInstance.prototype.openNow = function(oLNI, nFeatureFlags) {
255
+ ;
256
+ }
257
+ window.N2FInstance.prototype.closeNow = function(bImmediate) {
258
+ ;
259
+ }
260
+ window.N2FInstanceWrapper = function(oWrapperFeature) {
261
+ N2FInstanceWrapper.parentClass.call(this, oWrapperFeature); // Call the base class constructor function.
262
+ this.className = 'N2FInstanceWrapper';
263
+ this.version = '1.1.0';
264
+ this.oWrappedFeature = null; // must be null except when Active.
265
+ }
266
+ window.N2FInstanceWrapper.prototype = new N2FInstance();
267
+ window.N2FInstanceWrapper.parentClass = N2FInstance;
268
+ window.N2FInstanceWrapper.prototype.isStatic = function() {
269
+ return ((this.oWrappedFeature && this.oWrappedFeature.isStatic) ? this.oWrappedFeature.isStatic() : false);
270
+ }
271
+ window.N2FInstanceWrapper.prototype.getRawObject = function() {
272
+ ;
273
+ return this.oWrappedFeature.getObject();
274
+ }
275
+ window.N2FInstanceWrapper.prototype.openNow = function(oLNI, nFeatureFlags) {
276
+ ;//goN2Debug.info("feature instance wrapper openNow; feature " + oLNI.getFeature() + ", feature instance '" + this.getInstanceNameFromLinkInfo(oLNI) + "'");
277
+ ;
278
+ if (this.oFeature.isDisabled()) {
279
+ return;
280
+ }
281
+ var oFInstanceActive = this.oFeature.getActiveWrappedFInstance();
282
+ if (oFInstanceActive) {
283
+ oFInstanceActive.closeNow(true);
284
+ }
285
+ this.oWrappedFeature = this.oFeature.getWrappedFeatureObj();
286
+ this.oFeature.setActiveWrappedFInstance(this);
287
+ if (!this.oWrappedFeature.isVisible())
288
+ {
289
+ ;
290
+ this._cancelOpen();
291
+ this.setRegFeatureOpened(goN2Events.lookupRegFeature(oLNI.getFeature()));
292
+ var oHotspot = this._createHotspotObj(oLNI, nFeatureFlags);
293
+ this.oWrappedFeature.show(oHotspot);
294
+ if (this.oWrappedFeature.isVisible()) {
295
+ goN2Events.toggleObjects("hide", this.oFeature.getWrappedFeatureActiveElement().id);
296
+ this._setStateFromWrappedFeature(this.nSTATEVISIBLE);
297
+ } else {
298
+ this.oWrappedFeature = null;
299
+ this.oFeature.setActiveWrappedFInstance(null);
300
+ this._setStateFromWrappedFeature(this.nSTATEDORMANT);
301
+ }
302
+ } else {
303
+ ;
304
+ this._setStateFromWrappedFeature(this.nSTATEVISIBLE);
305
+ }
306
+ }
307
+ window.N2FInstance.prototype.overlayClosed = function() {
308
+ if (this.oWrappedFeature) {
309
+ this.oWrappedFeature = null;
310
+ this.oFeature.setActiveWrappedFInstance(null);
311
+ }
312
+ this._setStateFromWrappedFeature(this.nSTATEDORMANT);
313
+ }
314
+ window.N2FInstanceWrapper.prototype._setStateFromWrappedFeature = function(activeStateExpected) {
315
+ if (this.oWrappedFeature && this.oWrappedFeature.isVisible()) {
316
+ this.activeState = this.nSTATEVISIBLE;
317
+ } else {
318
+ this.activeState = this.nSTATEDORMANT;
319
+ }
320
+ ;
321
+ if (this.activeState != activeStateExpected) {
322
+ ;
323
+ }
324
+ }
325
+ window.N2FInstanceWrapper.prototype.closeNow = function(bImmediate) {
326
+ ;//goN2Debug.info("feature instance wrapper closeNow; feature " + this.getFeatureID() + ", feature instance '" + this.getInstanceName() + "'");
327
+ if (this.isStatic()) {
328
+ return;
329
+ }
330
+ var oWrappedFeature = this.oWrappedFeature;
331
+ if (oWrappedFeature && oWrappedFeature.isVisible()) {
332
+ this._cancelClose();
333
+ var nAnimateCloseSaved;
334
+ if (bImmediate) {
335
+ nAnimateCloseSaved = this._smashNAnimateClose(oWrappedFeature, 0);
336
+ }
337
+ try {
338
+ ;
339
+ oWrappedFeature.hide();
340
+ } catch (e) {
341
+ if (bImmediate) {
342
+ this._smashNAnimateClose(oWrappedFeature, nAnimateCloseSaved);
343
+ }
344
+ throw(e);
345
+ }
346
+ if (bImmediate) {
347
+ this._smashNAnimateClose(oWrappedFeature, nAnimateCloseSaved);
348
+ }
349
+ ;
350
+ if (this.oWrappedFeature) {
351
+ this.oWrappedFeature = null;
352
+ this.oFeature.setActiveWrappedFInstance(null);
353
+ }
354
+ goN2Events.toggleObjects("show");
355
+ } else {
356
+ ;
357
+ }
358
+ this._setStateFromWrappedFeature(this.nSTATEDORMANT);
359
+ this.setRegFeatureOpened(null);
360
+ }
361
+ window.N2FInstanceWrapper.prototype._smashNAnimateClose = function(oWrappedFeature, newValue) {
362
+ var oldValue = oWrappedFeature.nAnimateClose;
363
+ oWrappedFeature.nAnimateClose = newValue;
364
+ return oldValue;
365
+ }
366
+ window.N2FInstanceWrapper.prototype._createHotspotObj = function(oLNI, nFeatureFlags) {
367
+ if (goN2U.isUndefOrNull(nFeatureFlags)) {
368
+ nFeatureFlags = 0;
369
+ }
370
+ var oHotspot = new Object();
371
+ oHotspot.id = "";
372
+ oHotspot.objectname = "";
373
+ oHotspot.abstop = ""; // abs y within the document
374
+ oHotspot.absleft = ""; // abs x within the document
375
+ oHotspot.top = ""; // abs y within the window [relative to the document]
376
+ oHotspot.left = ""; // abs x within the window [relative to the document]
377
+ oHotspot.bottom = "";
378
+ oHotspot.right = "";
379
+ oHotspot.availAbove = 0;
380
+ oHotspot.availUnder = 0;
381
+ oHotspot.availLeft = 0;
382
+ oHotspot.availRight = 0;
383
+ oHotspot.scrollLeft = 0;
384
+ oHotspot.scrollTop = 0;
385
+ oHotspot.clientHeight = 0;
386
+ oHotspot.clientWidth = 0;
387
+ oHotspot.staticFlag = 0;
388
+ var sFeatureID = oLNI.getFeature();
389
+ ;
390
+ var sLinkID = oLNI.getLinkID();
391
+ var oLink = goN2U.getRawObject(sLinkID);
392
+ oHotspot.oLink = oLink;
393
+ var sName = oLNI.getLinkName();
394
+ if (sName != oLink.id) {
395
+ oHotspot.sNameOverride = sName;
396
+ }
397
+ ;
398
+ oHotspot.featureID = sFeatureID;
399
+ ;
400
+ oHotspot.relatedFeatureObj = this.oWrappedFeature;
401
+ oHotspot.staticFlag = nFeatureFlags;
402
+ oHotspot.scrollLeft = goN2U.getScrollLeft();
403
+ oHotspot.scrollTop = goN2U.getScrollTop();
404
+ oHotspot.clientHeight = goN2U.getInsideWindowHeight();
405
+ oHotspot.clientWidth = goN2U.getInsideWindowWidth();
406
+ ;
407
+ ;
408
+ oHotspot.href = oLink.href;
409
+ var sTmp;
410
+ var re = /([\r\n])/gi;
411
+ sTmp = oLink.innerHTML;
412
+ oHotspot.linkHTML = sTmp.replace(re, " ");
413
+ sTmp = goN2U.isUndefOrNull(oLink.innerText) ? oLink.innerHTML : oLink.innerText;
414
+ oHotspot.linkText = sTmp.replace(re, " ");
415
+ ;
416
+ ;
417
+ ;
418
+ ;
419
+ oHotspot.absleft = goN2U.getScrolledElementLeft(oLink);
420
+ oHotspot.abstop = goN2U.getScrolledElementTop(oLink);
421
+ oHotspot.left = goN2U.getObjectLeft(oLink) - oHotspot.scrollLeft;
422
+ oHotspot.top = goN2U.getObjectTop(oLink) - oHotspot.scrollTop;
423
+ oHotspot.width = goN2U.getObjectWidth(oLink);
424
+ oHotspot.height = goN2U.getObjectHeight(oLink);
425
+ var elChild = oLink.firstChild;
426
+ if ( (oHotspot.width == 0) && elChild ){
427
+ oHotspot.width = goN2U.getObjectWidth(elChild);
428
+ oHotspot.height = goN2U.getObjectHeight(elChild);
429
+ } else if ( goN2U.isMozilla5() ) {
430
+ var aChildren = oLink.childNodes
431
+ var nChildren = aChildren.length;
432
+ for (var i=0;i<nChildren;i++) {
433
+ elChild = aChildren[i];
434
+ if ((elChild.nodeType == 1) && (elChild.tagName == 'IMG')) {
435
+ oHotspot.bottom = oHotspot.top + goN2U.getObjectHeight(oLink);
436
+ oHotspot.height = goN2U.getObjectHeight(elChild);
437
+ var oldTop = oHotspot.top;
438
+ oHotspot.top = oHotspot.bottom - oHotspot.height;
439
+ oHotspot.abstop = oHotspot.abstop + (oHotspot.top-oldTop);
440
+ break;
441
+ }
442
+ }
443
+ }
444
+ oHotspot.right = oHotspot.left + oHotspot.width;
445
+ oHotspot.bottom = oHotspot.top + oHotspot.height;
446
+ oHotspot.sLinkID = sLinkID;
447
+ ; //oLink set earlier
448
+ oHotspot.availAbove = oHotspot.abstop - oHotspot.scrollTop - 1;
449
+ oHotspot.availUnder = oHotspot.clientHeight - (oHotspot.abstop + oHotspot.height - oHotspot.scrollTop);
450
+ oHotspot.availLeft = oHotspot.absleft - oHotspot.scrollLeft - 1;
451
+ oHotspot.availRight = oHotspot.clientWidth - (oHotspot.absleft + oHotspot.width - oHotspot.scrollLeft);
452
+ return oHotspot;
453
+ }
454
+ window.N2HInstance = function(oFeature) {
455
+ N2HInstance.parentClass.call(this, oFeature); // Call the base class constructor function.
456
+ this.className = 'N2HInstance';
457
+ this.version = '1.1.0';
458
+ }
459
+ window.N2HInstance.prototype = new N2Instance();
460
+ window.N2HInstance.parentClass = N2Instance;
461
+ window.N2HInstance.prototype.getInstanceNameFromLinkInfo = function(oLNI) {
462
+ return N2HInstance.getInstanceNameFromLinkInfo(oLNI);
463
+ }
464
+ window.N2HInstance.getInstanceNameFromLinkInfo = function(oLNI) {
465
+ ;
466
+ ;
467
+ return N2Feature.prefixHInstanceNames + oLNI.getLinkID();
468
+ }
469
+ window.N2HInstance.prototype.getLinkInfoFromInstanceName = function(sInstanceName) {
470
+ return N2HInstance.getInstanceNameFromLinkInfo(sInstanceName);
471
+ }
472
+ window.N2HInstance.getLinkInfoFromInstanceName = function(sInstanceName) {
473
+ ;
474
+ var prefixLength = N2Feature.prefixHInstanceNames.length;
475
+ ;
476
+ var sLinkID = sInstanceName.substr(prefixLength, sInstanceName.length-prefixLength);
477
+ return goN2U.getLinkNameInfo(sLinkID);
478
+ }
479
+ window.N2HInstance.prototype.mouseOverTrack = function(oLNI) {
480
+ if (this.oFeature.isDisabled()) {
481
+ return;
482
+ }
483
+ ;//goN2Debug.info("hotspot mouseOverTrack; hotspot id " + oLNI.getLinkID() + ", name " + oLNI.getLinkName());
484
+ var oFInstance = this.oFeature.getFeatureInstance(oLNI);
485
+ if (oFInstance) {
486
+ oFInstance.mouseOverHotspotTrack(oLNI);
487
+ }
488
+ }
489
+ window.N2HInstance.prototype.mouseOverOpen = function(oLNI, nFeatureFlags) {
490
+ if (this.oFeature.isDisabled()) {
491
+ return;
492
+ }
493
+ ;//goN2Debug.info("hotspot mouseOverOpen; hotspot id " + oLNI.getLinkID() + ", name " + oLNI.getLinkName());
494
+ var oFInstance = this.oFeature.getFeatureInstance(oLNI);
495
+ if (!oFInstance) {
496
+ oFInstance = this.oFeature.createFeatureInstance(oLNI);
497
+ }
498
+ if (oFInstance) {
499
+ oFInstance.mouseOverHotspotOpen(oLNI, nFeatureFlags);
500
+ } else {
501
+ ;
502
+ }
503
+ }
504
+ window.N2HInstance.prototype.mouseClickOpen = function(oLNI, nFeatureFlags) {
505
+ ;//goN2Debug.info("hotspot mouseClickOpen; hotspot id " + oLNI.getLinkID() + ", name " + oLNI.getLinkName());
506
+ if (this.oFeature.isDisabled()) {
507
+ return;
508
+ }
509
+ var oFInstance = this.oFeature.getFeatureInstance(oLNI);
510
+ if (!oFInstance) {
511
+ oFInstance = this.oFeature.createFeatureInstance(oLNI);
512
+ }
513
+ if (oFInstance) {
514
+ oFInstance.clickHotspotOpen(oLNI, nFeatureFlags);
515
+ } else {
516
+ ;
517
+ }
518
+ }
519
+ window.N2HInstance.prototype.mouseOutClose = function(oLNI) {
520
+ ;//goN2Debug.info("hotspot mouseOutClose; hotspot id " + oLNI.getLinkID() + ", name " + oLNI.getLinkName());
521
+ if (this.oFeature.isDisabled()) {
522
+ return;
523
+ }
524
+ var oFInstance = this.oFeature.getFeatureInstance(oLNI);
525
+ if (oFInstance) {
526
+ oFInstance.mouseOutHotspotClose(oLNI);
527
+ }
528
+ }
529
+ window.N2RegFeature = function(oFeature, sFeatureID, mouseOverFn, mouseOutFn, clickFn) {
530
+ this.className = 'N2RegFeature';
531
+ this.version = '1.1.0';
532
+ if (!oFeature) {
533
+ return;
534
+ }
535
+ if (!mouseOverFn) {
536
+ mouseOverFn = n2MouseOverHotspotNop;
537
+ }
538
+ if (!mouseOutFn) {
539
+ mouseOutFn = n2MouseOutHotspotNop;
540
+ }
541
+ this._sFeatureID = sFeatureID;
542
+ this._oFeature = oFeature;
543
+ this._timerDelays = new Object();
544
+ this._timerDelays.showAfter = 400;
545
+ this._timerDelays.reachWithin = 600;
546
+ this._timerDelays.closeAfter = 400;
547
+ this._eventsRegistry = new Object();
548
+ this._registeredFunctions = new Object();
549
+ this._preProcessEventFunction('onmouseover', mouseOverFn);
550
+ this._preProcessEventFunction('onmouseout', mouseOutFn);
551
+ this._preProcessEventFunction('onclick', clickFn);
552
+ }
553
+ new N2RegFeature();
554
+ window.N2RegFeature.prototype.getFeatureID = function() { return this._sFeatureID; }
555
+ window.N2RegFeature.prototype.getFeature = function() { return this._oFeature; }
556
+ window.N2RegFeature.prototype.getEventHelperFunction = function(event) {
557
+ return this._registeredFunctions[event];
558
+ }
559
+ window.N2RegFeature.prototype._preProcessEventFunction = function(event, fname)
560
+ {
561
+ try {
562
+ ;
563
+ var code = eval(fname)
564
+ this._eventsRegistry[event] = fname;
565
+ this._registeredFunctions[event] = code;
566
+ ;
567
+ }
568
+ catch (e) {
569
+ ;
570
+ }
571
+ }
572
+ window.N2RegFeature.prototype.attachEventsToLink = function(elem) {
573
+ for (var event in this._eventsRegistry) {
574
+ if (this._eventsRegistry[event]) {
575
+ ;
576
+ elem[event] = this._registeredFunctions[event];
577
+ }
578
+ }
579
+ }
580
+ window.N2RegFeature.prototype.setDelays = function(nShowAfter, nReachWithin, nCloseAfter) {
581
+ var a, b, c;
582
+ a = this._timerDelays.showAfter = goN2U.isUndefOrNull(nShowAfter) ? this._timerDelays.showAfter : nShowAfter;
583
+ b = this._timerDelays.reachWithin = goN2U.isUndefOrNull(nReachWithin) ? this._timerDelays.reachWithin : nReachWithin;
584
+ c = this._timerDelays.closeAfter = goN2U.isUndefOrNull(nCloseAfter) ? this._timerDelays.closeAfter : nCloseAfter;
585
+ ;
586
+ }
587
+ window.N2RegFeature.prototype.getDelayShowAfter = function() {
588
+ return this._timerDelays.showAfter;
589
+ }
590
+ window.N2RegFeature.prototype.getDelayReachWithin = function() {
591
+ return this._timerDelays.reachWithin;
592
+ }
593
+ window.N2RegFeature.prototype.getDelayCloseAfter = function() {
594
+ return this._timerDelays.closeAfter;
595
+ }
596
+ window.N2Feature = function() {
597
+ this.className = 'N2Feature';
598
+ this.version = '1.1.0';
599
+ this._timeDisabledUntil = null;
600
+ this._nDefaultDisableMs = 5000;
601
+ this._oHInstance = new N2HInstance(this);
602
+ }
603
+ new N2Feature();
604
+ window.N2Feature.prefixHInstanceNames = "HS_";
605
+ window.N2Feature.prefixFInstanceNames = "FI_";
606
+ window.N2Feature.prototype.closeAllInstances = function(bImmediate) {
607
+ ;
608
+ }
609
+ window.N2Feature.prototype.notifyMouseOwner = function(oRegFeatureMouseOwner, sInstanceNameMouseOwner) {
610
+ ;
611
+ }
612
+ window.N2Feature.prototype.disableFeature = function(nMSDelay) {
613
+ if (!nMSDelay) {
614
+ nMSDelay = this._nDefaultDisableMs;
615
+ }
616
+ this.clossAll(false);
617
+ var date = new Date();
618
+ var now = date.getTime();
619
+ this._timeDisabledUntil = now + nMSDelay;
620
+ }
621
+ window.N2Feature.prototype.isDisabled = function() {
622
+ var bDisabled = false;
623
+ if (this._timeDisabledUntil) {
624
+ var date = new Date();
625
+ var now = date.getTime();
626
+ if (now < this._timeDisabledUntil) {
627
+ bDisabled = true;
628
+ } else {
629
+ this._timeDisabledUntil = null;
630
+ }
631
+ }
632
+ return bDisabled;
633
+ }
634
+ window.N2Feature.prototype.getFeatureInstance = function(oLNI_or_featureID, sInstanceName) {
635
+ ;
636
+ return null;
637
+ }
638
+ window.N2Feature.prototype.createFeatureInstance = function(oLNI) {
639
+ ;
640
+ return null;
641
+ }
642
+ window.N2Feature.prototype.getFeatureInstanceName = function(oLNI) {
643
+ return N2FInstance.getInstanceNameFromLinkInfo(oLNI);
644
+ }
645
+ window.N2Feature.prototype.getHotspotInstance = function(oLNI_or_featureID, sInstanceName) {
646
+ return this._oHInstance;
647
+ }
648
+ window.N2Feature.prototype.getHotspotInstanceName = function(oLNI) {
649
+ return N2HInstance.getInstanceNameFromLinkInfo(oLNI);
650
+ }
651
+ window.N2Feature.prototype.getLinkInfoFromHotspotInstanceName = function(sInstanceName) {
652
+ return N2HInstance.getLinkInfoFromInstanceName(sInstanceName);
653
+ }
654
+ window.N2Feature.prototype.isHotspotInstanceName = function(sInstanceName) {
655
+ ;
656
+ if (sInstanceName) {
657
+ return (sInstanceName.substr(0,N2Feature.prefixHInstanceNames.length) == N2Feature.prefixHInstanceNames);
658
+ }
659
+ return false;
660
+ }
661
+ window.N2Feature.prototype.getInstance = function(featureID, sInstanceName) {
662
+ ;
663
+ if (sInstanceName.substr(0,N2Feature.prefixHInstanceNames.length) == N2Feature.prefixHInstanceNames) {
664
+ return this.getHotspotInstance(featureID, sInstanceName);
665
+ } else if (sInstanceName.substr(0,N2Feature.prefixFInstanceNames.length) == N2Feature.prefixFInstanceNames) {
666
+ return this.getFeatureInstance(featureID, sInstanceName);
667
+ }
668
+ ;
669
+ return null;
670
+ }
671
+ window.N2FeatureWrapper = function(sFeatureID, oWrappedFeature, wrappedFeatureObjectName) {
672
+ N2FeatureWrapper.parentClass.call(this); // THIS line MUST come first -- executes parent constructor
673
+ this.className = 'N2FeatureWrapper';
674
+ this.version = '1.1.0';
675
+ this._oWrappedFeature = oWrappedFeature; // JSF 1.0 Feature object
676
+ this._wrappedFeatureObjectName = wrappedFeatureObjectName;
677
+ this._oActiveFInstance = null; // the active feature instance, if any.
678
+ this._featureInstances = new Object();
679
+ }
680
+ window.N2FeatureWrapper.prototype = new N2Feature();
681
+ window.N2FeatureWrapper.parentClass = N2Feature;
682
+ window.N2FeatureWrapper.prototype.getWrappedFeatureObjectName = function() { return this._wrappedFeatureObjectName; }
683
+ window.N2FeatureWrapper.prototype.getWrappedFeatureObj = function() { return this._oWrappedFeature; }
684
+ window.N2FeatureWrapper.prototype.getActiveWrappedFInstance = function() { return this._oActiveFInstance; }
685
+ window.N2FeatureWrapper.prototype.setActiveWrappedFInstance = function(oWrappingInstance) {
686
+ ;
687
+ this._oActiveFInstance = oWrappingInstance;
688
+ }
689
+ window.N2FeatureWrapper.prototype.getWrappedFeatureActiveElement = function() {
690
+ return (this._oWrappedFeature.isActive() ? this._oWrappedFeature.getObject() : null);
691
+ }
692
+ window.N2FeatureWrapper.prototype.getWrappedMouseOutCallback = function() {
693
+ return this._oWrappedFeature.myMouseOutCallback;
694
+ }
695
+ window.N2FeatureWrapper.prototype.getFeatureInstance = function(oLNI_or_featureID, sInstanceName) {
696
+ var featureID;
697
+ if (typeof oLNI_or_featureID == "string") {
698
+ featureID = oLNI_or_featureID;
699
+ } else {
700
+ var oLNI = oLNI_or_featureID;
701
+ featureID = oLNI.getFeature();
702
+ sInstanceName = N2FInstance.getInstanceNameFromLinkInfo(oLNI);
703
+ }
704
+ for (var id in this._featureInstances) {
705
+ if (id == featureID + "|" + sInstanceName) {
706
+ return this._featureInstances[id];
707
+ }
708
+ }
709
+ return null;
710
+ }
711
+ window.N2FeatureWrapper.prototype.notifyMouseOwner = function(oRegFeatureMouseOwner, sInstanceNameMouseOwner) {
712
+ var oFeatureMouseOwner = (oRegFeatureMouseOwner ? oRegFeatureMouseOwner.getFeature() : null);
713
+ var featureIDMouseOwner = (oRegFeatureMouseOwner ? oRegFeatureMouseOwner.getFeatureID() : "");
714
+ for (var id in this._featureInstances) {
715
+ var idArray = id.split("|");
716
+ var featureID = idArray[0];
717
+ var oFInstance = this._featureInstances[id];
718
+ oFInstance.notifyFInstanceHasMouse(
719
+ this == oFeatureMouseOwner && // needed because featureIDs might be null
720
+ oFInstance.getFeatureID() == featureIDMouseOwner &&
721
+ oFInstance.getInstanceName() == sInstanceNameMouseOwner );
722
+ }
723
+ if (oFeatureMouseOwner==this && this.isHotspotInstanceName(sInstanceNameMouseOwner)) {
724
+ var oLNI = this.getLinkInfoFromHotspotInstanceName(sInstanceNameMouseOwner);
725
+ if (oLNI) {
726
+ var hotspotElem = goN2U.getRawObject(oLNI.getLinkID());
727
+ var helperFunction = oRegFeatureMouseOwner.getEventHelperFunction("onmouseover");
728
+ if (hotspotElem && helperFunction) {
729
+ helperFunction.call(hotspotElem);
730
+ }
731
+ }
732
+ }
733
+ }
734
+ window.N2FeatureWrapper.prototype.closeAllInstances = function(bImmediate) {
735
+ ; // gets the wrapped feature, not the instance! But uncalled, so it's OK.
736
+ var oFInstance = this.getWrappedFeatureActiveElement();
737
+ if (oFInstance) {
738
+ oFInstance.closeNow(bImmediate);
739
+ }
740
+ }
741
+ window.N2FeatureWrapper.prototype.createFeatureInstance = function(oLNI) {
742
+ var oWrappingInstance = new N2FInstanceWrapper(this);
743
+ oWrappingInstance.assignInstance(oLNI);
744
+ var id = oLNI.getFeature() + "|" + oWrappingInstance.getInstanceNameFromLinkInfo(oLNI);
745
+ ;
746
+ this._featureInstances[id] = oWrappingInstance;
747
+ return oWrappingInstance;
748
+ }
749
+ window.N2Events = function() {
750
+ this.className = 'N2Events';
751
+ this.version = '1.1.0';
752
+ this._nextAvailId = 0;
753
+ this._oFeatureMouseOwner = null; // the instance's feature
754
+ this._sInstanceNameMouseOwner = ""; // the instance name
755
+ this._nParentSeeks=3;
756
+ this._bAnalyzeHREFs=false;
757
+ this._sAutoFeatureID='autoexp';
758
+ this._featureChangedTimer = null;
759
+ this._featureRegistry = new Object();
760
+ this.fSEMISTATIC = N2Events.fSEMISTATIC;
761
+ this.fSTATICWITHCLOSE = N2Events.fSTATICWITHCLOSE;
762
+ this.initialize = function()
763
+ {
764
+ if (!this._initialized) {
765
+ ; // safety net failed
766
+ this._initialized = true;
767
+ N2ChainEventHandler('onmousemove',
768
+ function(evt) {
769
+ evt = (evt) ? evt : window.event;
770
+ if (typeof goN2Events == "object") {
771
+ goN2Events._mouseMoved(evt);
772
+ }
773
+ },
774
+ 'N2EventsMouse');
775
+ ;
776
+ } else {
777
+ ;
778
+ }
779
+ }
780
+ this.registerFeature = function(sFeatureID, featureObjectOrObjectName, mouseOverFn, mouseOutFn, clickFn) {
781
+ ;
782
+ ;
783
+ var oFeature;
784
+ if (typeof featureObjectOrObjectName == "object") {
785
+ oFeature = featureObjectOrObjectName;
786
+ } else {
787
+ var oWrappedFeature = this._evalWrappedFeatureObjectName(featureObjectOrObjectName);
788
+ if (oWrappedFeature == null) {
789
+ ;
790
+ return;
791
+ }
792
+ oFeature = this._getFeatureFromWrappedFeature(oWrappedFeature);
793
+ if (!oFeature) {
794
+ oFeature = new N2FeatureWrapper(sFeatureID, oWrappedFeature, featureObjectOrObjectName);
795
+ }
796
+ }
797
+ var oRegFeature = new N2RegFeature(oFeature, sFeatureID, mouseOverFn, mouseOutFn, clickFn);
798
+ this._featureRegistry[sFeatureID] = oRegFeature;
799
+ }
800
+ this._evalWrappedFeatureObjectName = function(wrappedFeatureObjectName) {
801
+ var oWrappedFeature = null;
802
+ try {
803
+ oWrappedFeature = eval(wrappedFeatureObjectName);
804
+ }
805
+ catch (e) {
806
+ }
807
+ return oWrappedFeature;
808
+ }
809
+ this.lookupRegFeature = function(sFeatureID) {
810
+ return this._featureRegistry[sFeatureID];
811
+ }
812
+ this.lookupFeature = function(sFeatureID) {
813
+ var oRegFeature = this._featureRegistry[sFeatureID];
814
+ return (oRegFeature ? oRegFeature.getFeature() : null);
815
+ }
816
+ this._getFeatureFromWrappedFeature = function(oWrappedFeature) {
817
+ for (var sFeatureID in this._featureRegistry) {
818
+ var oRegFeature = this._featureRegistry[sFeatureID];
819
+ var oFeature = oRegFeature.getFeature();
820
+ if (oFeature.getWrappedFeatureObj &&
821
+ oFeature.getWrappedFeatureObj() === oWrappedFeature
822
+ ) {
823
+ return oFeature;
824
+ }
825
+ }
826
+ }
827
+ this._searchForActiveFeature = function(elementMouse) {
828
+ var oFeatureActive = null;
829
+ for (var sFeatureID in this._featureRegistry) {
830
+ var oFeature = this._featureRegistry[sFeatureID].getFeature();
831
+ var oWrappedFeature = oFeature.getWrappedFeatureObj();
832
+ if (oWrappedFeature.isStatic()) {
833
+ continue;
834
+ }
835
+ var elementFeature = oFeature.getWrappedFeatureActiveElement();
836
+ if (goN2U.elementIsContainedBy(elementMouse, elementFeature)) {
837
+ if (oFeatureActive && oFeatureActive!==oFeature) {
838
+ ;
839
+ }
840
+ oFeatureActive = oFeature;
841
+ }
842
+ }
843
+ return oFeatureActive;
844
+ }
845
+ this.setFeatureDelays = function(sFeatureID, nShowAfter, nReachWithin, nCloseAfter) {
846
+ var oRegFeature = this._featureRegistry[sFeatureID];
847
+ if (!oRegFeature) {
848
+ ;
849
+ return;
850
+ }
851
+ oRegFeature.setDelays(nShowAfter, nReachWithin, nCloseAfter);
852
+ }
853
+ this.analyzeHREFS = function(b) { this._bAnalyzeHREFs = b; }
854
+ this.setAutoFeatureID = function(s) { this._sAutoFeatureID=s; }
855
+ this.broadcastMouseOwner = function(oRegFeatureMouseOwner, sInstanceNameMouseOwner) {
856
+ var oFeatureMouseOwner = (oRegFeatureMouseOwner ? oRegFeatureMouseOwner.getFeature() : null);
857
+ if (oFeatureMouseOwner!==this._oFeatureMouseOwner || sInstanceNameMouseOwner!=this._sInstanceNameMouseOwner ) {
858
+ this._oFeatureMouseOwner = oFeatureMouseOwner;
859
+ this._sInstanceNameMouseOwner = sInstanceNameMouseOwner;
860
+ for (var sFeatureID in this._featureRegistry) {
861
+ var oFeature = this._featureRegistry[sFeatureID].getFeature();
862
+ oFeature.notifyMouseOwner(oRegFeatureMouseOwner, sInstanceNameMouseOwner);
863
+ }
864
+ }
865
+ }
866
+ this.instanceIsNotMouseOwner = function(oRegFeature, sInstanceName) {
867
+ var oFeature = oRegFeature.getFeature();
868
+ if (oFeature===this._oFeatureMouseOwner && sInstanceName==this._sInstanceNameMouseOwner ) {
869
+ this._oFeatureMouseOwner = null;
870
+ this._sInstanceNameMouseOwner = "";
871
+ }
872
+ }
873
+ this._attachEventsToLink = function(elem, name) {
874
+ var modified = false;
875
+ var nameArray = name.split("|");
876
+ if (nameArray.length < N2Events.nMINHOTSPOTNAMECOMPONENTS) {
877
+ return false;
878
+ }
879
+ var sFeatureID = nameArray[0];
880
+ var oRegFeature = this.lookupRegFeature(sFeatureID);
881
+ if (sFeatureID && oRegFeature) {
882
+ ;
883
+ if (!elem.id) {
884
+ elem.setAttribute("id","lnx"+this._nextAvailId);
885
+ ;
886
+ this._nextAvailId++;
887
+ }
888
+ oRegFeature.attachEventsToLink(elem);
889
+ modified = true;
890
+ }
891
+ return modified;
892
+ }
893
+ this._mouseMoved = function(evt)
894
+ {
895
+ ;
896
+ var name;
897
+ var elem;
898
+ if (goN2U.bIsIE)
899
+ elem = evt.srcElement;
900
+ else
901
+ elem = evt.target;
902
+ var elemBase = elem; // save the element on which the event was generated
903
+ if (elem) {
904
+ if (!elem.name && this._bAnalyzeHREFs) {
905
+ var sHref = elem.href;
906
+ if (elem.tagName == 'IMG') {
907
+ var i = 2; //this._nParentSeeks;
908
+ var parentElem = goN2U.getParentElement(elem);
909
+ while ( parentElem && i ) {
910
+ if (parentElem.href) {
911
+ sHref = parentElem.href;
912
+ break;
913
+ }
914
+ parentElem = goN2U.getParentElement(parentElem);
915
+ i--;
916
+ }
917
+ }
918
+ if (sHref) {
919
+ var aRE = new Array();
920
+ aRE[0] = /\/exec\/obidos\/ASIN\/([^\/]*)\//;
921
+ aRE[1] = /\/exec\/obidos\/am\/[^=]+=ASIN\/([^\/]+)/;
922
+ aRE[2] = /\/exec\/obidos\/tg\/detail\/-\/([^\/]*)\//;
923
+ aRE[3] = /\/exec\/obidos\/am\/[^\/]+\/detail\/-\/([^\/]*)\//;
924
+ sHref = unescape(sHref);
925
+ for (var i=0;i<aRE.length;i++) {
926
+ var aResults = sHref.match(aRE[i]);
927
+ if (aResults) {
928
+ var sASIN = aResults[1];
929
+ var sNameVal = this._sAutoFeatureID + '|a|' + sASIN;
930
+ ;
931
+ elem.name = sNameVal;
932
+ break;
933
+ }
934
+ }
935
+ }
936
+ } // END bAnalyzeHREFs
937
+ if (!elem.name || (typeof elem.name != 'string')) {
938
+ var i = this._nParentSeeks;
939
+ var parentElem = goN2U.getParentElement(elem);
940
+ while ( parentElem && i ) {
941
+ if (parentElem.name && (typeof parentElem.name == 'string')) {
942
+ elem = parentElem;
943
+ break;
944
+ }
945
+ parentElem = goN2U.getParentElement(parentElem);
946
+ i--;
947
+ }
948
+ }
949
+ name = elem.name;
950
+ if (name && (typeof name == 'string') && goN2U.isUndefOrNull(elem.onmouseout)) {
951
+ if (this._attachEventsToLink(elem, name)) {
952
+ ;
953
+ if (goN2U.bIsIE && elem.getAttribute("onmouseover")){
954
+ ;
955
+ elem.onmouseover();
956
+ } else if (elem['onmouseover']){ // Mozillla
957
+ ;
958
+ elem['onmouseover']();
959
+ } else {
960
+ ;
961
+ }
962
+ }
963
+ }
964
+ } else {
965
+ ;
966
+ }
967
+ var bIsInInstance = false;
968
+ var oRegFeature = null; // non-null if bIsInInstance
969
+ var sInstanceName = null; // non-null if bIsInInstance
970
+ if (elem) {
971
+ var oFeature = this._searchForActiveFeature(elem); // see fixme comment on _searchForActiveFeature
972
+ if (oFeature) {
973
+ var oInstance = oFeature.getActiveWrappedFInstance();
974
+ ;
975
+ bIsInInstance = true;
976
+ oRegFeature = oInstance.getRegFeatureOpened();
977
+ sInstanceName = oInstance.getInstanceName();
978
+ }
979
+ }
980
+ if (!bIsInInstance && elem && elem.name && (typeof elem.name == 'string')) {
981
+ var nameArray = elem.name.split("|");
982
+ if (nameArray.length >= N2Events.nMINHOTSPOTNAMECOMPONENTS) {
983
+ var oLNI = goN2U.getLinkNameInfo(elem.id);
984
+ if (oLNI) {
985
+ var sFeatureID = oLNI.getFeature();
986
+ oRegFeature = this.lookupRegFeature(sFeatureID);
987
+ if (oRegFeature) {
988
+ var oFeature = oRegFeature.getFeature();
989
+ bIsInInstance = true;
990
+ sInstanceName = oFeature.getHotspotInstanceName(oLNI);
991
+ }
992
+ }
993
+ }
994
+ }
995
+ this.broadcastMouseOwner(oRegFeature, sInstanceName);
996
+ }
997
+ this.addEventHandler = function(eventID, fn) {
998
+ var r;
999
+ if (window.addEventListener) {
1000
+ window.addEventListener(eventID, fn, false);
1001
+ r = true;
1002
+ } else if (window.attachEvent) {
1003
+ r = document.attachEvent("on"+eventID, fn);
1004
+ } else {
1005
+ ;
1006
+ r = false;
1007
+ }
1008
+ ;
1009
+ return r;
1010
+ }
1011
+ this.removeEventHandler = function(eventID, fn) {
1012
+ var r;
1013
+ if (window.removeEventListener) {
1014
+ window.addEventListener(eventID, fn, false);
1015
+ r = true;
1016
+ } else if (window.detachEvent) {
1017
+ r = document.detachEvent("on"+eventID, fn);
1018
+ } else {
1019
+ ;
1020
+ r = false;
1021
+ }
1022
+ ;
1023
+ return r;
1024
+ }
1025
+ this.toggleObjects = function(etype, element)
1026
+ {
1027
+ var thisLeft;
1028
+ var thisTop;
1029
+ var thisRight;
1030
+ var thisBottom;
1031
+ if (etype != "hide") {
1032
+ ;
1033
+ } else {
1034
+ var oElement = goN2U.getRawObject(element);
1035
+ if (!oElement) {
1036
+ ;
1037
+ return;
1038
+ }
1039
+ ;
1040
+ thisLeft = goN2U.getObjectLeft(oElement);
1041
+ thisTop = goN2U.getObjectTop(oElement);
1042
+ thisRight = thisLeft + goN2U.getObjectWidth(oElement);
1043
+ thisBottom = thisTop + goN2U.getObjectHeight(oElement);
1044
+ }
1045
+ this._checkPopOverObjects("EMBED", etype, thisLeft, thisTop, thisRight, thisBottom);
1046
+ this._checkPopOverObjects("OBJECT", etype, thisLeft, thisTop, thisRight, thisBottom);
1047
+ this._checkPopOverObjects("IFRAME", etype, thisLeft, thisTop, thisRight, thisBottom);
1048
+ if (goN2U.bIsIE) {
1049
+ this._checkPopOverObjects("select", etype, thisLeft, thisTop, thisRight, thisBottom);
1050
+ }
1051
+ }
1052
+ this._checkPopOverObjects = function(tagName, etype, thisLeft, thisTop, thisRight, thisBottom) {
1053
+ var myObjs = document.getElementsByTagName(tagName);
1054
+ var i;
1055
+ for (i=0; i<myObjs.length; i++) {
1056
+ var oElem = myObjs[i];
1057
+ if ((oElem.id && oElem.id.substring(0,4) == '_po_' ) ||
1058
+ (oElem.name && oElem.name.substring(0,4) == '_po_') ) {
1059
+ continue;
1060
+ }
1061
+ if (tagName.toLowerCase() == 'iframe') {
1062
+ try {
1063
+ oElem = goN2U.getIFrameDocument(oElem).body;
1064
+ } catch(e) {
1065
+ ;
1066
+ }
1067
+ }
1068
+ if (etype != "hide") {
1069
+ oElem.style.visibility = "visible";
1070
+ } else {
1071
+ oElem.style.visibility = this._isFInstanceOverElement(thisLeft, thisTop, thisRight, thisBottom, oElem) ? "hidden" : "visible";
1072
+ }
1073
+ }
1074
+ }
1075
+ this._isFInstanceOverElement = function(thisLeft, thisTop, thisRight, thisBottom, menuObj)
1076
+ {
1077
+ var mL = goN2U.getObjectLeft(menuObj);
1078
+ var mT = goN2U.getObjectTop(menuObj);
1079
+ var mR = mL + goN2U.getObjectWidth(menuObj);
1080
+ var mB = mT + goN2U.getObjectHeight(menuObj);
1081
+ var pL = thisLeft;
1082
+ var pT = thisTop;
1083
+ var pR = thisRight;
1084
+ var pB = thisBottom;
1085
+ if ( (mL >= pL) && (mL <= pR) && (mT >= pT) && (mT <= pB) ) return true;
1086
+ if ( (mL >= pL) && (mL <= pR) && (mB >= pT) && (mB <= pB) ) return true;
1087
+ if ( (mR >= pL) && (mR <= pR) && (mT >= pT) && (mT <= pB) ) return true;
1088
+ if ( (mR >= pL) && (mR <= pR) && (mB >= pT) && (mB <= pB) ) return true;
1089
+ if ( (mL >= pL) && (mL <= pR) && (mT <= pT) && (mB >= pB) ) return true;
1090
+ if ( (pL >= mL) && (pL <= mR) && (pT >= mT) && (pT <= mB) ) return true;
1091
+ if ( (pL >= mL) && (pL <= mR) && (pB >= mT) && (pB <= mB) ) return true;
1092
+ if ( (pR >= mL) && (pR <= mR) && (pT >= mT) && (pT <= mB) ) return true;
1093
+ if ( (pR >= mL) && (pR <= mR) && (pB >= mT) && (pB <= mB) ) return true;
1094
+ return false;
1095
+ }
1096
+ this.disableFeature = function(featureID, delay) {
1097
+ var oFeature = this.lookupFeature(featureID);
1098
+ ;
1099
+ if (oFeature) {
1100
+ oFeature.disableFeature(nMSDelay);
1101
+ }
1102
+ }
1103
+ this.featureIsDisabled = function(featureID) {
1104
+ var bDisabled = false;
1105
+ var oFeature = this.lookupFeature(featureID);
1106
+ ;
1107
+ if (oFeature) {
1108
+ bDisabled = oFeature.isDisabled();
1109
+ }
1110
+ return bDisabled;
1111
+ }
1112
+ this.qaAddIDsToNamedLinks = function() {
1113
+ var mylinks = document.getElementsByTagName("a");
1114
+ for (var i=0; i<mylinks.length; i++) {
1115
+ var name = mylinks[i].getAttribute("name");
1116
+ if (name && (typeof name == 'string')) {
1117
+ var nameArray = name.split("|");
1118
+ if ( nameArray.length>=N2Events.nMINHOTSPOTNAMECOMPONENTS && !mylinks[i].id ) {
1119
+ mylinks[i].setAttribute("id","lnx"+this._nextAvailId);
1120
+ ;
1121
+ this._nextAvailId++;
1122
+ }
1123
+ }
1124
+ }
1125
+ }
1126
+ this.invokeFeature = function(linkID, bShow, sNameOverride, nFeatureFlags) {
1127
+ var elem = goN2U.getRawObject(linkID);
1128
+ if (elem == null) {
1129
+ ;
1130
+ return;
1131
+ }
1132
+ nFeatureFlags |= this.fSTATICWITHCLOSE;
1133
+ var oLNI = goN2U.getLinkNameInfo(linkID, sNameOverride);
1134
+ if (!oLNI) {
1135
+ ;
1136
+ return;
1137
+ }
1138
+ var oFeature = this.lookupFeature(oLNI.getFeature());
1139
+ var oFInstance = oFeature.getFeatureInstance(oLNI);
1140
+ if (!oFInstance && bShow) {
1141
+ oFInstance = oFeature.createFeatureInstance(oLNI);
1142
+ }
1143
+ if (!oFInstance) {
1144
+ ;
1145
+ return;
1146
+ }
1147
+ if (bShow) {
1148
+ ;
1149
+ oFInstance.openNow(oLNI, nFeatureFlags);
1150
+ } else {
1151
+ ;
1152
+ oFInstance.closeNow();
1153
+ }
1154
+ }
1155
+ this.qaTestFeature = function(sLinkID, bShow, sNameOverride, sFlags){
1156
+ ;
1157
+ this.invokeFeature(sLinkID, bShow, sNameOverride, sFlags)
1158
+ }
1159
+ this.mouseOverHotspotOpen = function(hotspotElement, nFeatureFlags) {
1160
+ ;
1161
+ var oRegFeature = null;
1162
+ var oFeature = null;
1163
+ var sInstanceName;
1164
+ var oHInstance = null;
1165
+ var oLNI = goN2U.getLinkNameInfo(hotspotElement.id);
1166
+ if (oLNI) {
1167
+ oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
1168
+ oFeature = oRegFeature.getFeature();
1169
+ sInstanceName = oFeature.getHotspotInstanceName(oLNI);
1170
+ oHInstance = oFeature.getHotspotInstance(oLNI);
1171
+ }
1172
+ this.broadcastMouseOwner(oRegFeature, sInstanceName);
1173
+ if (oHInstance) {
1174
+ oHInstance.mouseOverOpen(oLNI, nFeatureFlags);
1175
+ } else {
1176
+ ;
1177
+ }
1178
+ }
1179
+ this.mouseOverHotspotTrack = function(hotspotElement) {
1180
+ ;
1181
+ var oRegFeature = null;
1182
+ var oFeature = null;
1183
+ var oHInstance = null;
1184
+ var sInstanceName;
1185
+ var oLNI = goN2U.getLinkNameInfo(hotspotElement.id);
1186
+ if (oLNI) {
1187
+ oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
1188
+ oFeature = oRegFeature.getFeature();
1189
+ sInstanceName = oFeature.getHotspotInstanceName(oLNI);
1190
+ oHInstance = oFeature.getHotspotInstance(oLNI);
1191
+ }
1192
+ this.broadcastMouseOwner(oRegFeature, sInstanceName);
1193
+ if (oHInstance) {
1194
+ oHInstance.mouseOverTrack(oLNI);
1195
+ } else {
1196
+ ;
1197
+ }
1198
+ }
1199
+ this.mouseClickHotspotOpen = function(hotspotElement, nFeatureFlags) {
1200
+ ;
1201
+ var oRegFeature = null;
1202
+ var oFeature = null;
1203
+ var oHInstance = null;
1204
+ var oLNI = goN2U.getLinkNameInfo(hotspotElement.id);
1205
+ if (oLNI) {
1206
+ oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
1207
+ oFeature = oRegFeature.getFeature();
1208
+ oHInstance = oFeature.getHotspotInstance(oLNI);
1209
+ }
1210
+ this.broadcastMouseOwner(oRegFeature, oFeature.getHotspotInstanceName(oLNI));
1211
+ if (oHInstance) {
1212
+ oHInstance.mouseClickOpen(oLNI, nFeatureFlags);
1213
+ } else {
1214
+ ;//goN2Debug.warning("N2Events mouseClickHotspotOpen -- unknown hotspot '" + (oFeature ? oFeature.getHotspotInstanceName(oLNI) : "") + "'");
1215
+ }
1216
+ return false;
1217
+ }
1218
+ this.mouseOutHotspotClose = function(hotspotElement) {
1219
+ ;
1220
+ var oRegFeature = null;
1221
+ var oFeature = null;
1222
+ var oHInstance = null;
1223
+ var oLNI = goN2U.getLinkNameInfo(hotspotElement.id);
1224
+ if (oLNI) {
1225
+ oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
1226
+ oFeature = oRegFeature.getFeature();
1227
+ oHInstance = oFeature.getHotspotInstance(oLNI);
1228
+ }
1229
+ if (oHInstance) {
1230
+ oHInstance.mouseOutClose(oLNI);
1231
+ } else {
1232
+ ;//goN2Debug.warning("N2HEvents mouseOutHotspotClose -- unknown hotspot '" + (oFeature ? oFeature.getHotspotInstanceName(oLNI) : "") + "'");
1233
+ }
1234
+ if (oRegFeature) {
1235
+ this.instanceIsNotMouseOwner(oRegFeature, oFeature.getHotspotInstanceName(oLNI));
1236
+ }
1237
+ }
1238
+ this.mouseOutHotspotTrack = function(hotspotElement) {
1239
+ ;
1240
+ var oLNI = goN2U.getLinkNameInfo(hotspotElement.id);
1241
+ if (oLNI) {
1242
+ var oRegFeature = goN2Events.lookupRegFeature(oLNI.getFeature());
1243
+ if (oRegFeature) {
1244
+ this.instanceIsNotMouseOwner(oRegFeature, oRegFeature.getFeature().getHotspotInstanceName(oLNI));
1245
+ }
1246
+ }
1247
+ }
1248
+ this._getFInstanceFromCallbackArg = function(oFInstanceOrWrappedFeature) {
1249
+ var oFInstance;
1250
+ if (!goN2U.objIsInstanceOf(oFInstanceOrWrappedFeature, N2FInstance)) {
1251
+ var oFeature = this._getFeatureFromWrappedFeature(oFInstanceOrWrappedFeature);
1252
+ ;
1253
+ oFInstance = oFeature.getActiveWrappedFInstance();
1254
+ ;
1255
+ } else {
1256
+ oFInstance = oFInstanceOrWrappedFeature;
1257
+ ;
1258
+ }
1259
+ return oFInstance;
1260
+ }
1261
+ this.mouseOverFeature = function(oFInstanceOrWrappedFeature) {
1262
+ ;
1263
+ if (!oFInstanceOrWrappedFeature) {
1264
+ ;
1265
+ return;
1266
+ }
1267
+ var oFInstance = this._getFInstanceFromCallbackArg(oFInstanceOrWrappedFeature);
1268
+ if (oFInstance) {
1269
+ this.broadcastMouseOwner(oFInstance.getRegFeatureOpened(), oFInstance.getInstanceName());
1270
+ oFInstance.mouseOver();
1271
+ }
1272
+ }
1273
+ this.mouseOutFeature = function(oFInstanceOrWrappedFeature) {
1274
+ ;
1275
+ if (!oFInstanceOrWrappedFeature) {
1276
+ ;
1277
+ return;
1278
+ }
1279
+ var oFInstance = this._getFInstanceFromCallbackArg(oFInstanceOrWrappedFeature);
1280
+ if (oFInstance) {
1281
+ this.instanceIsNotMouseOwner(oFInstance.getRegFeatureOpened(), oFInstance.getInstanceName());
1282
+ oFInstance.mouseOut();
1283
+ }
1284
+ }
1285
+ this.overlayClosed = function(oFInstanceOrWrappedFeature) {
1286
+ ;
1287
+ if (!oFInstanceOrWrappedFeature) {
1288
+ ;
1289
+ return;
1290
+ }
1291
+ var oFInstance = this._getFInstanceFromCallbackArg(oFInstanceOrWrappedFeature);
1292
+ oFInstance.overlayClosed();
1293
+ this.toggleObjects("show");
1294
+ ;
1295
+ }
1296
+ this.overlayChanged = function(oFInstanceOrWrappedFeature) {
1297
+ ;
1298
+ if (!oFInstanceOrWrappedFeature) {
1299
+ ;
1300
+ return;
1301
+ }
1302
+ if (this._featureChangedTimer) {
1303
+ clearTimeout(this._featureChangedTimer);
1304
+ }
1305
+ var oFInstance = this._getFInstanceFromCallbackArg(oFInstanceOrWrappedFeature);
1306
+ var oElem = oFInstance.getRawObject();
1307
+ ;
1308
+ if (oElem) {
1309
+ this._featureChangedTimer = setTimeout("goN2Events._overlayChangedTimerAction('"+oElem.id+"')", 200);
1310
+ }
1311
+ }
1312
+ this._overlayChangedTimerAction = function(sElementID) {
1313
+ ;
1314
+ this.toggleObjects("show", sElementID);
1315
+ this.toggleObjects("hide", sElementID);
1316
+ this._featureChangedTimer = null;
1317
+ }
1318
+ }
1319
+ window.N2Events.fNONSTATIC = 0;
1320
+ window.N2Events.fSEMISTATIC = 1;
1321
+ window.N2Events.fSTATICWITHCLOSE = 3;
1322
+ window.N2Events.nMINHOTSPOTNAMECOMPONENTS = 2; // name="feature|type|key..." must have at least feature and type
1323
+ window.goN2Events = new N2Events();
1324
+ goN2Events.initialize();
1325
+ window.n2InitEvents = function() {
1326
+ ;
1327
+ }
1328
+ window.qaAddIDsToNamedLinks = function() { goN2Events.qaAddIDsToNamedLinks(); };
1329
+ window.n2MouseOverFeature = function(oFInstanceOrWrappedFeature) { goN2Events.mouseOverFeature(oFInstanceOrWrappedFeature); }
1330
+ window.n2MouseOutFeature = function(oFInstanceOrWrappedFeature) { goN2Events.mouseOutFeature(oFInstanceOrWrappedFeature); }
1331
+ window.n2OverlayClosed = function(oFInstanceOrWrappedFeature) { goN2Events.overlayClosed(oFInstanceOrWrappedFeature); }
1332
+ window.n2OverlayChanged = function(oFInstanceOrWrappedFeature) { goN2Events.overlayChanged(oFInstanceOrWrappedFeature); }
1333
+ window.n2MouseOverHotspotNop = function() {
1334
+ if (typeof goN2Events == "object") {
1335
+ return goN2Events.mouseOverHotspotTrack(this);
1336
+ }
1337
+ }
1338
+ window.n2MouseOverHotspot = function() {
1339
+ if (typeof goN2Events == "object") {
1340
+ return goN2Events.mouseOverHotspotOpen(this, N2Events.fNONSTATIC);
1341
+ }
1342
+ }
1343
+ window.n2MouseOverHotspotStatic = function() {
1344
+ if (typeof goN2Events == "object") {
1345
+ return goN2Events.mouseOverHotspotOpen(this, N2Events.fSTATICWITHCLOSE);
1346
+ }
1347
+ }
1348
+ window.n2MouseOverHotspotSemiStatic = function() {
1349
+ if (typeof goN2Events == "object") {
1350
+ return goN2Events.mouseOverHotspotOpen(this, N2Events.fSEMISTATIC);
1351
+ }
1352
+ }
1353
+ window.n2HotspotClick = function() {
1354
+ if (typeof goN2Events == "object") {
1355
+ return goN2Events.mouseClickHotspotOpen(this, N2Events.fNONSTATIC);
1356
+ }
1357
+ }
1358
+ window.n2HotspotClickStatic = function() {
1359
+ if (typeof goN2Events == "object") {
1360
+ return goN2Events.mouseClickHotspotOpen(this, N2Events.fSTATICWITHCLOSE);
1361
+ }
1362
+ }
1363
+ window.n2HotspotClickSemiStatic = function() {
1364
+ if (typeof goN2Events == "object") {
1365
+ return goN2Events.mouseClickHotspotOpen(this, N2Events.fSEMISTATIC);
1366
+ }
1367
+ }
1368
+ window.n2MouseOutHotspotNop = function() {
1369
+ if (typeof goN2Events == "object") {
1370
+ goN2Events.mouseOutHotspotTrack(this);
1371
+ }
1372
+ }
1373
+ window.n2MouseOutHotspot = function() {
1374
+ if (typeof goN2Events == "object") {
1375
+ if (window.event && event.toElement) {
1376
+ var grabberId = (goN2U.isDefined(N2SimplePopover) ? N2SimplePopover.sClickGrabberID : goN2U.sAnimationDivID);
1377
+ if (event.toElement.id == goN2U.sAnimationDivID || event.toElement.id == grabberId) {
1378
+ ;
1379
+ return;
1380
+ }
1381
+ }
1382
+ goN2Events.mouseOutHotspotClose(this);
1383
+ }
1384
+ }
1385
+ window.n2HotspotDisableFeature = function(nMs, oFInstanceOrWrappedFeature) {
1386
+ if (typeof goN2Events != "object") {
1387
+ return;
1388
+ }
1389
+ if (!oFInstanceOrWrappedFeature) {
1390
+ ;
1391
+ return;
1392
+ }
1393
+ ;
1394
+ var oFeature;
1395
+ if (_n2ObjectIsFInstance(oFInstanceOrWrappedFeature)) {
1396
+ var oFInstance = oFInstanceOrWrappedFeature;
1397
+ oFeature = oFInstance.getFeature();
1398
+ } else {
1399
+ oFeature = goN2Events._getFeatureFromWrappedFeature(oFInstanceOrWrappedFeature);
1400
+ ;
1401
+ }
1402
+ oFeature.disableFeature(nMS);
1403
+ return true;
1404
+ }
1405
+ if (window.goN2LibMon) goN2LibMon.endLoad('events');
1406
+ } // END library code wrapper
1407
+ n2RunIfLoaded("utilities", n2EventsInitLibrary, "events");