wbase 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (875) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/fonts/FontAwesome.otf +0 -0
  3. data/app/assets/fonts/Material-Design-Iconic-Font.eot +0 -0
  4. data/app/assets/fonts/Material-Design-Iconic-Font.svg +773 -0
  5. data/app/assets/fonts/Material-Design-Iconic-Font.ttf +0 -0
  6. data/app/assets/fonts/Material-Design-Iconic-Font.woff +0 -0
  7. data/app/assets/fonts/Simple-Line-Icons.eot +0 -0
  8. data/app/assets/fonts/Simple-Line-Icons.svg +211 -0
  9. data/app/assets/fonts/Simple-Line-Icons.ttf +0 -0
  10. data/app/assets/fonts/Simple-Line-Icons.woff +0 -0
  11. data/app/assets/fonts/Simple-Line-Icons.woff2 +0 -0
  12. data/app/assets/fonts/et-line.eot +0 -0
  13. data/app/assets/fonts/et-line.svg +1 -1
  14. data/app/assets/fonts/et-line.ttf +0 -0
  15. data/app/assets/fonts/et-line.woff +0 -0
  16. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  17. data/app/assets/fonts/fontawesome-webfont.svg +685 -0
  18. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  19. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  20. data/app/assets/fonts/fontawesome-webfont.woff2 +0 -0
  21. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  22. data/app/assets/fonts/glyphicons-halflings-regular.svg +1 -1
  23. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  24. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  25. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  26. data/app/assets/fonts/ionicons.eot +0 -0
  27. data/app/assets/fonts/ionicons.svg +1899 -0
  28. data/app/assets/fonts/ionicons.ttf +0 -0
  29. data/app/assets/fonts/ionicons.woff +0 -0
  30. data/app/assets/fonts/themify.eot +0 -0
  31. data/app/assets/fonts/themify.svg +362 -0
  32. data/app/assets/fonts/themify.ttf +0 -0
  33. data/app/assets/fonts/themify.woff +0 -0
  34. data/app/assets/fonts/typicons.eot +0 -0
  35. data/app/assets/fonts/typicons.less +1040 -0
  36. data/app/assets/fonts/typicons.svg +1180 -0
  37. data/app/assets/fonts/typicons.ttf +0 -0
  38. data/app/assets/fonts/typicons.woff +0 -0
  39. data/app/assets/fonts/weathericons-regular-webfont.eot +0 -0
  40. data/app/assets/fonts/weathericons-regular-webfont.svg +257 -0
  41. data/app/assets/fonts/weathericons-regular-webfont.ttf +0 -0
  42. data/app/assets/fonts/weathericons-regular-webfont.woff +0 -0
  43. data/app/assets/fonts/weathericons-regular-webfont.woff2 +0 -0
  44. data/app/assets/javascripts/wbase/admin/animate/animate.min.css +11 -0
  45. data/app/assets/javascripts/wbase/admin/autoNumeric/autoNumeric.js +1465 -0
  46. data/app/assets/javascripts/wbase/admin/autocomplete/autocomplete.zip +0 -0
  47. data/app/assets/javascripts/wbase/admin/autocomplete/countries.js +267 -0
  48. data/app/assets/javascripts/wbase/admin/autocomplete/demo.js +77 -0
  49. data/app/assets/javascripts/wbase/admin/autocomplete/jquery.autocomplete.min.js +8 -0
  50. data/app/assets/javascripts/wbase/admin/autocomplete/jquery.mockjax.js +601 -0
  51. data/app/assets/javascripts/wbase/admin/autocomplete.js +77 -0
  52. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/css/bootstrap-colorpicker.css +222 -0
  53. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/css/bootstrap-colorpicker.css.map +1 -0
  54. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css +10 -0
  55. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css.map +1 -0
  56. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  57. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/img/bootstrap-colorpicker/alpha.png +0 -0
  58. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/img/bootstrap-colorpicker/hue-horizontal.png +0 -0
  59. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/img/bootstrap-colorpicker/hue.png +0 -0
  60. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/img/bootstrap-colorpicker/saturation.png +0 -0
  61. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/js/bootstrap-colorpicker.js +1106 -0
  62. data/app/assets/javascripts/wbase/admin/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js +5 -0
  63. data/app/assets/javascripts/wbase/admin/bootstrap-datepicker/css/bootstrap-datepicker.min.css +9 -0
  64. data/app/assets/javascripts/wbase/admin/bootstrap-datepicker/js/bootstrap-datepicker.min.js +10 -0
  65. data/app/assets/javascripts/wbase/admin/bootstrap-daterangepicker/daterangepicker.css +269 -0
  66. data/app/assets/javascripts/wbase/admin/bootstrap-daterangepicker/daterangepicker.js +1618 -0
  67. data/app/assets/javascripts/wbase/admin/bootstrap-daterangepicker/drp.png +0 -0
  68. data/app/assets/javascripts/wbase/admin/bootstrap-filestyle/js/bootstrap-filestyle.js +351 -0
  69. data/app/assets/javascripts/wbase/admin/bootstrap-filestyle/js/bootstrap-filestyle.min.js +1 -0
  70. data/app/assets/javascripts/wbase/admin/bootstrap-inputmask/bootstrap-inputmask.min.js +7 -0
  71. data/app/assets/javascripts/wbase/admin/bootstrap-markdown/css/bootstrap-markdown.min.css +1 -0
  72. data/app/assets/javascripts/wbase/admin/bootstrap-markdown/js/bootstrap-markdown.js +1362 -0
  73. data/app/assets/javascripts/wbase/admin/bootstrap-maxlength/bootstrap-maxlength.js +501 -0
  74. data/app/assets/javascripts/wbase/admin/bootstrap-maxlength/bootstrap-maxlength.min.js +10 -0
  75. data/app/assets/javascripts/wbase/admin/bootstrap-maxlength/src/bootstrap-maxlength.js +501 -0
  76. data/app/assets/javascripts/wbase/admin/bootstrap-select/css/bootstrap-select.min.css +6 -0
  77. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/bootstrap-select.js +1735 -0
  78. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/bootstrap-select.js.map +1 -0
  79. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/bootstrap-select.min.js +8 -0
  80. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ar_AR.js +49 -0
  81. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ar_AR.min.js +12 -0
  82. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-bg_BG.js +44 -0
  83. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-bg_BG.min.js +7 -0
  84. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-cro_CRO.js +44 -0
  85. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-cro_CRO.min.js +7 -0
  86. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-cs_CZ.js +35 -0
  87. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-cs_CZ.min.js +7 -0
  88. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-da_DK.js +44 -0
  89. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-da_DK.min.js +7 -0
  90. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-de_DE.js +35 -0
  91. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-de_DE.min.js +7 -0
  92. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-en_US.js +44 -0
  93. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-en_US.min.js +7 -0
  94. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-es_CL.js +35 -0
  95. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-es_CL.min.js +7 -0
  96. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-eu.js +35 -0
  97. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-eu.min.js +7 -0
  98. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fa_IR.js +37 -0
  99. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fa_IR.min.js +7 -0
  100. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fi_FI.js +44 -0
  101. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fi_FI.min.js +7 -0
  102. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fr_FR.js +44 -0
  103. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-fr_FR.min.js +7 -0
  104. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-hu_HU.js +44 -0
  105. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-hu_HU.min.js +7 -0
  106. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-id_ID.js +37 -0
  107. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-id_ID.min.js +7 -0
  108. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-it_IT.js +35 -0
  109. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-it_IT.min.js +7 -0
  110. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ko_KR.js +44 -0
  111. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ko_KR.min.js +7 -0
  112. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-lt_LT.js +44 -0
  113. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-lt_LT.min.js +7 -0
  114. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-nb_NO.js +70 -0
  115. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-nb_NO.min.js +13 -0
  116. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-nl_NL.js +35 -0
  117. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-nl_NL.min.js +7 -0
  118. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pl_PL.js +37 -0
  119. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pl_PL.min.js +7 -0
  120. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pt_BR.js +35 -0
  121. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pt_BR.min.js +7 -0
  122. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pt_PT.js +35 -0
  123. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-pt_PT.min.js +7 -0
  124. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ro_RO.js +35 -0
  125. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ro_RO.min.js +7 -0
  126. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ru_RU.js +36 -0
  127. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ru_RU.min.js +7 -0
  128. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sk_SK.js +37 -0
  129. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sk_SK.min.js +7 -0
  130. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sl_SI.js +44 -0
  131. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sl_SI.min.js +7 -0
  132. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sv_SE.js +44 -0
  133. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-sv_SE.min.js +7 -0
  134. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-tr_TR.js +44 -0
  135. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-tr_TR.min.js +7 -0
  136. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ua_UA.js +35 -0
  137. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-ua_UA.min.js +7 -0
  138. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-zh_CN.js +35 -0
  139. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-zh_CN.min.js +7 -0
  140. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-zh_TW.js +37 -0
  141. data/app/assets/javascripts/wbase/admin/bootstrap-select/js/i18n/defaults-zh_TW.min.js +7 -0
  142. data/app/assets/javascripts/wbase/admin/bootstrap-slider/css/bootstrap-slider.min.css +28 -0
  143. data/app/assets/javascripts/wbase/admin/bootstrap-slider/js/bootstrap-slider.min.js +29 -0
  144. data/app/assets/javascripts/wbase/admin/bootstrap-sweetalert/sweet-alert.css +564 -0
  145. data/app/assets/javascripts/wbase/admin/bootstrap-sweetalert/sweet-alert.js +745 -0
  146. data/app/assets/javascripts/wbase/admin/bootstrap-sweetalert/sweet-alert.min.js +1 -0
  147. data/app/assets/javascripts/wbase/admin/bootstrap-sweetalert/thumbs-up.jpg +0 -0
  148. data/app/assets/javascripts/wbase/admin/bootstrap-table/css/bootstrap-table.min.css +1 -0
  149. data/app/assets/javascripts/wbase/admin/bootstrap-table/js/bootstrap-table.min.js +8 -0
  150. data/app/assets/javascripts/wbase/admin/bootstrap-tagsinput/css/bootstrap-tagsinput.css +60 -0
  151. data/app/assets/javascripts/wbase/admin/bootstrap-tagsinput/js/bootstrap-tagsinput.min.js +7 -0
  152. data/app/assets/javascripts/wbase/admin/bootstrap-touchspin/css/jquery.bootstrap-touchspin.min.css +10 -0
  153. data/app/assets/javascripts/wbase/admin/bootstrap-touchspin/js/jquery.bootstrap-touchspin.min.js +9 -0
  154. data/app/assets/javascripts/wbase/admin/bootstrap.min.js +7 -0
  155. data/app/assets/javascripts/wbase/admin/c3/c3.css +158 -0
  156. data/app/assets/javascripts/wbase/admin/c3/c3.js +7049 -0
  157. data/app/assets/javascripts/wbase/admin/c3/c3.min.css +1 -0
  158. data/app/assets/javascripts/wbase/admin/c3/c3.min.js +5 -0
  159. data/app/assets/javascripts/wbase/admin/chart.js/chart.min.js +14 -0
  160. data/app/assets/javascripts/wbase/admin/chartist/css/chartist.min.css +1 -0
  161. data/app/assets/javascripts/wbase/admin/chartist/js/chartist-plugin-tooltip.min.js +8 -0
  162. data/app/assets/javascripts/wbase/admin/chartist/js/chartist.min.js +10 -0
  163. data/app/assets/javascripts/wbase/admin/clockpicker/css/bootstrap-clockpicker.min.css +5 -0
  164. data/app/assets/javascripts/wbase/admin/clockpicker/js/bootstrap-clockpicker.min.js +6 -0
  165. data/app/assets/javascripts/wbase/admin/codemirror/css/ambiance.css +74 -0
  166. data/app/assets/javascripts/wbase/admin/codemirror/css/codemirror.css +347 -0
  167. data/app/assets/javascripts/wbase/admin/codemirror/js/codemirror.js +8935 -0
  168. data/app/assets/javascripts/wbase/admin/codemirror/js/formatting.js +108 -0
  169. data/app/assets/javascripts/wbase/admin/codemirror/js/javascript.js +638 -0
  170. data/app/assets/javascripts/wbase/admin/codemirror/js/xml.js +333 -0
  171. data/app/assets/javascripts/wbase/admin/countdown/dest/countdown.js +195 -0
  172. data/app/assets/javascripts/wbase/admin/countdown/dest/countdown.min.js +1 -0
  173. data/app/assets/javascripts/wbase/admin/countdown/dest/jquery.countdown.js +215 -0
  174. data/app/assets/javascripts/wbase/admin/countdown/dest/jquery.countdown.min.js +1 -0
  175. data/app/assets/javascripts/wbase/admin/countdown/src/countdown.js +191 -0
  176. data/app/assets/javascripts/wbase/admin/countdown/src/jquery-wrapper.js +18 -0
  177. data/app/assets/javascripts/wbase/admin/counterup/jquery.counterup.min.js +8 -0
  178. data/app/assets/javascripts/wbase/admin/cropper/cropper.css +315 -0
  179. data/app/assets/javascripts/wbase/admin/cropper/cropper.js +2457 -0
  180. data/app/assets/javascripts/wbase/admin/cropper/cropper.min.css +9 -0
  181. data/app/assets/javascripts/wbase/admin/cropper/cropper.min.js +9 -0
  182. data/app/assets/javascripts/wbase/admin/custombox/css/custombox.css +872 -0
  183. data/app/assets/javascripts/wbase/admin/custombox/js/custombox.min.js +10 -0
  184. data/app/assets/javascripts/wbase/admin/custombox/js/legacy.min.js +18 -0
  185. data/app/assets/javascripts/wbase/admin/d3/d3.js +9426 -0
  186. data/app/assets/javascripts/wbase/admin/d3/d3.min.js +5 -0
  187. data/app/assets/javascripts/wbase/admin/datatables/buttons.bootstrap.min.js +6 -0
  188. data/app/assets/javascripts/wbase/admin/datatables/buttons.html5.min.js +20 -0
  189. data/app/assets/javascripts/wbase/admin/datatables/buttons.print.min.js +4 -0
  190. data/app/assets/javascripts/wbase/admin/datatables/dataTables.bootstrap.js +186 -0
  191. data/app/assets/javascripts/wbase/admin/datatables/dataTables.buttons.min.js +35 -0
  192. data/app/assets/javascripts/wbase/admin/datatables/dataTables.colVis.js +1107 -0
  193. data/app/assets/javascripts/wbase/admin/datatables/dataTables.fixedColumns.min.js +35 -0
  194. data/app/assets/javascripts/wbase/admin/datatables/dataTables.fixedHeader.min.js +16 -0
  195. data/app/assets/javascripts/wbase/admin/datatables/dataTables.keyTable.min.js +18 -0
  196. data/app/assets/javascripts/wbase/admin/datatables/dataTables.responsive.min.js +23 -0
  197. data/app/assets/javascripts/wbase/admin/datatables/dataTables.scroller.min.js +25 -0
  198. data/app/assets/javascripts/wbase/admin/datatables/jquery.dataTables.min.js +163 -0
  199. data/app/assets/javascripts/wbase/admin/datatables/json/scroller-demo.json +2502 -0
  200. data/app/assets/javascripts/wbase/admin/datatables/jszip.min.js +14 -0
  201. data/app/assets/javascripts/wbase/admin/datatables/pdfmake.min.js +22 -0
  202. data/app/assets/javascripts/wbase/admin/datatables/responsive.bootstrap.min.js +7 -0
  203. data/app/assets/javascripts/wbase/admin/datatables/vfs_fonts.js +1 -0
  204. data/app/assets/javascripts/wbase/admin/datatables.editable.init.js +244 -0
  205. data/app/assets/javascripts/wbase/admin/datatables.init.js +37 -0
  206. data/app/assets/javascripts/wbase/admin/detect.js +7 -0
  207. data/app/assets/javascripts/wbase/admin/doc-ready/README.md +23 -0
  208. data/app/assets/javascripts/wbase/admin/doc-ready/bower.json +35 -0
  209. data/app/assets/javascripts/wbase/admin/doc-ready/doc-ready.js +80 -0
  210. data/app/assets/javascripts/wbase/admin/dropzone/basic.css +39 -0
  211. data/app/assets/javascripts/wbase/admin/dropzone/dropzone-amd-module.js +1743 -0
  212. data/app/assets/javascripts/wbase/admin/dropzone/dropzone.css +388 -0
  213. data/app/assets/javascripts/wbase/admin/dropzone/dropzone.js +1728 -0
  214. data/app/assets/javascripts/wbase/admin/dropzone/readme.md +10 -0
  215. data/app/assets/javascripts/wbase/admin/easy-pie-chart.init.js +63 -0
  216. data/app/assets/javascripts/wbase/admin/eventEmitter/EventEmitter.js +472 -0
  217. data/app/assets/javascripts/wbase/admin/eventEmitter/EventEmitter.min.js +7 -0
  218. data/app/assets/javascripts/wbase/admin/eventie/eventie.js +82 -0
  219. data/app/assets/javascripts/wbase/admin/fastclick.js +841 -0
  220. data/app/assets/javascripts/wbase/admin/fizzy-ui-utils/utils.js +270 -0
  221. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.crosshair.js +176 -0
  222. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.min.js +8 -0
  223. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.orderBars.min.js +186 -0
  224. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.pie.js +820 -0
  225. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.resize.js +59 -0
  226. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.selection.js +360 -0
  227. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.stack.js +188 -0
  228. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.time.js +432 -0
  229. data/app/assets/javascripts/wbase/admin/flot-chart/jquery.flot.tooltip.min.js +12 -0
  230. data/app/assets/javascripts/wbase/admin/footable/css/fonts/footable.eot +0 -0
  231. data/app/assets/javascripts/wbase/admin/footable/css/fonts/footable.svg +78 -0
  232. data/app/assets/javascripts/wbase/admin/footable/css/fonts/footable.ttf +0 -0
  233. data/app/assets/javascripts/wbase/admin/footable/css/fonts/footable.woff +0 -0
  234. data/app/assets/javascripts/wbase/admin/footable/css/footable.core.css +181 -0
  235. data/app/assets/javascripts/wbase/admin/footable/js/footable.all.min.js +14 -0
  236. data/app/assets/javascripts/wbase/admin/form-validation-init.js +106 -0
  237. data/app/assets/javascripts/wbase/admin/fullcalendar/css/fullcalendar.min.css +5 -0
  238. data/app/assets/javascripts/wbase/admin/fullcalendar/js/fullcalendar.min.js +9 -0
  239. data/app/assets/javascripts/wbase/admin/get-size/get-size.js +250 -0
  240. data/app/assets/javascripts/wbase/admin/get-style-property/get-style-property.js +55 -0
  241. data/app/assets/javascripts/wbase/admin/gmaps/gmaps.js +2204 -0
  242. data/app/assets/javascripts/wbase/admin/gmaps/gmaps.min.js +2 -0
  243. data/app/assets/javascripts/wbase/admin/gmaps/gmaps.min.js.map +1 -0
  244. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.controls.js +83 -0
  245. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.core.js +488 -0
  246. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.events.js +54 -0
  247. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.geofences.js +14 -0
  248. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.geometry.js +205 -0
  249. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.layers.js +158 -0
  250. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.map_types.js +29 -0
  251. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.markers.js +210 -0
  252. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.native_extensions.js +121 -0
  253. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.overlays.js +134 -0
  254. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.routes.js +330 -0
  255. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.static.js +245 -0
  256. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.streetview.js +44 -0
  257. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.styles.js +9 -0
  258. data/app/assets/javascripts/wbase/admin/gmaps/lib/gmaps.utils.js +42 -0
  259. data/app/assets/javascripts/wbase/admin/hopscotch/css/hopscotch.css +519 -0
  260. data/app/assets/javascripts/wbase/admin/hopscotch/css/hopscotch.min.css +17 -0
  261. data/app/assets/javascripts/wbase/admin/hopscotch/img/sprite-green.png +0 -0
  262. data/app/assets/javascripts/wbase/admin/hopscotch/img/sprite-orange.png +0 -0
  263. data/app/assets/javascripts/wbase/admin/hopscotch/js/hopscotch.js +2536 -0
  264. data/app/assets/javascripts/wbase/admin/hopscotch/js/hopscotch.min.js +17 -0
  265. data/app/assets/javascripts/wbase/admin/ion-rangeslider/ion.rangeSlider.css +150 -0
  266. data/app/assets/javascripts/wbase/admin/ion-rangeslider/ion.rangeSlider.min.js +76 -0
  267. data/app/assets/javascripts/wbase/admin/ion-rangeslider/ion.rangeSlider.skinFlat.css +106 -0
  268. data/app/assets/javascripts/wbase/admin/ion-rangeslider/sprite-skin-flat.png +0 -0
  269. data/app/assets/javascripts/wbase/admin/isotope/js/isotope.pkgd.min.js +12 -0
  270. data/app/assets/javascripts/wbase/admin/jquery-circliful/css/jquery.circliful.css +20 -0
  271. data/app/assets/javascripts/wbase/admin/jquery-circliful/js/jquery.circliful.js +262 -0
  272. data/app/assets/javascripts/wbase/admin/jquery-circliful/js/jquery.circliful.min.js +1 -0
  273. data/app/assets/javascripts/wbase/admin/jquery-datatables-editable/dataTables.bootstrap.js +186 -0
  274. data/app/assets/javascripts/wbase/admin/jquery-datatables-editable/datatables.css +333 -0
  275. data/app/assets/javascripts/wbase/admin/jquery-datatables-editable/jquery.dataTables.js +14951 -0
  276. data/app/assets/javascripts/wbase/admin/jquery-knob/excanvas.js +924 -0
  277. data/app/assets/javascripts/wbase/admin/jquery-knob/jquery.knob.js +805 -0
  278. data/app/assets/javascripts/wbase/admin/jquery-quicksearch/jquery.quicksearch.js +181 -0
  279. data/app/assets/javascripts/wbase/admin/jquery-sparkline/jquery.sparkline.min.js +5 -0
  280. data/app/assets/javascripts/wbase/admin/jquery-ui/external/jquery/jquery.js +9789 -0
  281. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  282. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  283. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  284. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  285. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  286. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  287. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  288. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  289. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  290. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  291. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-icons_228ef1_256x240.png +0 -0
  292. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-icons_ef8c08_256x240.png +0 -0
  293. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-icons_ffd27a_256x240.png +0 -0
  294. data/app/assets/javascripts/wbase/admin/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  295. data/app/assets/javascripts/wbase/admin/jquery-ui/index.html +513 -0
  296. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.css +1225 -0
  297. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.js +16617 -0
  298. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.min.css +7 -0
  299. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.min.js +13 -0
  300. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.structure.css +833 -0
  301. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.structure.min.css +5 -0
  302. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.theme.css +410 -0
  303. data/app/assets/javascripts/wbase/admin/jquery-ui/jquery-ui.theme.min.css +5 -0
  304. data/app/assets/javascripts/wbase/admin/jquery-validation/js/jquery.validate.min.js +4 -0
  305. data/app/assets/javascripts/wbase/admin/jquery.app.js +318 -0
  306. data/app/assets/javascripts/wbase/admin/jquery.blockUI.js +620 -0
  307. data/app/assets/javascripts/wbase/admin/jquery.bs-table.js +93 -0
  308. data/app/assets/javascripts/wbase/admin/jquery.c3-chart.init.js +225 -0
  309. data/app/assets/javascripts/wbase/admin/jquery.chartist.init.js +860 -0
  310. data/app/assets/javascripts/wbase/admin/jquery.chartjs.init.js +231 -0
  311. data/app/assets/javascripts/wbase/admin/jquery.charts-sparkline.js +149 -0
  312. data/app/assets/javascripts/wbase/admin/jquery.chat.js +60 -0
  313. data/app/assets/javascripts/wbase/admin/jquery.codemirror.init.js +66 -0
  314. data/app/assets/javascripts/wbase/admin/jquery.core.js +323 -0
  315. data/app/assets/javascripts/wbase/admin/jquery.dashboard.js +91 -0
  316. data/app/assets/javascripts/wbase/admin/jquery.dashboard_2.js +57 -0
  317. data/app/assets/javascripts/wbase/admin/jquery.dashboard_3.js +64 -0
  318. data/app/assets/javascripts/wbase/admin/jquery.dashboard_4.js +81 -0
  319. data/app/assets/javascripts/wbase/admin/jquery.dashboard_crm.js +104 -0
  320. data/app/assets/javascripts/wbase/admin/jquery.dashboard_ecommerce.js +57 -0
  321. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/angular.easypiechart.js +397 -0
  322. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/angular.easypiechart.min.js +9 -0
  323. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/easypiechart.js +351 -0
  324. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/easypiechart.min.js +9 -0
  325. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/jquery.easypiechart.js +360 -0
  326. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/dist/jquery.easypiechart.min.js +9 -0
  327. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/src/angular.directive.js +48 -0
  328. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/src/easypiechart.js +134 -0
  329. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/src/jquery.plugin.js +10 -0
  330. data/app/assets/javascripts/wbase/admin/jquery.easy-pie-chart/src/renderer/canvas.js +190 -0
  331. data/app/assets/javascripts/wbase/admin/jquery.flot.init.js +500 -0
  332. data/app/assets/javascripts/wbase/admin/jquery.footable.js +86 -0
  333. data/app/assets/javascripts/wbase/admin/jquery.form-advanced.init.js +126 -0
  334. data/app/assets/javascripts/wbase/admin/jquery.form-pickers.init.js +130 -0
  335. data/app/assets/javascripts/wbase/admin/jquery.fullcalendar.js +202 -0
  336. data/app/assets/javascripts/wbase/admin/jquery.gmaps.js +226 -0
  337. data/app/assets/javascripts/wbase/admin/jquery.jsgrid.init.js +123 -0
  338. data/app/assets/javascripts/wbase/admin/jquery.leads.init.js +53 -0
  339. data/app/assets/javascripts/wbase/admin/jquery.min.js +5 -0
  340. data/app/assets/javascripts/wbase/admin/jquery.nicescroll.js +113 -0
  341. data/app/assets/javascripts/wbase/admin/jquery.nvd3.init.js +297 -0
  342. data/app/assets/javascripts/wbase/admin/jquery.opportunities.init.js +49 -0
  343. data/app/assets/javascripts/wbase/admin/jquery.peity.init.js +49 -0
  344. data/app/assets/javascripts/wbase/admin/jquery.rickshaw.chart.init.js +288 -0
  345. data/app/assets/javascripts/wbase/admin/jquery.scrollTo.min.js +7 -0
  346. data/app/assets/javascripts/wbase/admin/jquery.slimscroll.js +474 -0
  347. data/app/assets/javascripts/wbase/admin/jquery.steps/css/jquery.steps.css +382 -0
  348. data/app/assets/javascripts/wbase/admin/jquery.steps/js/jquery.steps.min.js +6 -0
  349. data/app/assets/javascripts/wbase/admin/jquery.sweet-alert.init.js +162 -0
  350. data/app/assets/javascripts/wbase/admin/jquery.todo.js +153 -0
  351. data/app/assets/javascripts/wbase/admin/jquery.tree.js +89 -0
  352. data/app/assets/javascripts/wbase/admin/jquery.ui-sliders.js +66 -0
  353. data/app/assets/javascripts/wbase/admin/jquery.widgets.js +149 -0
  354. data/app/assets/javascripts/wbase/admin/jquery.wizard-init.js +87 -0
  355. data/app/assets/javascripts/wbase/admin/jquery.xeditable.js +117 -0
  356. data/app/assets/javascripts/wbase/admin/jsgrid/css/jsgrid-theme.css +258 -0
  357. data/app/assets/javascripts/wbase/admin/jsgrid/css/jsgrid-theme.min.css +7 -0
  358. data/app/assets/javascripts/wbase/admin/jsgrid/css/jsgrid.css +126 -0
  359. data/app/assets/javascripts/wbase/admin/jsgrid/css/jsgrid.min.css +7 -0
  360. data/app/assets/javascripts/wbase/admin/jsgrid/js/jsgrid.js +2508 -0
  361. data/app/assets/javascripts/wbase/admin/jsgrid/js/jsgrid.min.js +8 -0
  362. data/app/assets/javascripts/wbase/admin/jstree/32px.png +0 -0
  363. data/app/assets/javascripts/wbase/admin/jstree/40px.png +0 -0
  364. data/app/assets/javascripts/wbase/admin/jstree/ajax_children.json +1 -0
  365. data/app/assets/javascripts/wbase/admin/jstree/ajax_roots.json +8 -0
  366. data/app/assets/javascripts/wbase/admin/jstree/jstree.js +7988 -0
  367. data/app/assets/javascripts/wbase/admin/jstree/jstree.min.js +6 -0
  368. data/app/assets/javascripts/wbase/admin/jstree/style.css +1066 -0
  369. data/app/assets/javascripts/wbase/admin/jstree/style.min.css +1 -0
  370. data/app/assets/javascripts/wbase/admin/jstree/themes/dark/32px.png +0 -0
  371. data/app/assets/javascripts/wbase/admin/jstree/themes/dark/40px.png +0 -0
  372. data/app/assets/javascripts/wbase/admin/jstree/themes/dark/style.css +1110 -0
  373. data/app/assets/javascripts/wbase/admin/jstree/themes/dark/style.min.css +1 -0
  374. data/app/assets/javascripts/wbase/admin/jstree/themes/dark/throbber.gif +0 -0
  375. data/app/assets/javascripts/wbase/admin/jstree/throbber.gif +0 -0
  376. data/app/assets/javascripts/wbase/admin/justgage-toorshia/justgage.js +1051 -0
  377. data/app/assets/javascripts/wbase/admin/jvectormap/gdp-data.js +185 -0
  378. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-2.0.2.css +130 -0
  379. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-2.0.2.min.js +3328 -0
  380. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-asia-mill.js +1 -0
  381. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-au-mill.js +1 -0
  382. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-ca-lcc.js +1 -0
  383. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-de-mill.js +1 -0
  384. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-europe-mill-en.js +1 -0
  385. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-in-mill.js +1 -0
  386. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-uk-mill-en.js +1 -0
  387. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-us-aea-en.js +1 -0
  388. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-us-il-chicago-mill-en.js +1 -0
  389. data/app/assets/javascripts/wbase/admin/jvectormap/jquery-jvectormap-world-mill-en.js +1 -0
  390. data/app/assets/javascripts/wbase/admin/jvectormap.init.js +215 -0
  391. data/app/assets/javascripts/wbase/admin/ladda-buttons/css/ladda-themeless.min.css +7 -0
  392. data/app/assets/javascripts/wbase/admin/ladda-buttons/js/ladda.jquery.min.js +8 -0
  393. data/app/assets/javascripts/wbase/admin/ladda-buttons/js/ladda.min.js +8 -0
  394. data/app/assets/javascripts/wbase/admin/ladda-buttons/js/spin.min.js +1 -0
  395. data/app/assets/javascripts/wbase/admin/magnific-popup/css/magnific-popup.css +369 -0
  396. data/app/assets/javascripts/wbase/admin/magnific-popup/js/jquery.magnific-popup.min.js +4 -0
  397. data/app/assets/javascripts/wbase/admin/masonry/dist/masonry.pkgd.js +3189 -0
  398. data/app/assets/javascripts/wbase/admin/masonry/dist/masonry.pkgd.min.js +9 -0
  399. data/app/assets/javascripts/wbase/admin/masonry/masonry.js +203 -0
  400. data/app/assets/javascripts/wbase/admin/masonry/sandbox/basic.html +62 -0
  401. data/app/assets/javascripts/wbase/admin/masonry/sandbox/bottom-up.html +119 -0
  402. data/app/assets/javascripts/wbase/admin/masonry/sandbox/browserify/index.html +42 -0
  403. data/app/assets/javascripts/wbase/admin/masonry/sandbox/browserify/main.js +19 -0
  404. data/app/assets/javascripts/wbase/admin/masonry/sandbox/element-sizing.html +69 -0
  405. data/app/assets/javascripts/wbase/admin/masonry/sandbox/fit-width.html +68 -0
  406. data/app/assets/javascripts/wbase/admin/masonry/sandbox/fluid.html +89 -0
  407. data/app/assets/javascripts/wbase/admin/masonry/sandbox/jquery.html +64 -0
  408. data/app/assets/javascripts/wbase/admin/masonry/sandbox/require-js/index.html +41 -0
  409. data/app/assets/javascripts/wbase/admin/masonry/sandbox/require-js/main.js +69 -0
  410. data/app/assets/javascripts/wbase/admin/masonry/sandbox/right-to-left.html +120 -0
  411. data/app/assets/javascripts/wbase/admin/masonry/sandbox/sandbox.css +33 -0
  412. data/app/assets/javascripts/wbase/admin/masonry/sandbox/stamps.html +124 -0
  413. data/app/assets/javascripts/wbase/admin/matches-selector/matches-selector.js +107 -0
  414. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.css +251 -0
  415. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css +9 -0
  416. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  417. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/alpha.png +0 -0
  418. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/hue-horizontal.png +0 -0
  419. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/hue.png +0 -0
  420. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/img/bootstrap-colorpicker/saturation.png +0 -0
  421. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js +1079 -0
  422. data/app/assets/javascripts/wbase/admin/mjolnic-bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js +1 -0
  423. data/app/assets/javascripts/wbase/admin/mocha/media/logo.svg +8 -0
  424. data/app/assets/javascripts/wbase/admin/mocha/mocha.css +270 -0
  425. data/app/assets/javascripts/wbase/admin/mocha/mocha.js +5812 -0
  426. data/app/assets/javascripts/wbase/admin/modal-effect/css/component.css +743 -0
  427. data/app/assets/javascripts/wbase/admin/modal-effect/js/classie.js +80 -0
  428. data/app/assets/javascripts/wbase/admin/modal-effect/js/modalEffects.js +57 -0
  429. data/app/assets/javascripts/wbase/admin/modernizr.min.js +1 -0
  430. data/app/assets/javascripts/wbase/admin/moment/moment.js +4195 -0
  431. data/app/assets/javascripts/wbase/admin/morris/morris.css +2 -0
  432. data/app/assets/javascripts/wbase/admin/morris/morris.min.js +7 -0
  433. data/app/assets/javascripts/wbase/admin/morris.init.js +184 -0
  434. data/app/assets/javascripts/wbase/admin/morris.min.js +7 -0
  435. data/app/assets/javascripts/wbase/admin/multiselect/css/multi-select.css +93 -0
  436. data/app/assets/javascripts/wbase/admin/multiselect/img/switch.png +0 -0
  437. data/app/assets/javascripts/wbase/admin/multiselect/js/jquery.multi-select.js +528 -0
  438. data/app/assets/javascripts/wbase/admin/nestable/jquery.nestable.css +74 -0
  439. data/app/assets/javascripts/wbase/admin/nestable/jquery.nestable.js +485 -0
  440. data/app/assets/javascripts/wbase/admin/nestable.js +59 -0
  441. data/app/assets/javascripts/wbase/admin/notifications/notification.css +56 -0
  442. data/app/assets/javascripts/wbase/admin/notifications/notify-metro.js +51 -0
  443. data/app/assets/javascripts/wbase/admin/notifications/notify.min.js +5 -0
  444. data/app/assets/javascripts/wbase/admin/notifyjs/js/notify.js +625 -0
  445. data/app/assets/javascripts/wbase/admin/nvd3/nv.d3.min.css +1 -0
  446. data/app/assets/javascripts/wbase/admin/nvd3/nv.d3.min.js +8 -0
  447. data/app/assets/javascripts/wbase/admin/outlayer/item.js +586 -0
  448. data/app/assets/javascripts/wbase/admin/outlayer/outlayer.js +926 -0
  449. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/LICENSE +22 -0
  450. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/README.md +158 -0
  451. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/ajax-loader.gif +0 -0
  452. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.carousel.css +179 -0
  453. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.carousel.min.css +1 -0
  454. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.theme.default.css +51 -0
  455. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.theme.default.min.css +1 -0
  456. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.theme.green.css +51 -0
  457. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.theme.green.min.css +1 -0
  458. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/assets/owl.video.play.png +0 -0
  459. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/owl.carousel.js +3148 -0
  460. data/app/assets/javascripts/wbase/admin/owl.carousel/dist/owl.carousel.min.js +2 -0
  461. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.animate.css +29 -0
  462. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.autoheight.css +9 -0
  463. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.carousel.css +74 -0
  464. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.lazyload.css +12 -0
  465. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.theme.default.css +51 -0
  466. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.theme.green.css +51 -0
  467. data/app/assets/javascripts/wbase/admin/owl.carousel/src/css/owl.video.css +51 -0
  468. data/app/assets/javascripts/wbase/admin/owl.carousel/src/img/ajax-loader.gif +0 -0
  469. data/app/assets/javascripts/wbase/admin/owl.carousel/src/img/owl.video.play.png +0 -0
  470. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.animate.js +120 -0
  471. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.autoheight.js +96 -0
  472. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.autoplay.js +161 -0
  473. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.autorefresh.js +110 -0
  474. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.carousel.js +1654 -0
  475. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.hash.js +121 -0
  476. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.lazyload.js +134 -0
  477. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.navigation.js +381 -0
  478. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.support.js +82 -0
  479. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.support.modernizr.js +57 -0
  480. data/app/assets/javascripts/wbase/admin/owl.carousel/src/js/owl.video.js +280 -0
  481. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/_mixins.scss +21 -0
  482. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/_theme.scss +63 -0
  483. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.animate.scss +40 -0
  484. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.autoheight.scss +9 -0
  485. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.carousel.scss +108 -0
  486. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.lazyload.scss +18 -0
  487. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.theme.default.scss +31 -0
  488. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.theme.green.scss +31 -0
  489. data/app/assets/javascripts/wbase/admin/owl.carousel/src/scss/owl.video.scss +51 -0
  490. data/app/assets/javascripts/wbase/admin/pace.min.js +2 -0
  491. data/app/assets/javascripts/wbase/admin/parsleyjs/parsley.min.js +18 -0
  492. data/app/assets/javascripts/wbase/admin/peity/jquery.peity.js +383 -0
  493. data/app/assets/javascripts/wbase/admin/peity/jquery.peity.min.js +13 -0
  494. data/app/assets/javascripts/wbase/admin/radial/radial.css +736 -0
  495. data/app/assets/javascripts/wbase/admin/raphael/raphael-min.js +11 -0
  496. data/app/assets/javascripts/wbase/admin/requirejs/require.js +2103 -0
  497. data/app/assets/javascripts/wbase/admin/responsive-table/css/rwd-table.min.css +7 -0
  498. data/app/assets/javascripts/wbase/admin/responsive-table/js/rwd-table.min.js +7 -0
  499. data/app/assets/javascripts/wbase/admin/rickshaw-chart/data/data.json +14 -0
  500. data/app/assets/javascripts/wbase/admin/rickshaw-chart/data/data.jsonp +14 -0
  501. data/app/assets/javascripts/wbase/admin/rickshaw-chart/data/data2.json +14 -0
  502. data/app/assets/javascripts/wbase/admin/rickshaw-chart/data/status.json +1 -0
  503. data/app/assets/javascripts/wbase/admin/rickshaw-chart/rickshaw.min.css +1 -0
  504. data/app/assets/javascripts/wbase/admin/rickshaw-chart/rickshaw.min.js +3 -0
  505. data/app/assets/javascripts/wbase/admin/rickshaw-chart/vendor/d3.layout.min.js +1 -0
  506. data/app/assets/javascripts/wbase/admin/rickshaw-chart/vendor/d3.min.js +2 -0
  507. data/app/assets/javascripts/wbase/admin/select2/css/select2.css +484 -0
  508. data/app/assets/javascripts/wbase/admin/select2/css/select2.min.css +1 -0
  509. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ar.js +3 -0
  510. data/app/assets/javascripts/wbase/admin/select2/js/i18n/az.js +3 -0
  511. data/app/assets/javascripts/wbase/admin/select2/js/i18n/bg.js +3 -0
  512. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ca.js +3 -0
  513. data/app/assets/javascripts/wbase/admin/select2/js/i18n/cs.js +3 -0
  514. data/app/assets/javascripts/wbase/admin/select2/js/i18n/da.js +3 -0
  515. data/app/assets/javascripts/wbase/admin/select2/js/i18n/de.js +3 -0
  516. data/app/assets/javascripts/wbase/admin/select2/js/i18n/el.js +3 -0
  517. data/app/assets/javascripts/wbase/admin/select2/js/i18n/en.js +3 -0
  518. data/app/assets/javascripts/wbase/admin/select2/js/i18n/es.js +3 -0
  519. data/app/assets/javascripts/wbase/admin/select2/js/i18n/et.js +3 -0
  520. data/app/assets/javascripts/wbase/admin/select2/js/i18n/eu.js +3 -0
  521. data/app/assets/javascripts/wbase/admin/select2/js/i18n/fa.js +3 -0
  522. data/app/assets/javascripts/wbase/admin/select2/js/i18n/fi.js +3 -0
  523. data/app/assets/javascripts/wbase/admin/select2/js/i18n/fr.js +3 -0
  524. data/app/assets/javascripts/wbase/admin/select2/js/i18n/gl.js +3 -0
  525. data/app/assets/javascripts/wbase/admin/select2/js/i18n/he.js +3 -0
  526. data/app/assets/javascripts/wbase/admin/select2/js/i18n/hi.js +3 -0
  527. data/app/assets/javascripts/wbase/admin/select2/js/i18n/hr.js +3 -0
  528. data/app/assets/javascripts/wbase/admin/select2/js/i18n/hu.js +3 -0
  529. data/app/assets/javascripts/wbase/admin/select2/js/i18n/id.js +3 -0
  530. data/app/assets/javascripts/wbase/admin/select2/js/i18n/is.js +3 -0
  531. data/app/assets/javascripts/wbase/admin/select2/js/i18n/it.js +3 -0
  532. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ja.js +3 -0
  533. data/app/assets/javascripts/wbase/admin/select2/js/i18n/km.js +3 -0
  534. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ko.js +3 -0
  535. data/app/assets/javascripts/wbase/admin/select2/js/i18n/lt.js +3 -0
  536. data/app/assets/javascripts/wbase/admin/select2/js/i18n/lv.js +3 -0
  537. data/app/assets/javascripts/wbase/admin/select2/js/i18n/mk.js +3 -0
  538. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ms.js +3 -0
  539. data/app/assets/javascripts/wbase/admin/select2/js/i18n/nb.js +3 -0
  540. data/app/assets/javascripts/wbase/admin/select2/js/i18n/nl.js +3 -0
  541. data/app/assets/javascripts/wbase/admin/select2/js/i18n/pl.js +3 -0
  542. data/app/assets/javascripts/wbase/admin/select2/js/i18n/pt-BR.js +3 -0
  543. data/app/assets/javascripts/wbase/admin/select2/js/i18n/pt.js +3 -0
  544. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ro.js +3 -0
  545. data/app/assets/javascripts/wbase/admin/select2/js/i18n/ru.js +3 -0
  546. data/app/assets/javascripts/wbase/admin/select2/js/i18n/sk.js +3 -0
  547. data/app/assets/javascripts/wbase/admin/select2/js/i18n/sr-Cyrl.js +3 -0
  548. data/app/assets/javascripts/wbase/admin/select2/js/i18n/sr.js +3 -0
  549. data/app/assets/javascripts/wbase/admin/select2/js/i18n/sv.js +3 -0
  550. data/app/assets/javascripts/wbase/admin/select2/js/i18n/th.js +3 -0
  551. data/app/assets/javascripts/wbase/admin/select2/js/i18n/tr.js +3 -0
  552. data/app/assets/javascripts/wbase/admin/select2/js/i18n/uk.js +3 -0
  553. data/app/assets/javascripts/wbase/admin/select2/js/i18n/vi.js +3 -0
  554. data/app/assets/javascripts/wbase/admin/select2/js/i18n/zh-CN.js +3 -0
  555. data/app/assets/javascripts/wbase/admin/select2/js/i18n/zh-TW.js +3 -0
  556. data/app/assets/javascripts/wbase/admin/select2/js/select2.full.js +6436 -0
  557. data/app/assets/javascripts/wbase/admin/select2/js/select2.full.min.js +3 -0
  558. data/app/assets/javascripts/wbase/admin/select2/js/select2.js +5725 -0
  559. data/app/assets/javascripts/wbase/admin/select2/js/select2.min.js +3 -0
  560. data/app/assets/javascripts/wbase/admin/simple-text-rotator/jquery.simple-text-rotator.min.js +1 -0
  561. data/app/assets/javascripts/wbase/admin/skyicons/skycons.min.js +1 -0
  562. data/app/assets/javascripts/wbase/admin/smoothproducts/css/smoothproducts.css +174 -0
  563. data/app/assets/javascripts/wbase/admin/smoothproducts/js/jquery-2.1.3.min.js +4 -0
  564. data/app/assets/javascripts/wbase/admin/smoothproducts/js/smoothproducts.js +265 -0
  565. data/app/assets/javascripts/wbase/admin/smoothproducts/js/smoothproducts.min.js +1 -0
  566. data/app/assets/javascripts/wbase/admin/summernote/font/summernote.eot +0 -0
  567. data/app/assets/javascripts/wbase/admin/summernote/font/summernote.ttf +0 -0
  568. data/app/assets/javascripts/wbase/admin/summernote/font/summernote.woff +0 -0
  569. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ar-AR.js +104 -0
  570. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ar-AR.min.js +2 -0
  571. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-bg-BG.js +99 -0
  572. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-bg-BG.min.js +2 -0
  573. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ca-ES.js +147 -0
  574. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ca-ES.min.js +2 -0
  575. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-cs-CZ.js +103 -0
  576. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-cs-CZ.min.js +2 -0
  577. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-da-DK.js +114 -0
  578. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-da-DK.min.js +2 -0
  579. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-de-DE.js +110 -0
  580. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-de-DE.min.js +2 -0
  581. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-es-ES.js +147 -0
  582. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-es-ES.min.js +2 -0
  583. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-es-EU.js +103 -0
  584. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-es-EU.min.js +2 -0
  585. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fa-IR.js +105 -0
  586. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fa-IR.min.js +2 -0
  587. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fi-FI.js +104 -0
  588. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fi-FI.min.js +2 -0
  589. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fr-FR.js +115 -0
  590. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-fr-FR.min.js +2 -0
  591. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-gl-ES.js +147 -0
  592. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-gl-ES.min.js +2 -0
  593. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-he-IL.js +107 -0
  594. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-he-IL.min.js +2 -0
  595. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-hr-HR.js +104 -0
  596. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-hr-HR.min.js +2 -0
  597. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-hu-HU.js +135 -0
  598. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-hu-HU.min.js +2 -0
  599. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-id-ID.js +103 -0
  600. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-id-ID.min.js +2 -0
  601. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-it-IT.js +104 -0
  602. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-it-IT.min.js +2 -0
  603. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ja-JP.js +133 -0
  604. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ja-JP.min.js +2 -0
  605. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ko-KR.js +115 -0
  606. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ko-KR.min.js +2 -0
  607. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-lt-LT.js +107 -0
  608. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-lt-LT.min.js +2 -0
  609. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-lt-LV.js +135 -0
  610. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-lt-LV.min.js +2 -0
  611. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-nb-NO.js +104 -0
  612. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-nb-NO.min.js +2 -0
  613. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-nl-NL.js +104 -0
  614. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-nl-NL.min.js +2 -0
  615. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pl-PL.js +112 -0
  616. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pl-PL.min.js +2 -0
  617. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pt-BR.js +132 -0
  618. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pt-BR.min.js +2 -0
  619. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pt-PT.js +103 -0
  620. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-pt-PT.min.js +2 -0
  621. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ro-RO.js +102 -0
  622. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ro-RO.min.js +2 -0
  623. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ru-RU.js +112 -0
  624. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-ru-RU.min.js +2 -0
  625. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sk-SK.js +102 -0
  626. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sk-SK.min.js +2 -0
  627. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sl-SI.js +106 -0
  628. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sl-SI.min.js +2 -0
  629. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sr-RS-Latin.js +104 -0
  630. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sr-RS-Latin.min.js +2 -0
  631. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sr-RS.js +104 -0
  632. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sr-RS.min.js +2 -0
  633. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sv-SE.js +104 -0
  634. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-sv-SE.min.js +2 -0
  635. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-th-TH.js +106 -0
  636. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-th-TH.min.js +2 -0
  637. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-tr-TR.js +147 -0
  638. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-tr-TR.min.js +2 -0
  639. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-uk-UA.js +111 -0
  640. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-uk-UA.min.js +2 -0
  641. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-vi-VN.js +104 -0
  642. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-vi-VN.min.js +2 -0
  643. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-zh-CN.js +113 -0
  644. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-zh-CN.min.js +2 -0
  645. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-zh-TW.js +113 -0
  646. data/app/assets/javascripts/wbase/admin/summernote/lang/summernote-zh-TW.min.js +2 -0
  647. data/app/assets/javascripts/wbase/admin/summernote/plugin/databasic/summernote-ext-databasic.css +16 -0
  648. data/app/assets/javascripts/wbase/admin/summernote/plugin/databasic/summernote-ext-databasic.js +303 -0
  649. data/app/assets/javascripts/wbase/admin/summernote/plugin/databasic/summernote-ext-databasic.min.css +1 -0
  650. data/app/assets/javascripts/wbase/admin/summernote/plugin/databasic/summernote-ext-databasic.min.js +2 -0
  651. data/app/assets/javascripts/wbase/admin/summernote/plugin/hello/summernote-ext-hello.js +82 -0
  652. data/app/assets/javascripts/wbase/admin/summernote/plugin/hello/summernote-ext-hello.min.js +2 -0
  653. data/app/assets/javascripts/wbase/admin/summernote/plugin/specialchars/summernote-ext-specialchars.js +315 -0
  654. data/app/assets/javascripts/wbase/admin/summernote/plugin/specialchars/summernote-ext-specialchars.min.js +2 -0
  655. data/app/assets/javascripts/wbase/admin/summernote/summernote.css +1 -0
  656. data/app/assets/javascripts/wbase/admin/summernote/summernote.js +7016 -0
  657. data/app/assets/javascripts/wbase/admin/summernote/summernote.min.js +4 -0
  658. data/app/assets/javascripts/wbase/admin/switchery/css/switchery.min.css +1 -0
  659. data/app/assets/javascripts/wbase/admin/switchery/js/switchery.min.js +1 -0
  660. data/app/assets/javascripts/wbase/admin/tablesaw/css/tablesaw.css +833 -0
  661. data/app/assets/javascripts/wbase/admin/tablesaw/js/tablesaw-init.js +12 -0
  662. data/app/assets/javascripts/wbase/admin/tablesaw/js/tablesaw.js +1266 -0
  663. data/app/assets/javascripts/wbase/admin/timepicker/bootstrap-timepicker.js +1177 -0
  664. data/app/assets/javascripts/wbase/admin/timepicker/bootstrap-timepicker.min.css +148 -0
  665. data/app/assets/javascripts/wbase/admin/tiny-editable/mindmup-editabletable.js +131 -0
  666. data/app/assets/javascripts/wbase/admin/tiny-editable/numeric-input-example.js +48 -0
  667. data/app/assets/javascripts/wbase/admin/tinymce/jquery.tinymce.min.js +1 -0
  668. data/app/assets/javascripts/wbase/admin/tinymce/langs/readme.md +3 -0
  669. data/app/assets/javascripts/wbase/admin/tinymce/license.txt +504 -0
  670. data/app/assets/javascripts/wbase/admin/tinymce/plugins/advlist/plugin.min.js +1 -0
  671. data/app/assets/javascripts/wbase/admin/tinymce/plugins/anchor/plugin.min.js +1 -0
  672. data/app/assets/javascripts/wbase/admin/tinymce/plugins/autolink/plugin.min.js +1 -0
  673. data/app/assets/javascripts/wbase/admin/tinymce/plugins/autoresize/plugin.min.js +1 -0
  674. data/app/assets/javascripts/wbase/admin/tinymce/plugins/autosave/plugin.min.js +1 -0
  675. data/app/assets/javascripts/wbase/admin/tinymce/plugins/bbcode/plugin.min.js +1 -0
  676. data/app/assets/javascripts/wbase/admin/tinymce/plugins/charmap/plugin.min.js +1 -0
  677. data/app/assets/javascripts/wbase/admin/tinymce/plugins/code/plugin.min.js +1 -0
  678. data/app/assets/javascripts/wbase/admin/tinymce/plugins/codesample/css/prism.css +138 -0
  679. data/app/assets/javascripts/wbase/admin/tinymce/plugins/codesample/plugin.min.js +1 -0
  680. data/app/assets/javascripts/wbase/admin/tinymce/plugins/colorpicker/plugin.min.js +1 -0
  681. data/app/assets/javascripts/wbase/admin/tinymce/plugins/contextmenu/plugin.min.js +1 -0
  682. data/app/assets/javascripts/wbase/admin/tinymce/plugins/directionality/plugin.min.js +1 -0
  683. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-cool.gif +0 -0
  684. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-cry.gif +0 -0
  685. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  686. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  687. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-frown.gif +0 -0
  688. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-innocent.gif +0 -0
  689. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-kiss.gif +0 -0
  690. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-laughing.gif +0 -0
  691. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  692. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-sealed.gif +0 -0
  693. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-smile.gif +0 -0
  694. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-surprised.gif +0 -0
  695. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  696. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-undecided.gif +0 -0
  697. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-wink.gif +0 -0
  698. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/img/smiley-yell.gif +0 -0
  699. data/app/assets/javascripts/wbase/admin/tinymce/plugins/emoticons/plugin.min.js +1 -0
  700. data/app/assets/javascripts/wbase/admin/tinymce/plugins/example/dialog.html +8 -0
  701. data/app/assets/javascripts/wbase/admin/tinymce/plugins/example/plugin.min.js +1 -0
  702. data/app/assets/javascripts/wbase/admin/tinymce/plugins/example_dependency/plugin.min.js +1 -0
  703. data/app/assets/javascripts/wbase/admin/tinymce/plugins/fullpage/plugin.min.js +1 -0
  704. data/app/assets/javascripts/wbase/admin/tinymce/plugins/fullscreen/plugin.min.js +1 -0
  705. data/app/assets/javascripts/wbase/admin/tinymce/plugins/hr/plugin.min.js +1 -0
  706. data/app/assets/javascripts/wbase/admin/tinymce/plugins/image/plugin.min.js +1 -0
  707. data/app/assets/javascripts/wbase/admin/tinymce/plugins/imagetools/plugin.min.js +1 -0
  708. data/app/assets/javascripts/wbase/admin/tinymce/plugins/importcss/plugin.min.js +1 -0
  709. data/app/assets/javascripts/wbase/admin/tinymce/plugins/insertdatetime/plugin.min.js +1 -0
  710. data/app/assets/javascripts/wbase/admin/tinymce/plugins/layer/plugin.min.js +1 -0
  711. data/app/assets/javascripts/wbase/admin/tinymce/plugins/legacyoutput/plugin.min.js +1 -0
  712. data/app/assets/javascripts/wbase/admin/tinymce/plugins/link/plugin.min.js +1 -0
  713. data/app/assets/javascripts/wbase/admin/tinymce/plugins/lists/plugin.min.js +1 -0
  714. data/app/assets/javascripts/wbase/admin/tinymce/plugins/media/moxieplayer.swf +0 -0
  715. data/app/assets/javascripts/wbase/admin/tinymce/plugins/media/plugin.min.js +1 -0
  716. data/app/assets/javascripts/wbase/admin/tinymce/plugins/nonbreaking/plugin.min.js +1 -0
  717. data/app/assets/javascripts/wbase/admin/tinymce/plugins/noneditable/plugin.min.js +1 -0
  718. data/app/assets/javascripts/wbase/admin/tinymce/plugins/pagebreak/plugin.min.js +1 -0
  719. data/app/assets/javascripts/wbase/admin/tinymce/plugins/paste/plugin.min.js +1 -0
  720. data/app/assets/javascripts/wbase/admin/tinymce/plugins/preview/plugin.min.js +1 -0
  721. data/app/assets/javascripts/wbase/admin/tinymce/plugins/print/plugin.min.js +1 -0
  722. data/app/assets/javascripts/wbase/admin/tinymce/plugins/save/plugin.min.js +1 -0
  723. data/app/assets/javascripts/wbase/admin/tinymce/plugins/searchreplace/plugin.min.js +1 -0
  724. data/app/assets/javascripts/wbase/admin/tinymce/plugins/spellchecker/plugin.min.js +1 -0
  725. data/app/assets/javascripts/wbase/admin/tinymce/plugins/tabfocus/plugin.min.js +1 -0
  726. data/app/assets/javascripts/wbase/admin/tinymce/plugins/table/plugin.min.js +2 -0
  727. data/app/assets/javascripts/wbase/admin/tinymce/plugins/template/plugin.min.js +1 -0
  728. data/app/assets/javascripts/wbase/admin/tinymce/plugins/textcolor/plugin.min.js +1 -0
  729. data/app/assets/javascripts/wbase/admin/tinymce/plugins/textpattern/plugin.min.js +1 -0
  730. data/app/assets/javascripts/wbase/admin/tinymce/plugins/visualblocks/css/visualblocks.css +135 -0
  731. data/app/assets/javascripts/wbase/admin/tinymce/plugins/visualblocks/plugin.min.js +1 -0
  732. data/app/assets/javascripts/wbase/admin/tinymce/plugins/visualchars/plugin.min.js +1 -0
  733. data/app/assets/javascripts/wbase/admin/tinymce/plugins/wordcount/plugin.min.js +1 -0
  734. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/content.inline.min.css +1 -0
  735. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/content.min.css +1 -0
  736. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  737. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg +63 -0
  738. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  739. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  740. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  741. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce.svg +129 -0
  742. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  743. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  744. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/img/anchor.gif +0 -0
  745. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/img/loader.gif +0 -0
  746. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/img/object.gif +0 -0
  747. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/img/trans.gif +0 -0
  748. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/skin.ie7.min.css +1 -0
  749. data/app/assets/javascripts/wbase/admin/tinymce/skins/lightgray/skin.min.css +1 -0
  750. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/atomic.js +5 -0
  751. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/bootstrap-atomic.js +1491 -0
  752. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/bootstrap-browser.js +1491 -0
  753. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/bootstrap-demo.js +1491 -0
  754. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/bootstrap-prod.js +1491 -0
  755. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/browser.js +10 -0
  756. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/demo.js +8 -0
  757. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/bolt/prod.js +5 -0
  758. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/config/dent/depend.js +21 -0
  759. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/scratch/compile/bootstrap.js +1526 -0
  760. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/scratch/compile/theme.js +1594 -0
  761. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/scratch/inline/theme.js +1679 -0
  762. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/scratch/inline/theme.raw.js +1679 -0
  763. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/demo/css/demo.css +25 -0
  764. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/demo/html/demo.html +69 -0
  765. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/demo/js/tinymce/inlite/Demo.js +28 -0
  766. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/Theme.js +150 -0
  767. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Arr.js +22 -0
  768. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Bookmark.js +130 -0
  769. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Unlink.js +84 -0
  770. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/alien/Uuid.js +34 -0
  771. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Actions.js +106 -0
  772. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Convert.js +37 -0
  773. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/ElementMatcher.js +47 -0
  774. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Layout.js +95 -0
  775. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Matcher.js +39 -0
  776. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/Measure.js +61 -0
  777. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/PredicateId.js +32 -0
  778. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/SelectionMatcher.js +55 -0
  779. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/SkinLoader.js +45 -0
  780. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/core/UrlType.js +27 -0
  781. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/file/Conversions.js +31 -0
  782. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/file/Picker.js +40 -0
  783. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Buttons.js +80 -0
  784. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Forms.js +102 -0
  785. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Panel.js +218 -0
  786. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/main/js/tinymce/inlite/ui/Toolbar.js +126 -0
  787. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/atomic/alien/ArrTest.js +9 -0
  788. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/atomic/alien/UuidTest.js +10 -0
  789. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/atomic/core/ConvertTest.js +12 -0
  790. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/atomic/core/MatcherTest.js +51 -0
  791. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/atomic/core/UrlTypeTest.js +33 -0
  792. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/ThemeTest.js +202 -0
  793. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/alien/BookmarkTest.js +65 -0
  794. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/alien/UnlinkTest.js +38 -0
  795. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/ActionsTest.js +177 -0
  796. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js +69 -0
  797. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/LayoutTest.js +118 -0
  798. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/MeasureTest.js +62 -0
  799. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/PredicateIdTest.js +26 -0
  800. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/core/SelectionMatcherTest.js +76 -0
  801. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/file/ConversionsTest.js +41 -0
  802. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/src/test/js/browser/file/SelectionMatcher.js +55 -0
  803. data/app/assets/javascripts/wbase/admin/tinymce/themes/inlite/theme.min.js +1 -0
  804. data/app/assets/javascripts/wbase/admin/tinymce/themes/modern/theme.min.js +1 -0
  805. data/app/assets/javascripts/wbase/admin/tinymce/tinymce.min.js +13 -0
  806. data/app/assets/javascripts/wbase/admin/transitionize/dist/transitionize.js +275 -0
  807. data/app/assets/javascripts/wbase/admin/transitionize/dist/transitionize.min.js +1 -0
  808. data/app/assets/javascripts/wbase/admin/transitionize/examples/browserify.js +46 -0
  809. data/app/assets/javascripts/wbase/admin/transitionize/examples/example.html +31 -0
  810. data/app/assets/javascripts/wbase/admin/transitionize/transitionize.js +64 -0
  811. data/app/assets/javascripts/wbase/admin/waves.js +498 -0
  812. data/app/assets/javascripts/wbase/admin/waypoints/lib/jquery.waypoints.js +647 -0
  813. data/app/assets/javascripts/wbase/admin/waypoints/lib/jquery.waypoints.min.js +7 -0
  814. data/app/assets/javascripts/wbase/admin/waypoints/lib/noframework.waypoints.js +743 -0
  815. data/app/assets/javascripts/wbase/admin/waypoints/lib/noframework.waypoints.min.js +7 -0
  816. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/infinite.js +84 -0
  817. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/infinite.min.js +7 -0
  818. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/inview.js +103 -0
  819. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/inview.min.js +7 -0
  820. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/sticky.js +65 -0
  821. data/app/assets/javascripts/wbase/admin/waypoints/lib/shortcuts/sticky.min.js +7 -0
  822. data/app/assets/javascripts/wbase/admin/waypoints/lib/waypoints.debug.js +46 -0
  823. data/app/assets/javascripts/wbase/admin/waypoints/lib/zepto.waypoints.js +690 -0
  824. data/app/assets/javascripts/wbase/admin/waypoints/lib/zepto.waypoints.min.js +7 -0
  825. data/app/assets/javascripts/wbase/admin/wow.min.js +2 -0
  826. data/app/assets/javascripts/wbase/admin/x-editable/css/bootstrap-editable.css +663 -0
  827. data/app/assets/javascripts/wbase/admin/x-editable/img/clear.png +0 -0
  828. data/app/assets/javascripts/wbase/admin/x-editable/img/loading.gif +0 -0
  829. data/app/assets/javascripts/wbase/admin/x-editable/js/bootstrap-editable.js +6807 -0
  830. data/app/assets/javascripts/wbase/admin/x-editable/js/bootstrap-editable.min.js +7 -0
  831. data/app/assets/javascripts/wbase/admin.js +50 -0
  832. data/app/assets/javascripts/wbase/auth/bootstrap.min.js +1 -1
  833. data/app/assets/javascripts/wbase/auth/detect.js +1 -1
  834. data/app/assets/javascripts/wbase/auth/jquery.min.js +1 -1
  835. data/app/assets/javascripts/wbase/auth/jquery.scrollTo.min.js +1 -1
  836. data/app/assets/javascripts/wbase/auth/modernizr.min.js +1 -1
  837. data/app/assets/javascripts/wbase/auth/pace.min.js +1 -1
  838. data/app/assets/javascripts/wbase/auth/wow.min.js +1 -1
  839. data/app/assets/javascripts/wbase/landing/bootstrap.min.js +1 -1
  840. data/app/assets/javascripts/wbase/landing/validator.min.js +1 -1
  841. data/app/assets/stylesheets/wbase/admin/components.scss +2362 -0
  842. data/app/assets/stylesheets/wbase/admin/core.scss +2190 -0
  843. data/app/assets/stylesheets/wbase/admin/datatables/buttons.bootstrap.min.css +1 -0
  844. data/app/assets/stylesheets/wbase/admin/datatables/dataTables.bootstrap.min.css +1 -0
  845. data/app/assets/stylesheets/wbase/admin/datatables/dataTables.colVis.css +185 -0
  846. data/app/assets/stylesheets/wbase/admin/datatables/fixedColumns.dataTables.min.css +1 -0
  847. data/app/assets/stylesheets/wbase/admin/datatables/fixedHeader.bootstrap.min.css +1 -0
  848. data/app/assets/stylesheets/wbase/admin/datatables/jquery.dataTables.min.css +333 -0
  849. data/app/assets/stylesheets/wbase/admin/datatables/responsive.bootstrap.min.css +1 -0
  850. data/app/assets/stylesheets/wbase/admin/datatables/scroller.bootstrap.min.css +1 -0
  851. data/app/assets/stylesheets/wbase/admin/icons.scss +9884 -0
  852. data/app/assets/stylesheets/wbase/admin/morris.scss +25 -0
  853. data/app/assets/stylesheets/wbase/admin/pages.scss +2039 -0
  854. data/app/assets/stylesheets/wbase/admin/responsive.scss +162 -0
  855. data/app/assets/stylesheets/wbase/admin/typicons.scss +1370 -0
  856. data/app/assets/stylesheets/wbase/admin.scss +20 -0
  857. data/app/assets/stylesheets/wbase/auth/components.css +77 -77
  858. data/app/assets/stylesheets/wbase/auth/core.css +41 -41
  859. data/app/assets/stylesheets/wbase/auth/pages.css +43 -43
  860. data/app/views/layouts/wbase/_common_foot.html.erb +42 -0
  861. data/app/views/layouts/wbase/_common_head.html.erb +2 -1
  862. data/app/views/layouts/wbase/_olark.html.erb +34 -0
  863. data/app/views/layouts/wbase/_sidebar.html.erb +22 -0
  864. data/app/views/layouts/wbase/_topbar.html.erb +48 -0
  865. data/app/views/layouts/wbase/admin.html.erb +42 -0
  866. data/app/views/layouts/wbase/auth.html.erb +2 -1
  867. data/app/views/layouts/wbase/landing.html.erb +1 -0
  868. data/app/views/shared/{_errors.html.erb → wbase/_errors.html.erb} +0 -0
  869. data/app/views/shared/wbase/_page_title.html.erb +26 -0
  870. data/config/initializers/assets.rb +1 -1
  871. data/lib/wbase/engine.rb +6 -1
  872. data/lib/wbase/version.rb +1 -1
  873. data/test/dummy/db/development.sqlite3 +0 -0
  874. metadata +846 -4
  875. data/app/views/layouts/wbase/application.html.erb +0 -14
@@ -0,0 +1,2204 @@
1
+ "use strict";
2
+ (function(root, factory) {
3
+ if(typeof exports === 'object') {
4
+ module.exports = factory();
5
+ }
6
+ else if(typeof define === 'function' && define.amd) {
7
+ define('GMaps', [], factory);
8
+ }
9
+
10
+ root.GMaps = factory();
11
+
12
+ }(this, function() {
13
+
14
+ /*!
15
+ * GMaps.js v0.4.18
16
+ * http://hpneo.github.com/gmaps/
17
+ *
18
+ * Copyright 2015, Gustavo Leon
19
+ * Released under the MIT License.
20
+ */
21
+
22
+ if (!(typeof window.google === 'object' && window.google.maps)) {
23
+ throw 'Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.'
24
+ }
25
+
26
+ var extend_object = function(obj, new_obj) {
27
+ var name;
28
+
29
+ if (obj === new_obj) {
30
+ return obj;
31
+ }
32
+
33
+ for (name in new_obj) {
34
+ obj[name] = new_obj[name];
35
+ }
36
+
37
+ return obj;
38
+ };
39
+
40
+ var replace_object = function(obj, replace) {
41
+ var name;
42
+
43
+ if (obj === replace) {
44
+ return obj;
45
+ }
46
+
47
+ for (name in replace) {
48
+ if (obj[name] != undefined) {
49
+ obj[name] = replace[name];
50
+ }
51
+ }
52
+
53
+ return obj;
54
+ };
55
+
56
+ var array_map = function(array, callback) {
57
+ var original_callback_params = Array.prototype.slice.call(arguments, 2),
58
+ array_return = [],
59
+ array_length = array.length,
60
+ i;
61
+
62
+ if (Array.prototype.map && array.map === Array.prototype.map) {
63
+ array_return = Array.prototype.map.call(array, function(item) {
64
+ var callback_params = original_callback_params.slice(0);
65
+ callback_params.splice(0, 0, item);
66
+
67
+ return callback.apply(this, callback_params);
68
+ });
69
+ }
70
+ else {
71
+ for (i = 0; i < array_length; i++) {
72
+ callback_params = original_callback_params;
73
+ callback_params.splice(0, 0, array[i]);
74
+ array_return.push(callback.apply(this, callback_params));
75
+ }
76
+ }
77
+
78
+ return array_return;
79
+ };
80
+
81
+ var array_flat = function(array) {
82
+ var new_array = [],
83
+ i;
84
+
85
+ for (i = 0; i < array.length; i++) {
86
+ new_array = new_array.concat(array[i]);
87
+ }
88
+
89
+ return new_array;
90
+ };
91
+
92
+ var coordsToLatLngs = function(coords, useGeoJSON) {
93
+ var first_coord = coords[0],
94
+ second_coord = coords[1];
95
+
96
+ if (useGeoJSON) {
97
+ first_coord = coords[1];
98
+ second_coord = coords[0];
99
+ }
100
+
101
+ return new google.maps.LatLng(first_coord, second_coord);
102
+ };
103
+
104
+ var arrayToLatLng = function(coords, useGeoJSON) {
105
+ var i;
106
+
107
+ for (i = 0; i < coords.length; i++) {
108
+ if (!(coords[i] instanceof google.maps.LatLng)) {
109
+ if (coords[i].length > 0 && typeof(coords[i][0]) === "object") {
110
+ coords[i] = arrayToLatLng(coords[i], useGeoJSON);
111
+ }
112
+ else {
113
+ coords[i] = coordsToLatLngs(coords[i], useGeoJSON);
114
+ }
115
+ }
116
+ }
117
+
118
+ return coords;
119
+ };
120
+
121
+
122
+ var getElementsByClassName = function (class_name, context) {
123
+
124
+ var element,
125
+ _class = class_name.replace('.', '');
126
+
127
+ if ('jQuery' in this && context) {
128
+ element = $("." + _class, context)[0];
129
+ } else {
130
+ element = document.getElementsByClassName(_class)[0];
131
+ }
132
+ return element;
133
+
134
+ };
135
+
136
+ var getElementById = function(id, context) {
137
+ var element,
138
+ id = id.replace('#', '');
139
+
140
+ if ('jQuery' in window && context) {
141
+ element = $('#' + id, context)[0];
142
+ } else {
143
+ element = document.getElementById(id);
144
+ };
145
+
146
+ return element;
147
+ };
148
+
149
+ var findAbsolutePosition = function(obj) {
150
+ var curleft = 0,
151
+ curtop = 0;
152
+
153
+ if (obj.offsetParent) {
154
+ do {
155
+ curleft += obj.offsetLeft;
156
+ curtop += obj.offsetTop;
157
+ } while (obj = obj.offsetParent);
158
+ }
159
+
160
+ return [curleft, curtop];
161
+ };
162
+
163
+ var GMaps = (function(global) {
164
+ "use strict";
165
+
166
+ var doc = document;
167
+
168
+ var GMaps = function(options) {
169
+ if (!this) return new GMaps(options);
170
+
171
+ options.zoom = options.zoom || 15;
172
+ options.mapType = options.mapType || 'roadmap';
173
+
174
+ var self = this,
175
+ i,
176
+ events_that_hide_context_menu = [
177
+ 'bounds_changed', 'center_changed', 'click', 'dblclick', 'drag',
178
+ 'dragend', 'dragstart', 'idle', 'maptypeid_changed', 'projection_changed',
179
+ 'resize', 'tilesloaded', 'zoom_changed'
180
+ ],
181
+ events_that_doesnt_hide_context_menu = ['mousemove', 'mouseout', 'mouseover'],
182
+ options_to_be_deleted = ['el', 'lat', 'lng', 'mapType', 'width', 'height', 'markerClusterer', 'enableNewStyle'],
183
+ identifier = options.el || options.div,
184
+ markerClustererFunction = options.markerClusterer,
185
+ mapType = google.maps.MapTypeId[options.mapType.toUpperCase()],
186
+ map_center = new google.maps.LatLng(options.lat, options.lng),
187
+ zoomControl = options.zoomControl || true,
188
+ zoomControlOpt = options.zoomControlOpt || {
189
+ style: 'DEFAULT',
190
+ position: 'TOP_LEFT'
191
+ },
192
+ zoomControlStyle = zoomControlOpt.style || 'DEFAULT',
193
+ zoomControlPosition = zoomControlOpt.position || 'TOP_LEFT',
194
+ panControl = options.panControl || true,
195
+ mapTypeControl = options.mapTypeControl || true,
196
+ scaleControl = options.scaleControl || true,
197
+ streetViewControl = options.streetViewControl || true,
198
+ overviewMapControl = overviewMapControl || true,
199
+ map_options = {},
200
+ map_base_options = {
201
+ zoom: this.zoom,
202
+ center: map_center,
203
+ mapTypeId: mapType
204
+ },
205
+ map_controls_options = {
206
+ panControl: panControl,
207
+ zoomControl: zoomControl,
208
+ zoomControlOptions: {
209
+ style: google.maps.ZoomControlStyle[zoomControlStyle],
210
+ position: google.maps.ControlPosition[zoomControlPosition]
211
+ },
212
+ mapTypeControl: mapTypeControl,
213
+ scaleControl: scaleControl,
214
+ streetViewControl: streetViewControl,
215
+ overviewMapControl: overviewMapControl
216
+ };
217
+
218
+ if (typeof(options.el) === 'string' || typeof(options.div) === 'string') {
219
+
220
+ if (identifier.indexOf("#") > -1) {
221
+ this.el = getElementById(identifier, options.context);
222
+ } else {
223
+ this.el = getElementsByClassName.apply(this, [identifier, options.context]);
224
+ }
225
+
226
+ } else {
227
+ this.el = identifier;
228
+ }
229
+
230
+ if (typeof(this.el) === 'undefined' || this.el === null) {
231
+ throw 'No element defined.';
232
+ }
233
+
234
+ window.context_menu = window.context_menu || {};
235
+ window.context_menu[self.el.id] = {};
236
+
237
+ this.controls = [];
238
+ this.overlays = [];
239
+ this.layers = []; // array with kml/georss and fusiontables layers, can be as many
240
+ this.singleLayers = {}; // object with the other layers, only one per layer
241
+ this.markers = [];
242
+ this.polylines = [];
243
+ this.routes = [];
244
+ this.polygons = [];
245
+ this.infoWindow = null;
246
+ this.overlay_el = null;
247
+ this.zoom = options.zoom;
248
+ this.registered_events = {};
249
+
250
+ this.el.style.width = options.width || this.el.scrollWidth || this.el.offsetWidth;
251
+ this.el.style.height = options.height || this.el.scrollHeight || this.el.offsetHeight;
252
+
253
+ google.maps.visualRefresh = options.enableNewStyle;
254
+
255
+ for (i = 0; i < options_to_be_deleted.length; i++) {
256
+ delete options[options_to_be_deleted[i]];
257
+ }
258
+
259
+ if(options.disableDefaultUI != true) {
260
+ map_base_options = extend_object(map_base_options, map_controls_options);
261
+ }
262
+
263
+ map_options = extend_object(map_base_options, options);
264
+
265
+ for (i = 0; i < events_that_hide_context_menu.length; i++) {
266
+ delete map_options[events_that_hide_context_menu[i]];
267
+ }
268
+
269
+ for (i = 0; i < events_that_doesnt_hide_context_menu.length; i++) {
270
+ delete map_options[events_that_doesnt_hide_context_menu[i]];
271
+ }
272
+
273
+ this.map = new google.maps.Map(this.el, map_options);
274
+
275
+ if (markerClustererFunction) {
276
+ this.markerClusterer = markerClustererFunction.apply(this, [this.map]);
277
+ }
278
+
279
+ var buildContextMenuHTML = function(control, e) {
280
+ var html = '',
281
+ options = window.context_menu[self.el.id][control];
282
+
283
+ for (var i in options){
284
+ if (options.hasOwnProperty(i)) {
285
+ var option = options[i];
286
+
287
+ html += '<li><a id="' + control + '_' + i + '" href="#">' + option.title + '</a></li>';
288
+ }
289
+ }
290
+
291
+ if (!getElementById('gmaps_context_menu')) return;
292
+
293
+ var context_menu_element = getElementById('gmaps_context_menu');
294
+
295
+ context_menu_element.innerHTML = html;
296
+
297
+ var context_menu_items = context_menu_element.getElementsByTagName('a'),
298
+ context_menu_items_count = context_menu_items.length,
299
+ i;
300
+
301
+ for (i = 0; i < context_menu_items_count; i++) {
302
+ var context_menu_item = context_menu_items[i];
303
+
304
+ var assign_menu_item_action = function(ev){
305
+ ev.preventDefault();
306
+
307
+ options[this.id.replace(control + '_', '')].action.apply(self, [e]);
308
+ self.hideContextMenu();
309
+ };
310
+
311
+ google.maps.event.clearListeners(context_menu_item, 'click');
312
+ google.maps.event.addDomListenerOnce(context_menu_item, 'click', assign_menu_item_action, false);
313
+ }
314
+
315
+ var position = findAbsolutePosition.apply(this, [self.el]),
316
+ left = position[0] + e.pixel.x - 15,
317
+ top = position[1] + e.pixel.y- 15;
318
+
319
+ context_menu_element.style.left = left + "px";
320
+ context_menu_element.style.top = top + "px";
321
+
322
+ context_menu_element.style.display = 'block';
323
+ };
324
+
325
+ this.buildContextMenu = function(control, e) {
326
+ if (control === 'marker') {
327
+ e.pixel = {};
328
+
329
+ var overlay = new google.maps.OverlayView();
330
+ overlay.setMap(self.map);
331
+
332
+ overlay.draw = function() {
333
+ var projection = overlay.getProjection(),
334
+ position = e.marker.getPosition();
335
+
336
+ e.pixel = projection.fromLatLngToContainerPixel(position);
337
+
338
+ buildContextMenuHTML(control, e);
339
+ };
340
+ }
341
+ else {
342
+ buildContextMenuHTML(control, e);
343
+ }
344
+ };
345
+
346
+ this.setContextMenu = function(options) {
347
+ window.context_menu[self.el.id][options.control] = {};
348
+
349
+ var i,
350
+ ul = doc.createElement('ul');
351
+
352
+ for (i in options.options) {
353
+ if (options.options.hasOwnProperty(i)) {
354
+ var option = options.options[i];
355
+
356
+ window.context_menu[self.el.id][options.control][option.name] = {
357
+ title: option.title,
358
+ action: option.action
359
+ };
360
+ }
361
+ }
362
+
363
+ ul.id = 'gmaps_context_menu';
364
+ ul.style.display = 'none';
365
+ ul.style.position = 'absolute';
366
+ ul.style.minWidth = '100px';
367
+ ul.style.background = 'white';
368
+ ul.style.listStyle = 'none';
369
+ ul.style.padding = '8px';
370
+ ul.style.boxShadow = '2px 2px 6px #ccc';
371
+
372
+ doc.body.appendChild(ul);
373
+
374
+ var context_menu_element = getElementById('gmaps_context_menu')
375
+
376
+ google.maps.event.addDomListener(context_menu_element, 'mouseout', function(ev) {
377
+ if (!ev.relatedTarget || !this.contains(ev.relatedTarget)) {
378
+ window.setTimeout(function(){
379
+ context_menu_element.style.display = 'none';
380
+ }, 400);
381
+ }
382
+ }, false);
383
+ };
384
+
385
+ this.hideContextMenu = function() {
386
+ var context_menu_element = getElementById('gmaps_context_menu');
387
+
388
+ if (context_menu_element) {
389
+ context_menu_element.style.display = 'none';
390
+ }
391
+ };
392
+
393
+ var setupListener = function(object, name) {
394
+ google.maps.event.addListener(object, name, function(e){
395
+ if (e == undefined) {
396
+ e = this;
397
+ }
398
+
399
+ options[name].apply(this, [e]);
400
+
401
+ self.hideContextMenu();
402
+ });
403
+ };
404
+
405
+ //google.maps.event.addListener(this.map, 'idle', this.hideContextMenu);
406
+ google.maps.event.addListener(this.map, 'zoom_changed', this.hideContextMenu);
407
+
408
+ for (var ev = 0; ev < events_that_hide_context_menu.length; ev++) {
409
+ var name = events_that_hide_context_menu[ev];
410
+
411
+ if (name in options) {
412
+ setupListener(this.map, name);
413
+ }
414
+ }
415
+
416
+ for (var ev = 0; ev < events_that_doesnt_hide_context_menu.length; ev++) {
417
+ var name = events_that_doesnt_hide_context_menu[ev];
418
+
419
+ if (name in options) {
420
+ setupListener(this.map, name);
421
+ }
422
+ }
423
+
424
+ google.maps.event.addListener(this.map, 'rightclick', function(e) {
425
+ if (options.rightclick) {
426
+ options.rightclick.apply(this, [e]);
427
+ }
428
+
429
+ if(window.context_menu[self.el.id]['map'] != undefined) {
430
+ self.buildContextMenu('map', e);
431
+ }
432
+ });
433
+
434
+ this.refresh = function() {
435
+ google.maps.event.trigger(this.map, 'resize');
436
+ };
437
+
438
+ this.fitZoom = function() {
439
+ var latLngs = [],
440
+ markers_length = this.markers.length,
441
+ i;
442
+
443
+ for (i = 0; i < markers_length; i++) {
444
+ if(typeof(this.markers[i].visible) === 'boolean' && this.markers[i].visible) {
445
+ latLngs.push(this.markers[i].getPosition());
446
+ }
447
+ }
448
+
449
+ this.fitLatLngBounds(latLngs);
450
+ };
451
+
452
+ this.fitLatLngBounds = function(latLngs) {
453
+ var total = latLngs.length,
454
+ bounds = new google.maps.LatLngBounds(),
455
+ i;
456
+
457
+ for(i = 0; i < total; i++) {
458
+ bounds.extend(latLngs[i]);
459
+ }
460
+
461
+ this.map.fitBounds(bounds);
462
+ };
463
+
464
+ this.setCenter = function(lat, lng, callback) {
465
+ this.map.panTo(new google.maps.LatLng(lat, lng));
466
+
467
+ if (callback) {
468
+ callback();
469
+ }
470
+ };
471
+
472
+ this.getElement = function() {
473
+ return this.el;
474
+ };
475
+
476
+ this.zoomIn = function(value) {
477
+ value = value || 1;
478
+
479
+ this.zoom = this.map.getZoom() + value;
480
+ this.map.setZoom(this.zoom);
481
+ };
482
+
483
+ this.zoomOut = function(value) {
484
+ value = value || 1;
485
+
486
+ this.zoom = this.map.getZoom() - value;
487
+ this.map.setZoom(this.zoom);
488
+ };
489
+
490
+ var native_methods = [],
491
+ method;
492
+
493
+ for (method in this.map) {
494
+ if (typeof(this.map[method]) == 'function' && !this[method]) {
495
+ native_methods.push(method);
496
+ }
497
+ }
498
+
499
+ for (i = 0; i < native_methods.length; i++) {
500
+ (function(gmaps, scope, method_name) {
501
+ gmaps[method_name] = function(){
502
+ return scope[method_name].apply(scope, arguments);
503
+ };
504
+ })(this, this.map, native_methods[i]);
505
+ }
506
+ };
507
+
508
+ return GMaps;
509
+ })(this);
510
+
511
+ GMaps.prototype.createControl = function(options) {
512
+ var control = document.createElement('div');
513
+
514
+ control.style.cursor = 'pointer';
515
+
516
+ if (options.disableDefaultStyles !== true) {
517
+ control.style.fontFamily = 'Roboto, Arial, sans-serif';
518
+ control.style.fontSize = '11px';
519
+ control.style.boxShadow = 'rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px';
520
+ }
521
+
522
+ for (var option in options.style) {
523
+ control.style[option] = options.style[option];
524
+ }
525
+
526
+ if (options.id) {
527
+ control.id = options.id;
528
+ }
529
+
530
+ if (options.classes) {
531
+ control.className = options.classes;
532
+ }
533
+
534
+ if (options.content) {
535
+ if (typeof options.content === 'string') {
536
+ control.innerHTML = options.content;
537
+ }
538
+ else if (options.content instanceof HTMLElement) {
539
+ control.appendChild(options.content);
540
+ }
541
+ }
542
+
543
+ if (options.position) {
544
+ control.position = google.maps.ControlPosition[options.position.toUpperCase()];
545
+ }
546
+
547
+ for (var ev in options.events) {
548
+ (function(object, name) {
549
+ google.maps.event.addDomListener(object, name, function(){
550
+ options.events[name].apply(this, [this]);
551
+ });
552
+ })(control, ev);
553
+ }
554
+
555
+ control.index = 1;
556
+
557
+ return control;
558
+ };
559
+
560
+ GMaps.prototype.addControl = function(options) {
561
+ var control = this.createControl(options);
562
+
563
+ this.controls.push(control);
564
+ this.map.controls[control.position].push(control);
565
+
566
+ return control;
567
+ };
568
+
569
+ GMaps.prototype.removeControl = function(control) {
570
+ var position = null,
571
+ i;
572
+
573
+ for (i = 0; i < this.controls.length; i++) {
574
+ if (this.controls[i] == control) {
575
+ position = this.controls[i].position;
576
+ this.controls.splice(i, 1);
577
+ }
578
+ }
579
+
580
+ if (position) {
581
+ for (i = 0; i < this.map.controls.length; i++) {
582
+ var controlsForPosition = this.map.controls[control.position];
583
+
584
+ if (controlsForPosition.getAt(i) == control) {
585
+ controlsForPosition.removeAt(i);
586
+
587
+ break;
588
+ }
589
+ }
590
+ }
591
+
592
+ return control;
593
+ };
594
+
595
+ GMaps.prototype.createMarker = function(options) {
596
+ if (options.lat == undefined && options.lng == undefined && options.position == undefined) {
597
+ throw 'No latitude or longitude defined.';
598
+ }
599
+
600
+ var self = this,
601
+ details = options.details,
602
+ fences = options.fences,
603
+ outside = options.outside,
604
+ base_options = {
605
+ position: new google.maps.LatLng(options.lat, options.lng),
606
+ map: null
607
+ },
608
+ marker_options = extend_object(base_options, options);
609
+
610
+ delete marker_options.lat;
611
+ delete marker_options.lng;
612
+ delete marker_options.fences;
613
+ delete marker_options.outside;
614
+
615
+ var marker = new google.maps.Marker(marker_options);
616
+
617
+ marker.fences = fences;
618
+
619
+ if (options.infoWindow) {
620
+ marker.infoWindow = new google.maps.InfoWindow(options.infoWindow);
621
+
622
+ var info_window_events = ['closeclick', 'content_changed', 'domready', 'position_changed', 'zindex_changed'];
623
+
624
+ for (var ev = 0; ev < info_window_events.length; ev++) {
625
+ (function(object, name) {
626
+ if (options.infoWindow[name]) {
627
+ google.maps.event.addListener(object, name, function(e){
628
+ options.infoWindow[name].apply(this, [e]);
629
+ });
630
+ }
631
+ })(marker.infoWindow, info_window_events[ev]);
632
+ }
633
+ }
634
+
635
+ var marker_events = ['animation_changed', 'clickable_changed', 'cursor_changed', 'draggable_changed', 'flat_changed', 'icon_changed', 'position_changed', 'shadow_changed', 'shape_changed', 'title_changed', 'visible_changed', 'zindex_changed'];
636
+
637
+ var marker_events_with_mouse = ['dblclick', 'drag', 'dragend', 'dragstart', 'mousedown', 'mouseout', 'mouseover', 'mouseup'];
638
+
639
+ for (var ev = 0; ev < marker_events.length; ev++) {
640
+ (function(object, name) {
641
+ if (options[name]) {
642
+ google.maps.event.addListener(object, name, function(){
643
+ options[name].apply(this, [this]);
644
+ });
645
+ }
646
+ })(marker, marker_events[ev]);
647
+ }
648
+
649
+ for (var ev = 0; ev < marker_events_with_mouse.length; ev++) {
650
+ (function(map, object, name) {
651
+ if (options[name]) {
652
+ google.maps.event.addListener(object, name, function(me){
653
+ if(!me.pixel){
654
+ me.pixel = map.getProjection().fromLatLngToPoint(me.latLng)
655
+ }
656
+
657
+ options[name].apply(this, [me]);
658
+ });
659
+ }
660
+ })(this.map, marker, marker_events_with_mouse[ev]);
661
+ }
662
+
663
+ google.maps.event.addListener(marker, 'click', function() {
664
+ this.details = details;
665
+
666
+ if (options.click) {
667
+ options.click.apply(this, [this]);
668
+ }
669
+
670
+ if (marker.infoWindow) {
671
+ self.hideInfoWindows();
672
+ marker.infoWindow.open(self.map, marker);
673
+ }
674
+ });
675
+
676
+ google.maps.event.addListener(marker, 'rightclick', function(e) {
677
+ e.marker = this;
678
+
679
+ if (options.rightclick) {
680
+ options.rightclick.apply(this, [e]);
681
+ }
682
+
683
+ if (window.context_menu[self.el.id]['marker'] != undefined) {
684
+ self.buildContextMenu('marker', e);
685
+ }
686
+ });
687
+
688
+ if (marker.fences) {
689
+ google.maps.event.addListener(marker, 'dragend', function() {
690
+ self.checkMarkerGeofence(marker, function(m, f) {
691
+ outside(m, f);
692
+ });
693
+ });
694
+ }
695
+
696
+ return marker;
697
+ };
698
+
699
+ GMaps.prototype.addMarker = function(options) {
700
+ var marker;
701
+ if(options.hasOwnProperty('gm_accessors_')) {
702
+ // Native google.maps.Marker object
703
+ marker = options;
704
+ }
705
+ else {
706
+ if ((options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) {
707
+ marker = this.createMarker(options);
708
+ }
709
+ else {
710
+ throw 'No latitude or longitude defined.';
711
+ }
712
+ }
713
+
714
+ marker.setMap(this.map);
715
+
716
+ if(this.markerClusterer) {
717
+ this.markerClusterer.addMarker(marker);
718
+ }
719
+
720
+ this.markers.push(marker);
721
+
722
+ GMaps.fire('marker_added', marker, this);
723
+
724
+ return marker;
725
+ };
726
+
727
+ GMaps.prototype.addMarkers = function(array) {
728
+ for (var i = 0, marker; marker=array[i]; i++) {
729
+ this.addMarker(marker);
730
+ }
731
+
732
+ return this.markers;
733
+ };
734
+
735
+ GMaps.prototype.hideInfoWindows = function() {
736
+ for (var i = 0, marker; marker = this.markers[i]; i++){
737
+ if (marker.infoWindow) {
738
+ marker.infoWindow.close();
739
+ }
740
+ }
741
+ };
742
+
743
+ GMaps.prototype.removeMarker = function(marker) {
744
+ for (var i = 0; i < this.markers.length; i++) {
745
+ if (this.markers[i] === marker) {
746
+ this.markers[i].setMap(null);
747
+ this.markers.splice(i, 1);
748
+
749
+ if(this.markerClusterer) {
750
+ this.markerClusterer.removeMarker(marker);
751
+ }
752
+
753
+ GMaps.fire('marker_removed', marker, this);
754
+
755
+ break;
756
+ }
757
+ }
758
+
759
+ return marker;
760
+ };
761
+
762
+ GMaps.prototype.removeMarkers = function (collection) {
763
+ var new_markers = [];
764
+
765
+ if (typeof collection == 'undefined') {
766
+ for (var i = 0; i < this.markers.length; i++) {
767
+ var marker = this.markers[i];
768
+ marker.setMap(null);
769
+
770
+ if(this.markerClusterer) {
771
+ this.markerClusterer.removeMarker(marker);
772
+ }
773
+
774
+ GMaps.fire('marker_removed', marker, this);
775
+ }
776
+
777
+ this.markers = new_markers;
778
+ }
779
+ else {
780
+ for (var i = 0; i < collection.length; i++) {
781
+ var index = this.markers.indexOf(collection[i]);
782
+
783
+ if (index > -1) {
784
+ var marker = this.markers[index];
785
+ marker.setMap(null);
786
+
787
+ if(this.markerClusterer) {
788
+ this.markerClusterer.removeMarker(marker);
789
+ }
790
+
791
+ GMaps.fire('marker_removed', marker, this);
792
+ }
793
+ }
794
+
795
+ for (var i = 0; i < this.markers.length; i++) {
796
+ var marker = this.markers[i];
797
+ if (marker.getMap() != null) {
798
+ new_markers.push(marker);
799
+ }
800
+ }
801
+
802
+ this.markers = new_markers;
803
+ }
804
+ };
805
+
806
+ GMaps.prototype.drawOverlay = function(options) {
807
+ var overlay = new google.maps.OverlayView(),
808
+ auto_show = true;
809
+
810
+ overlay.setMap(this.map);
811
+
812
+ if (options.auto_show != null) {
813
+ auto_show = options.auto_show;
814
+ }
815
+
816
+ overlay.onAdd = function() {
817
+ var el = document.createElement('div');
818
+
819
+ el.style.borderStyle = "none";
820
+ el.style.borderWidth = "0px";
821
+ el.style.position = "absolute";
822
+ el.style.zIndex = 100;
823
+ el.innerHTML = options.content;
824
+
825
+ overlay.el = el;
826
+
827
+ if (!options.layer) {
828
+ options.layer = 'overlayLayer';
829
+ }
830
+
831
+ var panes = this.getPanes(),
832
+ overlayLayer = panes[options.layer],
833
+ stop_overlay_events = ['contextmenu', 'DOMMouseScroll', 'dblclick', 'mousedown'];
834
+
835
+ overlayLayer.appendChild(el);
836
+
837
+ for (var ev = 0; ev < stop_overlay_events.length; ev++) {
838
+ (function(object, name) {
839
+ google.maps.event.addDomListener(object, name, function(e){
840
+ if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) {
841
+ e.cancelBubble = true;
842
+ e.returnValue = false;
843
+ }
844
+ else {
845
+ e.stopPropagation();
846
+ }
847
+ });
848
+ })(el, stop_overlay_events[ev]);
849
+ }
850
+
851
+ if (options.click) {
852
+ panes.overlayMouseTarget.appendChild(overlay.el);
853
+ google.maps.event.addDomListener(overlay.el, 'click', function() {
854
+ options.click.apply(overlay, [overlay]);
855
+ });
856
+ }
857
+
858
+ google.maps.event.trigger(this, 'ready');
859
+ };
860
+
861
+ overlay.draw = function() {
862
+ var projection = this.getProjection(),
863
+ pixel = projection.fromLatLngToDivPixel(new google.maps.LatLng(options.lat, options.lng));
864
+
865
+ options.horizontalOffset = options.horizontalOffset || 0;
866
+ options.verticalOffset = options.verticalOffset || 0;
867
+
868
+ var el = overlay.el,
869
+ content = el.children[0],
870
+ content_height = content.clientHeight,
871
+ content_width = content.clientWidth;
872
+
873
+ switch (options.verticalAlign) {
874
+ case 'top':
875
+ el.style.top = (pixel.y - content_height + options.verticalOffset) + 'px';
876
+ break;
877
+ default:
878
+ case 'middle':
879
+ el.style.top = (pixel.y - (content_height / 2) + options.verticalOffset) + 'px';
880
+ break;
881
+ case 'bottom':
882
+ el.style.top = (pixel.y + options.verticalOffset) + 'px';
883
+ break;
884
+ }
885
+
886
+ switch (options.horizontalAlign) {
887
+ case 'left':
888
+ el.style.left = (pixel.x - content_width + options.horizontalOffset) + 'px';
889
+ break;
890
+ default:
891
+ case 'center':
892
+ el.style.left = (pixel.x - (content_width / 2) + options.horizontalOffset) + 'px';
893
+ break;
894
+ case 'right':
895
+ el.style.left = (pixel.x + options.horizontalOffset) + 'px';
896
+ break;
897
+ }
898
+
899
+ el.style.display = auto_show ? 'block' : 'none';
900
+
901
+ if (!auto_show) {
902
+ options.show.apply(this, [el]);
903
+ }
904
+ };
905
+
906
+ overlay.onRemove = function() {
907
+ var el = overlay.el;
908
+
909
+ if (options.remove) {
910
+ options.remove.apply(this, [el]);
911
+ }
912
+ else {
913
+ overlay.el.parentNode.removeChild(overlay.el);
914
+ overlay.el = null;
915
+ }
916
+ };
917
+
918
+ this.overlays.push(overlay);
919
+ return overlay;
920
+ };
921
+
922
+ GMaps.prototype.removeOverlay = function(overlay) {
923
+ for (var i = 0; i < this.overlays.length; i++) {
924
+ if (this.overlays[i] === overlay) {
925
+ this.overlays[i].setMap(null);
926
+ this.overlays.splice(i, 1);
927
+
928
+ break;
929
+ }
930
+ }
931
+ };
932
+
933
+ GMaps.prototype.removeOverlays = function() {
934
+ for (var i = 0, item; item = this.overlays[i]; i++) {
935
+ item.setMap(null);
936
+ }
937
+
938
+ this.overlays = [];
939
+ };
940
+
941
+ GMaps.prototype.drawPolyline = function(options) {
942
+ var path = [],
943
+ points = options.path;
944
+
945
+ if (points.length) {
946
+ if (points[0][0] === undefined) {
947
+ path = points;
948
+ }
949
+ else {
950
+ for (var i = 0, latlng; latlng = points[i]; i++) {
951
+ path.push(new google.maps.LatLng(latlng[0], latlng[1]));
952
+ }
953
+ }
954
+ }
955
+
956
+ var polyline_options = {
957
+ map: this.map,
958
+ path: path,
959
+ strokeColor: options.strokeColor,
960
+ strokeOpacity: options.strokeOpacity,
961
+ strokeWeight: options.strokeWeight,
962
+ geodesic: options.geodesic,
963
+ clickable: true,
964
+ editable: false,
965
+ visible: true
966
+ };
967
+
968
+ if (options.hasOwnProperty("clickable")) {
969
+ polyline_options.clickable = options.clickable;
970
+ }
971
+
972
+ if (options.hasOwnProperty("editable")) {
973
+ polyline_options.editable = options.editable;
974
+ }
975
+
976
+ if (options.hasOwnProperty("icons")) {
977
+ polyline_options.icons = options.icons;
978
+ }
979
+
980
+ if (options.hasOwnProperty("zIndex")) {
981
+ polyline_options.zIndex = options.zIndex;
982
+ }
983
+
984
+ var polyline = new google.maps.Polyline(polyline_options);
985
+
986
+ var polyline_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];
987
+
988
+ for (var ev = 0; ev < polyline_events.length; ev++) {
989
+ (function(object, name) {
990
+ if (options[name]) {
991
+ google.maps.event.addListener(object, name, function(e){
992
+ options[name].apply(this, [e]);
993
+ });
994
+ }
995
+ })(polyline, polyline_events[ev]);
996
+ }
997
+
998
+ this.polylines.push(polyline);
999
+
1000
+ GMaps.fire('polyline_added', polyline, this);
1001
+
1002
+ return polyline;
1003
+ };
1004
+
1005
+ GMaps.prototype.removePolyline = function(polyline) {
1006
+ for (var i = 0; i < this.polylines.length; i++) {
1007
+ if (this.polylines[i] === polyline) {
1008
+ this.polylines[i].setMap(null);
1009
+ this.polylines.splice(i, 1);
1010
+
1011
+ GMaps.fire('polyline_removed', polyline, this);
1012
+
1013
+ break;
1014
+ }
1015
+ }
1016
+ };
1017
+
1018
+ GMaps.prototype.removePolylines = function() {
1019
+ for (var i = 0, item; item = this.polylines[i]; i++) {
1020
+ item.setMap(null);
1021
+ }
1022
+
1023
+ this.polylines = [];
1024
+ };
1025
+
1026
+ GMaps.prototype.drawCircle = function(options) {
1027
+ options = extend_object({
1028
+ map: this.map,
1029
+ center: new google.maps.LatLng(options.lat, options.lng)
1030
+ }, options);
1031
+
1032
+ delete options.lat;
1033
+ delete options.lng;
1034
+
1035
+ var polygon = new google.maps.Circle(options),
1036
+ polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];
1037
+
1038
+ for (var ev = 0; ev < polygon_events.length; ev++) {
1039
+ (function(object, name) {
1040
+ if (options[name]) {
1041
+ google.maps.event.addListener(object, name, function(e){
1042
+ options[name].apply(this, [e]);
1043
+ });
1044
+ }
1045
+ })(polygon, polygon_events[ev]);
1046
+ }
1047
+
1048
+ this.polygons.push(polygon);
1049
+
1050
+ return polygon;
1051
+ };
1052
+
1053
+ GMaps.prototype.drawRectangle = function(options) {
1054
+ options = extend_object({
1055
+ map: this.map
1056
+ }, options);
1057
+
1058
+ var latLngBounds = new google.maps.LatLngBounds(
1059
+ new google.maps.LatLng(options.bounds[0][0], options.bounds[0][1]),
1060
+ new google.maps.LatLng(options.bounds[1][0], options.bounds[1][1])
1061
+ );
1062
+
1063
+ options.bounds = latLngBounds;
1064
+
1065
+ var polygon = new google.maps.Rectangle(options),
1066
+ polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];
1067
+
1068
+ for (var ev = 0; ev < polygon_events.length; ev++) {
1069
+ (function(object, name) {
1070
+ if (options[name]) {
1071
+ google.maps.event.addListener(object, name, function(e){
1072
+ options[name].apply(this, [e]);
1073
+ });
1074
+ }
1075
+ })(polygon, polygon_events[ev]);
1076
+ }
1077
+
1078
+ this.polygons.push(polygon);
1079
+
1080
+ return polygon;
1081
+ };
1082
+
1083
+ GMaps.prototype.drawPolygon = function(options) {
1084
+ var useGeoJSON = false;
1085
+
1086
+ if(options.hasOwnProperty("useGeoJSON")) {
1087
+ useGeoJSON = options.useGeoJSON;
1088
+ }
1089
+
1090
+ delete options.useGeoJSON;
1091
+
1092
+ options = extend_object({
1093
+ map: this.map
1094
+ }, options);
1095
+
1096
+ if (useGeoJSON == false) {
1097
+ options.paths = [options.paths.slice(0)];
1098
+ }
1099
+
1100
+ if (options.paths.length > 0) {
1101
+ if (options.paths[0].length > 0) {
1102
+ options.paths = array_flat(array_map(options.paths, arrayToLatLng, useGeoJSON));
1103
+ }
1104
+ }
1105
+
1106
+ var polygon = new google.maps.Polygon(options),
1107
+ polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];
1108
+
1109
+ for (var ev = 0; ev < polygon_events.length; ev++) {
1110
+ (function(object, name) {
1111
+ if (options[name]) {
1112
+ google.maps.event.addListener(object, name, function(e){
1113
+ options[name].apply(this, [e]);
1114
+ });
1115
+ }
1116
+ })(polygon, polygon_events[ev]);
1117
+ }
1118
+
1119
+ this.polygons.push(polygon);
1120
+
1121
+ GMaps.fire('polygon_added', polygon, this);
1122
+
1123
+ return polygon;
1124
+ };
1125
+
1126
+ GMaps.prototype.removePolygon = function(polygon) {
1127
+ for (var i = 0; i < this.polygons.length; i++) {
1128
+ if (this.polygons[i] === polygon) {
1129
+ this.polygons[i].setMap(null);
1130
+ this.polygons.splice(i, 1);
1131
+
1132
+ GMaps.fire('polygon_removed', polygon, this);
1133
+
1134
+ break;
1135
+ }
1136
+ }
1137
+ };
1138
+
1139
+ GMaps.prototype.removePolygons = function() {
1140
+ for (var i = 0, item; item = this.polygons[i]; i++) {
1141
+ item.setMap(null);
1142
+ }
1143
+
1144
+ this.polygons = [];
1145
+ };
1146
+
1147
+ GMaps.prototype.getFromFusionTables = function(options) {
1148
+ var events = options.events;
1149
+
1150
+ delete options.events;
1151
+
1152
+ var fusion_tables_options = options,
1153
+ layer = new google.maps.FusionTablesLayer(fusion_tables_options);
1154
+
1155
+ for (var ev in events) {
1156
+ (function(object, name) {
1157
+ google.maps.event.addListener(object, name, function(e) {
1158
+ events[name].apply(this, [e]);
1159
+ });
1160
+ })(layer, ev);
1161
+ }
1162
+
1163
+ this.layers.push(layer);
1164
+
1165
+ return layer;
1166
+ };
1167
+
1168
+ GMaps.prototype.loadFromFusionTables = function(options) {
1169
+ var layer = this.getFromFusionTables(options);
1170
+ layer.setMap(this.map);
1171
+
1172
+ return layer;
1173
+ };
1174
+
1175
+ GMaps.prototype.getFromKML = function(options) {
1176
+ var url = options.url,
1177
+ events = options.events;
1178
+
1179
+ delete options.url;
1180
+ delete options.events;
1181
+
1182
+ var kml_options = options,
1183
+ layer = new google.maps.KmlLayer(url, kml_options);
1184
+
1185
+ for (var ev in events) {
1186
+ (function(object, name) {
1187
+ google.maps.event.addListener(object, name, function(e) {
1188
+ events[name].apply(this, [e]);
1189
+ });
1190
+ })(layer, ev);
1191
+ }
1192
+
1193
+ this.layers.push(layer);
1194
+
1195
+ return layer;
1196
+ };
1197
+
1198
+ GMaps.prototype.loadFromKML = function(options) {
1199
+ var layer = this.getFromKML(options);
1200
+ layer.setMap(this.map);
1201
+
1202
+ return layer;
1203
+ };
1204
+
1205
+ GMaps.prototype.addLayer = function(layerName, options) {
1206
+ //var default_layers = ['weather', 'clouds', 'traffic', 'transit', 'bicycling', 'panoramio', 'places'];
1207
+ options = options || {};
1208
+ var layer;
1209
+
1210
+ switch(layerName) {
1211
+ case 'weather': this.singleLayers.weather = layer = new google.maps.weather.WeatherLayer();
1212
+ break;
1213
+ case 'clouds': this.singleLayers.clouds = layer = new google.maps.weather.CloudLayer();
1214
+ break;
1215
+ case 'traffic': this.singleLayers.traffic = layer = new google.maps.TrafficLayer();
1216
+ break;
1217
+ case 'transit': this.singleLayers.transit = layer = new google.maps.TransitLayer();
1218
+ break;
1219
+ case 'bicycling': this.singleLayers.bicycling = layer = new google.maps.BicyclingLayer();
1220
+ break;
1221
+ case 'panoramio':
1222
+ this.singleLayers.panoramio = layer = new google.maps.panoramio.PanoramioLayer();
1223
+ layer.setTag(options.filter);
1224
+ delete options.filter;
1225
+
1226
+ //click event
1227
+ if (options.click) {
1228
+ google.maps.event.addListener(layer, 'click', function(event) {
1229
+ options.click(event);
1230
+ delete options.click;
1231
+ });
1232
+ }
1233
+ break;
1234
+ case 'places':
1235
+ this.singleLayers.places = layer = new google.maps.places.PlacesService(this.map);
1236
+
1237
+ //search, nearbySearch, radarSearch callback, Both are the same
1238
+ if (options.search || options.nearbySearch || options.radarSearch) {
1239
+ var placeSearchRequest = {
1240
+ bounds : options.bounds || null,
1241
+ keyword : options.keyword || null,
1242
+ location : options.location || null,
1243
+ name : options.name || null,
1244
+ radius : options.radius || null,
1245
+ rankBy : options.rankBy || null,
1246
+ types : options.types || null
1247
+ };
1248
+
1249
+ if (options.radarSearch) {
1250
+ layer.radarSearch(placeSearchRequest, options.radarSearch);
1251
+ }
1252
+
1253
+ if (options.search) {
1254
+ layer.search(placeSearchRequest, options.search);
1255
+ }
1256
+
1257
+ if (options.nearbySearch) {
1258
+ layer.nearbySearch(placeSearchRequest, options.nearbySearch);
1259
+ }
1260
+ }
1261
+
1262
+ //textSearch callback
1263
+ if (options.textSearch) {
1264
+ var textSearchRequest = {
1265
+ bounds : options.bounds || null,
1266
+ location : options.location || null,
1267
+ query : options.query || null,
1268
+ radius : options.radius || null
1269
+ };
1270
+
1271
+ layer.textSearch(textSearchRequest, options.textSearch);
1272
+ }
1273
+ break;
1274
+ }
1275
+
1276
+ if (layer !== undefined) {
1277
+ if (typeof layer.setOptions == 'function') {
1278
+ layer.setOptions(options);
1279
+ }
1280
+ if (typeof layer.setMap == 'function') {
1281
+ layer.setMap(this.map);
1282
+ }
1283
+
1284
+ return layer;
1285
+ }
1286
+ };
1287
+
1288
+ GMaps.prototype.removeLayer = function(layer) {
1289
+ if (typeof(layer) == "string" && this.singleLayers[layer] !== undefined) {
1290
+ this.singleLayers[layer].setMap(null);
1291
+
1292
+ delete this.singleLayers[layer];
1293
+ }
1294
+ else {
1295
+ for (var i = 0; i < this.layers.length; i++) {
1296
+ if (this.layers[i] === layer) {
1297
+ this.layers[i].setMap(null);
1298
+ this.layers.splice(i, 1);
1299
+
1300
+ break;
1301
+ }
1302
+ }
1303
+ }
1304
+ };
1305
+
1306
+ var travelMode, unitSystem;
1307
+
1308
+ GMaps.prototype.getRoutes = function(options) {
1309
+ switch (options.travelMode) {
1310
+ case 'bicycling':
1311
+ travelMode = google.maps.TravelMode.BICYCLING;
1312
+ break;
1313
+ case 'transit':
1314
+ travelMode = google.maps.TravelMode.TRANSIT;
1315
+ break;
1316
+ case 'driving':
1317
+ travelMode = google.maps.TravelMode.DRIVING;
1318
+ break;
1319
+ default:
1320
+ travelMode = google.maps.TravelMode.WALKING;
1321
+ break;
1322
+ }
1323
+
1324
+ if (options.unitSystem === 'imperial') {
1325
+ unitSystem = google.maps.UnitSystem.IMPERIAL;
1326
+ }
1327
+ else {
1328
+ unitSystem = google.maps.UnitSystem.METRIC;
1329
+ }
1330
+
1331
+ var base_options = {
1332
+ avoidHighways: false,
1333
+ avoidTolls: false,
1334
+ optimizeWaypoints: false,
1335
+ waypoints: []
1336
+ },
1337
+ request_options = extend_object(base_options, options);
1338
+
1339
+ request_options.origin = /string/.test(typeof options.origin) ? options.origin : new google.maps.LatLng(options.origin[0], options.origin[1]);
1340
+ request_options.destination = /string/.test(typeof options.destination) ? options.destination : new google.maps.LatLng(options.destination[0], options.destination[1]);
1341
+ request_options.travelMode = travelMode;
1342
+ request_options.unitSystem = unitSystem;
1343
+
1344
+ delete request_options.callback;
1345
+ delete request_options.error;
1346
+
1347
+ var self = this,
1348
+ service = new google.maps.DirectionsService();
1349
+
1350
+ service.route(request_options, function(result, status) {
1351
+ if (status === google.maps.DirectionsStatus.OK) {
1352
+ for (var r in result.routes) {
1353
+ if (result.routes.hasOwnProperty(r)) {
1354
+ self.routes.push(result.routes[r]);
1355
+ }
1356
+ }
1357
+
1358
+ if (options.callback) {
1359
+ options.callback(self.routes);
1360
+ }
1361
+ }
1362
+ else {
1363
+ if (options.error) {
1364
+ options.error(result, status);
1365
+ }
1366
+ }
1367
+ });
1368
+ };
1369
+
1370
+ GMaps.prototype.removeRoutes = function() {
1371
+ this.routes = [];
1372
+ };
1373
+
1374
+ GMaps.prototype.getElevations = function(options) {
1375
+ options = extend_object({
1376
+ locations: [],
1377
+ path : false,
1378
+ samples : 256
1379
+ }, options);
1380
+
1381
+ if (options.locations.length > 0) {
1382
+ if (options.locations[0].length > 0) {
1383
+ options.locations = array_flat(array_map([options.locations], arrayToLatLng, false));
1384
+ }
1385
+ }
1386
+
1387
+ var callback = options.callback;
1388
+ delete options.callback;
1389
+
1390
+ var service = new google.maps.ElevationService();
1391
+
1392
+ //location request
1393
+ if (!options.path) {
1394
+ delete options.path;
1395
+ delete options.samples;
1396
+
1397
+ service.getElevationForLocations(options, function(result, status) {
1398
+ if (callback && typeof(callback) === "function") {
1399
+ callback(result, status);
1400
+ }
1401
+ });
1402
+ //path request
1403
+ } else {
1404
+ var pathRequest = {
1405
+ path : options.locations,
1406
+ samples : options.samples
1407
+ };
1408
+
1409
+ service.getElevationAlongPath(pathRequest, function(result, status) {
1410
+ if (callback && typeof(callback) === "function") {
1411
+ callback(result, status);
1412
+ }
1413
+ });
1414
+ }
1415
+ };
1416
+
1417
+ GMaps.prototype.cleanRoute = GMaps.prototype.removePolylines;
1418
+
1419
+ GMaps.prototype.drawRoute = function(options) {
1420
+ var self = this;
1421
+
1422
+ this.getRoutes({
1423
+ origin: options.origin,
1424
+ destination: options.destination,
1425
+ travelMode: options.travelMode,
1426
+ waypoints: options.waypoints,
1427
+ unitSystem: options.unitSystem,
1428
+ error: options.error,
1429
+ callback: function(e) {
1430
+ if (e.length > 0) {
1431
+ var polyline_options = {
1432
+ path: e[e.length - 1].overview_path,
1433
+ strokeColor: options.strokeColor,
1434
+ strokeOpacity: options.strokeOpacity,
1435
+ strokeWeight: options.strokeWeight
1436
+ };
1437
+
1438
+ if (options.hasOwnProperty("icons")) {
1439
+ polyline_options.icons = options.icons;
1440
+ }
1441
+
1442
+ self.drawPolyline(polyline_options);
1443
+
1444
+ if (options.callback) {
1445
+ options.callback(e[e.length - 1]);
1446
+ }
1447
+ }
1448
+ }
1449
+ });
1450
+ };
1451
+
1452
+ GMaps.prototype.travelRoute = function(options) {
1453
+ if (options.origin && options.destination) {
1454
+ this.getRoutes({
1455
+ origin: options.origin,
1456
+ destination: options.destination,
1457
+ travelMode: options.travelMode,
1458
+ waypoints : options.waypoints,
1459
+ unitSystem: options.unitSystem,
1460
+ error: options.error,
1461
+ callback: function(e) {
1462
+ //start callback
1463
+ if (e.length > 0 && options.start) {
1464
+ options.start(e[e.length - 1]);
1465
+ }
1466
+
1467
+ //step callback
1468
+ if (e.length > 0 && options.step) {
1469
+ var route = e[e.length - 1];
1470
+ if (route.legs.length > 0) {
1471
+ var steps = route.legs[0].steps;
1472
+ for (var i = 0, step; step = steps[i]; i++) {
1473
+ step.step_number = i;
1474
+ options.step(step, (route.legs[0].steps.length - 1));
1475
+ }
1476
+ }
1477
+ }
1478
+
1479
+ //end callback
1480
+ if (e.length > 0 && options.end) {
1481
+ options.end(e[e.length - 1]);
1482
+ }
1483
+ }
1484
+ });
1485
+ }
1486
+ else if (options.route) {
1487
+ if (options.route.legs.length > 0) {
1488
+ var steps = options.route.legs[0].steps;
1489
+ for (var i = 0, step; step = steps[i]; i++) {
1490
+ step.step_number = i;
1491
+ options.step(step);
1492
+ }
1493
+ }
1494
+ }
1495
+ };
1496
+
1497
+ GMaps.prototype.drawSteppedRoute = function(options) {
1498
+ var self = this;
1499
+
1500
+ if (options.origin && options.destination) {
1501
+ this.getRoutes({
1502
+ origin: options.origin,
1503
+ destination: options.destination,
1504
+ travelMode: options.travelMode,
1505
+ waypoints : options.waypoints,
1506
+ error: options.error,
1507
+ callback: function(e) {
1508
+ //start callback
1509
+ if (e.length > 0 && options.start) {
1510
+ options.start(e[e.length - 1]);
1511
+ }
1512
+
1513
+ //step callback
1514
+ if (e.length > 0 && options.step) {
1515
+ var route = e[e.length - 1];
1516
+ if (route.legs.length > 0) {
1517
+ var steps = route.legs[0].steps;
1518
+ for (var i = 0, step; step = steps[i]; i++) {
1519
+ step.step_number = i;
1520
+ var polyline_options = {
1521
+ path: step.path,
1522
+ strokeColor: options.strokeColor,
1523
+ strokeOpacity: options.strokeOpacity,
1524
+ strokeWeight: options.strokeWeight
1525
+ };
1526
+
1527
+ if (options.hasOwnProperty("icons")) {
1528
+ polyline_options.icons = options.icons;
1529
+ }
1530
+
1531
+ self.drawPolyline(polyline_options);
1532
+ options.step(step, (route.legs[0].steps.length - 1));
1533
+ }
1534
+ }
1535
+ }
1536
+
1537
+ //end callback
1538
+ if (e.length > 0 && options.end) {
1539
+ options.end(e[e.length - 1]);
1540
+ }
1541
+ }
1542
+ });
1543
+ }
1544
+ else if (options.route) {
1545
+ if (options.route.legs.length > 0) {
1546
+ var steps = options.route.legs[0].steps;
1547
+ for (var i = 0, step; step = steps[i]; i++) {
1548
+ step.step_number = i;
1549
+ var polyline_options = {
1550
+ path: step.path,
1551
+ strokeColor: options.strokeColor,
1552
+ strokeOpacity: options.strokeOpacity,
1553
+ strokeWeight: options.strokeWeight
1554
+ };
1555
+
1556
+ if (options.hasOwnProperty("icons")) {
1557
+ polyline_options.icons = options.icons;
1558
+ }
1559
+
1560
+ self.drawPolyline(polyline_options);
1561
+ options.step(step);
1562
+ }
1563
+ }
1564
+ }
1565
+ };
1566
+
1567
+ GMaps.Route = function(options) {
1568
+ this.origin = options.origin;
1569
+ this.destination = options.destination;
1570
+ this.waypoints = options.waypoints;
1571
+
1572
+ this.map = options.map;
1573
+ this.route = options.route;
1574
+ this.step_count = 0;
1575
+ this.steps = this.route.legs[0].steps;
1576
+ this.steps_length = this.steps.length;
1577
+
1578
+ var polyline_options = {
1579
+ path: new google.maps.MVCArray(),
1580
+ strokeColor: options.strokeColor,
1581
+ strokeOpacity: options.strokeOpacity,
1582
+ strokeWeight: options.strokeWeight
1583
+ };
1584
+
1585
+ if (options.hasOwnProperty("icons")) {
1586
+ polyline_options.icons = options.icons;
1587
+ }
1588
+
1589
+ this.polyline = this.map.drawPolyline(polyline_options).getPath();
1590
+ };
1591
+
1592
+ GMaps.Route.prototype.getRoute = function(options) {
1593
+ var self = this;
1594
+
1595
+ this.map.getRoutes({
1596
+ origin : this.origin,
1597
+ destination : this.destination,
1598
+ travelMode : options.travelMode,
1599
+ waypoints : this.waypoints || [],
1600
+ error: options.error,
1601
+ callback : function() {
1602
+ self.route = e[0];
1603
+
1604
+ if (options.callback) {
1605
+ options.callback.call(self);
1606
+ }
1607
+ }
1608
+ });
1609
+ };
1610
+
1611
+ GMaps.Route.prototype.back = function() {
1612
+ if (this.step_count > 0) {
1613
+ this.step_count--;
1614
+ var path = this.route.legs[0].steps[this.step_count].path;
1615
+
1616
+ for (var p in path){
1617
+ if (path.hasOwnProperty(p)){
1618
+ this.polyline.pop();
1619
+ }
1620
+ }
1621
+ }
1622
+ };
1623
+
1624
+ GMaps.Route.prototype.forward = function() {
1625
+ if (this.step_count < this.steps_length) {
1626
+ var path = this.route.legs[0].steps[this.step_count].path;
1627
+
1628
+ for (var p in path){
1629
+ if (path.hasOwnProperty(p)){
1630
+ this.polyline.push(path[p]);
1631
+ }
1632
+ }
1633
+ this.step_count++;
1634
+ }
1635
+ };
1636
+
1637
+ GMaps.prototype.checkGeofence = function(lat, lng, fence) {
1638
+ return fence.containsLatLng(new google.maps.LatLng(lat, lng));
1639
+ };
1640
+
1641
+ GMaps.prototype.checkMarkerGeofence = function(marker, outside_callback) {
1642
+ if (marker.fences) {
1643
+ for (var i = 0, fence; fence = marker.fences[i]; i++) {
1644
+ var pos = marker.getPosition();
1645
+ if (!this.checkGeofence(pos.lat(), pos.lng(), fence)) {
1646
+ outside_callback(marker, fence);
1647
+ }
1648
+ }
1649
+ }
1650
+ };
1651
+
1652
+ GMaps.prototype.toImage = function(options) {
1653
+ var options = options || {},
1654
+ static_map_options = {};
1655
+
1656
+ static_map_options['size'] = options['size'] || [this.el.clientWidth, this.el.clientHeight];
1657
+ static_map_options['lat'] = this.getCenter().lat();
1658
+ static_map_options['lng'] = this.getCenter().lng();
1659
+
1660
+ if (this.markers.length > 0) {
1661
+ static_map_options['markers'] = [];
1662
+
1663
+ for (var i = 0; i < this.markers.length; i++) {
1664
+ static_map_options['markers'].push({
1665
+ lat: this.markers[i].getPosition().lat(),
1666
+ lng: this.markers[i].getPosition().lng()
1667
+ });
1668
+ }
1669
+ }
1670
+
1671
+ if (this.polylines.length > 0) {
1672
+ var polyline = this.polylines[0];
1673
+
1674
+ static_map_options['polyline'] = {};
1675
+ static_map_options['polyline']['path'] = google.maps.geometry.encoding.encodePath(polyline.getPath());
1676
+ static_map_options['polyline']['strokeColor'] = polyline.strokeColor
1677
+ static_map_options['polyline']['strokeOpacity'] = polyline.strokeOpacity
1678
+ static_map_options['polyline']['strokeWeight'] = polyline.strokeWeight
1679
+ }
1680
+
1681
+ return GMaps.staticMapURL(static_map_options);
1682
+ };
1683
+
1684
+ GMaps.staticMapURL = function(options){
1685
+ var parameters = [],
1686
+ data,
1687
+ static_root = (location.protocol === 'file:' ? 'http:' : location.protocol ) + '//maps.googleapis.com/maps/api/staticmap';
1688
+
1689
+ if (options.url) {
1690
+ static_root = options.url;
1691
+ delete options.url;
1692
+ }
1693
+
1694
+ static_root += '?';
1695
+
1696
+ var markers = options.markers;
1697
+
1698
+ delete options.markers;
1699
+
1700
+ if (!markers && options.marker) {
1701
+ markers = [options.marker];
1702
+ delete options.marker;
1703
+ }
1704
+
1705
+ var styles = options.styles;
1706
+
1707
+ delete options.styles;
1708
+
1709
+ var polyline = options.polyline;
1710
+ delete options.polyline;
1711
+
1712
+ /** Map options **/
1713
+ if (options.center) {
1714
+ parameters.push('center=' + options.center);
1715
+ delete options.center;
1716
+ }
1717
+ else if (options.address) {
1718
+ parameters.push('center=' + options.address);
1719
+ delete options.address;
1720
+ }
1721
+ else if (options.lat) {
1722
+ parameters.push(['center=', options.lat, ',', options.lng].join(''));
1723
+ delete options.lat;
1724
+ delete options.lng;
1725
+ }
1726
+ else if (options.visible) {
1727
+ var visible = encodeURI(options.visible.join('|'));
1728
+ parameters.push('visible=' + visible);
1729
+ }
1730
+
1731
+ var size = options.size;
1732
+ if (size) {
1733
+ if (size.join) {
1734
+ size = size.join('x');
1735
+ }
1736
+ delete options.size;
1737
+ }
1738
+ else {
1739
+ size = '630x300';
1740
+ }
1741
+ parameters.push('size=' + size);
1742
+
1743
+ if (!options.zoom && options.zoom !== false) {
1744
+ options.zoom = 15;
1745
+ }
1746
+
1747
+ var sensor = options.hasOwnProperty('sensor') ? !!options.sensor : true;
1748
+ delete options.sensor;
1749
+ parameters.push('sensor=' + sensor);
1750
+
1751
+ for (var param in options) {
1752
+ if (options.hasOwnProperty(param)) {
1753
+ parameters.push(param + '=' + options[param]);
1754
+ }
1755
+ }
1756
+
1757
+ /** Markers **/
1758
+ if (markers) {
1759
+ var marker, loc;
1760
+
1761
+ for (var i = 0; data = markers[i]; i++) {
1762
+ marker = [];
1763
+
1764
+ if (data.size && data.size !== 'normal') {
1765
+ marker.push('size:' + data.size);
1766
+ delete data.size;
1767
+ }
1768
+ else if (data.icon) {
1769
+ marker.push('icon:' + encodeURI(data.icon));
1770
+ delete data.icon;
1771
+ }
1772
+
1773
+ if (data.color) {
1774
+ marker.push('color:' + data.color.replace('#', '0x'));
1775
+ delete data.color;
1776
+ }
1777
+
1778
+ if (data.label) {
1779
+ marker.push('label:' + data.label[0].toUpperCase());
1780
+ delete data.label;
1781
+ }
1782
+
1783
+ loc = (data.address ? data.address : data.lat + ',' + data.lng);
1784
+ delete data.address;
1785
+ delete data.lat;
1786
+ delete data.lng;
1787
+
1788
+ for(var param in data){
1789
+ if (data.hasOwnProperty(param)) {
1790
+ marker.push(param + ':' + data[param]);
1791
+ }
1792
+ }
1793
+
1794
+ if (marker.length || i === 0) {
1795
+ marker.push(loc);
1796
+ marker = marker.join('|');
1797
+ parameters.push('markers=' + encodeURI(marker));
1798
+ }
1799
+ // New marker without styles
1800
+ else {
1801
+ marker = parameters.pop() + encodeURI('|' + loc);
1802
+ parameters.push(marker);
1803
+ }
1804
+ }
1805
+ }
1806
+
1807
+ /** Map Styles **/
1808
+ if (styles) {
1809
+ for (var i = 0; i < styles.length; i++) {
1810
+ var styleRule = [];
1811
+ if (styles[i].featureType){
1812
+ styleRule.push('feature:' + styles[i].featureType.toLowerCase());
1813
+ }
1814
+
1815
+ if (styles[i].elementType) {
1816
+ styleRule.push('element:' + styles[i].elementType.toLowerCase());
1817
+ }
1818
+
1819
+ for (var j = 0; j < styles[i].stylers.length; j++) {
1820
+ for (var p in styles[i].stylers[j]) {
1821
+ var ruleArg = styles[i].stylers[j][p];
1822
+ if (p == 'hue' || p == 'color') {
1823
+ ruleArg = '0x' + ruleArg.substring(1);
1824
+ }
1825
+ styleRule.push(p + ':' + ruleArg);
1826
+ }
1827
+ }
1828
+
1829
+ var rule = styleRule.join('|');
1830
+ if (rule != '') {
1831
+ parameters.push('style=' + rule);
1832
+ }
1833
+ }
1834
+ }
1835
+
1836
+ /** Polylines **/
1837
+ function parseColor(color, opacity) {
1838
+ if (color[0] === '#'){
1839
+ color = color.replace('#', '0x');
1840
+
1841
+ if (opacity) {
1842
+ opacity = parseFloat(opacity);
1843
+ opacity = Math.min(1, Math.max(opacity, 0));
1844
+ if (opacity === 0) {
1845
+ return '0x00000000';
1846
+ }
1847
+ opacity = (opacity * 255).toString(16);
1848
+ if (opacity.length === 1) {
1849
+ opacity += opacity;
1850
+ }
1851
+
1852
+ color = color.slice(0,8) + opacity;
1853
+ }
1854
+ }
1855
+ return color;
1856
+ }
1857
+
1858
+ if (polyline) {
1859
+ data = polyline;
1860
+ polyline = [];
1861
+
1862
+ if (data.strokeWeight) {
1863
+ polyline.push('weight:' + parseInt(data.strokeWeight, 10));
1864
+ }
1865
+
1866
+ if (data.strokeColor) {
1867
+ var color = parseColor(data.strokeColor, data.strokeOpacity);
1868
+ polyline.push('color:' + color);
1869
+ }
1870
+
1871
+ if (data.fillColor) {
1872
+ var fillcolor = parseColor(data.fillColor, data.fillOpacity);
1873
+ polyline.push('fillcolor:' + fillcolor);
1874
+ }
1875
+
1876
+ var path = data.path;
1877
+ if (path.join) {
1878
+ for (var j=0, pos; pos=path[j]; j++) {
1879
+ polyline.push(pos.join(','));
1880
+ }
1881
+ }
1882
+ else {
1883
+ polyline.push('enc:' + path);
1884
+ }
1885
+
1886
+ polyline = polyline.join('|');
1887
+ parameters.push('path=' + encodeURI(polyline));
1888
+ }
1889
+
1890
+ /** Retina support **/
1891
+ var dpi = window.devicePixelRatio || 1;
1892
+ parameters.push('scale=' + dpi);
1893
+
1894
+ parameters = parameters.join('&');
1895
+ return static_root + parameters;
1896
+ };
1897
+
1898
+ GMaps.prototype.addMapType = function(mapTypeId, options) {
1899
+ if (options.hasOwnProperty("getTileUrl") && typeof(options["getTileUrl"]) == "function") {
1900
+ options.tileSize = options.tileSize || new google.maps.Size(256, 256);
1901
+
1902
+ var mapType = new google.maps.ImageMapType(options);
1903
+
1904
+ this.map.mapTypes.set(mapTypeId, mapType);
1905
+ }
1906
+ else {
1907
+ throw "'getTileUrl' function required.";
1908
+ }
1909
+ };
1910
+
1911
+ GMaps.prototype.addOverlayMapType = function(options) {
1912
+ if (options.hasOwnProperty("getTile") && typeof(options["getTile"]) == "function") {
1913
+ var overlayMapTypeIndex = options.index;
1914
+
1915
+ delete options.index;
1916
+
1917
+ this.map.overlayMapTypes.insertAt(overlayMapTypeIndex, options);
1918
+ }
1919
+ else {
1920
+ throw "'getTile' function required.";
1921
+ }
1922
+ };
1923
+
1924
+ GMaps.prototype.removeOverlayMapType = function(overlayMapTypeIndex) {
1925
+ this.map.overlayMapTypes.removeAt(overlayMapTypeIndex);
1926
+ };
1927
+
1928
+ GMaps.prototype.addStyle = function(options) {
1929
+ var styledMapType = new google.maps.StyledMapType(options.styles, { name: options.styledMapName });
1930
+
1931
+ this.map.mapTypes.set(options.mapTypeId, styledMapType);
1932
+ };
1933
+
1934
+ GMaps.prototype.setStyle = function(mapTypeId) {
1935
+ this.map.setMapTypeId(mapTypeId);
1936
+ };
1937
+
1938
+ GMaps.prototype.createPanorama = function(streetview_options) {
1939
+ if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) {
1940
+ streetview_options.lat = this.getCenter().lat();
1941
+ streetview_options.lng = this.getCenter().lng();
1942
+ }
1943
+
1944
+ this.panorama = GMaps.createPanorama(streetview_options);
1945
+
1946
+ this.map.setStreetView(this.panorama);
1947
+
1948
+ return this.panorama;
1949
+ };
1950
+
1951
+ GMaps.createPanorama = function(options) {
1952
+ var el = getElementById(options.el, options.context);
1953
+
1954
+ options.position = new google.maps.LatLng(options.lat, options.lng);
1955
+
1956
+ delete options.el;
1957
+ delete options.context;
1958
+ delete options.lat;
1959
+ delete options.lng;
1960
+
1961
+ var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'],
1962
+ streetview_options = extend_object({visible : true}, options);
1963
+
1964
+ for (var i = 0; i < streetview_events.length; i++) {
1965
+ delete streetview_options[streetview_events[i]];
1966
+ }
1967
+
1968
+ var panorama = new google.maps.StreetViewPanorama(el, streetview_options);
1969
+
1970
+ for (var i = 0; i < streetview_events.length; i++) {
1971
+ (function(object, name) {
1972
+ if (options[name]) {
1973
+ google.maps.event.addListener(object, name, function(){
1974
+ options[name].apply(this);
1975
+ });
1976
+ }
1977
+ })(panorama, streetview_events[i]);
1978
+ }
1979
+
1980
+ return panorama;
1981
+ };
1982
+
1983
+ GMaps.prototype.on = function(event_name, handler) {
1984
+ return GMaps.on(event_name, this, handler);
1985
+ };
1986
+
1987
+ GMaps.prototype.off = function(event_name) {
1988
+ GMaps.off(event_name, this);
1989
+ };
1990
+
1991
+ GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed'];
1992
+
1993
+ GMaps.on = function(event_name, object, handler) {
1994
+ if (GMaps.custom_events.indexOf(event_name) == -1) {
1995
+ if(object instanceof GMaps) object = object.map;
1996
+ return google.maps.event.addListener(object, event_name, handler);
1997
+ }
1998
+ else {
1999
+ var registered_event = {
2000
+ handler : handler,
2001
+ eventName : event_name
2002
+ };
2003
+
2004
+ object.registered_events[event_name] = object.registered_events[event_name] || [];
2005
+ object.registered_events[event_name].push(registered_event);
2006
+
2007
+ return registered_event;
2008
+ }
2009
+ };
2010
+
2011
+ GMaps.off = function(event_name, object) {
2012
+ if (GMaps.custom_events.indexOf(event_name) == -1) {
2013
+ if(object instanceof GMaps) object = object.map;
2014
+ google.maps.event.clearListeners(object, event_name);
2015
+ }
2016
+ else {
2017
+ object.registered_events[event_name] = [];
2018
+ }
2019
+ };
2020
+
2021
+ GMaps.fire = function(event_name, object, scope) {
2022
+ if (GMaps.custom_events.indexOf(event_name) == -1) {
2023
+ google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2));
2024
+ }
2025
+ else {
2026
+ if(event_name in scope.registered_events) {
2027
+ var firing_events = scope.registered_events[event_name];
2028
+
2029
+ for(var i = 0; i < firing_events.length; i++) {
2030
+ (function(handler, scope, object) {
2031
+ handler.apply(scope, [object]);
2032
+ })(firing_events[i]['handler'], scope, object);
2033
+ }
2034
+ }
2035
+ }
2036
+ };
2037
+
2038
+ GMaps.geolocate = function(options) {
2039
+ var complete_callback = options.always || options.complete;
2040
+
2041
+ if (navigator.geolocation) {
2042
+ navigator.geolocation.getCurrentPosition(function(position) {
2043
+ options.success(position);
2044
+
2045
+ if (complete_callback) {
2046
+ complete_callback();
2047
+ }
2048
+ }, function(error) {
2049
+ options.error(error);
2050
+
2051
+ if (complete_callback) {
2052
+ complete_callback();
2053
+ }
2054
+ }, options.options);
2055
+ }
2056
+ else {
2057
+ options.not_supported();
2058
+
2059
+ if (complete_callback) {
2060
+ complete_callback();
2061
+ }
2062
+ }
2063
+ };
2064
+
2065
+ GMaps.geocode = function(options) {
2066
+ this.geocoder = new google.maps.Geocoder();
2067
+ var callback = options.callback;
2068
+ if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) {
2069
+ options.latLng = new google.maps.LatLng(options.lat, options.lng);
2070
+ }
2071
+
2072
+ delete options.lat;
2073
+ delete options.lng;
2074
+ delete options.callback;
2075
+
2076
+ this.geocoder.geocode(options, function(results, status) {
2077
+ callback(results, status);
2078
+ });
2079
+ };
2080
+
2081
+ //==========================
2082
+ // Polygon containsLatLng
2083
+ // https://github.com/tparkin/Google-Maps-Point-in-Polygon
2084
+ // Poygon getBounds extension - google-maps-extensions
2085
+ // http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js
2086
+ if (!google.maps.Polygon.prototype.getBounds) {
2087
+ google.maps.Polygon.prototype.getBounds = function(latLng) {
2088
+ var bounds = new google.maps.LatLngBounds();
2089
+ var paths = this.getPaths();
2090
+ var path;
2091
+
2092
+ for (var p = 0; p < paths.getLength(); p++) {
2093
+ path = paths.getAt(p);
2094
+ for (var i = 0; i < path.getLength(); i++) {
2095
+ bounds.extend(path.getAt(i));
2096
+ }
2097
+ }
2098
+
2099
+ return bounds;
2100
+ };
2101
+ }
2102
+
2103
+ if (!google.maps.Polygon.prototype.containsLatLng) {
2104
+ // Polygon containsLatLng - method to determine if a latLng is within a polygon
2105
+ google.maps.Polygon.prototype.containsLatLng = function(latLng) {
2106
+ // Exclude points outside of bounds as there is no way they are in the poly
2107
+ var bounds = this.getBounds();
2108
+
2109
+ if (bounds !== null && !bounds.contains(latLng)) {
2110
+ return false;
2111
+ }
2112
+
2113
+ // Raycast point in polygon method
2114
+ var inPoly = false;
2115
+
2116
+ var numPaths = this.getPaths().getLength();
2117
+ for (var p = 0; p < numPaths; p++) {
2118
+ var path = this.getPaths().getAt(p);
2119
+ var numPoints = path.getLength();
2120
+ var j = numPoints - 1;
2121
+
2122
+ for (var i = 0; i < numPoints; i++) {
2123
+ var vertex1 = path.getAt(i);
2124
+ var vertex2 = path.getAt(j);
2125
+
2126
+ if (vertex1.lng() < latLng.lng() && vertex2.lng() >= latLng.lng() || vertex2.lng() < latLng.lng() && vertex1.lng() >= latLng.lng()) {
2127
+ if (vertex1.lat() + (latLng.lng() - vertex1.lng()) / (vertex2.lng() - vertex1.lng()) * (vertex2.lat() - vertex1.lat()) < latLng.lat()) {
2128
+ inPoly = !inPoly;
2129
+ }
2130
+ }
2131
+
2132
+ j = i;
2133
+ }
2134
+ }
2135
+
2136
+ return inPoly;
2137
+ };
2138
+ }
2139
+
2140
+ if (!google.maps.Circle.prototype.containsLatLng) {
2141
+ google.maps.Circle.prototype.containsLatLng = function(latLng) {
2142
+ if (google.maps.geometry) {
2143
+ return google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), latLng) <= this.getRadius();
2144
+ }
2145
+ else {
2146
+ return true;
2147
+ }
2148
+ };
2149
+ }
2150
+
2151
+ google.maps.LatLngBounds.prototype.containsLatLng = function(latLng) {
2152
+ return this.contains(latLng);
2153
+ };
2154
+
2155
+ google.maps.Marker.prototype.setFences = function(fences) {
2156
+ this.fences = fences;
2157
+ };
2158
+
2159
+ google.maps.Marker.prototype.addFence = function(fence) {
2160
+ this.fences.push(fence);
2161
+ };
2162
+
2163
+ google.maps.Marker.prototype.getId = function() {
2164
+ return this['__gm_id'];
2165
+ };
2166
+
2167
+ //==========================
2168
+ // Array indexOf
2169
+ // https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf
2170
+ if (!Array.prototype.indexOf) {
2171
+ Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
2172
+ "use strict";
2173
+ if (this == null) {
2174
+ throw new TypeError();
2175
+ }
2176
+ var t = Object(this);
2177
+ var len = t.length >>> 0;
2178
+ if (len === 0) {
2179
+ return -1;
2180
+ }
2181
+ var n = 0;
2182
+ if (arguments.length > 1) {
2183
+ n = Number(arguments[1]);
2184
+ if (n != n) { // shortcut for verifying if it's NaN
2185
+ n = 0;
2186
+ } else if (n != 0 && n != Infinity && n != -Infinity) {
2187
+ n = (n > 0 || -1) * Math.floor(Math.abs(n));
2188
+ }
2189
+ }
2190
+ if (n >= len) {
2191
+ return -1;
2192
+ }
2193
+ var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
2194
+ for (; k < len; k++) {
2195
+ if (k in t && t[k] === searchElement) {
2196
+ return k;
2197
+ }
2198
+ }
2199
+ return -1;
2200
+ }
2201
+ }
2202
+
2203
+ return GMaps;
2204
+ }));