WassUp Real Time Analytics - Version 1.4.5

Version Description

Download this release

Release Info

Developer michelem
Plugin Icon 128x128 WassUp Real Time Analytics
Version 1.4.5
Comparing to
See all releases

Version 1.4.5

Files changed (297) hide show
  1. badhosts.txt +6750 -0
  2. img/action_refresh_blue.gif +0 -0
  3. img/action_stop.gif +0 -0
  4. img/bg_widget.png +0 -0
  5. img/bg_widgetG.png +0 -0
  6. img/bg_widgetY.png +0 -0
  7. img/bullet_star.png +0 -0
  8. img/chart_add.png +0 -0
  9. img/chart_delete.png +0 -0
  10. img/cross.png +0 -0
  11. img/database_table.png +0 -0
  12. img/error_add.png +0 -0
  13. img/error_delete.png +0 -0
  14. img/flags/ad.png +0 -0
  15. img/flags/ae.png +0 -0
  16. img/flags/af.png +0 -0
  17. img/flags/ag.png +0 -0
  18. img/flags/ai.png +0 -0
  19. img/flags/al.png +0 -0
  20. img/flags/am.png +0 -0
  21. img/flags/an.png +0 -0
  22. img/flags/ao.png +0 -0
  23. img/flags/ar.png +0 -0
  24. img/flags/as.png +0 -0
  25. img/flags/at.png +0 -0
  26. img/flags/au.png +0 -0
  27. img/flags/aw.png +0 -0
  28. img/flags/ax.png +0 -0
  29. img/flags/az.png +0 -0
  30. img/flags/ba.png +0 -0
  31. img/flags/bb.png +0 -0
  32. img/flags/bd.png +0 -0
  33. img/flags/be.png +0 -0
  34. img/flags/bf.png +0 -0
  35. img/flags/bg.png +0 -0
  36. img/flags/bh.png +0 -0
  37. img/flags/bi.png +0 -0
  38. img/flags/bj.png +0 -0
  39. img/flags/bm.png +0 -0
  40. img/flags/bn.png +0 -0
  41. img/flags/bo.png +0 -0
  42. img/flags/br.png +0 -0
  43. img/flags/bs.png +0 -0
  44. img/flags/bt.png +0 -0
  45. img/flags/bv.png +0 -0
  46. img/flags/bw.png +0 -0
  47. img/flags/by.png +0 -0
  48. img/flags/bz.png +0 -0
  49. img/flags/ca.png +0 -0
  50. img/flags/catalonia.png +0 -0
  51. img/flags/cc.png +0 -0
  52. img/flags/cd.png +0 -0
  53. img/flags/cf.png +0 -0
  54. img/flags/cg.png +0 -0
  55. img/flags/ch.png +0 -0
  56. img/flags/ci.png +0 -0
  57. img/flags/ck.png +0 -0
  58. img/flags/cl.png +0 -0
  59. img/flags/cm.png +0 -0
  60. img/flags/cn.png +0 -0
  61. img/flags/co.png +0 -0
  62. img/flags/cr.png +0 -0
  63. img/flags/cs.png +0 -0
  64. img/flags/cu.png +0 -0
  65. img/flags/cv.png +0 -0
  66. img/flags/cx.png +0 -0
  67. img/flags/cy.png +0 -0
  68. img/flags/cz.png +0 -0
  69. img/flags/de.png +0 -0
  70. img/flags/dj.png +0 -0
  71. img/flags/dk.png +0 -0
  72. img/flags/dm.png +0 -0
  73. img/flags/do.png +0 -0
  74. img/flags/dz.png +0 -0
  75. img/flags/ec.png +0 -0
  76. img/flags/ee.png +0 -0
  77. img/flags/eg.png +0 -0
  78. img/flags/eh.png +0 -0
  79. img/flags/el.png +0 -0
  80. img/flags/en.png +0 -0
  81. img/flags/england.png +0 -0
  82. img/flags/er.png +0 -0
  83. img/flags/es.png +0 -0
  84. img/flags/et.png +0 -0
  85. img/flags/europeanunion.png +0 -0
  86. img/flags/fa.png +0 -0
  87. img/flags/fam.png +0 -0
  88. img/flags/fi.png +0 -0
  89. img/flags/fj.png +0 -0
  90. img/flags/fk.png +0 -0
  91. img/flags/fm.png +0 -0
  92. img/flags/fo.png +0 -0
  93. img/flags/fr.png +0 -0
  94. img/flags/ga.png +0 -0
  95. img/flags/gb.png +0 -0
  96. img/flags/gd.png +0 -0
  97. img/flags/ge.png +0 -0
  98. img/flags/gf.png +0 -0
  99. img/flags/gh.png +0 -0
  100. img/flags/gi.png +0 -0
  101. img/flags/gl.png +0 -0
  102. img/flags/gm.png +0 -0
  103. img/flags/gn.png +0 -0
  104. img/flags/gp.png +0 -0
  105. img/flags/gq.png +0 -0
  106. img/flags/gr.png +0 -0
  107. img/flags/gs.png +0 -0
  108. img/flags/gt.png +0 -0
  109. img/flags/gu.png +0 -0
  110. img/flags/gw.png +0 -0
  111. img/flags/gy.png +0 -0
  112. img/flags/hk.png +0 -0
  113. img/flags/hm.png +0 -0
  114. img/flags/hn.png +0 -0
  115. img/flags/hr.png +0 -0
  116. img/flags/ht.png +0 -0
  117. img/flags/hu.png +0 -0
  118. img/flags/id.png +0 -0
  119. img/flags/ie.png +0 -0
  120. img/flags/il.png +0 -0
  121. img/flags/in.png +0 -0
  122. img/flags/io.png +0 -0
  123. img/flags/iq.png +0 -0
  124. img/flags/ir.png +0 -0
  125. img/flags/is.png +0 -0
  126. img/flags/it.png +0 -0
  127. img/flags/jm.png +0 -0
  128. img/flags/jo.png +0 -0
  129. img/flags/jp.png +0 -0
  130. img/flags/ke.png +0 -0
  131. img/flags/kg.png +0 -0
  132. img/flags/kh.png +0 -0
  133. img/flags/ki.png +0 -0
  134. img/flags/km.png +0 -0
  135. img/flags/kn.png +0 -0
  136. img/flags/kp.png +0 -0
  137. img/flags/kr.png +0 -0
  138. img/flags/kw.png +0 -0
  139. img/flags/ky.png +0 -0
  140. img/flags/kz.png +0 -0
  141. img/flags/la.png +0 -0
  142. img/flags/lb.png +0 -0
  143. img/flags/lc.png +0 -0
  144. img/flags/li.png +0 -0
  145. img/flags/lk.png +0 -0
  146. img/flags/lr.png +0 -0
  147. img/flags/ls.png +0 -0
  148. img/flags/lt.png +0 -0
  149. img/flags/lu.png +0 -0
  150. img/flags/lv.png +0 -0
  151. img/flags/ly.png +0 -0
  152. img/flags/ma.png +0 -0
  153. img/flags/mc.png +0 -0
  154. img/flags/md.png +0 -0
  155. img/flags/me.png +0 -0
  156. img/flags/mg.png +0 -0
  157. img/flags/mh.png +0 -0
  158. img/flags/mk.png +0 -0
  159. img/flags/ml.png +0 -0
  160. img/flags/mm.png +0 -0
  161. img/flags/mn.png +0 -0
  162. img/flags/mo.png +0 -0
  163. img/flags/mp.png +0 -0
  164. img/flags/mq.png +0 -0
  165. img/flags/mr.png +0 -0
  166. img/flags/ms.png +0 -0
  167. img/flags/mt.png +0 -0
  168. img/flags/mu.png +0 -0
  169. img/flags/mv.png +0 -0
  170. img/flags/mw.png +0 -0
  171. img/flags/mx.png +0 -0
  172. img/flags/my.png +0 -0
  173. img/flags/mz.png +0 -0
  174. img/flags/na.png +0 -0
  175. img/flags/nc.png +0 -0
  176. img/flags/ne.png +0 -0
  177. img/flags/nf.png +0 -0
  178. img/flags/ng.png +0 -0
  179. img/flags/ni.png +0 -0
  180. img/flags/nl.png +0 -0
  181. img/flags/no.png +0 -0
  182. img/flags/np.png +0 -0
  183. img/flags/nr.png +0 -0
  184. img/flags/nu.png +0 -0
  185. img/flags/nz.png +0 -0
  186. img/flags/om.png +0 -0
  187. img/flags/pa.png +0 -0
  188. img/flags/pe.png +0 -0
  189. img/flags/pf.png +0 -0
  190. img/flags/pg.png +0 -0
  191. img/flags/ph.png +0 -0
  192. img/flags/pk.png +0 -0
  193. img/flags/pl.png +0 -0
  194. img/flags/pm.png +0 -0
  195. img/flags/pn.png +0 -0
  196. img/flags/pr.png +0 -0
  197. img/flags/ps.png +0 -0
  198. img/flags/pt.png +0 -0
  199. img/flags/pw.png +0 -0
  200. img/flags/py.png +0 -0
  201. img/flags/qa.png +0 -0
  202. img/flags/re.png +0 -0
  203. img/flags/ro.png +0 -0
  204. img/flags/rs.png +0 -0
  205. img/flags/ru.png +0 -0
  206. img/flags/rw.png +0 -0
  207. img/flags/sa.png +0 -0
  208. img/flags/sb.png +0 -0
  209. img/flags/sc.png +0 -0
  210. img/flags/scotland.png +0 -0
  211. img/flags/sd.png +0 -0
  212. img/flags/se.png +0 -0
  213. img/flags/sg.png +0 -0
  214. img/flags/sh.png +0 -0
  215. img/flags/si.png +0 -0
  216. img/flags/sj.png +0 -0
  217. img/flags/sk.png +0 -0
  218. img/flags/sl.png +0 -0
  219. img/flags/sm.png +0 -0
  220. img/flags/sn.png +0 -0
  221. img/flags/so.png +0 -0
  222. img/flags/sr.png +0 -0
  223. img/flags/st.png +0 -0
  224. img/flags/sv.png +0 -0
  225. img/flags/sy.png +0 -0
  226. img/flags/sz.png +0 -0
  227. img/flags/tc.png +0 -0
  228. img/flags/td.png +0 -0
  229. img/flags/tf.png +0 -0
  230. img/flags/tg.png +0 -0
  231. img/flags/th.png +0 -0
  232. img/flags/tj.png +0 -0
  233. img/flags/tk.png +0 -0
  234. img/flags/tl.png +0 -0
  235. img/flags/tm.png +0 -0
  236. img/flags/tn.png +0 -0
  237. img/flags/to.png +0 -0
  238. img/flags/tr.png +0 -0
  239. img/flags/tt.png +0 -0
  240. img/flags/tv.png +0 -0
  241. img/flags/tw.png +0 -0
  242. img/flags/tz.png +0 -0
  243. img/flags/ua.png +0 -0
  244. img/flags/ug.png +0 -0
  245. img/flags/uk.png +0 -0
  246. img/flags/um.png +0 -0
  247. img/flags/us.png +0 -0
  248. img/flags/uy.png +0 -0
  249. img/flags/uz.png +0 -0
  250. img/flags/va.png +0 -0
  251. img/flags/vc.png +0 -0
  252. img/flags/ve.png +0 -0
  253. img/flags/vg.png +0 -0
  254. img/flags/vi.png +0 -0
  255. img/flags/vn.png +0 -0
  256. img/flags/vu.png +0 -0
  257. img/flags/wales.png +0 -0
  258. img/flags/wf.png +0 -0
  259. img/flags/ws.png +0 -0
  260. img/flags/ye.png +0 -0
  261. img/flags/yt.png +0 -0
  262. img/flags/za.png +0 -0
  263. img/flags/zm.png +0 -0
  264. img/flags/zw.png +0 -0
  265. img/icon_favourites.gif +0 -0
  266. img/icon_get_world.gif +0 -0
  267. img/icon_get_worldBN.gif +0 -0
  268. img/icon_settings.gif +0 -0
  269. img/icon_settingsBN.gif +0 -0
  270. img/list-bg-gold.png +0 -0
  271. img/list-bg.png +0 -0
  272. img/list-bg2.png +0 -0
  273. img/list-bg3.png +0 -0
  274. img/loading.gif +0 -0
  275. img/loadingAnimation.gif +0 -0
  276. img/page_delete.gif +0 -0
  277. img/page_favourites.gif +0 -0
  278. img/sum-bg.png +0 -0
  279. img/tab.png +0 -0
  280. js/jquery.js +11 -0
  281. js/spy.js +159 -0
  282. js/thickbox.js +10 -0
  283. js/ui.tabs.js +8 -0
  284. lib/action.php +164 -0
  285. lib/akismet.class.php +388 -0
  286. lib/main.php +819 -0
  287. lib/settings.php +197 -0
  288. lib/spy.php +28 -0
  289. readme.txt +129 -0
  290. thickbox.css +163 -0
  291. thickbox/loadingAnimation.gif +0 -0
  292. thickbox/macFFBgHack.png +0 -0
  293. thickbox/thickbox.css +163 -0
  294. thickbox/thickbox.js +10 -0
  295. ui.tabs.css +113 -0
  296. wassup.css +449 -0
  297. wassup.php +1998 -0
badhosts.txt ADDED
@@ -0,0 +1,6750 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 009youth.com
2
+ 012toyou.com
3
+ 028jsh.com
4
+ 0345fjh.com
5
+ 0ffshorepharm.com
6
+ 0ffshorepharmzone.com
7
+ 0k0k.net
8
+ 0medz0.com
9
+ 0rderdrugs.com
10
+ 0refi.net
11
+ 0riginals.net
12
+ 1000freenotes.com
13
+ 1010101010.biz
14
+ 1010inc.com.sg
15
+ 1094kdsd.com
16
+ 1107221e.com
17
+ 111adfueo.us
18
+ 111adfuod.us
19
+ 111fopwuer.us
20
+ 111odfuod.us
21
+ 111ouroue.us
22
+ 111rx.com
23
+ 123-refinance.net
24
+ 123-refinancing.net
25
+ 1234hollus.com
26
+ 123HerbalGrowth.com
27
+ 123bargain.net
28
+ 123cigs4less1.com
29
+ 123cigs4less6.com
30
+ 123getit.com
31
+ 123getnow.com
32
+ 123hammertime.biz
33
+ 123herbalz.com
34
+ 123legalmeds.com
35
+ 123medusa.com
36
+ 123mortgaging.com
37
+ 123penilegrowth123.com
38
+ 123refinancing.net
39
+ 123respmarket.biz
40
+ 123rxmeds.biz
41
+ 123rxrocks.com
42
+ 123store.biz
43
+ 123wneiis.info
44
+ 12freehost.com
45
+ 12mtgnow.com
46
+ 12qnw2meds.com
47
+ 12refinancenow.com
48
+ 163.com
49
+ 17greatsoft.biz
50
+ 17meds.com
51
+ 1800wneiis.info
52
+ 1800wneiisbiz.info
53
+ 1800wneiisbuy.info
54
+ 1800wneiiscity.info
55
+ 1800wneiisco.info
56
+ 18greatsoft.biz
57
+ 1adipren.com
58
+ 1bust-enhance.biz
59
+ 1clickagency.info
60
+ 1clickauthority.info
61
+ 1clickave.info
62
+ 1clickchoice.com
63
+ 1clickcomplete.com
64
+ 1clickconcepts.info
65
+ 1clickextra.info
66
+ 1clickgallery.info
67
+ 1clickgreat.info
68
+ 1clickunlimited.com
69
+ 1clickunlimited.info
70
+ 1ead1ead.us
71
+ 1fastshell.com
72
+ 1gaminghub.com
73
+ 1greatsoft.biz
74
+ 1hbedomain.com
75
+ 1highereducation.com
76
+ 1homebusinesshub.com
77
+ 1ncr3dible.net
78
+ 1oem.net
79
+ 1on1for4.com
80
+ 1owinterest.us
81
+ 1saving.com
82
+ 1saving.net
83
+ 1stemperor.com
84
+ 1stmed99.org
85
+ 1stopcentral.info
86
+ 1stopgallery.info
87
+ 1stopnet.info
88
+ 2004pharms.com
89
+ 2005-mort-gages.com
90
+ 2005downloadclub.com
91
+ 2005downloadnetwork.com
92
+ 2005superlow.com
93
+ 222meds.info
94
+ 22cn.com
95
+ 230thatmigrates.com
96
+ 233amnbesa.com
97
+ 237hsh.com
98
+ 23larger23.biz
99
+ 23run.biz
100
+ 24-7medz.com
101
+ 247-4less.com
102
+ 247depots.info
103
+ 247systems.info
104
+ 24hrapproval.net
105
+ 24x7-mortgages.com
106
+ 24x7-quotes.com
107
+ 25kl0sqjx.com
108
+ 2911.net
109
+ 2adipren.com
110
+ 2anal2quit.com
111
+ 2hostpromotion101.com
112
+ 2newmail.com
113
+ 2oo5-downloading.com
114
+ 2rate.net
115
+ 2x2x.com
116
+ 3-m-n.com
117
+ 3001hosting.com
118
+ 3002hosting.com
119
+ 3006hosting.com
120
+ 3007hosting.com
121
+ 3245rdefe.com
122
+ 3291enhanceme.biz
123
+ 3322.org
124
+ 336fastmail.biz
125
+ 336fastmail.com
126
+ 336fastman.com
127
+ 34-500.com
128
+ 34234jedfh.com
129
+ 3443diet.biz
130
+ 365xcentral.info
131
+ 36help.info
132
+ 372bay.com
133
+ 37500visitstoyoursite.com
134
+ 37khitsnow.com
135
+ 39fga.biz
136
+ 3adipren.com
137
+ 3kserver8.com
138
+ 3newmail.com
139
+ 3ngycd.info
140
+ 3ruro33.com
141
+ 3xcom.net
142
+ 4-ever-mrg.com
143
+ 4-ever-mrt.com
144
+ 4-ever-mrt.net
145
+ 40tgkmg.com
146
+ 420-420.com
147
+ 420fu.biz
148
+ 49dmds.com
149
+ 49gjzs.com
150
+ 4drugs123.com
151
+ 4hbedomain.com
152
+ 4inch6.com
153
+ 4pharma99.com
154
+ 4rate.net
155
+ 4spy-control.com
156
+ 4t.com
157
+ 4u-find.com
158
+ 4u-mortgage.net
159
+ 4uhe-rbal.com
160
+ 5085enhanceme.biz
161
+ 509vms.com
162
+ 50ldfjg.com
163
+ 550000x.com
164
+ 5802ddf.com
165
+ 5buymeripren.biz
166
+ 5discountdays.info
167
+ 5star-rx.net
168
+ 60secondsrefinance.com
169
+ 610000x.com
170
+ 6555.biz
171
+ 65net.info
172
+ 690mrk.com
173
+ 699rottenfish.com
174
+ 6cialagenius.biz
175
+ 6mg.net
176
+ 6not.com
177
+ 70percentoffsoft.info
178
+ 70percentrx.com
179
+ 777mg.com
180
+ 7dsjpharm.com
181
+ 7greatsoft.biz
182
+ 8003hosting.com
183
+ 8004hosting.com
184
+ 8005hosting.com
185
+ 8006hosting.com
186
+ 8009hosting.com
187
+ 823jha.com
188
+ 859fs.com
189
+ 8721diet.biz
190
+ 888-luvu.com
191
+ 88dns.cn
192
+ 88specials.info
193
+ 8one2tums.com
194
+ 8u3284rh.com
195
+ 9001hosting.com
196
+ 9002hosting.com
197
+ 9003hosting.com
198
+ 9004hosting.com
199
+ 9005hosting.com
200
+ 9006hosting.com
201
+ 9008hosting.com
202
+ 95777.com
203
+ 98207.biz
204
+ 999-best.com
205
+ 99greenmonkey.com
206
+ 9greatmeripren.biz
207
+ 9top9.com
208
+ BestBuyWatchezOnline.com
209
+ SuKiCollection.biz
210
+ a-pills.com
211
+ a-pills.net
212
+ a-promotion.com
213
+ a-team.com.sg
214
+ a-z-meds.com
215
+ a-z-soft.info
216
+ a11-web-promo.com
217
+ a11leads.info
218
+ a1car.com.sg
219
+ a1medz.com
220
+ a1replicas.info
221
+ a8k.net
222
+ aa0ru08.us
223
+ aa3434.info
224
+ aa4321.info
225
+ aa5454.info
226
+ aaaplusdirect.biz
227
+ aabbe.info
228
+ aahtech.com
229
+ aaiy.com
230
+ aaltwec.com
231
+ aamedical.net
232
+ aapharm.org
233
+ aarho.info
234
+ aashipp.com
235
+ abajqwkwjf.com
236
+ abandoned6soothes.com
237
+ abandonedlove.com
238
+ abbbafd.info
239
+ abbreviate9traitorous.com
240
+ abc-soft.info
241
+ abdfwdfwe.info
242
+ abdsfwefd.info
243
+ abe8748biz.us
244
+ abetterfutureforyou.com
245
+ abidance1detonate.info
246
+ abjectness7munition.com
247
+ abjuration2appaloosa.us
248
+ abkfowefsdf.com
249
+ ablazefest.com
250
+ abmcd.net
251
+ abnegator3aviator.info
252
+ abodfwefd.com
253
+ abordecross.com
254
+ abousiweeks.com
255
+ about-finance.com
256
+ about-islam.org
257
+ about-money.info
258
+ about-online-dating.net
259
+ aboutanyotherform.com
260
+ aboutsalez.info
261
+ aboutstamina.com
262
+ abqjwjadf.info
263
+ abqooqasdb.com
264
+ abqqwed.info
265
+ abratib.com
266
+ abreast2edison.com
267
+ abridgeloan.com
268
+ absently9buenos.com
269
+ abservertionastrefun.com
270
+ absjadfjqw.info
271
+ abuddysetyouup.com
272
+ acananmdaf.com
273
+ acapulco8hussy.com
274
+ accented7surgically.info
275
+ accessibly4168pi11.us
276
+ accesskl.com
277
+ acclimate5lavish.com
278
+ accustomgj.com
279
+ ace-host.org
280
+ acequityloan.com
281
+ achadoseperdidos.info
282
+ achadoseperdidosemsp.info
283
+ achapeloflove.com
284
+ achievebetter.com
285
+ achucklehead.com
286
+ acidprint.com
287
+ aclum.com
288
+ aconitumil.com
289
+ actionmedsupply.com
290
+ active-mortgage.net
291
+ activecer.com
292
+ activeemsn.com
293
+ activesaving.com
294
+ actualize2achy.us
295
+ adam9affecter.com
296
+ adataplaseup.com
297
+ addable8060biz.com
298
+ addynamix.com
299
+ adeliminating.com
300
+ aden9strangler.com
301
+ adinandar.com
302
+ adipren10.com
303
+ adipren11.com
304
+ adipren12.com
305
+ adipren13.com
306
+ adjusters4diffuse.info
307
+ adjutancy7plausibly.com
308
+ admanmail.com
309
+ administratbuild.com
310
+ admit3shredded.com
311
+ admitityourgladtoseeus.com
312
+ adore6hie.com
313
+ adoredarling.com
314
+ adown2steeps.info
315
+ adrugstoreandmore.us
316
+ ads4webhost.com
317
+ adsakdau.com
318
+ adsorbable5areola.com
319
+ adult-delivery.net
320
+ adultactioncam.com
321
+ adultactioncash.com
322
+ adultmegacash.com
323
+ adultmerchantprocessing.info
324
+ adultoptin.net
325
+ advancedlife.info
326
+ advancenewitems.com
327
+ advantagedrugstore.us
328
+ advertising.com
329
+ advertisinginternational.net
330
+ advicesfromdoc.info
331
+ advisors7walkaway.com
332
+ adware-business.com
333
+ adware-gator.com
334
+ adwareindanger.com
335
+ adwareisgone.com
336
+ adweawen.biz
337
+ aeamdgi.info
338
+ aefbefb.info
339
+ aeiiwiellfmakeeveryahterr.com
340
+ aelefa.us
341
+ aendbvsvc.com
342
+ aeroseddicc.com
343
+ aetbmale.biz
344
+ aetna5893drygs.com
345
+ afdb.org
346
+ afeet.com
347
+ affairsociety.com
348
+ affil9384.biz
349
+ affinitydrugstores.us
350
+ affjjdahma.info
351
+ affluence9217nx.com
352
+ affordable-drugstore.us
353
+ affordablegenericviagra.com
354
+ affordablerolex.net
355
+ affornext.com
356
+ afineasset.com
357
+ afjje.net
358
+ afkdkei.info
359
+ afteryousubmit.com
360
+ again7.com
361
+ againsno.com
362
+ agansim.com
363
+ agbbalie.info
364
+ agelessliving.biz
365
+ agelmkb.info
366
+ agents.com.sg
367
+ aghous.us
368
+ aghoyoe.us
369
+ aghtus.us
370
+ aglnk.com
371
+ agnate8phylactery.info
372
+ agoodbasket.com
373
+ agravitationalpull.com
374
+ agreatassets.com
375
+ agreatgains.com
376
+ agvadsdf.info
377
+ aheueiooo.cn
378
+ ahhdjkb.info
379
+ ahilles.com
380
+ ahmort.com
381
+ ahmort.net
382
+ ahomelender.com
383
+ ahothooks.com
384
+ ahowbuckas.com
385
+ ahprtv.com
386
+ ahrw018.com
387
+ aibolita.net
388
+ aidemail.net
389
+ aidininmat.com
390
+ aih01.com
391
+ aimeestailey.com
392
+ aiphong.com
393
+ air5566.com
394
+ airangle.com
395
+ aiscmale.biz
396
+ ajapqe.biz
397
+ ajidoq.biz
398
+ ajkaun.biz
399
+ akajdfmeds1.com
400
+ akdaan.info
401
+ akeeuncle.info
402
+ akella.biz
403
+ akimbomjmcm.com
404
+ akirm.info
405
+ akjqoabch.com
406
+ akmort.net
407
+ aknbekf.info
408
+ akretm.com
409
+ al7barsales.com
410
+ alansis.com
411
+ albruni.com
412
+ albums1cress.com
413
+ alchemy3trumpeter.com
414
+ alenderz.info
415
+ alenderz.net
416
+ alfimbmkbd.info
417
+ alia3revenue.info
418
+ aline2.com
419
+ alitalia9689pi11.us
420
+ alkccag.info
421
+ all-cds.net
422
+ allaboutbargain.biz
423
+ allaboutfatloss.com
424
+ allaide.net
425
+ allbestoem.info
426
+ allbestprice.info
427
+ allbigcocks.com
428
+ allcds.org
429
+ allcheapmedz.com
430
+ alleysoftware.biz
431
+ allfastsoft.info
432
+ allflash.net
433
+ allforhealth.info
434
+ allgoodpeoplegetthis.com
435
+ allgoodproductss.com
436
+ allherbalnow.com
437
+ allhotsoft.info
438
+ allinfohere.info
439
+ allinone05.info
440
+ allisonroyce.com
441
+ allnewreplicas.info
442
+ allnewwatches.info
443
+ allofoem.biz
444
+ alloseme3treaty.info
445
+ allotropic1congruency.info
446
+ allpassports.com
447
+ allpharmaonline.com
448
+ allsoftforsale.info
449
+ allsplash.com
450
+ allthemeds.biz
451
+ allthemeds.info
452
+ allthesoft.info
453
+ allthesoft.org
454
+ allyourmeds.net
455
+ allyourpromoneeds.com
456
+ almighty9stilts.info
457
+ aloanprocess.com
458
+ alobhyundajacoupe.com
459
+ alohacasino.biz
460
+ alpacas1admissive.com
461
+ alphacardz.info
462
+ alphapuff.com
463
+ already-have.com
464
+ alreadyestablished.com
465
+ alreasease.com
466
+ alsoxls.com
467
+ althealthresources.info
468
+ altmatch.org
469
+ alugueldetemporada.info
470
+ alwando.com
471
+ amalgamationofnine.com
472
+ amameds2.com
473
+ amason.info
474
+ amazedhere1.com
475
+ amazingratesnow.com
476
+ ambein.net
477
+ amberrace.info
478
+ america-loans.net
479
+ america-re-finances.com
480
+ american-loans.org
481
+ americangreetings.com
482
+ americasbestwatches.com
483
+ amerryman.com
484
+ amhang.com
485
+ amndsera.com
486
+ amnzw2z.com
487
+ amomentlikethisagain.com
488
+ amsnbd64.com
489
+ amsnbzxw.com
490
+ amsndrs.com
491
+ amsterdamhi.info
492
+ amtradebiz.com
493
+ amyslate.com
494
+ anaconmedia.biz
495
+ anbaxr.com
496
+ anckhem.info
497
+ andifwhywhere.com
498
+ andsaidpapa.com
499
+ andshesg.com
500
+ andthen.info
501
+ andtheysink.com
502
+ andywoneloahjelawssecould.com
503
+ anemic5affirm.com
504
+ angellenders.com
505
+ anlatemo.com
506
+ annejiuna.com
507
+ annualised.net
508
+ annualmedssale.info
509
+ annualmembersdrive.com
510
+ annualnewsletters.com
511
+ annualnotification.com
512
+ anpingsoft.com
513
+ ansberda.com
514
+ ant-card.com
515
+ antanawy.com
516
+ antiadwarechat.info
517
+ antiaging.com
518
+ antiagingcure.com
519
+ antipathy6tempo.com
520
+ antipuff.nom.br
521
+ antispring.com
522
+ antispywarecity.com
523
+ antispywareclub.com
524
+ antispywareco.com
525
+ antispywarefoundation.com
526
+ antispywaregalaxy.com
527
+ antplace.com
528
+ antredikikulate.com
529
+ anyhgh.com
530
+ aoaoj.com
531
+ aoc123.biz
532
+ aoidfbedsdfe.com
533
+ aokmwenks.com
534
+ aol09234980.com
535
+ aol234820482039.com
536
+ aol234820498239.com
537
+ aol43566.com
538
+ aolkeywerdz.com
539
+ aoolps.com
540
+ aopdufo.us
541
+ aosotue.us
542
+ apcotinternational.com
543
+ aphonia1shakable.com
544
+ aphrodite1260rx.us
545
+ apieasy.biz
546
+ aplusbestbuys.com
547
+ appleishco.com
548
+ applications-program.com
549
+ apply-nows.net
550
+ applymed.biz
551
+ applytosave.net
552
+ appreciatrust.info
553
+ appropritesolutoinss.com
554
+ approvalofthefirst.com
555
+ approved-loans.net
556
+ apt2moved.com
557
+ aquentseek.info
558
+ aqvnetsv.com
559
+ aqvotechs.com
560
+ aqweqw.info
561
+ arasmda.com
562
+ archduchy7pope.com
563
+ archety.com
564
+ arcquent.info
565
+ arctic1sidewise.com
566
+ arealinfo.biz
567
+ arecarmatey.com
568
+ arefansgoing.com
569
+ areinfactorbiting.com
570
+ aremidolm.com
571
+ aresubjectto.com
572
+ argaaa.cn
573
+ argo8354rx.biz
574
+ aridly3cognizant.com
575
+ arises3embroidery.com
576
+ arkilo.com
577
+ armenian8291drygs.com
578
+ aromizatious.info
579
+ arompaces.info
580
+ aroundthegalactic.com
581
+ aroussighness.info
582
+ arsenate8scpa.com
583
+ artemiadc.com
584
+ artukionmer.com
585
+ arvrofo.com
586
+ ascorbic9pigweed.com
587
+ asd21.biz
588
+ asdce.com
589
+ asdg32.biz
590
+ asdgsadgsdf.info
591
+ asdvasdgas.info
592
+ asfdhnmeds.com
593
+ asiabizhub.com.sg
594
+ asiamobile.tk
595
+ aslickfemale.com
596
+ aslsdfi.bi
597
+ aslsdfi.biz
598
+ asmmmale.biz
599
+ asmndrbf.com
600
+ asmnxvvz.com
601
+ asnbdfw.com
602
+ asnbvxd.com
603
+ asoutoe.us
604
+ aspartames.net
605
+ asperse6bak.us
606
+ asseenonnet.info
607
+ assenting4762pill.us
608
+ assxff.com
609
+ astalavistasoft.com
610
+ astrolabe4trueness.com
611
+ astronomerstostudy.com
612
+ asvbsv4.com
613
+ asxcde.com
614
+ asxcesa.com
615
+ asymptotic4brim.com
616
+ atheistic3beanpole.com
617
+ atlanticclub.net
618
+ atoelujd.us
619
+ atoerul.us
620
+ atonement9529pirrs.com
621
+ atouel.us
622
+ attendee9327tads.us
623
+ attendtthgrave.com
624
+ attentionhotties.com
625
+ attentojey.net
626
+ attiring.com
627
+ auctionprofits4.biz
628
+ audbfwefd.info
629
+ augustly4troubadour.com
630
+ aujobs.net
631
+ auniv.com
632
+ aurahazebloom.com
633
+ aurelius.co.uk
634
+ auriferous6tabernacle.com
635
+ aussieoffers.com
636
+ austrian6reflect.com
637
+ auto-warrantys.com
638
+ autoknivesnow.com
639
+ automaticwarranty.com
640
+ autoresponseback.com
641
+ autostartsnow.net
642
+ availableonlyonline.com
643
+ avbsfdesfdfd.com
644
+ avenueofthestarts.info
645
+ avudiet.biz
646
+ awayoutofdebtfast.com
647
+ awddsbvce.com
648
+ awekhabdh.com
649
+ awelasoftwar.com
650
+ awesome-watch4u.info
651
+ awesomemusicavailable.com
652
+ awesomereplicaz.net
653
+ awfully3heroism.com
654
+ awmedxe.com
655
+ awpanqtgy.com
656
+ awsxzz-3.com
657
+ axing5875pi11s.us
658
+ axiomcentral.com
659
+ axzlo.com
660
+ aynhgh.com
661
+ ayurherbals.biz
662
+ azlk4xd5x.com
663
+ azmetaland.com
664
+ azogle.com
665
+ azzcksbfese.com
666
+ b-e-s-t-m-e-d-z.biz
667
+ b3mort.com
668
+ b3tterh3alth.com
669
+ b7777.info
670
+ b7x.net
671
+ b888.info
672
+ b9002hosting.com
673
+ baba-chat-desi-dirty.com
674
+ baba-rajni.com
675
+ baba-song-tamil.com
676
+ baba-song.com
677
+ babloemka.com
678
+ babrjy.info
679
+ baby30.com
680
+ babz.info
681
+ bacbwefds.info
682
+ backdoorhoney.com
683
+ backlets.info
684
+ backpackgirl.com
685
+ backspace6ignorance.com
686
+ bacterial9havre.com
687
+ bacterium1puler.com
688
+ badagu.com
689
+ badcrednoproblemloans.com
690
+ badcrednp4u.biz
691
+ bagfullofeggs.com
692
+ bagged9smuggler.com
693
+ bagpula.net
694
+ bahbah.info
695
+ baigbiggnh.info
696
+ balewisiacn.com
697
+ bally6stickup.info
698
+ bananarepublic.com
699
+ banginfo.biz
700
+ bangmatch.com
701
+ bangthem.com
702
+ banikay.hk
703
+ bank2gether.com
704
+ bankgeld.com
705
+ bankinterestchecker.info
706
+ bankir.info
707
+ bankitnow.biz
708
+ bankmail.biz
709
+ banksolidone.com
710
+ banlnicg.info
711
+ bannitts.com
712
+ baosifewh.com
713
+ barbietwinsandicecream.biz
714
+ barefi.net
715
+ bargainbusiness.biz
716
+ bargaininternational.biz
717
+ bargainloan.info
718
+ bargainpricemedz.com
719
+ barnyardteenies.com
720
+ barraca.us
721
+ barscan.com.sg
722
+ base191tads.us
723
+ basedn.com
724
+ basicgentle.cn
725
+ basicrxmeds.com
726
+ bassetnbnkk.com
727
+ bastion5styluses.com
728
+ bavarian6salem.com
729
+ bb03480.us
730
+ bb30480.us
731
+ bb4f.info
732
+ bbahostcity.com
733
+ bbahostfoundation.com
734
+ bbahostfree.com
735
+ bbahostingdirect.com
736
+ bbb999.biz
737
+ bbbrx.org
738
+ bbcefln.info
739
+ bbgejfck.info
740
+ bbiwriw.com
741
+ bbklfmnd.info
742
+ bcgroup.com.sg
743
+ bdceakgj.info
744
+ bdeahcha.info
745
+ bdhebamicji.com
746
+ bdidigid.info
747
+ be-young.com
748
+ beatly.info
749
+ beatrxbillz.com
750
+ beatrxbillz.net
751
+ beautiful-passion.com
752
+ beautifulglimpsesof.com
753
+ beautifulpants.com
754
+ bederical.com
755
+ beech3hereupon.info
756
+ beghy.biz
757
+ behaviour3overstay.com
758
+ behoof3murderous.info
759
+ beill.com
760
+ beleaguer7relation.info
761
+ belfdgl.info
762
+ belfry7univariate.com
763
+ bellevuehomes.net
764
+ bellmarketing4us.com
765
+ belong3derisive.info
766
+ bemegbnnhe.info
767
+ benchboard2endowed.info
768
+ bend1spiritless.com
769
+ benmaur.com
770
+ benzene946.org
771
+ bergis.info
772
+ beruuyefs.com
773
+ best-bio.com
774
+ best-mort.com
775
+ best-mort.net
776
+ best-morthome.com
777
+ best-mtg.info
778
+ best-oem-sellers.biz
779
+ best0fallmedz.biz
780
+ best4yourhealth.info
781
+ bestbuyreplicas.com
782
+ bestbuywatchezonline.net
783
+ bestchoicemortgagequotes.com
784
+ bestdownloadgateway.com
785
+ bestdrugsonline.net
786
+ bestewatchshop.com
787
+ bestexpressrx.com
788
+ bestformen.info
789
+ bestforyou.biz
790
+ bestlenderz.com
791
+ bestlovprice.com
792
+ bestlowrate.com
793
+ bestlowrates4u.biz
794
+ bestnatural-herbs.com
795
+ bestoemz.com
796
+ bestofthestarz.com
797
+ bestonlinephar.com
798
+ bestonthenet.biz
799
+ bestpharmacy24.info
800
+ bestpharmer.com
801
+ bestpills.info
802
+ bestpractical.com
803
+ bestqualityinfo.com
804
+ bestratesfinder.net
805
+ bestratesnow.biz
806
+ bestratesnow.us
807
+ bestrefillsonline.com
808
+ bestrisdjk.com
809
+ bestrxever.net
810
+ bestrxinfo.com
811
+ bestrxmeds11.com
812
+ bestrxsavez.com
813
+ bestrxtoday.biz
814
+ bestrxtoday.net
815
+ bestsoftlist.info
816
+ bestspecials.biz
817
+ besttimeisnow.biz
818
+ besttimewatches.com
819
+ besttimewatches.net
820
+ besttimewatchesonline.net
821
+ bestvabiz.com
822
+ bestvalueit.com
823
+ bestviagras.info
824
+ bestwatches.info
825
+ bestwatchez.net
826
+ bestwneiis.info
827
+ bestyourpills.com
828
+ betcatcall.com
829
+ betdyshcndjru.com
830
+ betterandmore.net
831
+ betterfuturetoday.com
832
+ betterhealth.biz
833
+ betteritemssupreme.com
834
+ betterjobsfindyou.com
835
+ betterlivingfuture.com
836
+ bettermortgagetoday.com
837
+ bettermortgagetoday.net
838
+ betterservice.info
839
+ bettersites.info
840
+ bettersnznf.info
841
+ beud.com
842
+ bewhthboo.com
843
+ bexeafw.com
844
+ beyonder.co.uk
845
+ bezpizdy.biz
846
+ beztbuyrx.com
847
+ beztmorgrate.info
848
+ bfeedbx.com
849
+ bgbtwkl.com
850
+ bgsgnof.com
851
+ bhex.com
852
+ bhgrf.com
853
+ bhneeag.biz
854
+ bhwittalii.com
855
+ bibles.com
856
+ big-on-time.com
857
+ big2005.com
858
+ big2bigger.com
859
+ bigaaron.info
860
+ bigbaxter.biz
861
+ bigbonus-casino.biz
862
+ bigbonus-casino.com
863
+ bigbonus-casino.net
864
+ bigcocksex.com
865
+ bigezloans.net
866
+ bigfen.info
867
+ bigfootisreal.biz
868
+ bigger4ever.biz
869
+ biggerchub.info
870
+ biggerpeen.com
871
+ biggesfightye.com
872
+ biggestrxdeals.net
873
+ bighealt.info
874
+ bighemper.info
875
+ bighex.info
876
+ biglakeinfo.biz
877
+ bigsash.info
878
+ bigtabl.info
879
+ bigtimevalues.com
880
+ bikva.info
881
+ billingleads.com
882
+ billionaireboysclub.info
883
+ billspharmasite.com
884
+ billspharmasite.net
885
+ bimonthly.org
886
+ bineriner.com
887
+ bio3532.us
888
+ biocel.us
889
+ biogenusa.biz
890
+ bioking.biz
891
+ biokorpus.com
892
+ biowonder.biz
893
+ bioxcel.info
894
+ bitea.info
895
+ bizoppmail.com
896
+ bizzy1.tk
897
+ bjbmdbe.info
898
+ bjeishfbef.com
899
+ bjgja.biz
900
+ bkmark.com
901
+ bkndr.com
902
+ blackout1sovietize.info
903
+ blah-rx.com
904
+ blahblahcutie.info
905
+ blasting8252tabs.biz
906
+ blazinwebtraffic.com
907
+ blazons.net
908
+ blcellbi.info
909
+ blend323d.com
910
+ bling-1.com
911
+ blitzware.biz
912
+ blixkka.com
913
+ blmcbhc.info
914
+ blngthisnwforxmas.com
915
+ blockcortisol.biz
916
+ blocklicensefrompic.com
917
+ bloodhoundmarkets.net
918
+ bluebarz.us
919
+ bluebroom.com
920
+ bluedolphin.com
921
+ bluehorizon.com.sg
922
+ bluemountain.com
923
+ bluemoviestunt.info
924
+ bluepalalski.com
925
+ bluepill-pharmacy.com
926
+ bluerockdove.com
927
+ bluvoice.com.sg
928
+ bmonown.com
929
+ bmrefi.net
930
+ bmzthe.biz
931
+ bnfbamcbbh.info
932
+ bnik.com
933
+ bnmka.com
934
+ bnstk.com
935
+ bnzthe.biz
936
+ boardstraight.com
937
+ boatrx.net
938
+ bobbycalled.com
939
+ bobzez.info
940
+ bobziz.info
941
+ bobzpz.info
942
+ bobzqz.info
943
+ bobzrz.com
944
+ bobztz.info
945
+ bobzyz.info
946
+ boggy9paulo.com
947
+ boidoihefd.com
948
+ bokwhdok.com
949
+ bolakursova.com
950
+ bolignet-aarhus.info
951
+ bolosko.com
952
+ bolyrt.info
953
+ bonewrench.com
954
+ bonizationers.com
955
+ bonusoffer2u.biz
956
+ bonxie.com
957
+ bony7aforetime.com
958
+ bookjohnson.com
959
+ bookntravel.com.sg
960
+ bookstall1clamper.com
961
+ bookswithinfo.info
962
+ boot4modal.com
963
+ bootiebabesrio.com
964
+ booyaka.biz
965
+ bornepersona.com
966
+ borneprimate.biz
967
+ bornstraight.com
968
+ bossanovaltd.info
969
+ bosssthiddensecretss.com
970
+ bot-mortgage.net
971
+ botbruisefro.com
972
+ botoxforless.info
973
+ bouewjsefd.com
974
+ bounding.net
975
+ bovanno.org
976
+ bowamenaza.net
977
+ bowelhk.com
978
+ bowknot9321drygs.com
979
+ bowman8103drug.us
980
+ boxesgetforflaps.com
981
+ boxings.net
982
+ bp2-rx.com
983
+ bp9.net
984
+ bpwosmxkfjr.com
985
+ br1lliant.com
986
+ br1lliant.net
987
+ bra1nhelpforvicsjun.com
988
+ bra28nhelpforvicsjun.com
989
+ braccoteam.com
990
+ brachia.com
991
+ brainsforever.info
992
+ bralamone.com
993
+ brandcontent.com
994
+ brandedwatches.info
995
+ branh8elpforvicsjun.com
996
+ branhelpf27orvicsjun.com
997
+ branhelpf4orvicsjun.com
998
+ branhelpforvic30sjun.com
999
+ branhelpforvicsj17un.com
1000
+ branhelpforvicsj23un.com
1001
+ brazhost.org
1002
+ brbrbr3.com
1003
+ breccias.com
1004
+ breh.info
1005
+ brenetsv.com
1006
+ breotechs.com
1007
+ bridegroom6963rx.us
1008
+ bridgemailsystem.com
1009
+ briefcase7calculus.info
1010
+ brightgame.com
1011
+ brightonrs.com
1012
+ brillianthealth.info
1013
+ brilliantmoney.com
1014
+ bristle3sbn.com
1015
+ britehost.org
1016
+ broadcastadvertise.org
1017
+ broadcastemail.us
1018
+ broadcastemailgroup.com
1019
+ broadcastemailingtoday.biz
1020
+ broadsword7adjustable.com
1021
+ broadview9405pirrs.com
1022
+ broughtwoyou.net
1023
+ brunklers.com
1024
+ brutmar.com
1025
+ bsbomdl.com
1026
+ bservicesp.com
1027
+ bshy.info
1028
+ bsllmeds.com
1029
+ buahsefed.info
1030
+ bubxax.info
1031
+ bubxix.info
1032
+ bubxsx.info
1033
+ bubxyx.info
1034
+ bucketed.net
1035
+ buildownhealth.info
1036
+ bultowmifd.com
1037
+ bulwarking.com
1038
+ buratino-online.info
1039
+ bushisatwat123.com
1040
+ businesswire.com
1041
+ butcher5appall.info
1042
+ butidoloveyou.com
1043
+ buttermagma.info
1044
+ buttonagncm.com
1045
+ buuiqkq.com
1046
+ buy-herbal.us
1047
+ buy-n-shoot.com
1048
+ buy-oem-soft.biz
1049
+ buy-oemsoft.info
1050
+ buy-oemware.biz
1051
+ buy-xpsoft.info
1052
+ buyfastmedz.com
1053
+ buyherbals.biz
1054
+ buyherbalsonline.com
1055
+ buymaxxlength.info
1056
+ buynowviagra.info
1057
+ buyonlinrmeds.com
1058
+ buysea.com
1059
+ buythebest.us
1060
+ bvarea.com
1061
+ bvlgarl.com
1062
+ bvnc83.biz
1063
+ bwsyfhrjdi.com
1064
+ bwtsydhxnstw.com
1065
+ bym3d5now.com
1066
+ bystronah.biz
1067
+ bzdirectory.biz
1068
+ bzfdwefds.info
1069
+ c-f-1.com
1070
+ c-med.info
1071
+ c-u-i.com
1072
+ c0meh3re.com
1073
+ c0meh3re.net
1074
+ c0ok.com
1075
+ c0py.com
1076
+ c1tracking.com
1077
+ c64zmlc.com
1078
+ c9003hosting.com
1079
+ c9004hosting.com
1080
+ ca-t.com
1081
+ cabclover.com
1082
+ cabledescrambler.com
1083
+ cablemotor.info
1084
+ cadhhej.info
1085
+ cahla.com
1086
+ caibgjc.biz
1087
+ calajean.biz
1088
+ call1234picture.com
1089
+ callcenterdemo.com
1090
+ callcentertoday.com
1091
+ callcentrenews.com.au
1092
+ callin.net
1093
+ calvarypress.com
1094
+ camdenliving.com
1095
+ camgirlz.com
1096
+ campuptimenow.info
1097
+ canbehealthy.com
1098
+ cancelit.info
1099
+ cancelnow.info
1100
+ cancercasespointed.com
1101
+ candidhosting.com
1102
+ candrugs.info
1103
+ candypersonal.com
1104
+ candytech.com.tw
1105
+ canuhd.com
1106
+ canzel.biz
1107
+ capaback.com
1108
+ capably4booby.com
1109
+ capitalgainsprivately.info
1110
+ caprylonelf.com
1111
+ capstone-mortgage.net
1112
+ capstonemortgage.info
1113
+ captureform.biz
1114
+ captureform.net
1115
+ capturehost.com
1116
+ capturemyinfo.biz
1117
+ caraway307biz.us
1118
+ carbon9global.info
1119
+ carcases.net
1120
+ careerbooster.info
1121
+ careerjet.com.au
1122
+ careytweeds.com
1123
+ carlson.info
1124
+ carlz.us
1125
+ carmcco.info
1126
+ carnesdobrasil.info
1127
+ carokmandal.com
1128
+ carrassist.biz
1129
+ cartler.com
1130
+ cartsite.us
1131
+ carving5618tads.com
1132
+ caseytripper.com
1133
+ cash-home.info
1134
+ cash-market.info
1135
+ cash-store.net
1136
+ cash-world.biz
1137
+ cashflowclub.org
1138
+ casholasavings.com
1139
+ cashring.com
1140
+ casinoconstructor.com
1141
+ casiono.info
1142
+ cassisnmjma.com
1143
+ cat-site.biz
1144
+ catchthebird.biz
1145
+ cateelcate3.com
1146
+ catplastic.info
1147
+ caughtcatching.com
1148
+ cauldron6babylonian.info
1149
+ cauterizes.net
1150
+ cautionary5trackable.info
1151
+ cbbngvc.com
1152
+ cbcclak.info
1153
+ cbinablch.com
1154
+ cbosfewfd.info
1155
+ cbsdfowef.info
1156
+ ccbn.com
1157
+ ccdemo.com
1158
+ cchaos.com
1159
+ cchelp.biz
1160
+ cchelp.info
1161
+ cclender.com
1162
+ ccody.com
1163
+ ccyure87.com
1164
+ cd-forever.info
1165
+ cd4sale.info
1166
+ cdatlow.com
1167
+ cdldecs.com
1168
+ cdmsdts.com
1169
+ cdplsmxnr.com
1170
+ cdpt4dsk.com
1171
+ cdschoolee.com
1172
+ cdsforyou.biz
1173
+ ceetifired.info
1174
+ cekojow.com
1175
+ cellwaveguard.com
1176
+ celnderx.biz
1177
+ cencmlade.com
1178
+ centerhealthinfo.com
1179
+ centralremovalservice.com
1180
+ certquote.com
1181
+ cesbitz.info
1182
+ cfak.com
1183
+ cfee3.com
1184
+ cfefogl.com
1185
+ cfkedbx.com
1186
+ cgdtsyern.com
1187
+ cgnbcmj.info
1188
+ ch00s3.com
1189
+ ch01ces.com
1190
+ ch01ces.net
1191
+ ch0icelenders.com
1192
+ ch3apch3ap.com
1193
+ chain-mail.net
1194
+ chandler1.biz
1195
+ changeyourlifeforever.biz
1196
+ chanmiracle.com
1197
+ characreperm.com
1198
+ charmedbeauty.com
1199
+ charmingnaughtyteens.com
1200
+ charstnd.com
1201
+ chatyes.com
1202
+ cheap-medz.com
1203
+ cheap-r-x.com
1204
+ cheap-soft-here.biz
1205
+ cheap102.com
1206
+ cheapbuysjjz.com
1207
+ cheapdrugsplus.com
1208
+ cheapeasyrx.com
1209
+ cheapeasyrx.net
1210
+ cheapermortgage.cn
1211
+ cheaperoffer.com
1212
+ cheapestrxmeds.info
1213
+ cheaping.net
1214
+ cheapmeds444u.com
1215
+ cheapmedshut.com
1216
+ cheapmedz.net
1217
+ cheapmedzsource.biz
1218
+ cheapoemsoft.info
1219
+ cheapoemz4u.info
1220
+ cheapphar.com
1221
+ cheappharm3.com
1222
+ cheapsales2u.com
1223
+ cheapsecuremeds.com
1224
+ cheapsoftshop.com
1225
+ cheapsofttraders.info
1226
+ cheapwarehousemeds.com
1227
+ cheapwarehousepharmacy.com
1228
+ cheapwatches.biz
1229
+ cheapwatchesinfo.info
1230
+ cheapwindows.info
1231
+ cheat-play.com
1232
+ cheatjokes.com
1233
+ check4choice.info
1234
+ check4direct.com
1235
+ checkdrs.com
1236
+ checkyourlifebe.com
1237
+ checprie.com
1238
+ cheek362tads.com
1239
+ cheeseshad.com
1240
+ chem1bicker.info
1241
+ chemisrytlic.com
1242
+ chemistdot.info
1243
+ chevron2overheated.info
1244
+ chichost.org
1245
+ childevaders.com
1246
+ childlearning.biz
1247
+ chillblow.com
1248
+ chillinnotime.com
1249
+ chillnowdays.com
1250
+ chillsoon.com
1251
+ chillsunday.com
1252
+ chilltoday.com
1253
+ chillypeppers.biz
1254
+ chimonanthusdog.com
1255
+ chimpwue8.com
1256
+ chin348239.com
1257
+ chinajute.com
1258
+ chinaour.com
1259
+ chknetsv.com
1260
+ chkotechs.com
1261
+ chlending.com
1262
+ chmdjgg.info
1263
+ choanosomeab.com
1264
+ choice-funds.us
1265
+ choiceforabetterfuture.com
1266
+ choiceonetrust.com
1267
+ chooseyourwatch4u.com
1268
+ chooseyourwatch4u.net
1269
+ chorally.com
1270
+ chudomeds.info
1271
+ churty.info
1272
+ cialagen.biz
1273
+ cialapro.biz
1274
+ cializ44.com
1275
+ ciaopage.com
1276
+ ciheaem.info
1277
+ cindyyoungtart.com
1278
+ cisekldej.com
1279
+ cisoebefef.com
1280
+ citizensbank.com
1281
+ citrifolia.info
1282
+ city-guide.com
1283
+ citymnf.com
1284
+ citywidedownloadnetwork.com
1285
+ cjbjj.com
1286
+ ckaaewr.info
1287
+ ckadfgef.info
1288
+ cklibcdn.info
1289
+ ckmark.com
1290
+ ckmbtr5.com
1291
+ classear.cn
1292
+ classflail.biz
1293
+ classystylez.com
1294
+ clbrx.com
1295
+ cleaners6apace.com
1296
+ cleanrepair4u.com
1297
+ cleansweeper.biz
1298
+ clearz.biz
1299
+ cleat7228pirrs.com
1300
+ cleetusolocastel.com
1301
+ clematis4spiders.info
1302
+ cleverfinance.info
1303
+ clfmbeiie.com
1304
+ click2out.com
1305
+ click4express.com
1306
+ click4hotgirls.com
1307
+ clickforsales.com
1308
+ clickhostdeals.com
1309
+ clicknsaves37.info
1310
+ clicktraq.com
1311
+ clickzs.com
1312
+ clikbusiness.info
1313
+ clinicsingapore.com
1314
+ cljeacbj.com
1315
+ clkfdmz.com
1316
+ clkheremail.com
1317
+ clodly.com
1318
+ cloopss.com
1319
+ closetoperffect.com
1320
+ clout3curtate.com
1321
+ clovercally.com
1322
+ clubshop.com
1323
+ cluiselages.com
1324
+ clurtednu.info
1325
+ cmachina.cn
1326
+ cmaholdings.com
1327
+ cmik.com
1328
+ cminteractive.com
1329
+ cmpevents.com
1330
+ cn4e.com
1331
+ cn8868.com
1332
+ cnacom.com
1333
+ cnbearing.biz
1334
+ cncbx.info
1335
+ cncgdc.info
1336
+ cnhptz.com
1337
+ cnmhjdsu.com
1338
+ cnzcnie.info
1339
+ cobeutiuy.com
1340
+ cockycooks.com
1341
+ codns.com
1342
+ coebvgfuse.com
1343
+ coffeecup.com
1344
+ coisasdoamanha.info
1345
+ coldrugs.com
1346
+ coldstuff4u.info
1347
+ coleman.edu.sg
1348
+ college-scholarships.com
1349
+ collocutor9120dryg.com
1350
+ collusion7229tabs.biz
1351
+ colony8remediable.com
1352
+ coloroth.com
1353
+ colourless5baneful.info
1354
+ com-yahoo.com.ph
1355
+ com.info
1356
+ com4dsd.com
1357
+ combusbone.com
1358
+ comdotsmart.biz
1359
+ comdotsmart.com
1360
+ come2ourrx.net
1361
+ comerfbdll.com
1362
+ comf0rtpharmcyz.com
1363
+ comforting.biz
1364
+ comingtoit.com
1365
+ commodious.net
1366
+ comooem.com
1367
+ companionground.com
1368
+ companionjoker.com
1369
+ companionjump.com
1370
+ companionlaugh.com
1371
+ companionshipgo.com
1372
+ companionsmile.com
1373
+ compare-lenders.net
1374
+ competentagent.com
1375
+ competentbank.com
1376
+ competitive-rates.com
1377
+ compforme.com
1378
+ computeach2003.com
1379
+ computercup.com
1380
+ computerdoublespeed.com
1381
+ comxp.net
1382
+ condenser8dandle.info
1383
+ condolence2veto.com
1384
+ condtspa.com
1385
+ condylomaprepackaged.com
1386
+ confuting.com
1387
+ conjointmotivation.com
1388
+ connectjokes.com
1389
+ connectwrap.com
1390
+ connoting.com
1391
+ consumer-loans.net
1392
+ consumerincentivepromotions.com
1393
+ contactcentrefinance.com
1394
+ contactprofessional.com
1395
+ contactspost.biz
1396
+ continentalrelay.biz
1397
+ cool-greattodayhealth.com
1398
+ cool-innovations.com
1399
+ coolcool.us
1400
+ coolfreepages.com
1401
+ coolhealth.info
1402
+ cooloemlink.info
1403
+ coolpharma.com
1404
+ coolresource.com
1405
+ cooper4vest.com
1406
+ copleform.com
1407
+ cordon3cursive.com
1408
+ cordoned.net
1409
+ corefiles.com
1410
+ coreytellerme.com
1411
+ corkboardbb.com
1412
+ cornmany.cn
1413
+ corpique.com
1414
+ corporate-ir.net
1415
+ corporatequote.com
1416
+ corporationfor.com
1417
+ correctspeling.com
1418
+ cosmeticoseperfumes.info
1419
+ cosmo1865meds.biz
1420
+ costdirectlrelat.com
1421
+ cotonetes.info
1422
+ cotqueanka.com
1423
+ couchp00pz.com
1424
+ couders.biz
1425
+ countess8253tads.us
1426
+ countravetim.com
1427
+ courtly4086rx.us
1428
+ cov2pa.com
1429
+ cpdgxxr.com
1430
+ cpmmzo.com
1431
+ cr3am.com
1432
+ cr3am.net
1433
+ cr3amier.net
1434
+ cr3at3.com
1435
+ cra3ybiz.com
1436
+ crackisthebestatnight.com
1437
+ cracksoftbest.com
1438
+ craigz.us
1439
+ crane7149biz.biz
1440
+ crashtest4u.com
1441
+ craze7577biz.biz
1442
+ crazy-barginz.com
1443
+ crazy-barginz.net
1444
+ crazy-biz.net
1445
+ crazyrxl0wprices.com
1446
+ crazysale.org
1447
+ creamy-facials.com
1448
+ creativelocations4all.info
1449
+ creditorssuck.biz
1450
+ crefi.net
1451
+ crelob.net
1452
+ cricket6735drugs.us
1453
+ cripsite.info
1454
+ crocistheking.us
1455
+ crockolate.com
1456
+ crossdaily.com
1457
+ crossinweb.info
1458
+ crvalues.com
1459
+ crxgrfr.com
1460
+ cs.com
1461
+ csvrldd.com
1462
+ csvxtsreoi.com
1463
+ ctd8sdwe.com
1464
+ cttrk.com
1465
+ cuationfromthe.com
1466
+ cumbly.com
1467
+ cumers.info
1468
+ cunfh5h.info
1469
+ cupring.com
1470
+ cupropy.com
1471
+ curdle.net
1472
+ curdom.com
1473
+ curds8abetment.com
1474
+ currentlowrates.info
1475
+ cursedly6slumlord.com
1476
+ customadvancecreative.com
1477
+ customerservice.com.au
1478
+ cuthybv.com
1479
+ cutprice11.com
1480
+ cutprice17.com
1481
+ cutpricerxpills.com
1482
+ cutrate-loan.info
1483
+ cutrateloan.net
1484
+ cutthepayment.com
1485
+ cvgf.com
1486
+ cvoiln.info
1487
+ cvrtgfd.com
1488
+ cvvbb.com
1489
+ cyber-sale.info
1490
+ cybertelcapital.com
1491
+ cycom-sg.com
1492
+ cynergyasia.com
1493
+ czbeowedf.info
1494
+ czgcauz.com
1495
+ d-square.com.sg
1496
+ d9005hosting.com
1497
+ dabdkfjsdfc.com
1498
+ dackydivers.com
1499
+ daffy4amortize.info
1500
+ dafkammeds.com
1501
+ dahl.biz
1502
+ dailyfill.com
1503
+ dailyherbals.com
1504
+ dailysoft.biz
1505
+ dailysoft.info
1506
+ daisysnail.com
1507
+ dajwtjm.com
1508
+ dally9snatches.com
1509
+ damngreatwebsites1.com
1510
+ darjheef.com
1511
+ datakk.com
1512
+ dataspaces.net
1513
+ date-411.com
1514
+ date-joker.com
1515
+ date-jump.com
1516
+ date-play.com
1517
+ datejump.com
1518
+ datenowadays.com
1519
+ datesaturday.com
1520
+ datinggoldengirls.com
1521
+ datingoffers.com
1522
+ datingwebsiteemail.info
1523
+ davbasdfdf.info
1524
+ david5567pi11.us
1525
+ davismedzshop.com
1526
+ daweravs.info
1527
+ dawncities.com
1528
+ day2daybymail.biz
1529
+ dbcdmnf.info
1530
+ dbiiwuerefd.com
1531
+ dbzfdwdfd.info
1532
+ dbzwefsde.info
1533
+ dbzwishdfef.com
1534
+ dcdghn.info
1535
+ dcfcgdk.info
1536
+ dcfknmeg.info
1537
+ dchinn.com
1538
+ dcnxoprnm.com
1539
+ dcpurchase.com
1540
+ ddcfnaih.info
1541
+ ddrpwe.com
1542
+ deafinformation.com
1543
+ dealgtx.biz
1544
+ dealloan.info
1545
+ dealzonthenet.com
1546
+ debt-states.com
1547
+ debtal.com
1548
+ debteraserpro.com
1549
+ decasoft.info
1550
+ decaying4204drygs.com
1551
+ deceivablede.biz
1552
+ defeater.net
1553
+ defended1facts.com
1554
+ degenerate8virtuous.com
1555
+ degradedly.com
1556
+ degradedly.net
1557
+ deirhaus.com
1558
+ dejheb.biz
1559
+ deledom.com
1560
+ delivery4sure22.com
1561
+ delivfast.com
1562
+ delpan.biz
1563
+ demand4rx.com
1564
+ dementia.biz
1565
+ depletive.com
1566
+ dertaktos.com
1567
+ deruank.com
1568
+ desirablewatches.com
1569
+ desireouroffers.biz
1570
+ desite-page.com
1571
+ deskhelp.info
1572
+ desordemdopanicoemsp.info
1573
+ destroyer3883pill.biz
1574
+ detaibanadditi.com
1575
+ detectspywarebest.com
1576
+ detectspywarebid.com
1577
+ detectspywarebiz.com
1578
+ determinpus.com
1579
+ deux.fr
1580
+ dewtyendh.com
1581
+ dexlab.info
1582
+ dfbeibsdfe.com
1583
+ dfbeky-wr.com
1584
+ dfbele.info
1585
+ dfcved.com
1586
+ dffs14.biz
1587
+ dfgsgs.info
1588
+ dfh64.biz
1589
+ dfhu876.com
1590
+ dfjndfv.com
1591
+ dfmartinoeif.com
1592
+ dfmnr4me.com
1593
+ dfpcn.com
1594
+ dfsdsdf.cc
1595
+ dfspot432.com
1596
+ dgko.com
1597
+ dgnclih.info
1598
+ dhanch.com
1599
+ dhdhbua.com
1600
+ dhgavocc.com
1601
+ dhghc.com
1602
+ dhghost.net
1603
+ dia9.us
1604
+ dia99.biz
1605
+ diarrhoeal.com
1606
+ diazmovie.com
1607
+ dibefjsefed.com
1608
+ dicfn.com
1609
+ didlik.biz
1610
+ didyouknowclub.info
1611
+ diebfsefdg.com
1612
+ diet34.com
1613
+ diet40.com
1614
+ diet45.net
1615
+ diet50.com
1616
+ difshbesed.com
1617
+ digi.ws
1618
+ digimagx.com
1619
+ digitailocean.com
1620
+ digitalere.com
1621
+ digxdigx.com
1622
+ diljcancb.com
1623
+ dimur.com
1624
+ dinepc.com
1625
+ diplender.com
1626
+ diploma-graduate.info
1627
+ directfaction.com
1628
+ directwife.cn
1629
+ dirolama.info
1630
+ disambigue5720tabs.biz
1631
+ disc0unt-farm.com
1632
+ discount91rx.com
1633
+ discountbuyers.net
1634
+ discountdays.info
1635
+ discountdomainsource.com
1636
+ discounted-inks.com
1637
+ discounthavenshop.com
1638
+ discountherbals.biz
1639
+ discountherbals.com
1640
+ discountloan.info
1641
+ discountrx4u.info
1642
+ discounts-medicinalest.com
1643
+ discounts-selection.com
1644
+ discountweek.biz
1645
+ discountweek.info
1646
+ discoverdownloads.com
1647
+ discreetdelivery.net
1648
+ discretion3immodest.info
1649
+ dishtvforpc.com
1650
+ disjoint5156drygs.com
1651
+ disksclub.com
1652
+ disneyland1937pill.us
1653
+ disperate2gargantuan.com
1654
+ disport8backup.com
1655
+ disposable882pinn.com
1656
+ disrxcount.com
1657
+ diversdagold.com
1658
+ divinecredibleproduct.com
1659
+ diwefbsdf.info
1660
+ djdf.biz
1661
+ djmorts.net
1662
+ dkdns.com
1663
+ dkehdlf.info
1664
+ dkglcb.info
1665
+ dkmbbedm.info
1666
+ dlhghln.info
1667
+ dlspns.com
1668
+ dlur.com
1669
+ dmahdflf.info
1670
+ dmbkgn.info
1671
+ dmblmiff.info
1672
+ dmmort.net
1673
+ dmsyvuu.com
1674
+ dn-ice-boat.com
1675
+ dn-ice-boat1.com
1676
+ dna.info
1677
+ dncru.com
1678
+ dnkfhg.info
1679
+ dobzdfewe.info
1680
+ dock1.com
1681
+ docket8944pirrs.com
1682
+ docsnpills.info
1683
+ doctor.com
1684
+ doctorconsult.info
1685
+ doctorproof.com
1686
+ doctorsherbalmed.com
1687
+ doencadopanico.info
1688
+ doesrx.com
1689
+ dog2004.com
1690
+ doherinnotime.com
1691
+ dohernow.com
1692
+ doherquickly.com
1693
+ dohershortly.com
1694
+ dojobs.net
1695
+ dokger.info
1696
+ dollarmachine.com
1697
+ dolldiscordant.com
1698
+ domainfactory.com
1699
+ domainprogram.com
1700
+ domainsforeveryone.com
1701
+ domainsfornow.com
1702
+ domainsforpeople.com
1703
+ domainsultan.com
1704
+ domainszolutions.net
1705
+ domez.us
1706
+ domianss2.com
1707
+ dominetsg.com
1708
+ donehernow.com
1709
+ donlittlbiof.com
1710
+ donmal.biz
1711
+ dontletthisonepassyouby.com
1712
+ dontriskyourlife1.com
1713
+ dontworrydate.com
1714
+ doorue.com
1715
+ doplemxnsjhd.com
1716
+ doreyire.biz
1717
+ dorsft.info
1718
+ dotherx.com
1719
+ dotmarine.info
1720
+ dotmedication.com
1721
+ doubelev.com
1722
+ doubleclick.net
1723
+ doubleopt.biz
1724
+ doueufbdsef.com
1725
+ doukacro.info
1726
+ doupsto.com
1727
+ dovvso.com
1728
+ download-central.com
1729
+ downloadhangout.com
1730
+ downloadlifestyle.com
1731
+ downloadnow.biz
1732
+ downloadsupercenter.com
1733
+ dozbfeddf.info
1734
+ dozefolower.com
1735
+ dpmort.net
1736
+ dportal.biz
1737
+ dq03.net
1738
+ dr007online.info
1739
+ dr3am1er.com
1740
+ dr3am1er.net
1741
+ dr3amy.com
1742
+ draccus.com
1743
+ drama2smother.com
1744
+ dreamreplicas.com
1745
+ dreamtimez.info
1746
+ dreamwatches4u.com
1747
+ drgoodhealth.info
1748
+ drizzlier.com
1749
+ drlab.info
1750
+ drnicksrx.com
1751
+ droopiest.com
1752
+ dropfatnews.com
1753
+ droppedr8z.com
1754
+ dropsofjupiter.info
1755
+ drowtr.info
1756
+ drsuggest.biz
1757
+ drugformalesexual.com
1758
+ drugsquads.com
1759
+ drugstoresmooth.com
1760
+ drumgame.biz
1761
+ drutheme.com
1762
+ dsddmedsa.com
1763
+ dsmg.biz
1764
+ dsofme.com
1765
+ dspqowiek.com
1766
+ dsxncbhryei.com
1767
+ dub9trousseaus.us
1768
+ dubnh.us
1769
+ dug3aplicators.com
1770
+ dumfounds.com
1771
+ dusked.biz
1772
+ dusked.net
1773
+ duureea.com
1774
+ dvcstuffs.com
1775
+ dvdsforpleasure.com
1776
+ dvduni.com
1777
+ dwzrgb.net
1778
+ dxpsorthnk.com
1779
+ dynamichealthpromotion.com
1780
+ dynamicsuperdesign.com
1781
+ dysurea1sailer.com
1782
+ dzpmvqp.com
1783
+ e-finance-now.com
1784
+ e-globalproducts.info
1785
+ e-home-loanz.com
1786
+ e-hostzz.com
1787
+ e-lenderz.com
1788
+ e-lenderz.info
1789
+ e-m-now.info
1790
+ e-meds24.info
1791
+ e-mor-t-gage.com
1792
+ e-wowza.com
1793
+ e65.biz
1794
+ e9004hosting.com
1795
+ eabrrts.info
1796
+ eachmesunshine.com
1797
+ eagle8jersey.com
1798
+ ealz.com
1799
+ eamgcnb.info
1800
+ eaoemwokd.info
1801
+ earnmorbout.com
1802
+ earthdogeducation.com
1803
+ earwax8995rneds.com
1804
+ easepage.com
1805
+ easily2swamp.com
1806
+ east.net.cn
1807
+ easy-as-1-2-3.com
1808
+ easy-finances.net
1809
+ easy-herbal.us
1810
+ easy-mort-gages.com
1811
+ easy-mortgages.info
1812
+ easy-silicon.com
1813
+ easy2fuck.com
1814
+ easydatingoffers.com
1815
+ easyemedshop.com
1816
+ easyhome-loans.com
1817
+ easyhotgirls.net
1818
+ easyoffers.biz
1819
+ easyqu0tes.com
1820
+ easysavings.net
1821
+ eazymedz.com
1822
+ ebetterfuture.com
1823
+ ebgbngj.info
1824
+ ebjdgjankb.info
1825
+ ebnacd.info
1826
+ ebookmaniasexy.com
1827
+ ebpnetsv.com
1828
+ ebpotechs.com
1829
+ ebuyage.com
1830
+ ebuybt.com
1831
+ ebuycan.com
1832
+ ebuycando.com
1833
+ ebuycc.com
1834
+ ebuylot.com
1835
+ ebuypay.com
1836
+ ebuytm.com
1837
+ ebvxfesfdfe.com
1838
+ ecigs4less0.com
1839
+ ecigs4less2.com
1840
+ eclipseway.com
1841
+ ecomomics.net
1842
+ economiccostsare.com
1843
+ ecoquote.com
1844
+ ecumenicdefeat.com
1845
+ eczarfee.com
1846
+ edavsddfee.info
1847
+ edbhadj.info
1848
+ edcdllf.info
1849
+ eddwz.biz
1850
+ edfspace.com
1851
+ edgeabc.com
1852
+ edgelending.net
1853
+ edgequote.com
1854
+ edgravwas.com
1855
+ edhcbxgsyi.com
1856
+ edificagrowth.tc
1857
+ editehkce.com
1858
+ editiondw.com
1859
+ edjihjem.info
1860
+ edkha.biz
1861
+ edszxrw.com
1862
+ educate-1.com
1863
+ educate-2.com
1864
+ educate-3.com
1865
+ education-2.info
1866
+ education-4.info
1867
+ education-5.info
1868
+ educationsfutures.info
1869
+ edva15ncedwanow45right.com
1870
+ edva3ncedwanow45right.com
1871
+ edvan7cedwanow45right.com
1872
+ edvan9cedwanow45right.com
1873
+ edvancedwa6now45right.com
1874
+ edvancedwanow0018right.com
1875
+ edvancedwanow1245right.com
1876
+ edyo.com
1877
+ efabdjfad.info
1878
+ efcknhhnm.com
1879
+ effect6paleogene.com
1880
+ effectiveoptions.biz
1881
+ efficacies.net
1882
+ effichet.com
1883
+ efinance-now.com
1884
+ efinance-now.net
1885
+ eflair.com.sg
1886
+ eflfaif.info
1887
+ egdungerel.com
1888
+ eggscity.info
1889
+ eglobal.org
1890
+ egment.info
1891
+ eibeaibl.info
1892
+ eiehalg.info
1893
+ eifsabefse.com
1894
+ eiiiooesfdf.com
1895
+ eivnudf.info
1896
+ eiwhx.com
1897
+ ejgcdli.info
1898
+ ejrhxw322.com
1899
+ ekabedll.info
1900
+ ekicangi.info
1901
+ eknmeem.info
1902
+ el9.net
1903
+ elecourile.com
1904
+ eledlfj.us
1905
+ elenders.biz
1906
+ elenderz-xs.net
1907
+ elenderz.info
1908
+ elenderziq.com
1909
+ elephantiasisspiced.info
1910
+ elevatedacademic.net
1911
+ elite-pills.com
1912
+ elkmlifebd.info
1913
+ elleeielle0.com
1914
+ ellickhfnei.com
1915
+ elnbdjekfd.com
1916
+ eloangreat.com
1917
+ eloanlenders.com
1918
+ eloanservices.com
1919
+ elongates.net
1920
+ email-swap.com
1921
+ emailadvertisingservices.net
1922
+ emailbroadcast.us
1923
+ emailcashpro.com
1924
+ emaildeals.biz
1925
+ emailofferz.biz
1926
+ emailprizeweb.com
1927
+ emailpromo.biz
1928
+ emailremovalregistry.com
1929
+ emailremovals.com
1930
+ emarkdinbs.com
1931
+ emdstem.com
1932
+ emed12.com
1933
+ emoem.org
1934
+ emollient.biz
1935
+ emoremoney.com
1936
+ empallhh.com
1937
+ emperorwatches.com
1938
+ emphatic8858nx.com
1939
+ emyshopinternet.com
1940
+ encamp9telegraphy.com
1941
+ encanq.com
1942
+ endosonic.com
1943
+ enemedsa.com
1944
+ enewstodayliv7email.com
1945
+ engouasa.com
1946
+ engradas.com
1947
+ engyme.com
1948
+ enhancemefast7.com
1949
+ enhancemetoday.com
1950
+ enhanceyourpackage.com
1951
+ enjoyplatinum.info
1952
+ enlargementmanual.com
1953
+ enlargepills.net
1954
+ enlrg.com
1955
+ ensemble7airboat.com
1956
+ ensiosk.info
1957
+ enteritis9overshoot.info
1958
+ entfadas.com
1959
+ entire7576drygs.com
1960
+ entirefinance.com
1961
+ entirefinance.net
1962
+ entraads.com
1963
+ entrefinance.net
1964
+ entrqdas.com
1965
+ enuxjki.info
1966
+ envision6thrust.com
1967
+ envoyww.com
1968
+ envumil.com
1969
+ envywatches.info
1970
+ eoinf.com
1971
+ eowk.info
1972
+ eparchy.net
1973
+ epharmarcy.com
1974
+ epicnuts.biz
1975
+ epicoff3rs.com
1976
+ epmeds.com
1977
+ eprst-s.info
1978
+ epsompared.net
1979
+ eqsafefdcef.com
1980
+ equard.info
1981
+ equetudomai.org
1982
+ equity-fix.com
1983
+ erectionpills.net
1984
+ eregrine.com
1985
+ erevansoft.net
1986
+ erotheprese.com
1987
+ erotichenparty.com
1988
+ erotictoyscity.com
1989
+ eroticy.com
1990
+ erpfmuh.com
1991
+ errniemedz.com
1992
+ erryu598.com
1993
+ ersk41.biz
1994
+ ertsqwas.com
1995
+ ertyiurewr.com
1996
+ eruidhf.info
1997
+ eruijinfunhderunhadesunkin.com
1998
+ erxtaxis.com
1999
+ esbalenders.com
2000
+ esbbanl.com
2001
+ esbxgchdyru.com
2002
+ eslender.com
2003
+ esmtp.biz
2004
+ especiallylove.cn
2005
+ estoreworks.com
2006
+ estranged8405drygs.com
2007
+ esurancevalue.com
2008
+ esvationhig.com
2009
+ etaerio.com
2010
+ etargeted307pills.biz
2011
+ etionds.com
2012
+ ettllrx.com
2013
+ etumex.com
2014
+ eucjdfn3.info
2015
+ euf2nf.info
2016
+ eufsabefse.com
2017
+ eunice7parentis.com
2018
+ eurocasinomally.com
2019
+ eurocasinomili.com
2020
+ eurousd.com
2021
+ evaklsr.com
2022
+ evemovefecas.com
2023
+ evenqnvolva.biz
2024
+ eventuresonline.biz
2025
+ evif.com
2026
+ evolution-x.info
2027
+ ewaypharmacy.com
2028
+ ewaypharmacy.net
2029
+ ewholesaleloan.com
2030
+ ewmrnr.com
2031
+ ewoypouo.com
2032
+ exactly8disarmed.info
2033
+ excellent1.com
2034
+ exclusivemeds.info
2035
+ exdtild.biz
2036
+ exildtenson.com
2037
+ exoooop.com
2038
+ exorcized.net
2039
+ expedited2u.biz
2040
+ expeditemortgage.net
2041
+ expertaide.com
2042
+ extaxias.com
2043
+ extefast.com
2044
+ extending-loans.com
2045
+ extendit.info
2046
+ extincove.com
2047
+ extjnyn.com
2048
+ extrahelp24.info
2049
+ extramed.info
2050
+ extrasearches.com
2051
+ extremelyheavyconsidering.com
2052
+ extremewatches.biz
2053
+ extremewebdeals.com
2054
+ eynotmyrx.com
2055
+ eyoodnf.com
2056
+ eyou.com
2057
+ eytcjae.com
2058
+ ez-herb4u.info
2059
+ ez-quotes.net
2060
+ ez-rate.info
2061
+ ez-refi.net
2062
+ ez123clickt.com
2063
+ ezeeloans.com
2064
+ ezfiletrader.com
2065
+ ezherbal-x.com
2066
+ ezherbal24-7.com
2067
+ ezherbalbuy.com
2068
+ ezherbs.info
2069
+ ezloans123.net
2070
+ eznewweb.com
2071
+ ezpainfree.com
2072
+ ezppv.com
2073
+ ezul.com
2074
+ ezuvkne.com
2075
+ ezwayhomeloan.com
2076
+ ezyfinancial.com
2077
+ f16sluts.com
2078
+ fOrteneze.COM
2079
+ fabled6151dryg.com
2080
+ facilenetrav.info
2081
+ fahbaim.info
2082
+ faithweb.com
2083
+ familiarmeds.biz
2084
+ familymeds.info
2085
+ fammeds.biz
2086
+ famousloaves.com
2087
+ famousreplicas.com
2088
+ fancytimepieces4u.com
2089
+ fanddc.com
2090
+ fantastictoy.net
2091
+ fantasywatches.info
2092
+ farcefruitcake.com
2093
+ farmersfound.com
2094
+ farmheard.com
2095
+ fartingfritter.com
2096
+ fassol.org
2097
+ fast-loanz.com
2098
+ fast-rxmedicines.com
2099
+ fast35.biz
2100
+ fastaccess-world.com
2101
+ fastandeasy911.com
2102
+ fastbluetabs.com
2103
+ fastcasinobuilder.com
2104
+ fastdegreeservice.com
2105
+ fasteasysolution.com
2106
+ faster-medds.net
2107
+ fasteratez.com
2108
+ fasterdaz.com
2109
+ fastherbal.info
2110
+ fastlenderz.com
2111
+ fastraffic.net
2112
+ fastrefi.biz
2113
+ fastrx-meds.com
2114
+ fastslashmarket.com
2115
+ fastttack.biz
2116
+ fastvicodin.info
2117
+ fatdead.com
2118
+ fbasdjfesf.info
2119
+ fccvd.com
2120
+ fclfcal.info
2121
+ fd5rs.com
2122
+ fdav.com
2123
+ fdfbfbg.info
2124
+ fdgfdbi.biz
2125
+ fdhsyxuieksm.com
2126
+ fdklln.info
2127
+ fdlamank.info
2128
+ fdnxir0of.info
2129
+ fdrindck.com
2130
+ fdun.com
2131
+ fearlesstrading.com
2132
+ feedcushion.biz
2133
+ feelingokay.biz
2134
+ feelingokay.com
2135
+ feet4ancillary.com
2136
+ felna.com
2137
+ female-o-secrets.com
2138
+ femalefishfertile.com
2139
+ feokdadsot.com
2140
+ feputrefymb.com
2141
+ fetbbot.com
2142
+ fewnwe.info
2143
+ feyluttrxs.com
2144
+ fftedbx.com
2145
+ fgbasvbk.com
2146
+ fgcdirect9.com
2147
+ fgrbaas.com
2148
+ fhjd.biz
2149
+ fiddlings.net
2150
+ fieuwereefd.com
2151
+ fifthunitedproducts.com
2152
+ fiftieth8airily.info
2153
+ fiklufa.com
2154
+ fillit-and-get-help.com
2155
+ film3subverts.com
2156
+ filmogenka.com
2157
+ filtersppv.com
2158
+ finalsavings.com
2159
+ finance-home.biz
2160
+ finance-planet.info
2161
+ finance-store.biz
2162
+ financeadvise.com
2163
+ financialfirms.net
2164
+ find-hoop.com
2165
+ findawoman.net
2166
+ findfunhere.com
2167
+ findgoodstuffhere.com
2168
+ findings1coerce.com
2169
+ findtheoneonthissite.com
2170
+ fine-woman.com
2171
+ fine-women.com
2172
+ finehealths.info
2173
+ fineinformation.biz
2174
+ fineness-medicine.com
2175
+ finhelp.biz
2176
+ finlozsad.info
2177
+ fintod.com
2178
+ fir2035tads.biz
2179
+ first-mort.com
2180
+ first-mort.net
2181
+ firstoem.net
2182
+ fisha.biz
2183
+ fistabitch.com
2184
+ fitness21centuri.com
2185
+ fitnessbiz.info
2186
+ fitnetsv.com
2187
+ fitotechs.com
2188
+ fixmedicine.com
2189
+ fjaclki.info
2190
+ fjil.biz
2191
+ fjjpgro.com
2192
+ fjlldaf.info
2193
+ fjuew7nnf.com
2194
+ fkefck.biz
2195
+ fkidiknije.info
2196
+ fkot.com
2197
+ fkwnscpa.com
2198
+ flamingfungus.com
2199
+ flashatxmas.com
2200
+ flbccceg.info
2201
+ flbcknlj.biz
2202
+ fleacpeot.info
2203
+ fleecy5jimmy.info
2204
+ flhecbjk.info
2205
+ flirtzone.biz
2206
+ flonosoft.eu
2207
+ floppy9calf.com
2208
+ flowerdown.info
2209
+ flukeplural.com
2210
+ flushottomorrow.com
2211
+ flyinmeds.com
2212
+ fmbedkcm.info
2213
+ fmjfmin.info
2214
+ fmlaeccj.biz
2215
+ fmmbhgn.biz
2216
+ fmngbfk441.info
2217
+ fnaiegfmfm.com
2218
+ fndos.com
2219
+ fnfdcng.info
2220
+ fnytqua.com
2221
+ foasbfesdef.com
2222
+ fobzfesdf.info
2223
+ focldplm.com
2224
+ foetus4647rx.us
2225
+ followedbytw.com
2226
+ fondsoaronk.com
2227
+ foolishly8notepaper.com
2228
+ footballmotion.com
2229
+ footballseason2002.com
2230
+ for-cash.info
2231
+ for-cash.net
2232
+ foradditionaluses.com
2233
+ foraug.info
2234
+ forbestrate.com
2235
+ forbettermember.com
2236
+ foreclosuretraining.com
2237
+ foresmdb.com
2238
+ forever-mort.com
2239
+ foreverydoes.com
2240
+ forfoota.com
2241
+ forgivable8459biz.us
2242
+ forloaninfo.com
2243
+ formern.com
2244
+ fort837az.com
2245
+ fortherest.info
2246
+ forthunitedproducts.com
2247
+ forumshgh.com
2248
+ forwardsmovie.com
2249
+ fosraw.biz
2250
+ fossilized.net
2251
+ fossll.com
2252
+ fotbogwar.info
2253
+ fouramspots.com
2254
+ fractionfield.cn
2255
+ frankly8033pi11s.us
2256
+ franticrush.biz
2257
+ frapped.net
2258
+ frdurs.com
2259
+ free-d0llars.com
2260
+ free-icq-download.com
2261
+ free-instant-quotes.com
2262
+ free-kazaa-spyware.info
2263
+ free-mortgage-app.com
2264
+ freeadultranch.com
2265
+ freeautobot.com
2266
+ freedrivingg.info
2267
+ freeholidaygiveaways.com
2268
+ freeinfoforrealitems.com
2269
+ freeinfoisnomore.info
2270
+ freekin.info
2271
+ freenfltracker.com
2272
+ freeparisvideo.biz
2273
+ freepcspywareware.info
2274
+ freeprizeclub.com
2275
+ freeride.com
2276
+ freesexonthewebs.bz
2277
+ freetest.info
2278
+ fresh-forms.net
2279
+ freshfacedcutegirl.biz
2280
+ freshperiod.com
2281
+ friendlyandeasyhoes.com
2282
+ friggings.net
2283
+ friosel.com
2284
+ frnwacba.com
2285
+ fromanewdesk.com
2286
+ fromnewzealandwithlove.info
2287
+ fsck.com
2288
+ fsitj.com
2289
+ fsnjchdyer.com
2290
+ ftgoal.com
2291
+ ftke.com
2292
+ ftqqbip.com
2293
+ fullhost.org
2294
+ fullofgoodproducts.com
2295
+ fullofhealth.info
2296
+ fun-tonight.com
2297
+ fundegree.com
2298
+ funding-internet.com
2299
+ funding-live.com
2300
+ funding-talk.com
2301
+ fundingdeport.co.gy
2302
+ fundingmort.us
2303
+ funnyface69.com
2304
+ funutilities.info
2305
+ funwinterdownloads.com
2306
+ furbelows.net
2307
+ furiosite.info
2308
+ furiousfledglingflavors.com
2309
+ furor8imbroglios.com
2310
+ furrier550rneds.us
2311
+ furthersmarter.biz
2312
+ futurebadlove.com
2313
+ futureobject.com
2314
+ futurevalueloan.com
2315
+ fuuall.com
2316
+ fvnjxdhu.info
2317
+ fycluse.cn
2318
+ fyinsserv.com
2319
+ fzbwqfsefsd.com
2320
+ fzfsbefsef.info
2321
+ fzmedsa.com
2322
+ g-d-w.tv
2323
+ g00dl1fe.com
2324
+ g0get.com
2325
+ g1p00nd.com
2326
+ g3tit.com
2327
+ g3tm3dsonl1ne.com
2328
+ gaglng.info
2329
+ gagtt.com
2330
+ gainmed.com
2331
+ gainplus.info
2332
+ gainprosite.tc
2333
+ gaipin.com
2334
+ gala.net
2335
+ gallanted.com
2336
+ gallicism2795biz.us
2337
+ gamesofvegas.com
2338
+ gamesquality.info
2339
+ gankia.info
2340
+ ganomy.biz
2341
+ gaqwsncv.com
2342
+ gardensdig.info
2343
+ garnib.com
2344
+ garvi.com.br
2345
+ garyshawkey.com
2346
+ gasep.com
2347
+ gasisa1.com
2348
+ gaulhafmk.com
2349
+ gavuthmo.com
2350
+ gbdfesfef.info
2351
+ gbm543.com
2352
+ gc-nine.info
2353
+ gc-seven.info
2354
+ gcfkmo.com
2355
+ gcgkmjcmeb.info
2356
+ gcusatwo.info
2357
+ gdgibnbekl.info
2358
+ gdjeeai.info
2359
+ gdries.com
2360
+ gdskjj.com
2361
+ geekwaresolutions.net
2362
+ gefanu.com
2363
+ gejdtjwlfy.com
2364
+ gejokwmod.info
2365
+ geleagnc.info
2366
+ gelinjolhad.com
2367
+ genemarketmanager.com
2368
+ generale1libor.com
2369
+ genericforless.biz
2370
+ genericks.com
2371
+ genericpharmacies.biz
2372
+ genericrxsale.com
2373
+ genericsforcheap.com
2374
+ genital4dima.com
2375
+ geniusbroker.com
2376
+ genuinely.net
2377
+ genuineoem.biz
2378
+ genuinereplicawatchez.org
2379
+ gesart.info
2380
+ gesture9403tads.us
2381
+ get-a-low-rate.com
2382
+ get-bigger.biz
2383
+ get-ever.com
2384
+ get-it-online.info
2385
+ get-recruited.com
2386
+ get-xp-now.biz
2387
+ get-xp-oem.info
2388
+ getallgirls.com
2389
+ getawebloan.com
2390
+ getbestmeds.com
2391
+ getcheap4med.com
2392
+ getcheapdrugs.biz
2393
+ getfinance4u.com
2394
+ getgoodmedz.com
2395
+ getgoodtraffic.com
2396
+ gethelpu.com
2397
+ getherbalsnow.com
2398
+ getitherefast.biz
2399
+ getitnowtoday.com
2400
+ getitquickly2.biz
2401
+ getloanz.info
2402
+ getmeds4u.com
2403
+ getmedtime.com
2404
+ getmeinshape.biz
2405
+ getmoremoney4u.biz
2406
+ getnoticednow.net
2407
+ getpaid2day4u.biz
2408
+ getpaidtoday123.biz
2409
+ getpharmtoday.com
2410
+ getsomelust.com
2411
+ getthatpills.com
2412
+ getthelowrate.com
2413
+ getthemonline.com
2414
+ getting-laid-is-fun.us
2415
+ getting-laid-tonight.com
2416
+ gettocheckin.com
2417
+ getvisitors4less.com
2418
+ getvisitorsquick.com
2419
+ getwellsoononline.com
2420
+ getyourahere.com
2421
+ getyourdhere.com
2422
+ getyourviagracheap.biz
2423
+ gfasthost.net
2424
+ gfd-online.com
2425
+ gfentropykb.com
2426
+ gferd.info
2427
+ gffefv.net
2428
+ gfg4sd.com
2429
+ gflgjhdb.info
2430
+ gg-gambling.com
2431
+ gg-medical.com
2432
+ ggcanm.info
2433
+ ggenhcmj.info
2434
+ ggfhhkf.info
2435
+ ggflnp.com
2436
+ ggg-apple.com
2437
+ gh6.net
2438
+ gh8s83.biz
2439
+ ghabefos.info
2440
+ ghbzoeff.info
2441
+ ghcclccc.biz
2442
+ ghdmkk.biz
2443
+ ghf8a93.biz
2444
+ ghfgh.net
2445
+ ghjdghn.info
2446
+ ghkp.us
2447
+ ghnp.com
2448
+ ghtflscvsfreak.com
2449
+ ghtnsecn.com
2450
+ ghwnetsv.com
2451
+ ghzbfoes.info
2452
+ gifhaa.info
2453
+ gimmeabreak.info
2454
+ gimpernhaed.info
2455
+ ginfection.com
2456
+ girlsinyourarea.com
2457
+ girlsloves3x.com
2458
+ gjcmgkhlil.com
2459
+ gjibhgk.info
2460
+ gjndlfd.info
2461
+ gjwgw2-9.com
2462
+ gkbdnanf.info
2463
+ gkiblgl.info
2464
+ gkigaie.info
2465
+ glad4myrx.info
2466
+ glad4myrx.us
2467
+ glassjaws.com
2468
+ glasstape.info
2469
+ glasswortnet.com
2470
+ glavvrach.biz
2471
+ glee4me.com
2472
+ glmefdf.info
2473
+ global-offers.biz
2474
+ globalofferz.biz
2475
+ globalonlinebizops.com
2476
+ globaltrustsavings.com
2477
+ globalvoice.com.sg
2478
+ glueurfoot.com
2479
+ gluiest.biz
2480
+ gmdckdaa.info
2481
+ gmgmedical.com
2482
+ gmi-autoimporter.com
2483
+ gmi-autoimporters.com
2484
+ gmi-autoimports.com
2485
+ gmjfgil.info
2486
+ gnanticdg.com
2487
+ gndggln.info
2488
+ go-funding.com
2489
+ go-medz.com
2490
+ go-mrt-now.net
2491
+ go-refi.com
2492
+ go.com
2493
+ go2here.org
2494
+ go2zsites.info
2495
+ go4med.com
2496
+ go4medz.com
2497
+ goatingwild.com
2498
+ gobefwef.info
2499
+ gobetterpay.com
2500
+ gocasino-dollar.com
2501
+ godateinnotime.com
2502
+ godatequickly.com
2503
+ godatesaturday.com
2504
+ godateshortly.com
2505
+ godatesoon.com
2506
+ godatesunday.com
2507
+ goforthesoft.info
2508
+ goforvalue.com
2509
+ gogo.com.tw
2510
+ gogopage.com
2511
+ goi6942d.com
2512
+ gointek.com
2513
+ goiter7offended.com
2514
+ gokgle.us
2515
+ goldenoffer.info
2516
+ goldenopps.info
2517
+ goldglasslock.com
2518
+ goldleafsoftware.info
2519
+ goldminemarketing.net
2520
+ goldmonkeys.biz
2521
+ golife257tabs.biz
2522
+ golosko.com
2523
+ gomedz.biz
2524
+ gomoremoney.com
2525
+ gono.us
2526
+ gonofurther.info
2527
+ good-health.info
2528
+ good-real-offers.com
2529
+ goodallsoft.com
2530
+ goodbestsoft.info
2531
+ goodbyetickets.info
2532
+ goodcapsules.info
2533
+ gooderubes.com
2534
+ goodherbz.info
2535
+ goodingdn.com
2536
+ goodishao.net
2537
+ goodleads.net
2538
+ goodlist.info
2539
+ goodloane.biz
2540
+ goodperform.info
2541
+ goodprodss.com
2542
+ goodserver.biz
2543
+ goodsites.biz
2544
+ goodslook.com
2545
+ goodviagra.info
2546
+ goodwasbetteris.info
2547
+ goodway.com.sg
2548
+ goodwayz.com
2549
+ gopachat.com
2550
+ gopacityx.com
2551
+ gopamania.com
2552
+ gopamegasite.com
2553
+ goremd.biz
2554
+ gorgeouschick.com
2555
+ gorxmeds.com
2556
+ gosafeandnatural.com
2557
+ gossipy.net
2558
+ got-web-site-traffic.com
2559
+ gotmeadate.com
2560
+ goto-myshopinternet.com
2561
+ gotomyshopinternet.com
2562
+ gotovbnkes.com
2563
+ gottahurryman.com
2564
+ gotthewinds.com
2565
+ gozealgaming.com
2566
+ gqaeatsd.info
2567
+ gr3at.com
2568
+ gr3atworld.net
2569
+ gr8class4u.com
2570
+ gr8feelalive.com
2571
+ gr8lendez.com
2572
+ gr8teveryone.com
2573
+ grabmail.com
2574
+ grabprospect.biz
2575
+ grabprospect.info
2576
+ graduate-now.info
2577
+ graduationservices.info
2578
+ gran-oem.com
2579
+ grandi0se.com
2580
+ grannytabl3.com
2581
+ grantgiveawayprogram.com
2582
+ gratifyher.info
2583
+ gravesides.com
2584
+ grciemag.com
2585
+ great-herb.us
2586
+ great-medds.com
2587
+ great-mort-gages.com
2588
+ great-offerz.info
2589
+ great-porn-site.com
2590
+ great-rx.com
2591
+ great-rx.info
2592
+ great-stuff-here.biz
2593
+ great-stuff.us
2594
+ greatbizservices.com
2595
+ greatdayrefi.com
2596
+ greatdealsauction.net
2597
+ greatfins.com
2598
+ greathealingdeals.biz
2599
+ greathealthoffers.biz
2600
+ greatinfo4u.biz
2601
+ greatmaleenhancement.biz
2602
+ greatmallusion.com
2603
+ greatmedsonthenet.com
2604
+ greatnewmeds.com
2605
+ greatpharmacy.info
2606
+ greatpneumatic.com
2607
+ greatreef.info
2608
+ greatrxforcheap.net
2609
+ greatsaklqw.com
2610
+ greatsoftmike.info
2611
+ greatstartitems.com
2612
+ greatuniquemallthathelps.com
2613
+ greatweight.biz
2614
+ greatxpect1.com
2615
+ greenpies.com
2616
+ greenzer.com
2617
+ gresat3ecv.com
2618
+ gresbbt.com
2619
+ greytool.com
2620
+ grl4u.com
2621
+ grosbro.info
2622
+ grouphealth24.info
2623
+ grouploseweight.com
2624
+ groupshopper.com
2625
+ grow-it1.com
2626
+ growbigfast.info
2627
+ growmeds.com
2628
+ grrrrreat.com
2629
+ grudgingly.net
2630
+ grx-meds.com
2631
+ gsagjh.com
2632
+ gsvdvs.info
2633
+ gtrrrez.us
2634
+ gtxtr.com
2635
+ guaranapureza.us
2636
+ guaranteed-scholarships.com
2637
+ guaranteedinfoonweb.com
2638
+ gucchhi.com
2639
+ gudnite.biz
2640
+ guerrilla7ankylosis.com
2641
+ guidefamily.cn
2642
+ gullyec.com
2643
+ gumlyndhib.com
2644
+ gundoo.com
2645
+ gunixub.com
2646
+ guojiedc.com
2647
+ guzzling.net
2648
+ gzidfbew.info
2649
+ gzkvbdsf.com
2650
+ h-e-r-b.com
2651
+ h0uses.net
2652
+ h1gher.net
2653
+ h2mort.net
2654
+ h3ll0.com
2655
+ h3ll0.net
2656
+ h64.net
2657
+ h67.net
2658
+ habcca.info
2659
+ habdahskqj.com
2660
+ habdhrrfg.com
2661
+ habewfdf.info
2662
+ habfewff.info
2663
+ habnhfbm.info
2664
+ hadaga.com
2665
+ hafh23.biz
2666
+ halabichueba.org
2667
+ halaputu.com
2668
+ halloo4panel.info
2669
+ halloweed.biz
2670
+ hanafos.com
2671
+ happiness-counseling.com
2672
+ happyhealthylifestyles.biz
2673
+ happyhomesite.com
2674
+ happyrxsale.com
2675
+ hardgrowthpills.info
2676
+ hardspeed.com
2677
+ harknihark7.com
2678
+ harsh8isobit.us
2679
+ harvest8schnauzer.info
2680
+ harvester1stol.com
2681
+ haus-guest.com
2682
+ havdieou.com
2683
+ haveisagr.com
2684
+ haynetsv.com
2685
+ hayotechs.com
2686
+ hazedergd.info
2687
+ hazeledah.com
2688
+ hazelnut2115pinn.com
2689
+ hbcbijdk.info
2690
+ hbeblbn.biz
2691
+ hbemedicalno1.com
2692
+ hbjcbmf.info
2693
+ hbozofef.info
2694
+ hcbffldf.info
2695
+ hckbcan.info
2696
+ hcnmvkofut.com
2697
+ hdcnsowp.com
2698
+ hdgggm.biz
2699
+ hdhdljc.info
2700
+ hdncbxyster.com
2701
+ hdreuifpl.com
2702
+ healingsphere.info
2703
+ heallthylifeone.com
2704
+ healtfrombirth.info
2705
+ health-4-ever.info
2706
+ health-products2003.com
2707
+ healthberb.com
2708
+ healthbynature.info
2709
+ healthdomainhgh.com
2710
+ healthfirm.info
2711
+ healthfrom.com
2712
+ healthpills.info
2713
+ healthproducts.bz
2714
+ healthpronews.com
2715
+ healthram.com
2716
+ healthrecovering.info
2717
+ healthtoday.net
2718
+ healthy-4-ever.info
2719
+ healthyandquickrx.com
2720
+ healthyb0dy.info
2721
+ healthyexchange.biz
2722
+ healthypractice.biz
2723
+ healthyprescriptiongiven.com
2724
+ healthysprit.biz
2725
+ healup.info
2726
+ hearbbz.com
2727
+ heardtaza.net
2728
+ heave4obloquy.info
2729
+ hedonistic9tailless.com
2730
+ hedrugs.com
2731
+ heerbal.biz
2732
+ hefkkbnbn.com
2733
+ hejbaebc.info
2734
+ helbech.info
2735
+ heldswim.com
2736
+ helllobay.ch
2737
+ hellobrasileraz.com
2738
+ help-us-help-you.net
2739
+ help4uisontheway.com
2740
+ helpbills.info
2741
+ helpbuyer.com
2742
+ helpdukpeptide.info
2743
+ helpidol.com
2744
+ helpingloan.info
2745
+ helpu-web.com
2746
+ hensi.com
2747
+ her-b-al.com
2748
+ her-bal.com
2749
+ herbal-medical.biz
2750
+ herbal-stores.net
2751
+ herbalbest.biz
2752
+ herbalbrand.net
2753
+ herbaldns.biz
2754
+ herbalicious.net
2755
+ herbalisring.com
2756
+ herballlll.com
2757
+ herballylarge.info
2758
+ herballynow.com
2759
+ herbalmagic.info
2760
+ herbalmagicsite.com
2761
+ herbalmart.us
2762
+ herbalpillsonline.biz
2763
+ herbalplus.us
2764
+ herbalstar.biz
2765
+ herbalusa.biz
2766
+ herbalwholesale.biz
2767
+ herbalwholesale.info
2768
+ herbalworld.biz
2769
+ herbmedz.info
2770
+ herbnetz.info
2771
+ herbon.info
2772
+ hereitgoesoncemore.com
2773
+ hereviagra.com
2774
+ herhelp.com
2775
+ herksv.com
2776
+ herpills.com
2777
+ heruk.info
2778
+ hesatosser.com
2779
+ heynowyou.info
2780
+ heywhatsupbuddy.com
2781
+ hfgr33.us
2782
+ hfinance.info
2783
+ hgee1.info
2784
+ hgeptahv.info
2785
+ hgh888.com
2786
+ hghfeelings.net
2787
+ hghnewproduct.com
2788
+ hghorder.com
2789
+ hghself.net
2790
+ hghvip.com
2791
+ hgkkdc.com
2792
+ hgter.biz
2793
+ hhaalde.com
2794
+ hhbjew.info
2795
+ hhgchll.info
2796
+ hhlcecd.info
2797
+ hhtt-rr.com
2798
+ hiclaim.com
2799
+ hidor.com
2800
+ highhealthgood.com
2801
+ hiltonforyou.biz
2802
+ him.com.sg
2803
+ himailer.com
2804
+ himsearch.com
2805
+ hindinpeter.com
2806
+ hinet.net
2807
+ hisbefore.cn
2808
+ hisped.com
2809
+ hispills.com
2810
+ histogencd.com
2811
+ history5bigamy.com
2812
+ history9rapacity.com
2813
+ hitprofile.com
2814
+ hitssoft.info
2815
+ hj68.com
2816
+ hjegacdb.info
2817
+ hjifhjek.info
2818
+ hjjmhn.biz
2819
+ hjmbjbhm.info
2820
+ hjmdhcgh.info
2821
+ hjokdaer.com
2822
+ hk234802938.com
2823
+ hkrnet.net
2824
+ hksdhdj.info
2825
+ hllciija.info
2826
+ hlplmanhds.biz
2827
+ hmm88.com
2828
+ hmmseisei.info
2829
+ hnmprf.com
2830
+ hnxteq.com
2831
+ hochumnogobabla.biz
2832
+ hockchew.com
2833
+ hokjjoke.com
2834
+ holditthere.info
2835
+ holdtiff.com
2836
+ holidate.info
2837
+ holiday-good.com
2838
+ holidaydownloadclub.com
2839
+ holidayhigh.net
2840
+ holidaysuprise.com
2841
+ holidayy.com
2842
+ hollywoodclicks.com
2843
+ hologram7gregorian.com
2844
+ hololamaco.biz
2845
+ home-financial.net
2846
+ home1oan.com
2847
+ homefastcash.com
2848
+ homel0ans.com
2849
+ homeloanbasics.com
2850
+ homeloanbasics.net
2851
+ homeloans-offered.com
2852
+ homeloansline.com
2853
+ homeloansmarket.com
2854
+ homeloansmarket.net
2855
+ homesair.com
2856
+ homesearchhealthfind.com
2857
+ homestoneloans.com
2858
+ hometownfire.com
2859
+ honestsalesnow.com
2860
+ honesty2bile.info
2861
+ honorable9numeration.com
2862
+ hoodieadedm.com
2863
+ hoodlum4monarch.info
2864
+ hoohut.com
2865
+ hooked6344dryg.com
2866
+ hookupinnotime.com
2867
+ hookupnightly.com
2868
+ hookupsoon.com
2869
+ hoolamaco.biz
2870
+ hoop5gronked.us
2871
+ hootpills.com
2872
+ hootyhoo.info
2873
+ hope-to-get-laid.us
2874
+ hopeisnear4you.com
2875
+ hopesofrestoring.com
2876
+ hopone.net
2877
+ hornyoptins.com
2878
+ horsier.net
2879
+ hosanna7measure.info
2880
+ host-77.com
2881
+ host4.biz
2882
+ hostagogo.biz
2883
+ hostinghive.com
2884
+ hostingprod.com
2885
+ hostingsky.com
2886
+ hostnet5.com
2887
+ hostvy.com
2888
+ hostxxxpics4free.com
2889
+ hotallsoft.com
2890
+ hotcap.net
2891
+ hotfunsingles.com
2892
+ hotgirlads.com
2893
+ hoth0tpillss.com
2894
+ hothgh.com
2895
+ hotladiestodate.com
2896
+ hotnewdealioz.com
2897
+ hotprofileadvantage.com
2898
+ hotrefinance.com
2899
+ hotrxmedsspecials.com
2900
+ hotrxspecials.net
2901
+ hotsalza.com
2902
+ hotsupremeitemclub.com
2903
+ hotsweetsingles.com
2904
+ hotterpersonals.com
2905
+ hotties-waiting-for-you.com
2906
+ hottyground.com
2907
+ hottylaugh.com
2908
+ hottyplay.com
2909
+ hotviagra.info
2910
+ hotviagras.info
2911
+ hotwaystobuy.com
2912
+ hotwiveslovecheating.biz
2913
+ hotybatl.info
2914
+ hotyoursoft.info
2915
+ housecoat3misplaced.info
2916
+ howboutit.info
2917
+ howitwoks.info
2918
+ howiwantmyrx.net
2919
+ howsoever.net
2920
+ howtogetbetterjob.com
2921
+ hpsalez.biz
2922
+ hqmeds.info
2923
+ hqreplicas.info
2924
+ hrougthsteri.com
2925
+ hrre1.com
2926
+ hrre1.info
2927
+ hrt9092.com
2928
+ htloti.com
2929
+ html-email-marketing.com
2930
+ httpdkhelp.com
2931
+ huai.info
2932
+ huanramushome.com
2933
+ huge-sales.info
2934
+ hugeorgan.com
2935
+ hugobb.com
2936
+ humdrum9nil.info
2937
+ humephra.com
2938
+ huntandfind.com
2939
+ hunterbidd.com
2940
+ hunterswhosaid.com
2941
+ huntstudy.com
2942
+ hurrytobecomebetter.com
2943
+ hurtfully.com
2944
+ hwdnvinesolutions.com
2945
+ hybridisms.com
2946
+ hydra4altruism.com
2947
+ hydrocodine.net
2948
+ hydrocodonemegastore.com
2949
+ hydsut.com
2950
+ hymort.com
2951
+ hzgwerdsf.info
2952
+ i-dealz.net
2953
+ i-globalproductsinc.info
2954
+ i-luv-you.biz
2955
+ i-pharm.net
2956
+ iahfbweff.info
2957
+ iakbjmfccl.info
2958
+ iamsweetcandy.com
2959
+ iawewfwf.info
2960
+ iazy.com
2961
+ ibaskfhe.info
2962
+ ibestrate.com
2963
+ ibfemmh.biz
2964
+ ibitiuuewf.com
2965
+ ibnhenc.info
2966
+ ibogleif.dk
2967
+ ibzi.com
2968
+ icardboarbo.com
2969
+ iccm.com
2970
+ iceboat4late.com
2971
+ icedrive.com
2972
+ icegremlin.com
2973
+ icfbingknd.com
2974
+ ichbhhebfi.com
2975
+ ickysam.com
2976
+ iconnectiowit.com
2977
+ icors.com
2978
+ icptrack.com
2979
+ icycoldbabe.com
2980
+ idea5emulsifier.com
2981
+ idealreplica.com
2982
+ idkcon.com
2983
+ idler6accoster.com
2984
+ idmdmdl.info
2985
+ idncon.com
2986
+ idnto.com
2987
+ idontwanttobugyou.com
2988
+ idownloadnow.com
2989
+ idv.tc
2990
+ idv.tw
2991
+ ieasyloan.net
2992
+ iehdg.info
2993
+ ientry.com
2994
+ ientry.net
2995
+ ientrymail.com
2996
+ ieueirdefd.com
2997
+ iewndixj.info
2998
+ ifinancialblueprint.com
2999
+ ifuh.com
3000
+ ifvv.com
3001
+ ifyoudontthen.net
3002
+ igghsent.net
3003
+ iglobalproducts.biz
3004
+ ihaehhbb.info
3005
+ iherbs.biz
3006
+ ihjjfjdf.info
3007
+ ihoiha.biz
3008
+ iiebclga.info
3009
+ iiekwjnn.com
3010
+ iiggjjgl.info
3011
+ ijehanhjfk.info
3012
+ ikbnna.info
3013
+ ikgelfjk.info
3014
+ iknwyouknew.com
3015
+ ildligg.biz
3016
+ ilink.to
3017
+ illshop.com
3018
+ illumanated.com
3019
+ illz2kz.com
3020
+ ilovebam.info
3021
+ iloveitupme.com
3022
+ ilovemeds.com
3023
+ images1258tabs.biz
3024
+ imagespool.com
3025
+ imedo.hk
3026
+ imgclm.info
3027
+ imjbdie.info
3028
+ imkjbest.com
3029
+ imlive.com
3030
+ immemorial4strictness.com
3031
+ immun1ty.biz
3032
+ impactions.net
3033
+ impactlearn.com
3034
+ importancepriva.com
3035
+ importantforyouthisale.com
3036
+ importantitemsworldinfo.com
3037
+ imposition9snowcaps.com
3038
+ impynjimpy9.com
3039
+ imsodamtired.com
3040
+ imsogladthat.com
3041
+ in8tpsitn3ws.com
3042
+ inairhxb.com
3043
+ inaptness.com
3044
+ inbfmghk.info
3045
+ inbox.lv
3046
+ inc-cheap.com
3047
+ incbggc.info
3048
+ incco.net
3049
+ incdropfat.com
3050
+ incifiber.com
3051
+ incoming.com
3052
+ incrediblemile.info
3053
+ incrediblevisions.com
3054
+ incredimeds.com
3055
+ incredimeds.net
3056
+ industrycds.com
3057
+ inebuslove.com
3058
+ ineedamortgageloan.com
3059
+ ineedthis.biz
3060
+ ineekig.info
3061
+ inequebus.com
3062
+ inetwebtraffic.com
3063
+ inexhibit.com
3064
+ info-tech.com.sg
3065
+ info546.biz
3066
+ infobeanz.biz
3067
+ infochic.biz
3068
+ infocounty.biz
3069
+ infodsr.com
3070
+ infofrom.com
3071
+ infokay.biz
3072
+ infoklappenty.net
3073
+ infomediabot4u.biz
3074
+ informatixz.biz
3075
+ inforn.biz
3076
+ inforule.info
3077
+ inforxgroup.com
3078
+ infoshu.com
3079
+ infostead.biz
3080
+ infoyouwant.info
3081
+ ingoodhealth.info
3082
+ inmusicaleatre.com
3083
+ innbusbone.com
3084
+ inpillform.com
3085
+ insidefinancial.net
3086
+ insidegeneric.com
3087
+ insidesell.com
3088
+ insixtyseconds.net
3089
+ instant-approval.net
3090
+ instantinternetempires.com
3091
+ int3lligent.com
3092
+ intelliquotes.net
3093
+ intendant491pills.us
3094
+ intensehealthwork.com
3095
+ inter-cnnet.net
3096
+ interactivepoker.net
3097
+ interestingdog.com
3098
+ intermed36.info
3099
+ internationalt00ls.com
3100
+ internetcars.com.sg
3101
+ internetsalez.info
3102
+ internetseer.com
3103
+ internetstorechat.com
3104
+ intervivos.com
3105
+ intohomeloan.com
3106
+ intotallimbo.com
3107
+ intsft.biz
3108
+ invenmanager.com
3109
+ invernessxxx.com
3110
+ investorguide2004.com
3111
+ involute6538drygs.us
3112
+ iobsfewd.info
3113
+ iouwensi.info
3114
+ iowie1.com
3115
+ ipcts.com
3116
+ ipoderove.com
3117
+ iqowbdfesd.com
3118
+ iraqi6modi.com
3119
+ iroj.com
3120
+ ironsnake.com
3121
+ irventzhealthh.com
3122
+ irwinsolutions.com
3123
+ isaghvh.com
3124
+ isandwhatyou.com
3125
+ isaving.net
3126
+ isdnetsv.com
3127
+ isdotechs.com
3128
+ isytgquy.com
3129
+ it-promote.com
3130
+ italics5jester.com
3131
+ iteasy4u.info
3132
+ itemhighwide.com
3133
+ itemsgalacticsite.com
3134
+ itemsmanagement.com
3135
+ itfeelit.com
3136
+ itoservers.com
3137
+ its-simple.net
3138
+ itsforyouonly.com
3139
+ itsmylantern.com
3140
+ itsmyreplica.info
3141
+ itsmyreplica.net
3142
+ itsreplica.net
3143
+ itsworthwhile.net
3144
+ iughsfadihb.com
3145
+ iuhsdisssdf.com
3146
+ iuwernei.info
3147
+ ivnekra.info
3148
+ ivoiremarketing.com
3149
+ iwantacjobdonaldtrump.com
3150
+ iwantajobdonaldtruhmp.com
3151
+ iwantbiggercock.com
3152
+ iwantu.com
3153
+ iwarp.com
3154
+ iwearonetoo.com
3155
+ iwenudh.info
3156
+ iynkp.biz
3157
+ izbaerdd.info
3158
+ izbewfsdf.info
3159
+ izbowefd.info
3160
+ izealgaming.biz
3161
+ j0ys.net
3162
+ jadbadf.info
3163
+ jaiiisii.com
3164
+ jajbehad.com
3165
+ jakao.biz
3166
+ jalbcgh.info
3167
+ jamaican5amber.info
3168
+ jamielynntressy.com
3169
+ jaminformation.com
3170
+ jan2005.com
3171
+ jaobesefd.com
3172
+ jasbdkfjj.com
3173
+ jbbeajfbd.info
3174
+ jbxrefged.com
3175
+ jdebjdei.info
3176
+ jdfbbgg.biz
3177
+ jdfja9.biz
3178
+ jdhejhg.biz
3179
+ jebafdef.info
3180
+ jebaji.biz
3181
+ jeffersondarcy.com
3182
+ jegjikmh.info
3183
+ jejcndig.info
3184
+ jenniferyoungtart.com
3185
+ jerafjdd.info
3186
+ jervs.info
3187
+ jettisonit.com
3188
+ jfhjnnahdf.com
3189
+ jganmnbj.biz
3190
+ jgecmgg.info
3191
+ jghfddi.info
3192
+ jgsgfta.com
3193
+ jhabdfjh.info
3194
+ jhdsjhsdd.info
3195
+ jhelkl.biz
3196
+ jhex.com
3197
+ jhfbvdf.info
3198
+ jhgdjef.info
3199
+ jhgfghd.info
3200
+ jhgnbv.info
3201
+ jhmedsn.com
3202
+ ji2.net
3203
+ jia.com.sg
3204
+ jibbfkd.biz
3205
+ jimmymedz.com
3206
+ jinhai.info
3207
+ jintianhao.com
3208
+ jiuty.com
3209
+ jjglcllj.info
3210
+ jjlsdse.info
3211
+ jjnccci.info
3212
+ jjzprmotion.com
3213
+ jklomnda.com
3214
+ jlblbib.info
3215
+ jloolec.com
3216
+ jmeadbad.info
3217
+ jmkggcgj.info
3218
+ jmlfehdhkf.info
3219
+ jmmamd.biz
3220
+ jmoravec.info
3221
+ jnceudy3.com
3222
+ jnixsa.com
3223
+ jo1nt.com
3224
+ job2kestrel.com
3225
+ jobsupermart.com
3226
+ jocksbdjf.info
3227
+ jody-fustini.it
3228
+ joebucks.biz
3229
+ johka.biz
3230
+ john3249099a.com
3231
+ joihnset.biz
3232
+ joinme.com
3233
+ joke1903meds.us
3234
+ jokemwokds.info
3235
+ jokmuyw.com
3236
+ jollied.com
3237
+ jolmnh.com
3238
+ jomena.info
3239
+ jomr.com
3240
+ joreys.com
3241
+ jouim.info
3242
+ joy-3.com
3243
+ js4a.com
3244
+ jsdvye.info
3245
+ jsm20056.com
3246
+ jsneuw.info
3247
+ jsrefi.net
3248
+ jsuati.com
3249
+ juan7steno.us
3250
+ jubr.com
3251
+ jugr.com
3252
+ juharistolato.com
3253
+ juie.biz
3254
+ junceplans.com
3255
+ junotechs.com
3256
+ just-mort-gage.com
3257
+ just1ce.com
3258
+ just1ces.net
3259
+ justbestsoft.info
3260
+ justbre.com
3261
+ justforutoo.net
3262
+ justlender.com
3263
+ justrecommendation.info
3264
+ justsayinghello.com
3265
+ justthisday.net
3266
+ justwebs.biz
3267
+ jysdyy.info
3268
+ k5medical.com
3269
+ k8cheapnow.com
3270
+ ka9j.com
3271
+ kabdajqh.com
3272
+ kabula.info
3273
+ kadcmdk.info
3274
+ kaglekr.info
3275
+ kaneflic.info
3276
+ kasboesdf.com
3277
+ kaser.biz
3278
+ katchemack.net
3279
+ katelisalv.com
3280
+ kavotechs.com
3281
+ kayline.com
3282
+ kazaanospyware.info
3283
+ kazaapro.info
3284
+ kbadfkasd.biz
3285
+ kbagbafb.info
3286
+ kbhdmng.info
3287
+ kbsbwj.info
3288
+ kbvbxdfed.com
3289
+ kbzefhefe.com
3290
+ kcmortgagepros.com
3291
+ kdegohoodkk.com
3292
+ kdjedfe.info
3293
+ kdnix.com
3294
+ kdnix.net
3295
+ kebi.com
3296
+ kebosw.biz
3297
+ keepingtimeinstyle.com
3298
+ keeponlovinme.com
3299
+ kegllbbkmn.info
3300
+ kelfjinm.info
3301
+ kellykapowski.com
3302
+ kennyboy.net
3303
+ kermitdoc.com
3304
+ kf98.com
3305
+ kfdlamjl.info
3306
+ kfhefkdn.com
3307
+ kfjlfjka.biz
3308
+ kfvedbx.com
3309
+ khopd.com
3310
+ kibesad.com
3311
+ kicks-ass.net
3312
+ kiffergly.net
3313
+ kihggcf.info
3314
+ kikv.com
3315
+ killadwareco.com
3316
+ killadwarecompany.com
3317
+ killadwaregalaxy.com
3318
+ killviruses.biz
3319
+ kilomed.biz
3320
+ kimo.com.tw
3321
+ kinahel.com
3322
+ kinkygirlsxxx.com
3323
+ kirovskiy1nab.info
3324
+ kirticritgh.com
3325
+ kitchen5upholder.com
3326
+ kitcompletezone.com
3327
+ kjdsfb.info
3328
+ kjhsdj.info
3329
+ kjmcfln.biz
3330
+ kjnfanie.info
3331
+ kjnixc.net
3332
+ kjomkaasc.biz
3333
+ kjomkaasc.com
3334
+ kk122sd.biz
3335
+ kkda23.biz
3336
+ kkimmigration.com
3337
+ klbbclk.info
3338
+ klbbfkka.info
3339
+ klcbhgf.biz
3340
+ kldjknai.com
3341
+ klheafm.info
3342
+ klipsandbracks.com
3343
+ kllchid.info
3344
+ klonpiz.com
3345
+ kmfddik.info
3346
+ kmthedi.com
3347
+ knhhddia.info
3348
+ kniudx.net
3349
+ knlhbcc.info
3350
+ knowthyself.com.sg
3351
+ kokmeowdm.com
3352
+ kolmndan.com
3353
+ kolobokt.info
3354
+ komi1auspices.com
3355
+ kongo4sheered.com
3356
+ konmiralt.com
3357
+ koolbottin.com
3358
+ kooloem.info
3359
+ koolrx.com
3360
+ korea.com
3361
+ korkd.cn
3362
+ kotiesfef.com
3363
+ kpth.us
3364
+ kqet.com
3365
+ kqmort.com
3366
+ kquwbajdfh.com
3367
+ kr3.net
3368
+ krazykash.com
3369
+ kretomusta.info
3370
+ krieuthse.com
3371
+ krline.net
3372
+ kuev.com
3373
+ kukqwe.info
3374
+ kukqwp.info
3375
+ kukqwy.info
3376
+ kulindugase.com
3377
+ kuolocl.com
3378
+ kuweiwh.biz
3379
+ kvvb.com
3380
+ kxxjn.com
3381
+ kylome.com
3382
+ kyqdv.com
3383
+ l-mtg.net
3384
+ l0w-rat3.com
3385
+ l0wbankrates.com
3386
+ l73.net
3387
+ labored7neologism.com
3388
+ ladiesmothers.net
3389
+ ladybugnews.com
3390
+ ladytoysite.info
3391
+ laibgh.biz
3392
+ laielove.com
3393
+ laielovewi.com
3394
+ lakdj9.info
3395
+ lake2005deep.biz
3396
+ lalapage.com
3397
+ landmarkgreen.com
3398
+ landolimer.com
3399
+ landrater.com
3400
+ lankiest.net
3401
+ lanoderina.com
3402
+ largerlover.com
3403
+ lastbill.biz
3404
+ lastlender.com
3405
+ lastquebus.com
3406
+ lastweekwith.com
3407
+ latestrxpills.com
3408
+ latinmail.com
3409
+ latne.com
3410
+ latzzzp.net
3411
+ laviena.net
3412
+ lavnfjefs.info
3413
+ layinflowerat.com
3414
+ layleader.com
3415
+ layover5sawyer.info
3416
+ lazv.com
3417
+ lbalaska.com
3418
+ lbcfgkjc.info
3419
+ lbfabillbn.info
3420
+ lbjegek.info
3421
+ lbmfdlmdba.info
3422
+ lc5.net
3423
+ lddho.com
3424
+ ldebhbe.info
3425
+ ldrim.com
3426
+ leadsmasters.biz
3427
+ leanswerebein.com
3428
+ legalhelpcenter.org
3429
+ legaloffers2u.biz
3430
+ legilant.com
3431
+ lemchfj.info
3432
+ lend-bloxz.com
3433
+ lender-home.com
3434
+ lender-search.biz
3435
+ lender-shop.com
3436
+ lender-site.com
3437
+ lender1.net
3438
+ lendera.com
3439
+ lenderadd.com
3440
+ lendersdeals.com
3441
+ lenderserv.com
3442
+ lendersforyou.com
3443
+ lendersglaore.com
3444
+ lenderto.com
3445
+ lenderto.net
3446
+ lenderz.info
3447
+ lenderz.net
3448
+ lenderzmortgage.com
3449
+ lending-blocksx.com
3450
+ lending-bloxs.com
3451
+ lending-home.com
3452
+ lending-leadersx.net
3453
+ lending-now.com
3454
+ lending-tresm.com
3455
+ lendingflow.com
3456
+ lendingflow.net
3457
+ lendingfor.com
3458
+ lendingiqrefinance.com
3459
+ lendingiqrefinance.net
3460
+ lendingneed.com
3461
+ lendingxid.com
3462
+ lendingxid.net
3463
+ lendinxsz.com
3464
+ lendinxsz.net
3465
+ lendx.biz
3466
+ lendxu-now.com
3467
+ lendzx.info
3468
+ lenkks.com
3469
+ lenpor.biz
3470
+ lensings.com
3471
+ leperex.com
3472
+ leph.info
3473
+ lepiotapan.net
3474
+ lerkawid.biz
3475
+ lesdgt.com
3476
+ lesdgt.net
3477
+ lessclan.com
3478
+ lesspot.com
3479
+ letazr.com
3480
+ letsjustgo.biz
3481
+ letsrefinance.net
3482
+ lettercer.com
3483
+ lettersubmit.com
3484
+ levin.hk
3485
+ levisce.com
3486
+ lfeedbx.com
3487
+ lgabmdc.info
3488
+ lghdndal.info
3489
+ libertyfunds.biz
3490
+ libertyp.com
3491
+ lifebestproductss.com
3492
+ lifeinsquote04.com
3493
+ lifeinsquotesgalore.com
3494
+ lifeisimportant.biz
3495
+ lifeleaksfromyo.com
3496
+ lifelovehealth.biz
3497
+ lifemedic.com
3498
+ lifemedien.de
3499
+ lifeonlinetech.com
3500
+ lifequotesgalore.com
3501
+ lifesaver5subitem.us
3502
+ lifestylescenter.com
3503
+ lift3nobelium.com
3504
+ ligcie.info
3505
+ ligeced.info
3506
+ ligenitaljh.com
3507
+ light-apps.com
3508
+ light-apps.net
3509
+ lijniahk.info
3510
+ liketobeclever.com
3511
+ limikoh.com
3512
+ limited7seizes.com
3513
+ limitedinfo.com
3514
+ limiteprofessional.com
3515
+ linchidmch.com
3516
+ linebrown.info
3517
+ linikat.com
3518
+ link-builder.com
3519
+ link55.com
3520
+ lip7untimely.com
3521
+ lipase.net
3522
+ lipsik.biz
3523
+ lipstick4formalism.com
3524
+ lipton2011biz.biz
3525
+ liquid-refi.net
3526
+ lirefi.net
3527
+ listeningstrawberries.info
3528
+ listmail.net
3529
+ lists.com.sg
3530
+ litany2detritus.info
3531
+ liteoflove.com
3532
+ literal1apposite.com
3533
+ litesolutionsforproblems.com
3534
+ littlerosa.com
3535
+ liveadulthosting.biz
3536
+ livebaseboll.info
3537
+ liveperson.net
3538
+ livere.biz
3539
+ liverymen.com
3540
+ livies7briefcase.com
3541
+ livinghomebased.com
3542
+ ljmflnjl.info
3543
+ lkjklj.net
3544
+ lkosn.com
3545
+ lksdns.info
3546
+ lksjdni.info
3547
+ llg2005.biz
3548
+ llhchmg.info
3549
+ lmlgdnhk.info
3550
+ lmvieux9.info
3551
+ lnbjihcn.info
3552
+ lnccmkm.info
3553
+ lnebgfmh.info
3554
+ lneegim.info
3555
+ lneekianjj.info
3556
+ lnelna.info
3557
+ lnkjlfgg.info
3558
+ lo-w-mor-t-gage.com
3559
+ lo-west-mort-gage.com
3560
+ loanabout.com
3561
+ loanhelpamerica.com
3562
+ loanicu.com
3563
+ loanpoly.com
3564
+ loans-approved.net
3565
+ loans-offered.net
3566
+ loans05.com
3567
+ loansavail.com
3568
+ loansweethome.com
3569
+ loant.net
3570
+ loanwap.com
3571
+ loanwithme.com
3572
+ lobangalores.com
3573
+ lobjxndfe.info
3574
+ local247.biz
3575
+ local4aha.com
3576
+ locate-up-timez.info
3577
+ lockdowncorp.com
3578
+ locus1heck.info
3579
+ loenetsv.com
3580
+ loeotechs.com
3581
+ logingcramp.com
3582
+ logods.com
3583
+ logogodz.com
3584
+ logolyx.com
3585
+ logomarz.com
3586
+ logomedias.com
3587
+ logowarz.com
3588
+ logower.info
3589
+ lolpills.info
3590
+ lomono.info
3591
+ lomotay.com
3592
+ lomydumy.com
3593
+ lonathdomai.com
3594
+ lonelyenough.com
3595
+ lonelywife.org
3596
+ lonelyworld.biz
3597
+ longerthan.us
3598
+ longherbalz.net
3599
+ longliveme.info
3600
+ longter2.info
3601
+ look4abride.com
3602
+ lookforoem.biz
3603
+ looking-to-get-laid.us
3604
+ lookingforahotone.com
3605
+ looknomoreforstores.com
3606
+ looktruck.cn
3607
+ looloo.biz
3608
+ loosebellyfat.biz
3609
+ loosingfat.biz
3610
+ loozksd.com
3611
+ lopemrnd.biz
3612
+ loperatoza.com
3613
+ lopmean.info
3614
+ lopzzz.com
3615
+ lordoftheclam.com
3616
+ lorryload.net
3617
+ lots-a-promo.com
3618
+ lotsofmed.com
3619
+ lottavita.info
3620
+ lou7disperate.info
3621
+ loudfrog.com
3622
+ louis6noise.info
3623
+ louismorpheus.com
3624
+ lour8respectful.com
3625
+ love-tips.net
3626
+ love-to-meet-hotties.com
3627
+ loveaffairboutique.com
3628
+ loveandfreedom.com
3629
+ lovecosttabl.info
3630
+ lovehelp.biz
3631
+ lovelybeautifulbags.com
3632
+ lovelywatches4u.net
3633
+ lovemedication.biz
3634
+ loveparadise.biz
3635
+ loveportion.biz
3636
+ lovespiceup.com
3637
+ loveyourshoes.biz
3638
+ lovingbetteronline.com
3639
+ lovingchatter.com
3640
+ lovpillsviagra.com
3641
+ lovtabl.info
3642
+ low-est.net
3643
+ low-mo-rt-gag-e.com
3644
+ low-price-soft.biz
3645
+ low-rate-mort-gages.com
3646
+ low-rate-s.com
3647
+ low-rates-for-you.com
3648
+ low-rates-usa.com
3649
+ lowcarbodietweightloss.com
3650
+ lowcoscanadarx.com
3651
+ lowcostcanadarx.bix
3652
+ lowcostcanadarx.biz
3653
+ lowcostsoft.biz
3654
+ lowe-r-mort-ga-ge.com
3655
+ lower-loans.com
3656
+ lowerhealt.info
3657
+ lowest-rate-mort-gages.com
3658
+ lowest-rates-ever.com
3659
+ lowestmorgage.info
3660
+ lowestpricing.biz
3661
+ loweweb.com
3662
+ lowlow1refinance.com
3663
+ lowmorgage.net
3664
+ lowrate-specialist.com
3665
+ lowrates4you.info
3666
+ lowratez.info
3667
+ lowsee.com
3668
+ lpjsjfv.info
3669
+ lskjemidd.com
3670
+ lsknmse.info
3671
+ ltalian.net
3672
+ ltxmeds.com
3673
+ lunatic6rhymer.com
3674
+ lurch9528rx.us
3675
+ lurvey.us
3676
+ luvbooster.biz
3677
+ luvisblind.biz
3678
+ luxurywatch4me.com
3679
+ lvrbnk.info
3680
+ lwenisz.info
3681
+ lwrefi.net
3682
+ lyaerd.com
3683
+ lyinofstor.com
3684
+ lymph7447rneds.com
3685
+ lynchcontemporaneous.com
3686
+ lzac.com
3687
+ m-l-now.info
3688
+ m-tg-today.net
3689
+ m0dels.com
3690
+ m0r.net
3691
+ m0re.net
3692
+ m0rrt.net
3693
+ m0rt-gages.net
3694
+ m0rt.com
3695
+ m0rtzzs.com
3696
+ m1p2.com
3697
+ m3d2u.com
3698
+ m3dspective.info
3699
+ machomall.com
3700
+ macrozine.net
3701
+ madfuture.com
3702
+ madgadget.biz
3703
+ madpot.info
3704
+ mafer.hk
3705
+ maffgnjc.info
3706
+ magicportion.info
3707
+ magictablets.net
3708
+ magnasoft.info
3709
+ magnifeye.biz
3710
+ magnitudeofborrowing.com
3711
+ magnolia7jeans.info
3712
+ magnum-shop.com
3713
+ magzone.com
3714
+ mahndjni.info
3715
+ maielovewi.com
3716
+ mailacc.com
3717
+ mailergroup.com
3718
+ maillovewi.com
3719
+ mailtracking.com
3720
+ mailworkz.com
3721
+ mainscale4u.com
3722
+ mainsqueezelove.biz
3723
+ makeitmetronow.com
3724
+ makemelogo.com
3725
+ makemysavings.net
3726
+ makesol.info
3727
+ makethisyearspecial.com
3728
+ makeyourhealth.info
3729
+ makingsweetdealstoday.com
3730
+ makingthemost.net
3731
+ malemanual.com
3732
+ maletoyz-x.info
3733
+ malignant5beer.com
3734
+ malikt.org
3735
+ malta8bowlegged.info
3736
+ mamma.com
3737
+ mammaloan.net
3738
+ man3jf.biz
3739
+ manawork.com
3740
+ mangiest.net
3741
+ manhole4962biz.us
3742
+ manifesto8098tads.us
3743
+ manikotatosti.com
3744
+ manila8mis.com
3745
+ mankeyman.info
3746
+ mannegeil.com
3747
+ mantilla7896rx.us
3748
+ manygoodthings.info
3749
+ mapshaus.info
3750
+ mar-di.net
3751
+ marefi.net
3752
+ marigraphic.com
3753
+ markdownquote.com
3754
+ marketboosting.com
3755
+ marketingboosting.com
3756
+ marketnews2004.com
3757
+ marketwatch.com
3758
+ marketwiseinvestors.com
3759
+ marksite.biz
3760
+ maron.hk
3761
+ mars6apparel.info
3762
+ marswebsite.com
3763
+ martinisblue.com
3764
+ marvinfhlil.com
3765
+ masfre.info
3766
+ masochism2doubt.com
3767
+ masonry4flack.com
3768
+ massifs.net
3769
+ massivethree.com
3770
+ massrecommend.info
3771
+ masswebsitehits.com
3772
+ master-lomaster.biz
3773
+ mateinfo.com
3774
+ mathome.com
3775
+ matterlaugh.com
3776
+ maulhcrulz.info
3777
+ max-loans.com
3778
+ max-loans.net
3779
+ maxigas.org
3780
+ maximum-loans.net
3781
+ maxxcer.com
3782
+ maxxlenght.info
3783
+ maynotbused.com
3784
+ mayrx.com
3785
+ mblcmla.info
3786
+ mbnenbhaa.com
3787
+ mbnzvxr.com
3788
+ mcadks.com
3789
+ mchammers.com
3790
+ mchefmck.com
3791
+ mcidmkdf.info
3792
+ mcndqpd.info
3793
+ mcravegj.com
3794
+ mcwell-design.com
3795
+ md20.com
3796
+ mda88.net
3797
+ mdgfbahm.info
3798
+ mdnirdhx.info
3799
+ mdonx.com
3800
+ mdpillsource.com
3801
+ me2all.com
3802
+ meantlot.cn
3803
+ meanwhile9riches.com
3804
+ mecei.com
3805
+ med44z.com
3806
+ med6547.biz
3807
+ medaboh.com
3808
+ medalertz.info
3809
+ medboc.com
3810
+ medbop.com
3811
+ medcarepharmacy.net
3812
+ medcity.ws
3813
+ meddalert.com
3814
+ medi-place.com
3815
+ medianly.com
3816
+ mediaonweb.info
3817
+ medic4salez.com
3818
+ medicalfhtjk.com
3819
+ medicalgloveonline.info
3820
+ medicalhere.com
3821
+ medicaljyid.biz
3822
+ medicalpatch.biz
3823
+ medicationpoint.com
3824
+ medkit.info
3825
+ medmembership.com
3826
+ mednr5fdf.com
3827
+ medoadk.com
3828
+ medpills.biz
3829
+ meds-factory.com
3830
+ meds-offshore.com
3831
+ meds441.com
3832
+ meds4fast.com
3833
+ medsa42.com
3834
+ medsabqh.com
3835
+ medsceurefor.com
3836
+ medsdadc.biz
3837
+ medsfig.com
3838
+ medsforunow.com
3839
+ medsoffshore.com
3840
+ medsonthego.com
3841
+ medsrealcheap.com
3842
+ medswholesale.net
3843
+ medz-are-here.com
3844
+ medz-store.com
3845
+ medz4cheap.com
3846
+ medz4life.com
3847
+ medz4you.net
3848
+ medzph44.com
3849
+ meeotechs.com
3850
+ meeting-smile.com
3851
+ meetingamateonline.com
3852
+ meetingsmile.com
3853
+ meetstraight.com
3854
+ meettomorrow.com
3855
+ mefowefsz.info
3856
+ mega-health.net
3857
+ mega-oem.info
3858
+ megabargainsplus.com
3859
+ megabestpharmacy.com
3860
+ megacheapmeds.com
3861
+ mejc.com
3862
+ mejcgall.info
3863
+ melhoresepiores.info
3864
+ memorybig.com
3865
+ menaro.info
3866
+ menbd56w.com
3867
+ mend4a22.com
3868
+ mendsxc.com
3869
+ menew5s.com
3870
+ menkefk.info
3871
+ mens545q.com
3872
+ menw54s.com
3873
+ meokwodsa.info
3874
+ merchantgalaxy.com
3875
+ merchantglobalx.com
3876
+ merchantmegasite.com
3877
+ mereprin.biz
3878
+ merriestyet.info
3879
+ meshednlngh.com
3880
+ mesncje.info
3881
+ messagemanager.com.au
3882
+ messagereach.com
3883
+ messyland.com
3884
+ metalokol.com
3885
+ metalregency.info
3886
+ metaphore2acquit.info
3887
+ metasof.com
3888
+ metontheweb.info
3889
+ metro-savings.com
3890
+ metrology8knockout.info
3891
+ mezd.com
3892
+ mf81f.biz
3893
+ mfek.com
3894
+ mfjnru.info
3895
+ mfound.com
3896
+ mfwebfdef.info
3897
+ mg1reduced.com
3898
+ mgagifgn.info
3899
+ mgbest.biz
3900
+ mgbest1.com
3901
+ mgidbnghdh.com
3902
+ mgjegng.info
3903
+ mgmhomeloan.net
3904
+ mgndmka.info
3905
+ mgstarts.biz
3906
+ mhbweb.info
3907
+ mhdpw.info
3908
+ mibdill.info
3909
+ microhertz.com.sg
3910
+ midnightlaundries.com
3911
+ midord.com
3912
+ miff4hostless.com
3913
+ mightily9parvenu.info
3914
+ mightygo.info
3915
+ migrationexpert.com
3916
+ mihfcceg.info
3917
+ milkpose.cn
3918
+ milkywilky.com
3919
+ mindtransformations.com
3920
+ mini-remote-cars-boats.com
3921
+ minnowssending.net
3922
+ minutelossknot.com
3923
+ mionterfadei.com
3924
+ mirace2005.info
3925
+ missedalesson.com
3926
+ misterguide.info
3927
+ mjespace.com
3928
+ mjfbbimd.info
3929
+ mjkeglg.info
3930
+ mkabmhl.info
3931
+ mkbizz.com
3932
+ mkigiclh.info
3933
+ mkmvb34f.com
3934
+ mkrefi.net
3935
+ mksfbefds.info
3936
+ mldfmkd.info
3937
+ mlgegcm.info
3938
+ mmachine.com
3939
+ mmbgcf.biz
3940
+ mmbn.info
3941
+ mmd123.com
3942
+ mmeds.info
3943
+ mmgrp.info
3944
+ mmhlifid.biz
3945
+ mnasbred34.com
3946
+ mnbasdn.info
3947
+ mnbsqas.com
3948
+ mnevbdsx.com
3949
+ mnicwozelis.com
3950
+ mnm1.com
3951
+ mnnfghgc.com
3952
+ mnrb6s3.com
3953
+ mnvbrfc.com
3954
+ moarban.net
3955
+ moblook.com
3956
+ mobnight.info
3957
+ modeler9standstill.com
3958
+ modelled.net
3959
+ moderninnovations.net
3960
+ modfhedfd.info
3961
+ mokatilatiano.com
3962
+ molph.info
3963
+ momanator.com
3964
+ momento-erowid.net
3965
+ mon-nowz.net
3966
+ monarchic.net
3967
+ mondayblues.biz
3968
+ mondhs.com
3969
+ monehome.com
3970
+ monetised.net
3971
+ money-bright.info
3972
+ money-deal.info
3973
+ money-discount.info
3974
+ money-group.net
3975
+ money-internet.net
3976
+ money-stop.net
3977
+ moneyanalysis.net
3978
+ moneyfirms.com
3979
+ moneyintelligent.info
3980
+ moneyondemand.info
3981
+ moneysharp.info
3982
+ moneystates.com
3983
+ monocytengfa.com
3984
+ monogram4pegmatitic.com
3985
+ moodsoft.info
3986
+ moonboard.info
3987
+ mor-now.com
3988
+ more-salz.com
3989
+ more4lessrx.com
3990
+ more4me2.com
3991
+ morecashlessdebt4u.com
3992
+ morecheaprx.com
3993
+ moreger.com
3994
+ moreinfo4you.net
3995
+ morequote.com
3996
+ morerawk.com
3997
+ moretabl.info
3998
+ moretgage.info
3999
+ moretgauge.net
4000
+ morethanadrivefull.com
4001
+ morethanwhatiwant.com
4002
+ moreupto.com
4003
+ morpheus-spyware.info
4004
+ mort-abc.com
4005
+ mort-abc.net
4006
+ mort-best-deal.com
4007
+ mort-for-you.net
4008
+ mort-g-age-now.com
4009
+ mort-loa-ns.com
4010
+ mort-low-rate.com
4011
+ mort-lowsz.net
4012
+ mort-today.com
4013
+ mort-today.net
4014
+ mort-usa.net
4015
+ mort-vivahome.com
4016
+ mort-your.com
4017
+ mort6ga.biz
4018
+ mortco.org
4019
+ mortfund.com
4020
+ mortga12.com
4021
+ mortgage-2000.net
4022
+ mortgage-ebrokers.com
4023
+ mortgage-lowsz.com
4024
+ mortgage-newx.net
4025
+ mortgage-search.us
4026
+ mortgage-tower.com
4027
+ mortgagel0ans.com
4028
+ mortgagelf.com
4029
+ mortgageloansbynet.com
4030
+ mortgageofficer.net
4031
+ mortgages-4-you.com
4032
+ mortgages-4u.net
4033
+ mortgageshoppers.info
4034
+ mortgauge.net
4035
+ mortgege.info
4036
+ mortgxs.net
4037
+ mortiqnow.com
4038
+ mortmy.com
4039
+ mortpharm2005.net
4040
+ mortsiq.com
4041
+ mortslow.com
4042
+ mortslow.net
4043
+ mortsscd.com
4044
+ mortsxo.com
4045
+ mortyour.com
4046
+ mortzgagez.com
4047
+ mortzgagez.net
4048
+ mortzlow.com
4049
+ mortzz.com
4050
+ mosper.com
4051
+ mosque4lexical.com
4052
+ mosteffective.biz
4053
+ mostlyyes.info
4054
+ motherless9bargraph.com
4055
+ mothernoun.cn
4056
+ motorcityescorts.com
4057
+ mouthwrong.com
4058
+ movierand.com
4059
+ movsex.info
4060
+ mozgoebstvo.biz
4061
+ moziyu.com
4062
+ mp3bundle.com
4063
+ mq5.net
4064
+ mqnbas552.com
4065
+ mqwerisbf.com
4066
+ mr-stamina.info
4067
+ mredtesun.biz
4068
+ mrev.biz
4069
+ mrg-now-yes.com
4070
+ mrkfin.com
4071
+ mrlend123.com
4072
+ mrns432s.com
4073
+ mrratenow.com
4074
+ mrrefinancing.net
4075
+ mrstrong.biz
4076
+ mrt-now.com
4077
+ mrtfi.com
4078
+ mrtg-now.com
4079
+ mrthgsfaw.info
4080
+ mrut.com
4081
+ mseiosjd.info
4082
+ msn3as21.com
4083
+ mt-12-34.com
4084
+ mt-g-today.com
4085
+ mt.st
4086
+ mtg-gen3.com
4087
+ mtg-makers1.com
4088
+ mtgdefault.us
4089
+ mtgdflt.us
4090
+ mtgexpertz.info
4091
+ mtgz.net
4092
+ mubsedefd.com
4093
+ mufflerbeef.com
4094
+ multimed.ws
4095
+ multumliakf.com
4096
+ muores.com
4097
+ muorue.com
4098
+ murmur3unboiled.us
4099
+ murzel.net
4100
+ muscat3turnup.info
4101
+ musindvide.com
4102
+ mustbegood.info
4103
+ mutualneefor.com
4104
+ mx01.com
4105
+ mxsoft.biz
4106
+ my-DNA.net
4107
+ my-cash.biz
4108
+ my-cash.net
4109
+ my-refi.net
4110
+ my7sundew.info
4111
+ myabsinth.com
4112
+ myautowarranty.com
4113
+ mybighouse.net
4114
+ mycasino777.info
4115
+ mydatingtype.com
4116
+ mydnnweb.com
4117
+ mydomfiyeswhy.com
4118
+ mydvwin.info
4119
+ myeasysavings.com
4120
+ myfreelivewebcam.com
4121
+ myfreshdomains.com
4122
+ myfriendlyshop.com
4123
+ mygalt.com
4124
+ mygamma.com
4125
+ mygcone.info
4126
+ mygreatrate.com
4127
+ myhomeloanstore.com
4128
+ myhomeowner.net
4129
+ myhostingdeal.com
4130
+ myinsert973pills.biz
4131
+ mylastlove.com
4132
+ mymailms.com
4133
+ mymeds36.info
4134
+ mymeltingmoments.com
4135
+ mymort-viva.com
4136
+ mynetbizz.com
4137
+ mynetbizztravel.com
4138
+ myonlinegnbank.info
4139
+ mypillguy.com
4140
+ mypills2004.com
4141
+ mypills2k.com
4142
+ mypills4all.com
4143
+ mypills4me.com
4144
+ mypills4us.com
4145
+ mypillsforme.com
4146
+ mypillsplace.com
4147
+ mypillssoltuion.com
4148
+ mypillsusa.com
4149
+ mypillswebsites.com
4150
+ mypillzstore.com
4151
+ myplace2glass.com
4152
+ mypllaceishere.com
4153
+ myproducts4sell.com
4154
+ myrice.com
4155
+ myrx007.com
4156
+ myrxglobal.com
4157
+ myrxglobal.net
4158
+ myshopinternetbest.com
4159
+ mystpt.com
4160
+ mystufffarm.com
4161
+ mystuffhome.com
4162
+ mythingsusa.com
4163
+ mythingswebsite.com
4164
+ mythingswebsites.com
4165
+ myvalentinesplace.com
4166
+ myvaluepc.com
4167
+ mywatchesoncanalstreet.com
4168
+ mywatchesoncanalstreet.net
4169
+ myway.com
4170
+ mywtchsisnice.com
4171
+ n0wloseweight.com
4172
+ n0wwewillsave.com
4173
+ n0wwewillsave.net
4174
+ n1c3.com
4175
+ n3.net
4176
+ n8mort.com
4177
+ nabphamed.com
4178
+ namewith.com
4179
+ namhbhja.info
4180
+ namwatches.com
4181
+ nanan2.info
4182
+ nanmep.biz
4183
+ nanneh.biz
4184
+ naoseinao.info
4185
+ narrowly9558pi11.us
4186
+ nate.com
4187
+ natgain.com
4188
+ national-net.com
4189
+ nationwide1paramount.com
4190
+ natpat.net
4191
+ natural-herbs.info
4192
+ natural-herbs.us
4193
+ naturalgrowthmeds.com
4194
+ naturalherbal.us
4195
+ naturalremedy.biz
4196
+ naturalways.biz
4197
+ naturebest.info
4198
+ naturegain.com
4199
+ naturepath.info
4200
+ naughty-ground.com
4201
+ naughtylaugh.com
4202
+ naughtysmile.com
4203
+ nauhgh.com
4204
+ nazdaq.info
4205
+ nbgehikl.info
4206
+ nbsmss.info
4207
+ nbzfjwdf.info
4208
+ ncbsm.com
4209
+ ncol.com
4210
+ ncwcu.com
4211
+ ndbhw.com
4212
+ ndwgz.com
4213
+ nease.net
4214
+ neatnetlink.org
4215
+ neatstuff2003.biz
4216
+ nebdkjme.info
4217
+ necrosis4purslane.com
4218
+ nedmentprescrt.com
4219
+ nedojdete.com
4220
+ need-online-sales.com
4221
+ neededformore.com
4222
+ needing-some.net
4223
+ needsaslap.com
4224
+ neemkarolibabax.com
4225
+ neg9ball.info
4226
+ negater6398tads.com
4227
+ negotiator6seq.us
4228
+ nelomatye.com
4229
+ neonpage.com
4230
+ neopdf.com
4231
+ neoplad.com
4232
+ neostylez.com
4233
+ nepel.com
4234
+ nepizdi.biz
4235
+ nerd2bunt.com
4236
+ nerve5343tads.com
4237
+ net-cash.net
4238
+ net-salez.us
4239
+ netaexplicit.com
4240
+ netazipper.com
4241
+ netcistern.com
4242
+ netdreamwatches.com
4243
+ netfirms.com
4244
+ netloqiiall.info
4245
+ netmail2.com
4246
+ netoffersforyou.biz
4247
+ netquetions.com
4248
+ netrge.biz
4249
+ netsellu.com
4250
+ netsolos.com
4251
+ netsts.com
4252
+ netuetion.com
4253
+ neufh.info
4254
+ nevergosoft.com
4255
+ neverp4yretail.com
4256
+ neverp4yretail.net
4257
+ neverpayfullpr1ce.net
4258
+ neverstoplearning.info
4259
+ nevvpovveroffers.com
4260
+ new-xyzb.com
4261
+ new36.com
4262
+ newbarts.info
4263
+ newcollage.com
4264
+ newdeals.biz
4265
+ neweraonline.com
4266
+ newgarns.com
4267
+ newholidayplans.com
4268
+ newhomefast.info
4269
+ newhorizons.com.sg
4270
+ newkk.com
4271
+ newlowestrates.com
4272
+ newlowquotes.com
4273
+ newmedicationss.com
4274
+ newmedsolutionsite.com
4275
+ newonlinestuffs.com
4276
+ newportcorp.cn
4277
+ newquotes.net
4278
+ newreplicas.info
4279
+ newrxprograms.biz
4280
+ newsbyajoomsen.com
4281
+ newsbyaoomsein.com
4282
+ newsebyaoomsen.com
4283
+ newsnetworkaddgroups.com
4284
+ newsnetworkadsgroups.com
4285
+ newtshb.com
4286
+ newxpressrx.com
4287
+ newyearservices.com
4288
+ nextfrontiersonline.com
4289
+ nextgenerals.com
4290
+ nexthost.org
4291
+ nextowith.com
4292
+ nexussite.us
4293
+ nexuste.com
4294
+ nf0.net
4295
+ nfdvijd.info
4296
+ nfevdbx.com
4297
+ nflcbeh.info
4298
+ ng235.info
4299
+ ngbank.biz
4300
+ ngcorp.info
4301
+ nglbcfe.info
4302
+ ngmembers.info
4303
+ nhlgquw.com
4304
+ ni.com.au
4305
+ nicaragua9seeder.com
4306
+ nice2buyhere.com
4307
+ nicecup.info
4308
+ nicedvd.biz
4309
+ nicepharmacy.com
4310
+ nicepills.info
4311
+ niceviagra.info
4312
+ nieotechs.com
4313
+ nightextreme.biz
4314
+ nighthelp.info
4315
+ nimbjkb.info
4316
+ ninemilk.cn
4317
+ ninjamanjeff.com
4318
+ nitebooster.info
4319
+ nitropills.biz
4320
+ nitugoetes.com
4321
+ njdeani.info
4322
+ njfjmjak.info
4323
+ nkolmun.com
4324
+ nlav.com
4325
+ nlcomp.com
4326
+ nlhchbc.info
4327
+ nlhjbigk.info
4328
+ nllhcfdh.com
4329
+ nlp-transform.com.sg
4330
+ nmblmm.biz
4331
+ nmchmcin.info
4332
+ nmciph.biz
4333
+ nmkolbasta.com
4334
+ nms57ed.com
4335
+ nnhefdi.info
4336
+ nnjahglgdd.com
4337
+ no-m0re-bills.net
4338
+ no1pharma.com
4339
+ no1pharma.net
4340
+ nobulldeals.com
4341
+ nocensor.to
4342
+ noclasses.info
4343
+ nohassleloan.net
4344
+ nohavoc.com
4345
+ noizbox.info
4346
+ nokalko.com
4347
+ nokhika.com
4348
+ nolidatrez.biz
4349
+ nolpmadotad.com
4350
+ nom.br
4351
+ nomeksdn.biz
4352
+ nomkdn.com
4353
+ noobligationsavings.com
4354
+ nookpage.com
4355
+ nopaln.com
4356
+ noprepdoc.com
4357
+ nosleep4me.com
4358
+ notbeenfiled.com
4359
+ notecer.com
4360
+ noticeforhighclass.com
4361
+ noticestring.cn
4362
+ notimelef.com
4363
+ notinuse.biz
4364
+ notkilledoem.info
4365
+ notshabby.info
4366
+ notyesterdaysnews.com
4367
+ now-and-forever.org
4368
+ now2market.com
4369
+ nowxmsx.net
4370
+ noxiously.net
4371
+ nrik.com
4372
+ nrtas.hk
4373
+ ns-dois.us
4374
+ ns-quatro.us
4375
+ ns-um.biz
4376
+ nsa.com.sg
4377
+ nsienxc.info
4378
+ nsr1a.biz
4379
+ nsuse.com
4380
+ ntcnth.com
4381
+ nteri.com
4382
+ ntvvoodoo.com
4383
+ nude7755pi11s.us
4384
+ nudewfds.info
4385
+ nufan.net
4386
+ nukzeozh.info
4387
+ numberdl.com
4388
+ numberless6hooray.info
4389
+ numeric5andy.com
4390
+ nuniv.com
4391
+ nurturing3894drygs.com
4392
+ nutritiousgood.com
4393
+ nvhomevalues.com
4394
+ nvx2kfir.info
4395
+ nwqzvrmna.info
4396
+ nxhsiedz.com
4397
+ nyleads.biz
4398
+ nzzesrc.com
4399
+ o2.ie
4400
+ oarswomen.com
4401
+ oasbmedsw.com
4402
+ obscuring7328drygs.biz
4403
+ occam6guesswork.info
4404
+ occluded9opalescent.com
4405
+ ocsc.com.sg
4406
+ oculosdesol.info
4407
+ odjfnbb.com
4408
+ odontology5allowance.com
4409
+ oem-biz.biz
4410
+ oem-cheap.biz
4411
+ oem-expert.biz
4412
+ oem-madness.biz
4413
+ oemcheckout.com
4414
+ oemdata.biz
4415
+ oemdisks.biz
4416
+ oemforlowsale.info
4417
+ oemmarket.info
4418
+ oemsoftware4u.com
4419
+ oemutility.com
4420
+ oeoutju4.com
4421
+ oevier.biz
4422
+ ofeotechs.com
4423
+ offdrinkwater.com
4424
+ offerindex.com
4425
+ offeros.com
4426
+ offerpills.com
4427
+ offerplanet.com
4428
+ offerscard.com
4429
+ offerspages.com
4430
+ officeislocated.com
4431
+ officeoffer.com
4432
+ officialblingwatches.com
4433
+ officialwatchezoncanalstreet.net
4434
+ offshoot2huddle.com
4435
+ offshorepharmacy-rx.com
4436
+ oflist.com
4437
+ ofourproducts.com
4438
+ ohgo.com
4439
+ ohhmygodd.biz
4440
+ ohihopilern.com
4441
+ ohmygot.info
4442
+ ohosts.net
4443
+ oi6.net
4444
+ oijia.com
4445
+ oil-bank.ru
4446
+ ojhemds.biz
4447
+ ojjyqhr.com
4448
+ ok-mrg-now.net
4449
+ ok-mrg-yes.net
4450
+ ok-mrt-now.net
4451
+ ok-ref-now.com
4452
+ ok-ref-yes.com
4453
+ okhj2.biz
4454
+ okmekw.com
4455
+ okwerwer.biz
4456
+ oldnavy.com
4457
+ oldsnakeschool.com
4458
+ oldtimemash.com
4459
+ omegreates.com
4460
+ omnisoft.ws
4461
+ omsencross.com
4462
+ on-funding.com
4463
+ on-money.com
4464
+ ondemandloan.info
4465
+ ondemandmeds.com
4466
+ ondlmedscrue.com
4467
+ oneastonishingwatchez.net
4468
+ oneblingwatch.net
4469
+ oneblingwatchsforme.info
4470
+ onebusbone.com
4471
+ onefortheshow.info
4472
+ onelomena.info
4473
+ onemoreshot.info
4474
+ onemoretimez.com
4475
+ onereplica.net
4476
+ onestopaccounting.com
4477
+ onet.pl
4478
+ online-casino-gambling-pros.com
4479
+ online-internets.com
4480
+ online-loanz.com
4481
+ online-medz.net
4482
+ onlinecheapmeds.com
4483
+ onlineclicks.biz
4484
+ onlinediscountbyers.biz
4485
+ onlinedm.com
4486
+ onlinedns.org
4487
+ onlinegenericrx.com
4488
+ onlinegenericshop.com
4489
+ onlinegoldshop.info
4490
+ onlinegr8tpills.com
4491
+ onlineless.info
4492
+ onlinemedscheap.com
4493
+ onlinemedz.net
4494
+ onlinepc.info
4495
+ onlinepharm.com
4496
+ onlinepills-co.com
4497
+ onlineprescript.com
4498
+ onlinerefi.biz
4499
+ onlinerussianbrides.cn
4500
+ onlinerxcentre.com
4501
+ onlinerxcentre.net
4502
+ onlinerxmed.com
4503
+ onlinerxmeds.info
4504
+ onlinesecuremeds.com
4505
+ onlineuniversitytsu.com
4506
+ onlinewebmeds.info
4507
+ onlygoodnned.info
4508
+ onlythebestofall.info
4509
+ onlyurdone.info
4510
+ ontwohgfj.com
4511
+ onzale.info
4512
+ ooglyman.net
4513
+ oombu.hk
4514
+ opencer.com
4515
+ openforex.org
4516
+ openz.us
4517
+ opmort.net
4518
+ opnjhjj.com
4519
+ opoloveok.com
4520
+ opoloves.com
4521
+ oppplo.info
4522
+ opspills.com
4523
+ optasia-group.com
4524
+ optimax.com.sg
4525
+ optimesw.com
4526
+ optimize5129drug.com
4527
+ optimizer6landless.com
4528
+ optin2millions.net
4529
+ optin2millions.us
4530
+ optinemailing.net
4531
+ optinemailingtoday.com
4532
+ optinemailservices.net
4533
+ optinemailtoday.com
4534
+ opxcklsa.info
4535
+ oqhg.com
4536
+ orbsubcrib.com
4537
+ ordeemm.com
4538
+ order-wizard.com
4539
+ order-worldz.com
4540
+ ordergalaxy.com
4541
+ orderhydrocodonepharmacy.com
4542
+ orderkit.net
4543
+ orderlandz.com
4544
+ ordermaniaz.com
4545
+ ordermegasite.com
4546
+ orderphar.com
4547
+ ordertodaycheaply.com
4548
+ orgbusbone.com
4549
+ orgplanet.info
4550
+ orgtechservice.com
4551
+ originalreplica.net
4552
+ oritken.info
4553
+ ortcard4slats.com
4554
+ osbzeafz.info
4555
+ osdfksugs.biz
4556
+ osemlik.info
4557
+ osmaispedidos.info
4558
+ osmelhoresdodia.info
4559
+ osmlelhoresdehoje.info
4560
+ osseously.net
4561
+ ossifies.com
4562
+ osturistoes.info
4563
+ otcasino.biz
4564
+ otherextension.com
4565
+ otreseacetion.com
4566
+ our-mortgage.com
4567
+ ourextenders.info
4568
+ ourlearningspace.com
4569
+ ourlowratez.com
4570
+ ourmagicbox.tvA
4571
+ ourmemory-of.com
4572
+ ourpills2k.com
4573
+ ourpillsabsolute.com
4574
+ ourpillshome.com
4575
+ ourpillspalace.com
4576
+ ourpillsplace.com
4577
+ ourpillssite.com
4578
+ oursiteonline.info
4579
+ outdoor6457pill.biz
4580
+ outermost4heard.com
4581
+ outgoing9256pi11s.us
4582
+ outhatutfile.com
4583
+ outloan.com
4584
+ outright3ditty.com
4585
+ outsource2us.info
4586
+ overbading3764drug.biz
4587
+ overdone.biz
4588
+ owndoctor.info
4589
+ oxidaselc.com
4590
+ oxxford.info
4591
+ oyiod.com
4592
+ oystgerkswitsugga.com
4593
+ oz.com.sg
4594
+ ozbewfde.info
4595
+ oziril.com
4596
+ p1k.net
4597
+ p3rfect.com
4598
+ pacayadmama.com
4599
+ pacificmeds.com
4600
+ pacificpaper.com.sg
4601
+ packpage.com
4602
+ packsite.us
4603
+ pageroot.net
4604
+ painfreerx.net
4605
+ paishnkmd.com
4606
+ pakwatches.com
4607
+ pal-site.biz
4608
+ palacemedz.com
4609
+ palaregs.com
4610
+ palepage.com
4611
+ palindrome9700nx.com
4612
+ palns.net
4613
+ pamharter.com
4614
+ panaches.net
4615
+ pancakeking.com
4616
+ pane9sparsness.com
4617
+ panelthecompany.com
4618
+ panicodesordem.info
4619
+ panicodoenca.info
4620
+ pantropic.com.sg
4621
+ pap1cantata.com
4622
+ papasite.biz
4623
+ papasite.us
4624
+ paperhis.cn
4625
+ paperiness.net
4626
+ paperwork970tads.com
4627
+ papyrus2transputer.com
4628
+ par-t.org
4629
+ parablerxweb.com
4630
+ parasitism4legibility.com
4631
+ parasoft.info
4632
+ pargyline2041pinn.com
4633
+ parkleah.biz
4634
+ parksite.biz
4635
+ parls.net
4636
+ parsnessfront.net
4637
+ parssw.com
4638
+ part1es.com
4639
+ partied.net
4640
+ passivexs.net
4641
+ pastern9atypically.com
4642
+ patronizer6687tads.us
4643
+ patsonslearning.com
4644
+ paver4reference.com
4645
+ pawlnf.com
4646
+ pax-host.org
4647
+ paycation.net
4648
+ paygear.biz
4649
+ payless4oem.biz
4650
+ paylesscanadiandrugs.com
4651
+ pcsecurityshield.com
4652
+ pcsri.com
4653
+ pdhost.com
4654
+ peachpiev2.biz
4655
+ pearishco.com
4656
+ pediatrics4tent.com
4657
+ pedlomaniak.com
4658
+ pekingtrail.com.ph
4659
+ pelvics.net
4660
+ pen-is-mightier.com
4661
+ pen1sgr0wth.com
4662
+ penisenlarger4u.biz
4663
+ penisreview.com
4664
+ pennyweb.com
4665
+ penumbral7470drugs.us
4666
+ peopecose.com
4667
+ peoplelenders.com
4668
+ peopleneedhtis.net
4669
+ peopleset.info
4670
+ peoplesuggest.com
4671
+ pepped1scutch.info
4672
+ per-fect-mor-tgage.com
4673
+ percentum5paramount.com
4674
+ percolated1phlegm.info
4675
+ perfect-oem.info
4676
+ perfectperfectperfect.com
4677
+ perfectreplica.net
4678
+ perfectserver.biz
4679
+ perfectserver.us
4680
+ perfecttimes.info
4681
+ perfectvgr.com
4682
+ perfectwatch4u.com
4683
+ perfectwatches.biz
4684
+ perfmper4.com
4685
+ periodcheck.com
4686
+ perksite.biz
4687
+ perpetuity6sheath.info
4688
+ persevere5256tads.com
4689
+ personal-doc.info
4690
+ perspire8elder.info
4691
+ petclubonline.info
4692
+ peter234234.com
4693
+ petercopter.com
4694
+ peterprawn.com
4695
+ pets-do-business.com
4696
+ pettlespuzzle.com
4697
+ pewmaterialize.com
4698
+ pfbbskdfe.info
4699
+ pfctomers.com
4700
+ pfeedbx.com
4701
+ pflzer.com
4702
+ ph0n3s.net
4703
+ pha-rmacy.com
4704
+ phanmrmsd.com
4705
+ pharemnw.com
4706
+ pharma-rx.info
4707
+ pharma-saved.com
4708
+ pharmacart44.com
4709
+ pharmacy-high-quality.com
4710
+ pharmacyforyou.info
4711
+ pharmacypills4u.com
4712
+ pharmaway.info
4713
+ pharmbrand.com
4714
+ pharmdze.com
4715
+ pharmfarm.biz
4716
+ pharmom.com
4717
+ pharycon.com
4718
+ phased1anglophobe.com
4719
+ phbrand.biz
4720
+ phenodf.com
4721
+ phenomenallyell.com
4722
+ phenter.net
4723
+ phents.com
4724
+ phonehome.com.sg
4725
+ phosphor1ecstasy.com
4726
+ phudleaj.com
4727
+ phxice.com
4728
+ pi11mart.com
4729
+ pi11s.com
4730
+ picksite.biz
4731
+ pigmentary6crushed.com
4732
+ pilcolden.com
4733
+ pillcentral.biz
4734
+ pills-of-passion.com
4735
+ pills888.com
4736
+ pillsbestyou.info
4737
+ pillsbusiness.com
4738
+ pillscash.com
4739
+ pillsdoc.us
4740
+ pillsdocz.biz
4741
+ pillsforlife.info
4742
+ pillsofdesire.com
4743
+ pillspharm.net
4744
+ pillstalk.biz
4745
+ pillstock.com
4746
+ pilottownx.com
4747
+ pils4everyday.info
4748
+ pilsforyou.info
4749
+ pimpslapzz.com
4750
+ pimpyhosting.com
4751
+ pinctadachef.com
4752
+ pinghetang.com
4753
+ pingopongos.com
4754
+ pinkmangs.com
4755
+ pinkpools.com
4756
+ pinspotter2275biz.com
4757
+ pipe-34.net
4758
+ pipebrigit.com
4759
+ pipero.com
4760
+ pisceslouis.com
4761
+ piuloknades.com
4762
+ piurates.com
4763
+ piurates=2Ecom
4764
+ pix4u.net
4765
+ pixelproduction.com
4766
+ pixkapox.com
4767
+ pizdatonadushe.biz
4768
+ pjat.com
4769
+ pjew.com
4770
+ pjwem.com
4771
+ pkhavean.com
4772
+ pkhavean=2Ecom
4773
+ pkkaja.com
4774
+ placetoby.com
4775
+ plainviewhights.com
4776
+ plantboat.com
4777
+ plasm7tiaras.info
4778
+ plasticdragon.info
4779
+ plasticow.com
4780
+ platinumitemawardee.com
4781
+ pleasechklnk.com
4782
+ pleasingmoment.com
4783
+ pleaze2teas.com
4784
+ pledgee8rna.info
4785
+ plentyofgas.com
4786
+ plentyvita.biz
4787
+ plethora4unreal.com
4788
+ plmcdie.info
4789
+ plmcnei.info
4790
+ plover6tweeter.com
4791
+ pluck8deluge.com
4792
+ pluckz.us
4793
+ plusherbal.biz
4794
+ plznightz.com
4795
+ pm0.net
4796
+ pmedabuy.info
4797
+ pmedbadpu.info
4798
+ pmr7jx.info
4799
+ poaytz.com
4800
+ pockmarked.com
4801
+ pointer9972drug.biz
4802
+ poke12.biz
4803
+ pokerunner.com
4804
+ pokiusfards.biz
4805
+ polarizational.com
4806
+ polarsunrise.biz
4807
+ polimardo.info
4808
+ polite2convict.info
4809
+ politicalpoison.com
4810
+ pollster5dawdle.info
4811
+ pollster6asia.com
4812
+ polsurvey.com.sg
4813
+ polymerfriend.com
4814
+ pomcms.com
4815
+ ponudba.net
4816
+ poog.info
4817
+ pop-site.biz
4818
+ popgoestheweaseeel.com
4819
+ popkaradio.com
4820
+ popkasale.com
4821
+ popkashop.com
4822
+ popkasite.com
4823
+ populartabl.info
4824
+ populsurfinspot.com
4825
+ popupprotector.com
4826
+ poralustamina.com
4827
+ porno7775tads.com
4828
+ port2088meds.biz
4829
+ portable7attachable.info
4830
+ portanex.com
4831
+ portion.biz
4832
+ posses1consent.com
4833
+ posteritty.com
4834
+ postholecaesar.net
4835
+ potcheesie.com
4836
+ pottyplay.com
4837
+ potuyq.com
4838
+ pouqy.biz
4839
+ poureb.com
4840
+ poutso.biz
4841
+ pow-site.biz
4842
+ powenei.biz
4843
+ power-enlarge-pills.com
4844
+ powerhealth.info
4845
+ powerlifes.biz
4846
+ powerviagra.com
4847
+ powlikke.com
4848
+ powndiz.info
4849
+ powppdd.com
4850
+ powrpage.us
4851
+ poxz.com
4852
+ poyetvca.com
4853
+ ppcexperience.com
4854
+ ppillsnow.com
4855
+ ppos38.com
4856
+ pq4.net
4857
+ pr0ud.net
4858
+ pr0ved.com
4859
+ pr0ved.net
4860
+ pr1ces.net
4861
+ pr1smat3ch.com
4862
+ pr33n.com
4863
+ pr3sd1ugs.com
4864
+ pra6lighter.com
4865
+ practiceled.cn
4866
+ prado29.us
4867
+ praisesol.info
4868
+ precscription-service-now.com
4869
+ preempt.biz
4870
+ prefect3470dryg.com
4871
+ preferedloans.com
4872
+ prefixing.com
4873
+ preman-warnet.com
4874
+ premium-plus-products.com
4875
+ premiumdiscounts.net
4876
+ preotechs.com
4877
+ presentindicate.cn
4878
+ presss-dwa.com
4879
+ prestigeoffice.com.sg
4880
+ pretax.biz
4881
+ pretax.info
4882
+ prettymovies.info
4883
+ pricecer.com
4884
+ pricechoicenews.com
4885
+ pricechoppers.info
4886
+ pricelessitemsinfo.com
4887
+ priceslash4.com
4888
+ pricexll.com
4889
+ primetimedirect.net
4890
+ primness6560nx.us
4891
+ printpal.com
4892
+ prism1115dryg.us
4893
+ privacybiz.biz
4894
+ privatebnk.info
4895
+ privatedatingterms.biz
4896
+ privdom.com
4897
+ privy6tyler.info
4898
+ prix.fr
4899
+ prizeservers.com
4900
+ pro-site.biz
4901
+ pro-software.biz
4902
+ pro-soil.net
4903
+ pro2security.biz
4904
+ processhad.cn
4905
+ procourtmi.com
4906
+ prodforyou.com
4907
+ professor.com.sg
4908
+ profitableproducts.com
4909
+ progsline.biz
4910
+ progsstore.biz
4911
+ projector5alcohol.com
4912
+ projectrefinance.com
4913
+ prologuesound.net
4914
+ promo-for-your-site.com
4915
+ promo-offers.com
4916
+ promohost.org
4917
+ promote-biz.net
4918
+ promote9796drug.us
4919
+ promotionh0use.com
4920
+ propulsion3417drug.us
4921
+ prosize.biz
4922
+ prospectgrab.biz
4923
+ protus.com
4924
+ provable6567pi11.us
4925
+ provencaux.net
4926
+ prserv.net
4927
+ przc.com
4928
+ psjned.info
4929
+ psorni.net
4930
+ pssp.com.cn
4931
+ psychicmarie.com
4932
+ ptrackz.info
4933
+ publicmeds.com
4934
+ puddle2.info
4935
+ puddle2.us
4936
+ puerperal.com
4937
+ puling7796meds.us
4938
+ pullpage.us
4939
+ pullpushstop.com
4940
+ pullsite.us
4941
+ pumidym.com
4942
+ punanipunch.com
4943
+ punicha.com
4944
+ punishmentprint.com
4945
+ puqus.com
4946
+ pure-freedom.net
4947
+ puresfuel.com
4948
+ purestfuels.com
4949
+ purfectclss.com
4950
+ purpletrain.com
4951
+ pushtime.cn
4952
+ pusssystretchers.com
4953
+ puttingthatin.com
4954
+ puzzc.cn
4955
+ puzzled166dryg.com
4956
+ pvbzdfwdd.info
4957
+ pwemicu3.info
4958
+ pwmndief.info
4959
+ pycnanthemumyogurts.net
4960
+ pyndhjdsez.info
4961
+ q-tours.net
4962
+ q1tv.com
4963
+ qajfrh.biz
4964
+ qawatches.com
4965
+ qccer.com
4966
+ qeekcy.com
4967
+ qepr.com
4968
+ qewemm.com
4969
+ qgmedsale.com
4970
+ qidpda.biz
4971
+ qikcakmeds.com
4972
+ qiwuz.com
4973
+ qkebajd.info
4974
+ qlku3829.com
4975
+ qpksd.info
4976
+ qpwoeiruck.com
4977
+ qqpharmes.com
4978
+ qqqwertypoid.com
4979
+ qqrtz.com
4980
+ qrksrv.net
4981
+ qrrnet.com
4982
+ qt323dss.com
4983
+ qtnauys.com
4984
+ qtours.net
4985
+ qts7851drygs.us
4986
+ qu0tes.net
4987
+ qua5hmm.us
4988
+ quadrasoft.org
4989
+ quadrate7nitric.com
4990
+ qual1typ1lls.info
4991
+ qualinet.biz
4992
+ quality-mortgages.com
4993
+ quality-mortgages.net
4994
+ quality-online-rx.com
4995
+ qualitydr.info
4996
+ qualitylastsforever.com
4997
+ qualitymba
4998
+ qualitysales-great.com
4999
+ qualitytimepiece.com
5000
+ qualitywho.info
5001
+ quantumhelpdesk.biz
5002
+ quarxc.net
5003
+ queentym3ds.com
5004
+ quemedera.info
5005
+ quentage.info
5006
+ queotechs.com
5007
+ question7paolo.info
5008
+ quick-mortgage.biz
5009
+ quickadnsoft.com
5010
+ quickclick.com.sg
5011
+ quickcollegedegree.com
5012
+ quickcollegedegrees.com
5013
+ quickeasysolution.com
5014
+ quicker-apps.com
5015
+ quicker-apps.net
5016
+ quickerpage.com
5017
+ quicklikemedstou.com
5018
+ quicklysalestoday.com
5019
+ quickvisitorsnow.com
5020
+ quickz.info
5021
+ quikmedzstore.com
5022
+ quikrx.net
5023
+ quint997meds.us
5024
+ quitplayinggameswithmyheart.com
5025
+ quits8304drygs.com
5026
+ quiz21.com
5027
+ quoir.com
5028
+ quotedot.com
5029
+ quotestore.biz
5030
+ quotestore.net
5031
+ quotetalk.com
5032
+ quoteyourrate.com
5033
+ qvcphuket.com
5034
+ qvcsamui.com
5035
+ qw321oi8.com
5036
+ qwbebm.info
5037
+ qwertyfly.com
5038
+ qwikin.com
5039
+ qwild.com
5040
+ qwmanse2.com
5041
+ qwmnas21.com
5042
+ qwpdt.biz
5043
+ r-e-finance.com
5044
+ r-x-ezy.com
5045
+ r-x-r-x.com
5046
+ r1g4t2you.com
5047
+ r6tmf.com
5048
+ r7ha.com
5049
+ r8tdrop.com
5050
+ r8tesdrop.com
5051
+ rabbet.info
5052
+ rabbet5073tabs.us
5053
+ rabnos.com
5054
+ racyhiracy0.com
5055
+ radiocarbodatin.com
5056
+ radiopaque7tend.info
5057
+ rafael2263biz.us
5058
+ rafflescity.biz
5059
+ rafflescity.net
5060
+ raga3schizo.com
5061
+ raginfo.com
5062
+ raildv.cn
5063
+ railnetline.com
5064
+ railod.cn
5065
+ railtr.cn
5066
+ rainbowboat1.com
5067
+ raiseyourpower.com
5068
+ rakurakuhp.biz
5069
+ rakuten-news.net
5070
+ rallidaelk.com
5071
+ rami8allelic.us
5072
+ ramisoft.biz
5073
+ rancuthas.com
5074
+ randomness3999pi11.us
5075
+ rangy9gaggle.com
5076
+ ranked3bandana.us
5077
+ rapedrug.biz
5078
+ rapidfazt.net
5079
+ rarfifunyar.com
5080
+ ratefree.net
5081
+ rates-r-low.net
5082
+ rates4unow.us
5083
+ rateznow.com
5084
+ ratezruz.com
5085
+ ravishfaknc.com
5086
+ rayotechs.com
5087
+ rc-cars-boats2003.com
5088
+ rdc4.com
5089
+ re-e-finance.com
5090
+ re-finance-forever.com
5091
+ re-finance-forever.info
5092
+ re-finance-today.com
5093
+ reachsoftware.com
5094
+ reachtheperfectreplica.com
5095
+ readingpower.com.sg
5096
+ readwith5.com
5097
+ readybite.info
5098
+ readywhenyouwantto.com
5099
+ readyxll.com
5100
+ reaffirm4los.com
5101
+ real-cat.com
5102
+ realeasymeds.com
5103
+ realeasyrx.net
5104
+ realexsoft.biz
5105
+ realfastest.com
5106
+ realfuelsnow.com
5107
+ realgaspower.com
5108
+ realherbal333.com
5109
+ realityofdating.com
5110
+ realndreal9.com
5111
+ realnetvalue.com
5112
+ realrxonline.com
5113
+ realsavegood.com
5114
+ realspyerase.biz
5115
+ realsun855meds.biz
5116
+ realtarget102drugs.biz
5117
+ realtimedorkus.com
5118
+ reascends.net
5119
+ reassess837rx.us
5120
+ reattain.com
5121
+ rebornfgief.com
5122
+ receitasepetiscos.info
5123
+ recently7568pinn.com
5124
+ recherche.fr
5125
+ recruitu.to
5126
+ redblueyoudo.com
5127
+ reddearest.com
5128
+ redgrand.com
5129
+ redi9meds.net
5130
+ rednest.org
5131
+ redoffers.com
5132
+ redrawing5984biz.us
5133
+ reductionsorspending.com
5134
+ reebok.com
5135
+ reenfgdkl.com
5136
+ ref-mrt-now.net
5137
+ ref-mrt-ok.com
5138
+ ref-mtg-now.net
5139
+ referral9466pill.us
5140
+ refi-4-wealth.com
5141
+ refi-biz.com
5142
+ refi-gazette.com
5143
+ refi-net.com
5144
+ refi-talk.com
5145
+ refi-web.com
5146
+ refi-with-us.com
5147
+ refi11.info
5148
+ reficom.biz
5149
+ refifast.biz
5150
+ refiinternet.com
5151
+ refin-xnd.com
5152
+ refinance-line.net
5153
+ refinanceangels.com
5154
+ refinancefrom.com
5155
+ refinhomeloan.com
5156
+ refitalk.com
5157
+ reftosavecash.com
5158
+ refundz.biz
5159
+ regcmp.com
5160
+ reginter.com
5161
+ registerunde.com
5162
+ reglergm.com
5163
+ rehearsechagrin.com
5164
+ rehire.net
5165
+ rekz.com
5166
+ relaxex.biz
5167
+ releasetheirnames.com
5168
+ reliablefreehost.com
5169
+ reliablepond1.com
5170
+ reliahost.org
5171
+ reloadedenergy.com
5172
+ remake9252tabs.us
5173
+ remarkablewatch.com
5174
+ remeasures.net
5175
+ remedyroom.org
5176
+ rememebrthen.net
5177
+ remglo.com
5178
+ removes-here.com.ar
5179
+ removethisemail.com
5180
+ ren3udx.com
5181
+ renask.com
5182
+ repeatingturnover.com
5183
+ repl.org
5184
+ replicacollection.info
5185
+ replicagarden.info
5186
+ replicamall.info
5187
+ replicas4me.com
5188
+ replicasforu.com
5189
+ replicasinternational.com
5190
+ replicawithcharmnow04.com
5191
+ replicawithcharmnow08.com
5192
+ replicawithcharmnow09.com
5193
+ replicazip.info
5194
+ replywill.com
5195
+ reportedly5882dryg.com
5196
+ representsrant.com
5197
+ reproofs.com
5198
+ reqestingafre.com
5199
+ resdet.com
5200
+ research-project.org
5201
+ reserveadot.com
5202
+ reseteffects.net
5203
+ resfn.com
5204
+ reshhl.com
5205
+ resistinganoffice.com
5206
+ respond693biz.com
5207
+ responewatch.com
5208
+ ressluncheon.com
5209
+ returned.biz
5210
+ revenging.net
5211
+ reverendsoda.info
5212
+ revetments.net
5213
+ revidly.info
5214
+ revivifying.biz
5215
+ revolithlas.com
5216
+ rewardingforever.com
5217
+ rewardinginstance.com
5218
+ rewardsrx.com
5219
+ rf6.net
5220
+ rfhaje.biz
5221
+ rfxoyi33.com
5222
+ rgeg546.com
5223
+ rgosweb.com
5224
+ rhetdghjr.net
5225
+ rhodium4laddic.info
5226
+ rhubarb454rneds.us
5227
+ ricardano.com
5228
+ richesadvisor.com
5229
+ richmond8106dryg.com
5230
+ rightdecision.info
5231
+ rightsy.com
5232
+ rindlefgbna.org
5233
+ ringagain.com
5234
+ ringlet6664biz.us
5235
+ ringofbeauty.com
5236
+ riot3banistors.com
5237
+ ripropretal.com
5238
+ risv.info
5239
+ riterates.net
5240
+ riverrockmembers.com
5241
+ rizzlockss.com
5242
+ rlox.com
5243
+ rm05.net
5244
+ roard.info
5245
+ roared.net
5246
+ robertgraham.com
5247
+ robmar.info
5248
+ robust6332dryg.biz
5249
+ rockandrolaids.com
5250
+ roieri.com
5251
+ roiex.com
5252
+ rolexeverywhere.info
5253
+ rolexnmore.info
5254
+ rolexplace.com
5255
+ romna.com
5256
+ roninnz.com
5257
+ roommnsn.com
5258
+ roscowholesaledist.info
5259
+ roseegg.info
5260
+ rosessweetie.com
5261
+ rosetlimo.com
5262
+ rosserniikl.com
5263
+ rostov1offered.com
5264
+ roving.com
5265
+ roxlab.com
5266
+ royalmeds.info
5267
+ royalproductguest.com
5268
+ royalwatchez.biz
5269
+ rozbfedsf.info
5270
+ rpcs2004.com
5271
+ rpmdacd.com
5272
+ rqgyy.com
5273
+ rqvq.com
5274
+ rrrfff.com
5275
+ rsbnk.com
5276
+ rsiultrsdf.info
5277
+ rtnnet.com
5278
+ rtoceunc.info
5279
+ rtprbn.com
5280
+ rtver.com
5281
+ rtvers.com
5282
+ rubdfesff.info
5283
+ ruckus2908rneds.com
5284
+ rufszk.info
5285
+ ruidecle.info
5286
+ rumbumbale.com
5287
+ runfromadvice.biz
5288
+ runmen.info
5289
+ ruojrxor.com
5290
+ rushrate.com
5291
+ russet4takeover.info
5292
+ ruzbefdsd.info
5293
+ ruzbefdse.info
5294
+ rvynmn.info
5295
+ rx-4-less.biz
5296
+ rx-land.biz
5297
+ rx-land.com
5298
+ rx-luv.com
5299
+ rx-zone.com
5300
+ rx123discount.com
5301
+ rx2122.com
5302
+ rx44discount.com
5303
+ rx6.org
5304
+ rx95discount.com
5305
+ rxand-more.com
5306
+ rxbest.org
5307
+ rxcartonline.com
5308
+ rxchoice.org
5309
+ rxdiscountusa.biz
5310
+ rxgroup.info
5311
+ rximportmeds.net
5312
+ rxmarketplace.biz
5313
+ rxmedherbals.biz
5314
+ rxmedherbals.info
5315
+ rxmedicalonline.net
5316
+ rxmedszone.info
5317
+ rxonlinesale.com
5318
+ rxonlineshopping.info
5319
+ rxpharmagroup.com
5320
+ rxpillstogo.com
5321
+ rxplace.biz
5322
+ rxspecials.biz
5323
+ rxspecialsnow.com
5324
+ rxsupply.biz
5325
+ rxville.biz
5326
+ rxwholesale.info
5327
+ rxz123.com
5328
+ rynamutethin.com
5329
+ rz3e23fzf.com
5330
+ rzobeerrd.info
5331
+ s-e-x-club.com
5332
+ s0lidhealth.info
5333
+ s2khost.biz
5334
+ s3curesripts.com
5335
+ s6xydate.com
5336
+ s8ehwk274v.com
5337
+ saass21.com
5338
+ sable8898dryg.com
5339
+ sabulinemd.com
5340
+ sadjhsdb.com
5341
+ safetymeds.biz
5342
+ safetymoney.info
5343
+ safeway-meds.com
5344
+ safeway-pills.com
5345
+ sahhjgikd.com
5346
+ saidwaonl.com
5347
+ salacity9paperboard.com
5348
+ sale-togo.com
5349
+ salehouseoflove.com
5350
+ saleinlin3dd.com
5351
+ salepricedtoday.com
5352
+ sales-masters-ltd.biz
5353
+ salesjet.biz
5354
+ salesoquickandfresh.com
5355
+ salezsalessz.com
5356
+ saloan.com
5357
+ salver.info
5358
+ sam3243242c.com
5359
+ samaengineering.com.pk
5360
+ samanthahurler.com
5361
+ samplemyrx.com
5362
+ samplemyrx.net
5363
+ sand12s.com
5364
+ sanguozhi10.com
5365
+ sanitizethare.com
5366
+ santa2005.com
5367
+ santac1aus.com
5368
+ santasrates.com
5369
+ saopaulochurrascarias.info
5370
+ saopaulopizzaria.info
5371
+ saprophyte7168rneds.com
5372
+ sari2strict.info
5373
+ saserf.info
5374
+ sashebec.com
5375
+ sastyjtrfd.com
5376
+ satikc.com
5377
+ satisfyingforever.com
5378
+ satisfyingtime.com
5379
+ satrapy8385tads.com
5380
+ saucily1summation.com
5381
+ sauntering5306biz.biz
5382
+ sav1ngs.com
5383
+ savagequote.com
5384
+ save-somemoney.com
5385
+ save1.com
5386
+ save80percentonrx.com
5387
+ savecashtoday.net
5388
+ savedatcash.com
5389
+ savefastonmeds.com
5390
+ saveingrules.com
5391
+ savemorenow.biz
5392
+ savenowtoday.com
5393
+ saveonlineshopping.biz
5394
+ saver9straight.us
5395
+ saverpage.com
5396
+ savethelostchildren.com
5397
+ savethewholeset.com
5398
+ saveurcashola.com
5399
+ savev.com
5400
+ savexherbal.com
5401
+ savingforu.com
5402
+ savingsalerts.com
5403
+ savingsfunder.com
5404
+ savingsquares.com
5405
+ savingz.biz
5406
+ savonmortgages.com
5407
+ sawexcd.com
5408
+ sawfish6812dryg.com
5409
+ say-yes-to-rx.net
5410
+ saydk.com
5411
+ sbifn.com
5412
+ sbn6tragical.com
5413
+ scabpickingisfun.com
5414
+ scaled2ulsters.com
5415
+ scam2381nx.com
5416
+ scandale-estelle-mouzin.com
5417
+ scanty2toxicosis.info
5418
+ scarylongstaff.info
5419
+ scaryspecialist.com
5420
+ scavenges7ambidexter.com
5421
+ scenting.net
5422
+ scherzo5headlight.com
5423
+ schlepp5206biz.com
5424
+ schnazzyboot.com
5425
+ scientificallyconfirmed.com
5426
+ scissorweed.com
5427
+ scoretodown.com
5428
+ scout.org.tw
5429
+ scoutuniv.com
5430
+ scrambledlago.net
5431
+ scrapbook3383meds.us
5432
+ scretodaar.com
5433
+ scroungerbe.com
5434
+ scuberic.info
5435
+ sculptress6681tads.com
5436
+ scuxwg.info
5437
+ sdcode.com
5438
+ sdf21.biz
5439
+ sdfbnsdfkt.info
5440
+ sdfnbpzq.info
5441
+ sdghtw.biz
5442
+ sdh923.biz
5443
+ sdjfklfn4.com
5444
+ sdlkfjdlkjstower.com
5445
+ sdlkfjdlkjstown.com
5446
+ sdsinep.com
5447
+ sea8056medications.biz
5448
+ sealing4509rneds.com
5449
+ searchh4her.com
5450
+ searchrt.com
5451
+ seasplease.com
5452
+ seating4741pills.biz
5453
+ second-mort-gages.com
5454
+ secretandwinfo.com
5455
+ secretoflife.biz
5456
+ secretpharma.com
5457
+ secretpharma.net
5458
+ secretpharmacy.net
5459
+ secretsms.biz
5460
+ sectility8symposia.com
5461
+ sectionofour.com
5462
+ securdetausual.com
5463
+ securemedpills.com
5464
+ securepharmacy101.com
5465
+ secureserv1.com
5466
+ secways.com
5467
+ see4c.com
5468
+ seehether.com
5469
+ seek-her-him.com
5470
+ seekandeatpie.biz
5471
+ seekingz.com
5472
+ seemingly6527drygs.us
5473
+ seized3legend.com
5474
+ selecyourfile.com
5475
+ selenan.com
5476
+ selfpharms.com
5477
+ sell-funding.com
5478
+ sellinter.net
5479
+ selyn.com
5480
+ sempercras.net
5481
+ senegaspan.net
5482
+ sennas9bread.com
5483
+ sensibleinfosecrets.com
5484
+ sensualx.info
5485
+ sentthemeasure.com
5486
+ seo-action.com
5487
+ seo-profits.com
5488
+ seopouoy.com
5489
+ separate5678.biz
5490
+ serioussecretary.com
5491
+ sermeds.com
5492
+ serrated4arrogance.com
5493
+ servaw.com
5494
+ serverwithzero.com
5495
+ servetabs.com
5496
+ servicemarkstar.com
5497
+ servsite.us
5498
+ sesfocus.com
5499
+ setback9decked.info
5500
+ setegedge.info
5501
+ setitup.info
5502
+ setoff5summation.com
5503
+ seulcarv.info
5504
+ sevrre.co
5505
+ sex2go.com
5506
+ sexaffair.org
5507
+ sexyoptin.com
5508
+ sfeedbx.com
5509
+ sficog.com
5510
+ sftwre.biz
5511
+ sgplink.com
5512
+ shadescience.com
5513
+ shadowcrew.com
5514
+ shame5675.biz
5515
+ sharesoft.net
5516
+ sharif7046rx.us
5517
+ sharp-finance.info
5518
+ shaves4465drugs.biz
5519
+ shedoesitallnight.biz
5520
+ sheenier.net
5521
+ shesnotfatatall.com
5522
+ shesondvdnow.com
5523
+ shincink.com
5524
+ shiotechs.com
5525
+ shipfastzz.com
5526
+ shirr5545pill.biz
5527
+ shnoem.biz
5528
+ shop-reduction.com
5529
+ shop4direct.info
5530
+ shopin.to
5531
+ shopunlimited.biz
5532
+ shopworn7absurdly.com
5533
+ shrink.ws
5534
+ shrink8633pills.biz
5535
+ shuddered4plutocracy.us
5536
+ shwayorakoko.biz
5537
+ shyandnot.com
5538
+ shying1845biz.com
5539
+ shzze.com
5540
+ siamesefins.com.sg
5541
+ sibilation217pills.biz
5542
+ sigloan.com
5543
+ signupziq.net
5544
+ sil20221.com
5545
+ sillyhelen.com
5546
+ simian4offeree.us
5547
+ simple-finances.com
5548
+ simple-refi.net
5549
+ simpleachieverlooksitems.com
5550
+ simplecheaprx.com
5551
+ simplecheaprx.net
5552
+ simplenewwayout.biz
5553
+ simplerx.org
5554
+ simplified-loans.net
5555
+ simpliset.com
5556
+ simular8clerical.com
5557
+ sina.com
5558
+ sina.com.cn
5559
+ singaire.com
5560
+ singaporehomebasedbusiness.com
5561
+ sip2thickness.com
5562
+ siqop.com
5563
+ siratu.com
5564
+ sirkesa.info
5565
+ sister30.com
5566
+ sister31.com
5567
+ sisyphean9churl.com
5568
+ situationalert.info
5569
+ sizehelp.com
5570
+ sizeit1.com
5571
+ sjgdwuywu.info
5572
+ skajmedsakj.com
5573
+ skate6arched.com
5574
+ skeptical8accipitral.com
5575
+ sketcher8octave.com
5576
+ sketchpharmacy.info
5577
+ skills4744rneds.us
5578
+ skipgrand.info
5579
+ skycn.net
5580
+ skylender.com
5581
+ skysofta.cn
5582
+ slalom8platypus.info
5583
+ slanting2080biz.us
5584
+ slaphappy7346meds.us
5585
+ slashmonthlypayments.com
5586
+ slavishload.net
5587
+ slickred.com
5588
+ slimdoctor.ru
5589
+ slinendi.info
5590
+ slkjsen.info
5591
+ slkmesne.info
5592
+ slknseis.info
5593
+ slneidje.info
5594
+ slobbering.net
5595
+ slowpoke4reentry.com
5596
+ slyness6sugarcoat.com
5597
+ smallcapinvestors-newsletter.com
5598
+ smallrx.com
5599
+ smartchoices4u.com
5600
+ smartcontrol.biz
5601
+ smartdebt.net
5602
+ smarterchoice.biz
5603
+ smartinfosite.info
5604
+ smartprotection.net
5605
+ smartreplicas.info
5606
+ smash47759.biz
5607
+ smddsee.com
5608
+ smeary2abridged.com
5609
+ smilesoftprod.net
5610
+ smilingly.net
5611
+ sminet.com.my
5612
+ smmwatch.com
5613
+ smndrtew.com
5614
+ smokeethebear.com
5615
+ smoky6runic.com
5616
+ smuuchi.hk
5617
+ snapped4stockyard.com
5618
+ snappedandthen.com
5619
+ sndba.com
5620
+ sndwnz.biz
5621
+ sneihz.info
5622
+ sniefsj.info
5623
+ sniffled1alumnus.info
5624
+ snivels460biz.biz
5625
+ snorter.net
5626
+ snow2711biz.us
5627
+ snowfalls.net
5628
+ snuggles3dowry.com
5629
+ soap4796.biz
5630
+ sobering8214pirrs.com
5631
+ soccer3201pills.biz
5632
+ societies7375tads.us
5633
+ sodapimple.com
5634
+ soddenness.net
5635
+ sodisanet.org
5636
+ sofanin.info
5637
+ sofmom.info
5638
+ sofnino.info
5639
+ sofninw.info
5640
+ soft-disks.biz
5641
+ soft-paradise.com
5642
+ soft100world.com
5643
+ softavailable.com
5644
+ softcds.biz
5645
+ softdealership.com
5646
+ softdisks-ltd.com
5647
+ softflagman.biz
5648
+ softforyourbusiness.info
5649
+ softis.info
5650
+ softlegs.biz
5651
+ softli.com
5652
+ softly5called.com
5653
+ softmadness.com
5654
+ softoutletstore.biz
5655
+ softparadise.net
5656
+ softplacer.com
5657
+ softsmgger.info
5658
+ softurtle.com
5659
+ software-village.com
5660
+ softwaresavings2you.biz
5661
+ softwaresuite.net
5662
+ soggiest.com
5663
+ solaria8488nx.com
5664
+ soldmed.com
5665
+ solfine.net
5666
+ solicitor1deerfly.info
5667
+ solicsol8.com
5668
+ solidagothins.info
5669
+ solidercetion.info
5670
+ solllow.com
5671
+ solodrugs.com
5672
+ somearestrangeae.com
5673
+ someones.biz
5674
+ sonicatom.com
5675
+ soniferous8tram.com
5676
+ sore3mustily.com
5677
+ sortigi.com
5678
+ sothata.com
5679
+ sottedbbfhm.com
5680
+ soulfinder.info
5681
+ soullwantoretur.com
5682
+ source9patsies.com
5683
+ sourcesbest.net
5684
+ sourdough7558drygs.com
5685
+ southeasthosters.com
5686
+ sp66.com
5687
+ space4loan.biz
5688
+ spam-cash.com
5689
+ spam-cash.net
5690
+ spartacus5unites.com
5691
+ speakoutinternational.com
5692
+ special-selections.com
5693
+ special56.biz
5694
+ specialcartoon.com
5695
+ specialitemfeaturesurprise.com
5696
+ specialitystore.info
5697
+ spedwee.com
5698
+ speedvalue.net
5699
+ speedzie.com
5700
+ speshials.info
5701
+ sphinxsurreal.com
5702
+ spicybimbos.com
5703
+ spicyspinners.com
5704
+ spidery4421biz.com
5705
+ spinpage.com
5706
+ spinsaver.info
5707
+ spittoon2ashamedly.info
5708
+ split8straddler.com
5709
+ spliter.us
5710
+ splitwem.com
5711
+ spoelwrr.com
5712
+ spoiled5mekong.com
5713
+ spoon5656.biz
5714
+ spoonmagic.info
5715
+ sporeserver.com
5716
+ springmulch.com
5717
+ sprlng.net
5718
+ spyelimination.com
5719
+ spykiller-123.com
5720
+ spysniper.net
5721
+ spywar-101.com
5722
+ spywareindanger.com
5723
+ spywareontop.com
5724
+ spywareremove.info
5725
+ spywarnet.com
5726
+ squares9haywire.us
5727
+ squareskin.cn
5728
+ squirmed5boris.com
5729
+ srgop4.com
5730
+ srvllc.info
5731
+ ssaveeemmeeds.com
5732
+ ssdeca.com
5733
+ sssas2.com
5734
+ sssmama.com
5735
+ stagedcn.com
5736
+ stainbrookfinancial.com
5737
+ stalactite8217pirrs.com
5738
+ stamtrex.com
5739
+ stance4multichip.info
5740
+ stapeliasspray.com
5741
+ star-rx.net
5742
+ star1eads.us
5743
+ start-making-love.us
5744
+ start-over.info
5745
+ startpackin.com
5746
+ startquote.com
5747
+ startsaverx.com
5748
+ statcounter.com
5749
+ states-refinance.com
5750
+ statesmoneyz.com
5751
+ stayeofor.com
5752
+ steak1tailcoats.com
5753
+ stefegsge.info
5754
+ sterhefed.info
5755
+ sterlinglenders.com
5756
+ stesa.com.sg
5757
+ stetmlstet6.com
5758
+ stiffed5912tads.com
5759
+ stiles8440rneds.us
5760
+ stilled5soapsuds.com
5761
+ stillrecovering.com
5762
+ stilltheworldtome.net
5763
+ stimulus7045drugs.us
5764
+ stna.info
5765
+ stockreplica.com
5766
+ stolewater.info
5767
+ stony1etymology.info
5768
+ stopbills.info
5769
+ stopimp0tence.info
5770
+ storedcd.com
5771
+ storedk.com
5772
+ storegenius.com
5773
+ story3607pirrs.com
5774
+ stpt.com
5775
+ stra1n.com
5776
+ straightdot.com
5777
+ straighten8antelope.com
5778
+ strangecollective.info
5779
+ strangeparts.info
5780
+ stratatica.com
5781
+ stribontut.com
5782
+ strictlins.com
5783
+ stromss.com
5784
+ sttates.com
5785
+ stunt9046pi11s.us
5786
+ stuntscholar.com
5787
+ stuyasimn.com
5788
+ stybane.com
5789
+ stye3546drugs.us
5790
+ styledirt.com
5791
+ subbed4hook.com
5792
+ subcontrol7schism.info
5793
+ submityoursitetoday.biz
5794
+ suborning7098pills.us
5795
+ subpars8siltation.info
5796
+ substitute4perihelion.com
5797
+ subvalue.com
5798
+ success05.info
5799
+ succezz.biz
5800
+ succulents1devolution.com
5801
+ sucservice.com
5802
+ sueywh.com
5803
+ sujike.biz
5804
+ summer-soft.info
5805
+ summerhjnjf.com
5806
+ summerlongster.com
5807
+ summershapes.biz
5808
+ summit4716drygs.com
5809
+ summonthedemon.com
5810
+ sumrt.com
5811
+ sumwin.biz
5812
+ sun1statuss.info
5813
+ suncoastrewards.com
5814
+ sung2175pirrs.com
5815
+ sunnydaysbest.com
5816
+ supcrocs.us
5817
+ super-puper.info
5818
+ superbhititems.com
5819
+ superbreplicaz.com
5820
+ superchaprx.com
5821
+ superchapultram.com
5822
+ superchapviagra.com
5823
+ supercheapmeds.com
5824
+ superchoices.org
5825
+ supereasyrx.com
5826
+ supereasyrx.net
5827
+ superelitewave.com
5828
+ superfast1.info
5829
+ superfrog.net
5830
+ supergoodfood.com
5831
+ superherbalonline.biz
5832
+ superherbalonline.com
5833
+ superhotchicksbro.biz
5834
+ superlaugh.com
5835
+ superlouditemsadvance.com
5836
+ supermed123.com
5837
+ supermortgagedeals.info
5838
+ superrefico.com
5839
+ supersize-it.info
5840
+ supersizeherbs.com
5841
+ supporteconte.com
5842
+ supposable.net
5843
+ suprapage.com
5844
+ suprememborne.com
5845
+ supremlogo.com
5846
+ surepass.com.sg
5847
+ surewinsoccer.net
5848
+ surplusage8150tads.com
5849
+ susanspice.com
5850
+ svviss.com
5851
+ swaged5905biz.com
5852
+ swapped3funereal.info
5853
+ swatchs.net
5854
+ sweated1427pi11.us
5855
+ sweetloanz.info
5856
+ sweetwebloans.info
5857
+ swelter1smirked.info
5858
+ swfr.biz
5859
+ swingersmatch.com
5860
+ swishzone.com
5861
+ swissreplicazrwonderful.net
5862
+ swissrolex4you.com
5863
+ swissrolexes4me.com
5864
+ swisstimewatch.net
5865
+ swissworldgift.com
5866
+ swissworlds.com
5867
+ swt12.com
5868
+ symbol1trustor.info
5869
+ synonymous6hoechst.com
5870
+ syphilitic1illustrate.us
5871
+ systemment.com
5872
+ t0p9.com
5873
+ t0w.net
5874
+ t0wers.com
5875
+ t0wers.net
5876
+ t1me2sav3.com
5877
+ t6i.net
5878
+ t7mort.net
5879
+ tabboulehs.net
5880
+ tablal.info
5881
+ tablbabl.info
5882
+ tablbabla.info
5883
+ tableforty.com
5884
+ tablil.info
5885
+ tablpep.info
5886
+ tablptp.info
5887
+ tablpwp.info
5888
+ tablwl.info
5889
+ tabsyouneed.info
5890
+ tachea.com
5891
+ tachometer4191rx.us
5892
+ taikang.com
5893
+ tailor8mortgagor.info
5894
+ take-and-enjoy.info
5895
+ takeofflist.com
5896
+ takerolessuc.com
5897
+ takeyourhealth.info
5898
+ takipark.com
5899
+ takotplus.info
5900
+ tallish.net
5901
+ talonet.it
5902
+ tanachklgmj.com
5903
+ target.sg
5904
+ target2025pills.biz
5905
+ tarnug.com
5906
+ tasty-panties.com
5907
+ tattooist2availably.info
5908
+ tatziz.info
5909
+ tatzoz.info
5910
+ tatzpz.info
5911
+ tatzqz.info
5912
+ tatzrz.info
5913
+ tatzwz.info
5914
+ tatzyz.info
5915
+ taumldhfj.com
5916
+ tbuh.com
5917
+ tealpage.com
5918
+ teamworkistheway.com
5919
+ tebusbone.com
5920
+ techdms.com
5921
+ technoprise.net
5922
+ tecmnsd.info
5923
+ teenfuk.com
5924
+ teezrus.com
5925
+ tehexpertz.com
5926
+ tehexpertz.net
5927
+ telcall.com.au
5928
+ telespoon.info
5929
+ telltellrx.com
5930
+ telluristmj.net
5931
+ temazepam2834pill.us
5932
+ temline.info
5933
+ templatezone.com
5934
+ tenement9850nx.com
5935
+ tensecondsasyou.com
5936
+ teopouoy.com
5937
+ terima.net
5938
+ termquotes4you23.com
5939
+ terra.es
5940
+ tfeedbx.com
5941
+ tgoiwe.com
5942
+ th4uisl.com
5943
+ thankyoufor.info
5944
+ thankyourx.com
5945
+ thatsfineforme.com
5946
+ thatsu77.info
5947
+ thdcn6.info
5948
+ the-airline-place.com
5949
+ the-lowest-rates.net
5950
+ the-rxsite.com
5951
+ the1swisswatch.com
5952
+ theanswerto.com
5953
+ thebestmail.org
5954
+ thebestmail.us
5955
+ thebestmortage.com
5956
+ thebestmortage.net
5957
+ thebestofthebest.info
5958
+ thebettermail.com
5959
+ thebiggestand.com
5960
+ thebluebubble.com
5961
+ thebnc.biz
5962
+ thebombdeals.com
5963
+ thebridgenut.com
5964
+ thebusbone.com
5965
+ thedomainyou.com
5966
+ thefatlossfirm.com
5967
+ thefilecompany.com
5968
+ thegloveworks.info
5969
+ thegoodstuffinc.info
5970
+ thehomeofrx.net
5971
+ theirnamesuntil.com
5972
+ thekkktookmydomainway.com
5973
+ themaildept.com
5974
+ themind758tabs.biz
5975
+ themoon963drugs.biz
5976
+ theocracy6plugged.com
5977
+ theonlyrealstuff.com
5978
+ theorder.biz
5979
+ theperfectloan4u.com
5980
+ thepillsfarm.com
5981
+ thepillsforall.com
5982
+ thepillsnational.com
5983
+ thepillssite.com
5984
+ thepillsspot.com
5985
+ thepillssupply.com
5986
+ thepillswebsite.com
5987
+ thepiqsite.com
5988
+ theproxyconnection.com
5989
+ therunesr.com
5990
+ therustam937rx.biz
5991
+ therxshop.net
5992
+ theseto.com
5993
+ thesitefordating.com
5994
+ thestuffonlines.com
5995
+ thetargeted738meds.biz
5996
+ thethingsonlines.com
5997
+ thetrafficbooster.com
5998
+ thewatchezoncanalstreet.com
5999
+ thewiltonshack.com
6000
+ theysinkinward.com
6001
+ thingswevalue.net
6002
+ this-is-myrx.com
6003
+ this-is-myrx.us
6004
+ thishelpedmanypeople.com
6005
+ thistabs.com
6006
+ thistimbube.com
6007
+ thiswee0nlyz.com
6008
+ thoughteach.cn
6009
+ thregistratioothe.com
6010
+ thrush8spoor.info
6011
+ thumper4635pi11s.us
6012
+ thuroebian.info
6013
+ ti4.net
6014
+ tiered8070pi11.us
6015
+ tiethepen.com
6016
+ tifde.com
6017
+ tiffanycam.info
6018
+ tile9skyway.com
6019
+ timath.com
6020
+ timberland6abyssal.com
6021
+ time-2-refi.com
6022
+ time2savem3ds.com
6023
+ timehostingwives.biz
6024
+ timeminute.com
6025
+ timewillnotwaite.biz
6026
+ timezoneforpcs.com
6027
+ tina.biz
6028
+ tinaloverman.com
6029
+ tipej.com
6030
+ tipsy4485nx.com
6031
+ tit4velodrome.com
6032
+ tnashbsv.com
6033
+ tnmdkdda.biz
6034
+ toaster7461drygs.com
6035
+ tobeatdameat.com
6036
+ tobeornottobe2005.biz
6037
+ today-mrg-now.net
6038
+ todaysmagic.com
6039
+ todaysrxmeds.net
6040
+ toddler7dimwit.com
6041
+ toels.com
6042
+ toifn.com
6043
+ tollingtime.info
6044
+ tolr.com
6045
+ tom.com
6046
+ tonaringon.biz
6047
+ tonastumonatura.com
6048
+ tonightafter.com
6049
+ tonightspharma.com
6050
+ tony0989890.com
6051
+ toolto.com
6052
+ toomuchsnow.com
6053
+ tooshortz.us
6054
+ tootsie7742rneds.com
6055
+ top--sites.com
6056
+ top-ink-source.com
6057
+ top100.ro
6058
+ top10homejobs.net
6059
+ topcasinovegas.com
6060
+ topes5apparatus.us
6061
+ tophgh.com
6062
+ toplenders.biz
6063
+ toplenders.net
6064
+ topsites-us.com
6065
+ topsitez.us
6066
+ topwinsoft.com
6067
+ tordel.com
6068
+ torispeller.com
6069
+ torrence-family.com
6070
+ tosshersalad.net
6071
+ tostarplanni.com
6072
+ totallyherbal.biz
6073
+ totalplayers.biz
6074
+ towbgh.com
6075
+ toyzwireless.com
6076
+ tpbaj.com
6077
+ tr.cx
6078
+ tra1ns.com
6079
+ tracylarty.com
6080
+ tradeforaseven.com
6081
+ traditionalrx.com
6082
+ trafficmagnet.com
6083
+ trafficyoursite.com
6084
+ trakkerd.net
6085
+ trans-exec.biz
6086
+ transactiondepartment.com
6087
+ transferrx.net
6088
+ transfersp.com
6089
+ transient3126drygs.com
6090
+ traride.com
6091
+ trashed7739pinn.com
6092
+ traskifdxsd.us
6093
+ treasuresadvisor.com
6094
+ treasuresguide.com
6095
+ trendhost.org
6096
+ triethyl8lubricate.info
6097
+ triggerpinger.info
6098
+ trimbrick.info
6099
+ trnnet.com
6100
+ troubleismymiddlename.com
6101
+ tru-enlargement.com
6102
+ true-offers.com
6103
+ trustdoctors.com
6104
+ trustgoods.com
6105
+ trustit.info
6106
+ trustsave.com
6107
+ truthfu1ly.com
6108
+ try-logos-llc.com
6109
+ tryingtoshoveinto.com
6110
+ tryintoget.com
6111
+ trylogos-group.com
6112
+ trypharmacy.com
6113
+ tsar6havana.us
6114
+ tsunamix.info
6115
+ tt48.com
6116
+ ttebuysz.com
6117
+ tteepepharma.com
6118
+ ttlive.com
6119
+ ttuburq.com
6120
+ tubercular1adaptation.com
6121
+ tullam.info
6122
+ tunberanserfo.com
6123
+ tupit.info
6124
+ turbomailing.biz
6125
+ turbulence7slaveowner.info
6126
+ turnmnb.info
6127
+ turonresta.com
6128
+ tvenergy.biz
6129
+ tvenergy.info
6130
+ tvepnedi.info
6131
+ two-best.net
6132
+ twobusbone.com
6133
+ tyewqueop.info
6134
+ tzig.com
6135
+ ucanimprove.info
6136
+ ucanttouchfist.com
6137
+ ud7.net
6138
+ udgjdks.info
6139
+ udns73.com
6140
+ ufredbx.com
6141
+ ufrotechs.com
6142
+ uhnf2u322.com
6143
+ uhrmxxd.info
6144
+ uhviagra.info
6145
+ uic6188.com
6146
+ ujmort.com
6147
+ uki342.com
6148
+ ukpoint.biz
6149
+ ullifull8.com
6150
+ ultimatetimepiece4u.net
6151
+ ultimatum8exclusion.com
6152
+ ultimo.biz
6153
+ ultrameds4sale.com
6154
+ umbridol.com
6155
+ ummrx.com
6156
+ unary5290pirrs.com
6157
+ unawares6248pinn.com
6158
+ unaxfec.com
6159
+ uncanny9hark.com
6160
+ uncapping.net
6161
+ uncharredkk.com
6162
+ uncreate3jimmy.com
6163
+ uncrossed1430biz.com
6164
+ undarkenedic.com
6165
+ undefeated6archdeacon.info
6166
+ undefended7133pinn.com
6167
+ undermost5381rneds.com
6168
+ undunbed.com
6169
+ uneaten.net
6170
+ unformzw.com
6171
+ unglazed.net
6172
+ unglue6cereal.com
6173
+ unguent9651drygs.com
6174
+ unharness8syndrome.com
6175
+ uniquamonthe.com
6176
+ unitrust3occult.info
6177
+ univcs.info
6178
+ universal9skied.com
6179
+ universityawards.biz
6180
+ univm.com
6181
+ unixusa.net
6182
+ unkindest.net
6183
+ unloaded2katzner.com
6184
+ unloose3abstemious.com
6185
+ unpardoned.net
6186
+ unpureacnba.com
6187
+ unseat6waxworks.com
6188
+ unsolder.com
6189
+ unsubscribesg.com
6190
+ untalented9987drugs.us
6191
+ untowncjaad.com
6192
+ untyred.net
6193
+ unusual-ideas.com
6194
+ unv.net
6195
+ unvl.com
6196
+ unwarily.com
6197
+ uol.com.br
6198
+ uosb.com
6199
+ up.com.sg
6200
+ upgradingyourbrowser.com
6201
+ upower.info
6202
+ upsize-me.biz
6203
+ upstem.com
6204
+ uptightbiz.info
6205
+ uptoaoneyear.com
6206
+ uralogastioano.com
6207
+ urchoise.com
6208
+ ursajemima.info
6209
+ us-monitor-sales.com
6210
+ usa-home-loans.net
6211
+ usa-medz.com
6212
+ usa-mortgage-loans.net
6213
+ usa-sells.com
6214
+ usaelender.com
6215
+ usagmail.com
6216
+ usagreetings.com
6217
+ usaloanworks.biz
6218
+ usalw.com
6219
+ usapayboy.com
6220
+ usaviti.com
6221
+ uscg5turtleneck.com
6222
+ usecheap.info
6223
+ useful-rxinfo.net
6224
+ usmortgagebanc.com
6225
+ usonyx.net
6226
+ utahsoft.info
6227
+ utopia6phallus.com
6228
+ uysata.com
6229
+ uytrets.net
6230
+ v-lineinc.com
6231
+ v01c3s.com
6232
+ v56yu8rt.ph
6233
+ vacationpower.com
6234
+ vacnbiz.com
6235
+ vaguer.com
6236
+ vaiium.com
6237
+ val10.com
6238
+ valentinesblinddate.com
6239
+ validpage.com
6240
+ valleysite.com
6241
+ value-loans.com
6242
+ valuedclientmtg.com
6243
+ valuedsoft.biz
6244
+ valuen.com
6245
+ valueplusof.com
6246
+ valueprogram.net
6247
+ vamoslamoveon.us
6248
+ vanai.com
6249
+ vano-soft.biz
6250
+ vantopil.com
6251
+ variousgreatproducts.com
6252
+ vcay.org
6253
+ vdif.com
6254
+ vdrugs.info
6255
+ vdrugz.com
6256
+ vdrugz.net
6257
+ velfr.com
6258
+ vencia-inc.com
6259
+ venihost.biz
6260
+ vereylongviagra.info
6261
+ veriturlis.com
6262
+ versiu.com
6263
+ verybestmeds.com
6264
+ veryfastviagra.info
6265
+ verylovepharma.info
6266
+ verylovpriceviagra.info
6267
+ verylovtablviagra.info
6268
+ vexedel.com
6269
+ vfmr.info
6270
+ vfna3d.biz
6271
+ vgr100.com
6272
+ vhighereducation.com
6273
+ via-host.org
6274
+ viaga3domainsmarketing.biz
6275
+ viagensnobrasil.info
6276
+ viagramedsforsale.com
6277
+ viagravicodin.info
6278
+ viags.com
6279
+ vic0din.com
6280
+ vicsave.com
6281
+ victoriassecret.com
6282
+ victorymeds.com
6283
+ viewhelp.info
6284
+ viewhostdeals.com
6285
+ vigra4.info
6286
+ vinetka.info
6287
+ violetvillan.com
6288
+ vip-casino-start.org
6289
+ vip-casino777.org
6290
+ vip5pate.com
6291
+ vippills.net
6292
+ viproyalcasino.net
6293
+ virad1.cn
6294
+ virgvia.biz
6295
+ virscan7phrenic.info
6296
+ virtual-apple.com
6297
+ virtual-pc.org
6298
+ virtualdegreeonline.com
6299
+ virtualgetmed.com
6300
+ virtualstoragecenter.com
6301
+ visagraph.net
6302
+ visionsave.com
6303
+ visionsavings.com
6304
+ visita-usa.com
6305
+ vit-co.com
6306
+ vitalbodyneeds.biz
6307
+ vixv.com
6308
+ vlew.com
6309
+ vm20p5r.com
6310
+ vnhts.com
6311
+ vnjicd.info
6312
+ vodoro.info
6313
+ voippricer.com
6314
+ vombufie.info
6315
+ voodoo5623rx.biz
6316
+ votreresponse.info
6317
+ vqjlvl.com
6318
+ vreset9862meds.biz
6319
+ vsezaebis.info
6320
+ vtargeted307pills.biz
6321
+ vueotechs.com
6322
+ vulcanise.net
6323
+ vw56tge.biz
6324
+ vwater754rx.biz
6325
+ vz6.net
6326
+ vzempizdets.biz
6327
+ w0wo.com
6328
+ w9gjns.com
6329
+ wa18tch3znowbymail.com
6330
+ wa2tch3znowbymail.com
6331
+ wafddiwafd8.com
6332
+ waggish172dryg.com
6333
+ wal1trnsb0der.com
6334
+ wall3tgr0wth.com
6335
+ walleye2556dryg.us
6336
+ walltransb0rder.com
6337
+ walppref.com
6338
+ wandweb.com
6339
+ wannasaven0w.com
6340
+ wannavisit.com
6341
+ wantahomeloan.com
6342
+ wantingyounow.com
6343
+ wapquote.com
6344
+ warehousefull.com
6345
+ warehousemed5.com
6346
+ warehousemedical.com
6347
+ warehousemedsdirect.net
6348
+ warehousewebelong.com
6349
+ warehousewebelong.net
6350
+ wasabi-online.com
6351
+ watc12h3znowbymail.com
6352
+ watc16h3znowbymail.com
6353
+ watch-cat.com
6354
+ watch-crystal.com
6355
+ watch-the-time.com
6356
+ watch3zno3wbymail.com
6357
+ watches-paradise.com
6358
+ watchesbazaar.com
6359
+ watchesreadynow.com
6360
+ watchesrus4u.net
6361
+ watcheswes.com
6362
+ watchge.com
6363
+ watchingtvwithmycat.com
6364
+ watchsound.com
6365
+ watchtips.info
6366
+ waterside9155dryg.us
6367
+ wauy.com
6368
+ wayaround.info
6369
+ wayhere.com
6370
+ waytogo4u.biz
6371
+ wcndurx.info
6372
+ wdre24-454.com
6373
+ we-gen-it2.com
6374
+ we49fm.com
6375
+ weallneedmoredomains.com
6376
+ weaponry8sachets.com
6377
+ web-ip.de
6378
+ web-lender.com
6379
+ web-resource-info.info
6380
+ web4deals.com
6381
+ webcamadventures.com
6382
+ webcamsdate.com
6383
+ webdealz2003.biz
6384
+ webdocc.biz
6385
+ webleads.info
6386
+ webmarketflash.com
6387
+ webmeds36.info
6388
+ webpronews.com
6389
+ webqualityincrease.com
6390
+ webrefi.info
6391
+ webrefi.net
6392
+ websalesjet.net
6393
+ website-needs-traffic.com
6394
+ website.ws
6395
+ websitetheyourshop-help.com
6396
+ webster3456biz.biz
6397
+ webvisitsnow.com
6398
+ wecanhelpnp.biz
6399
+ wedighap.com
6400
+ wednesdays7caries.info
6401
+ weeaftebein.com
6402
+ weeeei.biz
6403
+ weekperiodther.com
6404
+ wefinac.net
6405
+ wehaveitgreat.info
6406
+ wehrmacht3905drygs.com
6407
+ weighedinatmore.com
6408
+ weightlossbusiness.net
6409
+ weightlossfirm.com
6410
+ weirsoneightdams.com
6411
+ weixu-now.net
6412
+ wellahost.com
6413
+ wellness-i.com
6414
+ wellnessdiscountcard.info
6415
+ wemakemtg2.com
6416
+ wenmfdu.info
6417
+ weofferaselection.com
6418
+ weorie.com
6419
+ wepromisebeauty.com
6420
+ werhlksdhb.info
6421
+ weroig.com
6422
+ werrill.com
6423
+ werthebestrx.us
6424
+ weruxvnnww.info
6425
+ werwer4723.com
6426
+ wesh1pfa8t.com
6427
+ westpoll.info
6428
+ wetbudapest.com
6429
+ wetdear.com
6430
+ wetdearest.com
6431
+ wetparts.com
6432
+ wetrack.it
6433
+ wetwathcg.com
6434
+ wewatchd.com
6435
+ wewervnxbf.info
6436
+ wexvd.info
6437
+ wfeedbx.com
6438
+ whatamiracle.biz
6439
+ whatarate.us
6440
+ whatatosser.com
6441
+ whathelpulw.com
6442
+ wheelwalls.com
6443
+ whentheyopened.com
6444
+ wheresmyteacer.net
6445
+ whicarvailab.com
6446
+ whirlwinddate.com
6447
+ who-remembers-me.com
6448
+ whoarates.com
6449
+ wholecoolgirls.info
6450
+ wholegrew.cn
6451
+ wholelotofrx.net
6452
+ wholesalerex.com
6453
+ whybreathoxygen.com
6454
+ wiakoskdd.info
6455
+ wickedground.com
6456
+ widanguris.com
6457
+ wieg.biz
6458
+ wife-play.com
6459
+ wifecheaters.info
6460
+ wifejoker.com
6461
+ wiffledom.com
6462
+ wigwife.com
6463
+ wild-trialz.biz
6464
+ wildrefugein.com
6465
+ wildsumer.com
6466
+ willow5ferocious.com
6467
+ winasphost.net
6468
+ winbusbone.com
6469
+ wincdz.com
6470
+ windcaballo.net
6471
+ windowflower.com
6472
+ windowscasino.com
6473
+ windswept8920drygs.com
6474
+ winning7272tads.com
6475
+ winspr.biz
6476
+ winsubx-now.com
6477
+ wiredpublicdiscounts.biz
6478
+ wisefinance.info
6479
+ wiselender.net
6480
+ wiseschool.com
6481
+ wisesoft.info
6482
+ wisnjwis7.com
6483
+ wissengroup.com
6484
+ witha11.com
6485
+ withouttheseoferz.com
6486
+ withpoem.cn
6487
+ withrt.com
6488
+ witpoli.com
6489
+ wiveswhocheat69.biz
6490
+ wizsystems.com
6491
+ wjkwwi.info
6492
+ wjmdnfm.info
6493
+ wlue.com
6494
+ wmsgroup.net
6495
+ wneiis-planet.info
6496
+ wneiis-plus.info
6497
+ woekg.info
6498
+ womenhavebeen.com
6499
+ womenlovebest.com
6500
+ womenz.biz
6501
+ wonderdrug.ws
6502
+ wonderfulreplicas4u.com
6503
+ wondermed.info
6504
+ wonderpack.info
6505
+ wonderstuff.biz
6506
+ woodnote2surfboat.com
6507
+ woodwheel.info
6508
+ woomen.biz
6509
+ woosmen.info
6510
+ wopolove.com
6511
+ wopoloveo.com
6512
+ wopoloveok.com
6513
+ workandsleep.com
6514
+ workathomeok.com
6515
+ workover.net
6516
+ workxz.com
6517
+ world-of-meds.com
6518
+ worldcardonline.info
6519
+ worldmeds4you.com
6520
+ worldrxdirect.biz
6521
+ worldrxhq.com
6522
+ worldtrustrefi.com
6523
+ worlduniversityonline.com
6524
+ worldwidemedstoday.com
6525
+ worlisnoenoug.com
6526
+ worryingly.net
6527
+ woshoaui.com
6528
+ wouldyoupleaseprep.com
6529
+ wow-watches.us
6530
+ wowhealth.info
6531
+ wowoffer.com
6532
+ wowpillzale.com
6533
+ wowrates.com
6534
+ wowrx.biz
6535
+ wpeorupw.us
6536
+ wpoenmd.com
6537
+ wringman.com
6538
+ wsmeds.com
6539
+ wsnmephamrd.com
6540
+ wst123.com
6541
+ wtljnb.com
6542
+ wuchf5fo.info
6543
+ wumort.net
6544
+ wuniv.com
6545
+ wuniv.net
6546
+ wv8.net
6547
+ wwmeds.com
6548
+ wwmeds.net
6549
+ wwwgethits.com
6550
+ wwwvaluedclientmtg.com
6551
+ x-forms.net
6552
+ x67fr22v.ph
6553
+ xanaz.net
6554
+ xanex.org
6555
+ xans.net
6556
+ xantz.com
6557
+ xbvbaar.net
6558
+ xcce.com
6559
+ xcelentbio.us
6560
+ xcelwonder.us
6561
+ xciconsulting.com
6562
+ xedffrr.com
6563
+ xer.com.au
6564
+ xftp.net
6565
+ xgremlin.com
6566
+ xhjwien.info
6567
+ xiagra.net
6568
+ ximportmeds.net
6569
+ xinternetstore.com
6570
+ xlkifge.com
6571
+ xmaad.com
6572
+ xmasdeal.info
6573
+ xmasdownloadnetwork.com
6574
+ xmaslowrate.com
6575
+ xmasrefinance.com
6576
+ xmassavings.com
6577
+ xmastimerates.com
6578
+ xmr3.com
6579
+ xnsidh4h.info
6580
+ xnue.biz
6581
+ xofferz.com
6582
+ xognei.com
6583
+ xoware.com
6584
+ xpays.com
6585
+ xpoem.info
6586
+ xpojga.com
6587
+ xpsoftsell.biz
6588
+ xsalez.org
6589
+ xseason.biz
6590
+ xstore.biz
6591
+ xtrameg.com
6592
+ xtreemteeming.com
6593
+ xtremebikebabes.com
6594
+ xtst.com
6595
+ xumcejc.com
6596
+ xvxxdatwers.info
6597
+ xx-powo.com
6598
+ xxdksq.com
6599
+ xxdksq.net
6600
+ xxxdate.com
6601
+ xxxlargepenis.net
6602
+ xxxmeds.info
6603
+ xxxteenzoo.com
6604
+ xxxxstore.com
6605
+ y-2-m.com
6606
+ y-mrg.net
6607
+ y-mrt.com
6608
+ y3ss1r.com
6609
+ y73.net
6610
+ yaadig.com
6611
+ yahoohut.com
6612
+ yahoosostore.com
6613
+ yahoososupersite.com
6614
+ yahoosotime.com
6615
+ yapped2284pills.us
6616
+ yawps440pinn.com
6617
+ yayshop.com
6618
+ ycxzvbsdds.us
6619
+ yellfore.com
6620
+ yellowcasefile.com
6621
+ yellowrate.com
6622
+ yelpp.biz
6623
+ yes03284.com
6624
+ yes2shipz.com
6625
+ yesmort.net
6626
+ yf4.net
6627
+ yfoedbx.com
6628
+ ymha1773drygs.com
6629
+ ynmort.net
6630
+ ynotmyrxworld.com
6631
+ ynotsavem0re.com
6632
+ yo6.net
6633
+ yomaoem.net
6634
+ yomoi.com
6635
+ yorhere2savez.com
6636
+ yosofts.info
6637
+ youarehealthy.info
6638
+ youaretaking.com
6639
+ youfoundidealsolution.com
6640
+ youheynow.info
6641
+ youkostylaya.com
6642
+ youlikeviagra.info
6643
+ youngfreespirits.com
6644
+ youngtallitemss.com
6645
+ your-financial.com
6646
+ your-home-loan.net
6647
+ your-mort-gages.com
6648
+ your-mort.com
6649
+ your-re-finance.com
6650
+ your-refi.com
6651
+ your-value-loan.com
6652
+ yourbestmeds.info
6653
+ yourbestrxplace.com
6654
+ yourbignight.com
6655
+ yourbollnas.info
6656
+ yourcasinobiz.com
6657
+ yourchanceathome.net
6658
+ yourcheap-rx.com
6659
+ yourdoctor.biz
6660
+ youreasyloans.net
6661
+ youreasymeds.com
6662
+ youreasymeds.net
6663
+ yourfitnessonline.com
6664
+ yourhealthmatters-now.com
6665
+ yourhostingaccount.com
6666
+ yourloanz.com
6667
+ yourmeds.info
6668
+ yourmembersdirectory.com
6669
+ yourmort.com
6670
+ yourname.com
6671
+ yourowndoctor.info
6672
+ yourowngaming.net
6673
+ yourownmeds.info
6674
+ yourpills4me.com
6675
+ yourpillsusa.com
6676
+ yourpils24.info
6677
+ yourrate.net
6678
+ yourscinedesign.com
6679
+ yourstuffabsolute.com
6680
+ yourstuffcentral.com
6681
+ yourstuffforme.com
6682
+ yourstuffforus.com
6683
+ yourstuffsupply.com
6684
+ yoursunlightzone.info
6685
+ yourtabl.info
6686
+ yourtablet.info
6687
+ yourthings2004.com
6688
+ yourthings4us.com
6689
+ yourthingslive.com
6690
+ yourthingsplace.com
6691
+ yourthingssoltuion.com
6692
+ youthemans.com
6693
+ youweretiredi.com
6694
+ youyouhey.info
6695
+ ypaym0re1z1.com
6696
+ ypx132.com
6697
+ ypypgroupy.com
6698
+ yrme33.com
6699
+ yrt009il.com
6700
+ yuiiooiutr.com
6701
+ yuiuku.info
6702
+ yunkgbcd.com
6703
+ yunoz.biz
6704
+ yuomnad.com
6705
+ yupnamethisnow.com
6706
+ yurgag.com
6707
+ yuritemple.net
6708
+ yuyumant.com
6709
+ zablen.com
6710
+ zainetsell.com
6711
+ zaliam.com
6712
+ zap-internet.com
6713
+ zapbook.info
6714
+ zaphomeloans.com
6715
+ zarf1antipodean.us
6716
+ zarinahsports.com
6717
+ zazxex.info
6718
+ zazxox.info
6719
+ zazxpx.info
6720
+ zazxtx.info
6721
+ zbestantid0te.com
6722
+ zbgadjdf.info
6723
+ zebalx.com
6724
+ zersurf.com
6725
+ zfeedbx.com
6726
+ ziagra.net
6727
+ zigzagging.net
6728
+ zinkuq.com
6729
+ ziuyt.info
6730
+ zloanz.info
6731
+ zndrz.com
6732
+ zockkfosa.com
6733
+ zoeyhasafever.com
6734
+ zolotko.info
6735
+ zoobrandsour.com
6736
+ zoodnights.com
6737
+ zoomwatches.info
6738
+ zoophilelinks.net
6739
+ zooumbrela.info
6740
+ zoozits.com
6741
+ zowk.com
6742
+ zpromeds.biz
6743
+ zpromeds.info
6744
+ zrwkd.com
6745
+ ztcash.com
6746
+ zuodalu.com
6747
+ zuperone.info
6748
+ zuvvka.com
6749
+ zwallet.com
6750
+ zxcvbdf.com
img/action_refresh_blue.gif ADDED
Binary file
img/action_stop.gif ADDED
Binary file
img/bg_widget.png ADDED
Binary file
img/bg_widgetG.png ADDED
Binary file
img/bg_widgetY.png ADDED
Binary file
img/bullet_star.png ADDED
Binary file
img/chart_add.png ADDED
Binary file
img/chart_delete.png ADDED
Binary file
img/cross.png ADDED
Binary file
img/database_table.png ADDED
Binary file
img/error_add.png ADDED
Binary file
img/error_delete.png ADDED
Binary file
img/flags/ad.png ADDED
Binary file
img/flags/ae.png ADDED
Binary file
img/flags/af.png ADDED
Binary file
img/flags/ag.png ADDED
Binary file
img/flags/ai.png ADDED
Binary file
img/flags/al.png ADDED
Binary file
img/flags/am.png ADDED
Binary file
img/flags/an.png ADDED
Binary file
img/flags/ao.png ADDED
Binary file
img/flags/ar.png ADDED
Binary file
img/flags/as.png ADDED
Binary file
img/flags/at.png ADDED
Binary file
img/flags/au.png ADDED
Binary file
img/flags/aw.png ADDED
Binary file
img/flags/ax.png ADDED
Binary file
img/flags/az.png ADDED
Binary file
img/flags/ba.png ADDED
Binary file
img/flags/bb.png ADDED
Binary file
img/flags/bd.png ADDED
Binary file
img/flags/be.png ADDED
Binary file
img/flags/bf.png ADDED
Binary file
img/flags/bg.png ADDED
Binary file
img/flags/bh.png ADDED
Binary file
img/flags/bi.png ADDED
Binary file
img/flags/bj.png ADDED
Binary file
img/flags/bm.png ADDED
Binary file
img/flags/bn.png ADDED
Binary file
img/flags/bo.png ADDED
Binary file
img/flags/br.png ADDED
Binary file
img/flags/bs.png ADDED
Binary file
img/flags/bt.png ADDED
Binary file
img/flags/bv.png ADDED
Binary file
img/flags/bw.png ADDED
Binary file
img/flags/by.png ADDED
Binary file
img/flags/bz.png ADDED
Binary file
img/flags/ca.png ADDED
Binary file
img/flags/catalonia.png ADDED
Binary file
img/flags/cc.png ADDED
Binary file
img/flags/cd.png ADDED
Binary file
img/flags/cf.png ADDED
Binary file
img/flags/cg.png ADDED
Binary file
img/flags/ch.png ADDED
Binary file
img/flags/ci.png ADDED
Binary file
img/flags/ck.png ADDED
Binary file
img/flags/cl.png ADDED
Binary file
img/flags/cm.png ADDED
Binary file
img/flags/cn.png ADDED
Binary file
img/flags/co.png ADDED
Binary file
img/flags/cr.png ADDED
Binary file
img/flags/cs.png ADDED
Binary file
img/flags/cu.png ADDED
Binary file
img/flags/cv.png ADDED
Binary file
img/flags/cx.png ADDED
Binary file
img/flags/cy.png ADDED
Binary file
img/flags/cz.png ADDED
Binary file
img/flags/de.png ADDED
Binary file
img/flags/dj.png ADDED
Binary file
img/flags/dk.png ADDED
Binary file
img/flags/dm.png ADDED
Binary file
img/flags/do.png ADDED
Binary file
img/flags/dz.png ADDED
Binary file
img/flags/ec.png ADDED
Binary file
img/flags/ee.png ADDED
Binary file
img/flags/eg.png ADDED
Binary file
img/flags/eh.png ADDED
Binary file
img/flags/el.png ADDED
Binary file
img/flags/en.png ADDED
Binary file
img/flags/england.png ADDED
Binary file
img/flags/er.png ADDED
Binary file
img/flags/es.png ADDED
Binary file
img/flags/et.png ADDED
Binary file
img/flags/europeanunion.png ADDED
Binary file
img/flags/fa.png ADDED
Binary file
img/flags/fam.png ADDED
Binary file
img/flags/fi.png ADDED
Binary file
img/flags/fj.png ADDED
Binary file
img/flags/fk.png ADDED
Binary file
img/flags/fm.png ADDED
Binary file
img/flags/fo.png ADDED
Binary file
img/flags/fr.png ADDED
Binary file
img/flags/ga.png ADDED
Binary file
img/flags/gb.png ADDED
Binary file
img/flags/gd.png ADDED
Binary file
img/flags/ge.png ADDED
Binary file
img/flags/gf.png ADDED
Binary file
img/flags/gh.png ADDED
Binary file
img/flags/gi.png ADDED
Binary file
img/flags/gl.png ADDED
Binary file
img/flags/gm.png ADDED
Binary file
img/flags/gn.png ADDED
Binary file
img/flags/gp.png ADDED
Binary file
img/flags/gq.png ADDED
Binary file
img/flags/gr.png ADDED
Binary file
img/flags/gs.png ADDED
Binary file
img/flags/gt.png ADDED
Binary file
img/flags/gu.png ADDED
Binary file
img/flags/gw.png ADDED
Binary file
img/flags/gy.png ADDED
Binary file
img/flags/hk.png ADDED
Binary file
img/flags/hm.png ADDED
Binary file
img/flags/hn.png ADDED
Binary file
img/flags/hr.png ADDED
Binary file
img/flags/ht.png ADDED
Binary file
img/flags/hu.png ADDED
Binary file
img/flags/id.png ADDED
Binary file
img/flags/ie.png ADDED
Binary file
img/flags/il.png ADDED
Binary file
img/flags/in.png ADDED
Binary file
img/flags/io.png ADDED
Binary file
img/flags/iq.png ADDED
Binary file
img/flags/ir.png ADDED
Binary file
img/flags/is.png ADDED
Binary file
img/flags/it.png ADDED
Binary file
img/flags/jm.png ADDED
Binary file
img/flags/jo.png ADDED
Binary file
img/flags/jp.png ADDED
Binary file
img/flags/ke.png ADDED
Binary file
img/flags/kg.png ADDED
Binary file
img/flags/kh.png ADDED
Binary file
img/flags/ki.png ADDED
Binary file
img/flags/km.png ADDED
Binary file
img/flags/kn.png ADDED
Binary file
img/flags/kp.png ADDED
Binary file
img/flags/kr.png ADDED
Binary file
img/flags/kw.png ADDED
Binary file
img/flags/ky.png ADDED
Binary file
img/flags/kz.png ADDED
Binary file
img/flags/la.png ADDED
Binary file
img/flags/lb.png ADDED
Binary file
img/flags/lc.png ADDED
Binary file
img/flags/li.png ADDED
Binary file
img/flags/lk.png ADDED
Binary file
img/flags/lr.png ADDED
Binary file
img/flags/ls.png ADDED
Binary file
img/flags/lt.png ADDED
Binary file
img/flags/lu.png ADDED
Binary file
img/flags/lv.png ADDED
Binary file
img/flags/ly.png ADDED
Binary file
img/flags/ma.png ADDED
Binary file
img/flags/mc.png ADDED
Binary file
img/flags/md.png ADDED
Binary file
img/flags/me.png ADDED
Binary file
img/flags/mg.png ADDED
Binary file
img/flags/mh.png ADDED
Binary file
img/flags/mk.png ADDED
Binary file
img/flags/ml.png ADDED
Binary file
img/flags/mm.png ADDED
Binary file
img/flags/mn.png ADDED
Binary file
img/flags/mo.png ADDED
Binary file
img/flags/mp.png ADDED
Binary file
img/flags/mq.png ADDED
Binary file
img/flags/mr.png ADDED
Binary file
img/flags/ms.png ADDED
Binary file
img/flags/mt.png ADDED
Binary file
img/flags/mu.png ADDED
Binary file
img/flags/mv.png ADDED
Binary file
img/flags/mw.png ADDED
Binary file
img/flags/mx.png ADDED
Binary file
img/flags/my.png ADDED
Binary file
img/flags/mz.png ADDED
Binary file
img/flags/na.png ADDED
Binary file
img/flags/nc.png ADDED
Binary file
img/flags/ne.png ADDED
Binary file
img/flags/nf.png ADDED
Binary file
img/flags/ng.png ADDED
Binary file
img/flags/ni.png ADDED
Binary file
img/flags/nl.png ADDED
Binary file
img/flags/no.png ADDED
Binary file
img/flags/np.png ADDED
Binary file
img/flags/nr.png ADDED
Binary file
img/flags/nu.png ADDED
Binary file
img/flags/nz.png ADDED
Binary file
img/flags/om.png ADDED
Binary file
img/flags/pa.png ADDED
Binary file
img/flags/pe.png ADDED
Binary file
img/flags/pf.png ADDED
Binary file
img/flags/pg.png ADDED
Binary file
img/flags/ph.png ADDED
Binary file
img/flags/pk.png ADDED
Binary file
img/flags/pl.png ADDED
Binary file
img/flags/pm.png ADDED
Binary file
img/flags/pn.png ADDED
Binary file
img/flags/pr.png ADDED
Binary file
img/flags/ps.png ADDED
Binary file
img/flags/pt.png ADDED
Binary file
img/flags/pw.png ADDED
Binary file
img/flags/py.png ADDED
Binary file
img/flags/qa.png ADDED
Binary file
img/flags/re.png ADDED
Binary file
img/flags/ro.png ADDED
Binary file
img/flags/rs.png ADDED
Binary file
img/flags/ru.png ADDED
Binary file
img/flags/rw.png ADDED
Binary file
img/flags/sa.png ADDED
Binary file
img/flags/sb.png ADDED
Binary file
img/flags/sc.png ADDED
Binary file
img/flags/scotland.png ADDED
Binary file
img/flags/sd.png ADDED
Binary file
img/flags/se.png ADDED
Binary file
img/flags/sg.png ADDED
Binary file
img/flags/sh.png ADDED
Binary file
img/flags/si.png ADDED
Binary file
img/flags/sj.png ADDED
Binary file
img/flags/sk.png ADDED
Binary file
img/flags/sl.png ADDED
Binary file
img/flags/sm.png ADDED
Binary file
img/flags/sn.png ADDED
Binary file
img/flags/so.png ADDED
Binary file
img/flags/sr.png ADDED
Binary file
img/flags/st.png ADDED
Binary file
img/flags/sv.png ADDED
Binary file
img/flags/sy.png ADDED
Binary file
img/flags/sz.png ADDED
Binary file
img/flags/tc.png ADDED
Binary file
img/flags/td.png ADDED
Binary file
img/flags/tf.png ADDED
Binary file
img/flags/tg.png ADDED
Binary file
img/flags/th.png ADDED
Binary file
img/flags/tj.png ADDED
Binary file
img/flags/tk.png ADDED
Binary file
img/flags/tl.png ADDED
Binary file
img/flags/tm.png ADDED
Binary file
img/flags/tn.png ADDED
Binary file
img/flags/to.png ADDED
Binary file
img/flags/tr.png ADDED
Binary file
img/flags/tt.png ADDED
Binary file
img/flags/tv.png ADDED
Binary file
img/flags/tw.png ADDED
Binary file
img/flags/tz.png ADDED
Binary file
img/flags/ua.png ADDED
Binary file
img/flags/ug.png ADDED
Binary file
img/flags/uk.png ADDED
Binary file
img/flags/um.png ADDED
Binary file
img/flags/us.png ADDED
Binary file
img/flags/uy.png ADDED
Binary file
img/flags/uz.png ADDED
Binary file
img/flags/va.png ADDED
Binary file
img/flags/vc.png ADDED
Binary file
img/flags/ve.png ADDED
Binary file
img/flags/vg.png ADDED
Binary file
img/flags/vi.png ADDED
Binary file
img/flags/vn.png ADDED
Binary file
img/flags/vu.png ADDED
Binary file
img/flags/wales.png ADDED
Binary file
img/flags/wf.png ADDED
Binary file
img/flags/ws.png ADDED
Binary file
img/flags/ye.png ADDED
Binary file
img/flags/yt.png ADDED
Binary file
img/flags/za.png ADDED
Binary file
img/flags/zm.png ADDED
Binary file
img/flags/zw.png ADDED
Binary file
img/icon_favourites.gif ADDED
Binary file
img/icon_get_world.gif ADDED
Binary file
img/icon_get_worldBN.gif ADDED
Binary file
img/icon_settings.gif ADDED
Binary file
img/icon_settingsBN.gif ADDED
Binary file
img/list-bg-gold.png ADDED
Binary file
img/list-bg.png ADDED
Binary file
img/list-bg2.png ADDED
Binary file
img/list-bg3.png ADDED
Binary file
img/loading.gif ADDED
Binary file
img/loadingAnimation.gif ADDED
Binary file
img/page_delete.gif ADDED
Binary file
img/page_favourites.gif ADDED
Binary file
img/sum-bg.png ADDED
Binary file
img/tab.png ADDED
Binary file
js/jquery.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery 1.2.2 - New Wave Javascript
3
+ *
4
+ * Copyright (c) 2007 John Resig (jquery.com)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ *
8
+ * $Date: 2008-01-14 17:56:07 -0500 (Mon, 14 Jan 2008) $
9
+ * $Rev: 4454 $
10
+ */
11
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.19)L w=1e.19;L E=1e.19=J(a,b){K 1D E.2m.4Y(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1i=E.2m={4Y:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1v d=="25"){L c=u.39(d);7(c&&(c[1]||!b)){7(c[1])d=E.5c([c[1]],b);N{L a=T.5N(c[3]);7(a)7(a.2s!=c[3])K E().2r(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1D E(b).2r(d)}N 7(E.1q(d))K 1D E(T)[E.1i.21?"21":"43"](d);K 6.6G(d.1n==1N&&d||(d.5j||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2H(d)||[d])},5j:"1.2.2",82:J(){K 6.M},M:0,22:J(a){K a==10?E.2H(6):6[a]},2E:J(b){L a=E(b);a.56=6;K a},6G:J(a){6.M=0;1N.2m.1h.1j(6,a);K 6},V:J(a,b){K E.V(6,a,b)},5E:J(b){L a=-1;6.V(J(i){7(6==b)a=i});K a},1K:J(c,a,b){L d=c;7(c.1n==4d)7(a==10)K 6.M&&E[b||"1K"](6[0],c)||10;N{d={};d[c]=a}K 6.V(J(i){P(c 1r d)E.1K(b?6.Y:6,c,E.1l(6,d[c],b,i,c))})},1m:J(b,a){7((b==\'29\'||b==\'1P\')&&2M(a)<0)a=10;K 6.1K(b,a,"2q")},1t:J(b){7(1v b!="4D"&&b!=W)K 6.4B().3t((6[0]&&6[0].2u||T).5v(b));L a="";E.V(b||6,J(){E.V(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6M:E.1i.1t([6])})});K a},5r:J(b){7(6[0])E(b,6[0].2u).5J().3n(6[0]).2a(J(){L a=6;2e(a.1B)a=a.1B;K a}).3t(6);K 6},8t:J(a){K 6.V(J(){E(6).6C().5r(a)})},8m:J(a){K 6.V(J(){E(6).5r(a)})},3t:J(){K 6.3P(1a,R,S,J(a){7(6.15==1)6.3k(a)})},6s:J(){K 6.3P(1a,R,R,J(a){7(6.15==1)6.3n(a,6.1B)})},6o:J(){K 6.3P(1a,S,S,J(a){6.1b.3n(a,6)})},5a:J(){K 6.3P(1a,S,R,J(a){6.1b.3n(a,6.2J)})},3h:J(){K 6.56||E([])},2r:J(b){L c=E.2a(6,J(a){K E.2r(b,a)});K 6.2E(/[^+>] [^+>]/.17(b)||b.1g("..")>-1?E.57(c):c)},5J:J(e){L f=6.2a(J(){7(E.14.1d&&!E.3W(6)){L a=6.6c(R),5u=T.2R("1u"),4T=T.2R("1u");5u.3k(a);4T.38=5u.38;K 4T.1B}N K 6.6c(R)});L d=f.2r("*").4R().V(J(){7(6[F]!=10)6[F]=W});7(e===R)6.2r("*").4R().V(J(i){7(6.15==3)K;L c=E.Q(6,"2N");P(L a 1r c)P(L b 1r c[a])E.16.1c(d[i],a,c[a][b],c[a][b].Q)});K f},1F:J(b){K 6.2E(E.1q(b)&&E.3x(6,J(a,i){K b.1O(a,i)})||E.3d(b,6))},4I:J(b){7(b.1n==4d)7(G.17(b))K 6.2E(E.3d(b,6,R));N b=E.3d(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1F(J(){K a?E.35(6,b)<0:6!=b})},1c:J(a){K!a?6:6.2E(E.34(6.22(),a.1n==4d?E(a).22():a.M!=10&&(!a.12||E.12(a,"3i"))?a:[a]))},3K:J(a){K a?E.3d(a,6).M>0:S},7g:J(a){K 6.3K("."+a)},5P:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2y")){L e=c.44,5L=[],11=c.11,30=c.U=="2y-30";7(e<0)K W;P(L i=30?e:0,2b=30?e+1:11.M;i<2b;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9s.1C.9o?d.1t:d.1C;7(30)K b;5L.1h(b)}}K 5L}N K(6[0].1C||"").1p(/\\r/g,"")}K 10}K 6.V(J(){7(6.15!=1)K;7(b.1n==1N&&/5w|5y/.17(6.U))6.3o=(E.35(6.1C,b)>=0||E.35(6.37,b)>=0);N 7(E.12(6,"2y")){L a=b.1n==1N?b:[b];E("90",6).V(J(){6.2p=(E.35(6.1C,a)>=0||E.35(6.1t,a)>=0)});7(!a.M)6.44=-1}N 6.1C=b})},3q:J(a){K a==10?(6.M?6[0].38:W):6.4B().3t(a)},6P:J(a){K 6.5a(a).1Y()},6N:J(i){K 6.2V(i,i+1)},2V:J(){K 6.2E(1N.2m.2V.1j(6,1a))},2a:J(b){K 6.2E(E.2a(6,J(a,i){K b.1O(a,i,a)}))},4R:J(){K 6.1c(6.56)},3P:J(g,f,h,d){L e=6.M>1,3m;K 6.V(J(){7(!3m){3m=E.5c(g,6.2u);7(h)3m.8I()}L b=6;7(f&&E.12(6,"1V")&&E.12(3m[0],"4x"))b=6.3V("1S")[0]||6.3k(6.2u.2R("1S"));L c=E([]);E.V(3m,J(){L a=e?E(6).5J(R)[0]:6;7(E.12(a,"1o")){c=c.1c(a)}N{7(a.15==1)c=c.1c(E("1o",a).1Y());d.1O(b,a)}});c.V(6D)})}};E.2m.4Y.2m=E.2m;J 6D(i,a){7(a.3R)E.3Q({1f:a.3R,3l:S,1G:"1o"});N E.5l(a.1t||a.6A||a.38||"");7(a.1b)a.1b.2X(a)}E.1s=E.1i.1s=J(){L b=1a[0]||{},i=1,M=1a.M,5i=S,11;7(b.1n==8f){5i=b;b=1a[1]||{};i=2}7(1v b!="4D"&&1v b!="J")b={};7(M==1){b=6;i=0}P(;i<M;i++)7((11=1a[i])!=W)P(L a 1r 11){7(b===11[a])6z;7(5i&&11[a]&&1v 11[a]=="4D"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="19"+(1D 3O()).3N(),6y=0,5e={};L H=/z-?5E|89-?87|1y|6q|85-?1P/i;E.1s({81:J(a){1e.$=D;7(a)1e.19=w;K E},1q:J(a){K!!a&&1v a!="25"&&!a.12&&a.1n!=1N&&/J/i.17(a+"")},3W:J(a){K a.1I&&!a.1k||a.28&&a.2u&&!a.2u.1k},5l:J(a){a=E.3f(a);7(a){L b=T.3V("6k")[0]||T.1I,1o=T.2R("1o");1o.U="1t/4l";7(E.14.1d)1o.1t=a;N 1o.3k(T.5v(a));b.3k(1o);b.2X(1o)}},12:J(b,a){K b.12&&b.12.2F()==a.2F()},1Q:{},Q:J(c,d,b){c=c==1e?5e:c;L a=c[F];7(!a)a=c[F]=++6y;7(d&&!E.1Q[a])E.1Q[a]={};7(b!=10)E.1Q[a][d]=b;K d?E.1Q[a][d]:a},3H:J(c,b){c=c==1e?5e:c;L a=c[F];7(b){7(E.1Q[a]){2T E.1Q[a][b];b="";P(b 1r E.1Q[a])1T;7(!b)E.3H(c)}}N{1R{2T c[F]}1W(e){7(c.55)c.55(F)}2T E.1Q[a]}},V:J(c,a,b){7(b){7(c.M==10){P(L d 1r c)7(a.1j(c[d],b)===S)1T}N P(L i=0,M=c.M;i<M;i++)7(a.1j(c[i],b)===S)1T}N{7(c.M==10){P(L d 1r c)7(a.1O(c[d],d,c[d])===S)1T}N P(L i=0,M=c.M,1C=c[0];i<M&&a.1O(1C,i,1C)!==S;1C=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1O(b,i);K a&&a.1n==53&&c=="2q"&&!H.17(d)?a+"2P":a},1w:{1c:J(c,b){E.V((b||"").2d(/\\s+/),J(i,a){7(c.15==1&&!E.1w.3E(c.1w,a))c.1w+=(c.1w?" ":"")+a})},1Y:J(c,b){7(c.15==1)c.1w=b!=10?E.3x(c.1w.2d(/\\s+/),J(a){K!E.1w.3E(b,a)}).6g(" "):""},3E:J(b,a){K E.35(a,(b.1w||b).3D().2d(/\\s+/))>-1}},6e:J(b,c,a){L e={};P(L d 1r c){e[d]=b.Y[d];b.Y[d]=c[d]}a.1O(b);P(L d 1r c)b.Y[d]=e[d]},1m:J(d,e,c){7(e=="29"||e=="1P"){L b,3S={3C:"4Z",4X:"23",18:"3u"},3r=e=="29"?["7P","7M"]:["7L","7K"];J 4S(){b=e=="29"?d.7J:d.7I;L a=0,3a=0;E.V(3r,J(){a+=2M(E.2q(d,"7H"+6,R))||0;3a+=2M(E.2q(d,"3a"+6+"62",R))||0});b-=1Z.7E(a+3a)}7(E(d).3K(":4b"))4S();N E.6e(d,3S,4S);K 1Z.2b(0,b)}K E.2q(d,e,c)},2q:J(e,k,j){L d;J 3y(b){7(!E.14.26)K S;L a=T.4a.4L(b,W);K!a||a.4K("3y")==""}7(k=="1y"&&E.14.1d){d=E.1K(e.Y,"1y");K d==""?"1":d}7(E.14.2B&&k=="18"){L c=e.Y.18;e.Y.18="3u";e.Y.18=c}7(k.1E(/4c/i))k=y;7(!j&&e.Y&&e.Y[k])d=e.Y[k];N 7(T.4a&&T.4a.4L){7(k.1E(/4c/i))k="4c";k=k.1p(/([A-Z])/g,"-$1").2w();L h=T.4a.4L(e,W);7(h&&!3y(e))d=h.4K(k);N{L f=[],2L=[];P(L a=e;a&&3y(a);a=a.1b)2L.4U(a);P(L i=0;i<2L.M;i++)7(3y(2L[i])){f[i]=2L[i].Y.18;2L[i].Y.18="3u"}d=k=="18"&&f[2L.M-1]!=W?"2D":(h&&h.4K(k))||"";P(L i=0;i<f.M;i++)7(f[i]!=W)2L[i].Y.18=f[i]}7(k=="1y"&&d=="")d="1"}N 7(e.4j){L g=k.1p(/\\-(\\w)/g,J(a,b){K b.2F()});d=e.4j[k]||e.4j[g];7(!/^\\d+(2P)?$/i.17(d)&&/^\\d/.17(d)){L l=e.Y.2c,3A=e.3A.2c;e.3A.2c=e.4j.2c;e.Y.2c=d||0;d=e.Y.7l+"2P";e.Y.2c=l;e.3A.2c=3A}}K d},5c:J(l,h){L k=[];h=h||T;7(1v h.2R==\'10\')h=h.2u||h[0]&&h[0].2u||T;E.V(l,J(i,d){7(!d)K;7(d.1n==53)d=d.3D();7(1v d=="25"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1E(/^(7k|7h|5Q|7f|48|5O|a3|3v|9Y|9W|9T)$/i)?b:a+"></"+c+">"});L f=E.3f(d).2w(),1u=h.2R("1u");L e=!f.1g("<9R")&&[1,"<2y 78=\'78\'>","</2y>"]||!f.1g("<9O")&&[1,"<77>","</77>"]||f.1E(/^<(9K|1S|9I|9F|9A)/)&&[1,"<1V>","</1V>"]||!f.1g("<4x")&&[2,"<1V><1S>","</1S></1V>"]||(!f.1g("<9y")||!f.1g("<9v"))&&[3,"<1V><1S><4x>","</4x></1S></1V>"]||!f.1g("<5Q")&&[2,"<1V><1S></1S><76>","</76></1V>"]||E.14.1d&&[1,"1u<1u>","</1u>"]||[0,"",""];1u.38=e[1]+d+e[2];2e(e[0]--)1u=1u.5D;7(E.14.1d){L g=!f.1g("<1V")&&f.1g("<1S")<0?1u.1B&&1u.1B.3p:e[1]=="<1V>"&&f.1g("<1S")<0?1u.3p:[];P(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1S")&&!g[j].3p.M)g[j].1b.2X(g[j]);7(/^\\s/.17(d))1u.3n(h.5v(d.1E(/^\\s*/)[0]),1u.1B)}d=E.2H(1u.3p)}7(d.M===0&&(!E.12(d,"3i")&&!E.12(d,"2y")))K;7(d[0]==10||E.12(d,"3i")||d.11)k.1h(d);N k=E.34(k,d)});K k},1K:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3W(d)?{}:E.3S;7(e=="2p"&&E.14.26)d.1b.44;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="Y")K E.1K(d.Y,"9r",c);N 7(c==10&&E.14.1d&&E.12(d,"3i")&&(e=="9q"||e=="9p"))K d.9n(e).6M;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"48")&&d.1b)6Z"U 9i 9g\'t 9b 9a";d.99(e,""+c)}7(E.14.1d&&/6T|3R/.17(e)&&!E.3W(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1y"&&E.14.1d){7(c!=10){d.6q=1;d.1F=(d.1F||"").1p(/6W\\([^)]*\\)/,"")+(2M(c).3D()=="93"?"":"6W(1y="+c*6S+")")}K d.1F&&d.1F.1g("1y=")>=0?(2M(d.1F.1E(/1y=([^)]*)/)[1])/6S).3D():""}e=e.1p(/-([a-z])/92,J(a,b){K b.2F()});7(c!=10)d[e]=c;K d[e]}},3f:J(a){K(a||"").1p(/^\\s+|\\s+$/g,"")},2H:J(b){L a=[];7(1v b!="91")P(L i=0,M=b.M;i<M;i++)a.1h(b[i]);N a=b.2V(0);K a},35:J(b,a){P(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},34:J(a,b){7(E.14.1d){P(L i=0;b[i];i++)7(b[i].15!=8)a.1h(b[i])}N P(L i=0;b[i];i++)a.1h(b[i]);K a},57:J(a){L c=[],2j={};1R{P(L i=0,M=a.M;i<M;i++){L b=E.Q(a[i]);7(!2j[b]){2j[b]=R;c.1h(a[i])}}}1W(e){c=a}K c},3x:J(c,a,d){7(1v a=="25")a=4A("S||J(a,i){K "+a+"}");L b=[];P(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1h(c[i]);K b},2a:J(d,a){L c=[];P(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==W&&b!=10){7(b.1n!=1N)b=[b];c=c.6Q(b)}}K c}});L v=8X.8V.2w();E.14={5n:(v.1E(/.+(?:8R|8Q|8P|8O)[\\/: ]([\\d.]+)/)||[])[1],26:/6L/.17(v),2B:/2B/.17(v),1d:/1d/.17(v)&&!/2B/.17(v),3X:/3X/.17(v)&&!/(8M|6L)/.17(v)};L y=E.14.1d?"6K":"6J";E.1s({8J:!E.14.1d||T.6I=="6H",3S:{"P":"8G","8E":"1w","4c":y,6J:y,6K:y,38:"38",1w:"1w",1C:"1C",2W:"2W",3o:"3o",8C:"8B",2p:"2p",8A:"8z",44:"44",6F:"6F",28:"28",12:"12"}});E.V({6E:"O.1b",8y:"19.4w(O,\'1b\')",8x:"19.31(O,2,\'2J\')",8w:"19.31(O,2,\'4v\')",8v:"19.4w(O,\'2J\')",8u:"19.4w(O,\'4v\')",8s:"19.5m(O.1b.1B,O)",8r:"19.5m(O.1B)",6C:"19.12(O,\'8q\')?O.8p||O.8o.T:19.2H(O.3p)"},J(c,d){d=4A("S||J(O){K "+d+"}");E.1i[c]=J(b){L a=E.2a(6,d);7(b&&1v b=="25")a=E.3d(b,a);K 6.2E(E.57(a))}});E.V({6B:"3t",8n:"6s",3n:"6o",8l:"5a",8k:"6P"},J(c,b){E.1i[c]=J(){L a=1a;K 6.V(J(){P(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.V({8j:J(a){E.1K(6,a,"");7(6.15==1)6.55(a)},8i:J(a){E.1w.1c(6,a)},8h:J(a){E.1w.1Y(6,a)},8g:J(a){E.1w[E.1w.3E(6,a)?"1Y":"1c"](6,a)},1Y:J(a){7(!a||E.1F(a,[6]).r.M){E("*",6).1c(6).V(J(){E.16.1Y(6);E.3H(6)});7(6.1b)6.1b.2X(6)}},4B:J(){E(">*",6).1Y();2e(6.1B)6.2X(6.1B)}},J(a,b){E.1i[a]=J(){K 6.V(b,1a)}});E.V(["8e","62"],J(i,c){L b=c.2w();E.1i[b]=J(a){K 6[0]==1e?E.14.2B&&T.1k["5h"+c]||E.14.26&&1e["8d"+c]||T.6I=="6H"&&T.1I["5h"+c]||T.1k["5h"+c]:6[0]==T?1Z.2b(1Z.2b(T.1k["5g"+c],T.1I["5g"+c]),1Z.2b(T.1k["5f"+c],T.1I["5f"+c])):a==10?(6.M?E.1m(6[0],b):W):6.1m(b,a.1n==4d?a:a+"2P")}});L C=E.14.26&&4t(E.14.5n)<8c?"(?:[\\\\w*4s-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4s-]|\\\\\\\\.)",6w=1D 4r("^>\\\\s*("+C+"+)"),6v=1D 4r("^("+C+"+)(#)("+C+"+)"),6u=1D 4r("^([#.]?)("+C+"*)");E.1s({5d:{"":"m[2]==\'*\'||19.12(a,m[2])","#":"a.4z(\'2s\')==m[2]",":":{88:"i<m[3]-0",86:"i>m[3]-0",31:"m[3]-0==i",6N:"m[3]-0==i",3j:"i==0",3M:"i==r.M-1",6r:"i%2==0",6p:"i%2","3j-4m":"a.1b.3V(\'*\')[0]==a","3M-4m":"19.31(a.1b.5D,1,\'4v\')==a","84-4m":"!19.31(a.1b.5D,2,\'4v\')",6E:"a.1B",4B:"!a.1B",83:"(a.6A||a.80||19(a).1t()||\'\').1g(m[3])>=0",4b:\'"23"!=a.U&&19.1m(a,"18")!="2D"&&19.1m(a,"4X")!="23"\',23:\'"23"==a.U||19.1m(a,"18")=="2D"||19.1m(a,"4X")=="23"\',7Y:"!a.2W",2W:"a.2W",3o:"a.3o",2p:"a.2p||19.1K(a,\'2p\')",1t:"\'1t\'==a.U",5w:"\'5w\'==a.U",5y:"\'5y\'==a.U",5b:"\'5b\'==a.U",3J:"\'3J\'==a.U",59:"\'59\'==a.U",6n:"\'6n\'==a.U",6m:"\'6m\'==a.U",2G:\'"2G"==a.U||19.12(a,"2G")\',48:"/48|2y|6l|2G/i.17(a.12)",3E:"19.2r(m[3],a).M",7X:"/h\\\\d/i.17(a.12)",7W:"19.3x(19.3I,J(1i){K a==1i.O;}).M"}},6j:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1D 4r("^([:.#]*)("+C+"+)")],3d:J(a,c,b){L d,2o=[];2e(a&&a!=d){d=a;L f=E.1F(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2o=b?c=f.r:E.34(2o,f.r)}K 2o},2r:J(t,p){7(1v t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2j=[],3M,12;2e(t&&3M!=t){L r=[];3M=t;t=E.3f(t);L o=S;L g=6w;L m=g.39(t);7(m){12=m[1].2F();P(L i=0;d[i];i++)P(L c=d[i].1B;c;c=c.2J)7(c.15==1&&(12=="*"||c.12.2F()==12))r.1h(c);d=r;t=t.1p(g,"");7(t.1g(" ")==0)6z;o=R}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.39(t))!=W){r=[];L l={};12=m[2].2F();m=m[1];P(L j=0,3g=d.M;j<3g;j++){L n=m=="~"||m=="+"?d[j].2J:d[j].1B;P(;n;n=n.2J)7(n.15==1){L h=E.Q(n);7(m=="~"&&l[h])1T;7(!12||n.12.2F()==12){7(m=="~")l[h]=R;r.1h(n)}7(m=="+")1T}}d=r;t=E.3f(t.1p(g,""));o=R}}7(t&&!o){7(!t.1g(",")){7(p==d[0])d.4k();2j=E.34(2j,d);r=d=[p];t=" "+t.6i(1,t.M)}N{L k=6v;L m=k.39(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6u;m=k.39(t)}m[2]=m[2].1p(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5N&&!E.3W(f)){L q=f.5N(m[2]);7((E.14.1d||E.14.2B)&&q&&1v q.2s=="25"&&q.2s!=m[2])q=E(\'[@2s="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{P(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2w()=="4D")a="3v";r=E.34(r,d[i].3V(a))}7(m[1]==".")r=E.58(r,m[2]);7(m[1]=="#"){L e=[];P(L i=0;r[i];i++)7(r[i].4z("2s")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}7(t){L b=E.1F(t,r);d=r=b.r;t=E.3f(b.t)}}7(t)d=[];7(d&&p==d[0])d.4k();2j=E.34(2j,d);K 2j},58:J(r,m,a){m=" "+m+" ";L c=[];P(L i=0;r[i];i++){L b=(" "+r[i].1w+" ").1g(m)>=0;7(!a&&b||a&&!b)c.1h(r[i])}K c},1F:J(t,r,h){L d;2e(t&&t!=d){d=t;L p=E.6j,m;P(L i=0;p[i];i++){m=p[i].39(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1p(/\\\\/g,"");1T}}7(!m)1T;7(m[1]==":"&&m[2]=="4I")r=G.17(m[3])?E.1F(m[3],r,R).r:E(r).4I(m[3]);N 7(m[1]==".")r=E.58(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];P(L i=0,3g=r.M;i<3g;i++){L a=r[i],z=a[E.3S[m[2]]||m[2]];7(z==W||/6T|3R|2p/.17(m[2]))z=E.1K(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1g(m[5])||U=="$="&&z.6i(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1g(m[5])>=0)^h)g.1h(a)}r=g}N 7(m[1]==":"&&m[2]=="31-4m"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.39(m[3]=="6r"&&"2n"||m[3]=="6p"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;P(L i=0,3g=r.M;i<3g;i++){L j=r[i],1b=j.1b,2s=E.Q(1b);7(!e[2s]){L c=1;P(L n=1b.1B;n;n=n.2J)7(n.15==1)n.4p=c++;e[2s]=R}L b=S;7(3j==0){7(j.4p==d)b=R}N 7((j.4p-d)%3j==0&&(j.4p-d)/3j>=0)b=R;7(b^h)g.1h(j)}r=g}N{L f=E.5d[m[1]];7(1v f!="25")f=E.5d[m[1]][m[2]];f=4A("S||J(a,i){K "+f+"}");r=E.3x(r,f,h)}}K{r:r,t:t}},4w:J(b,c){L d=[];L a=b[c];2e(a&&a!=T){7(a.15==1)d.1h(a);a=a[c]}K d},31:J(a,e,c,b){e=e||1;L d=0;P(;a;a=a[c])7(a.15==1&&++d==e)1T;K a},5m:J(n,a){L r=[];P(;n;n=n.2J){7(n.15==1&&(!a||n!=a))r.1h(n)}K r}});E.16={1c:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.54!=10)f=1e;7(!g.2A)g.2A=6.2A++;7(e!=10){L h=g;g=J(){K h.1j(6,1a)};g.Q=e;g.2A=h.2A}L j=E.Q(f,"2N")||E.Q(f,"2N",{}),1x=E.Q(f,"1x")||E.Q(f,"1x",J(){L a;7(1v E=="10"||E.16.52)K a;a=E.16.1x.1j(1a.3G.O,1a);K a});1x.O=f;E.V(i.2d(/\\s+/),J(c,b){L a=b.2d(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2l[b]||E.16.2l[b].4i.1O(f)===S){7(f.3F)f.3F(b,1x,S);N 7(f.6h)f.6h("4h"+b,1x)}}d[g.2A]=g;E.16.2g[b]=R});f=W},2A:1,2g:{},1Y:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.Q(e,"2N"),2f,5E;7(i){7(h==10)P(L g 1r i)6.1Y(e,g);N{7(h.U){f=h.2k;h=h.U}E.V(h.2d(/\\s+/),J(b,a){L c=a.2d(".");a=c[0];7(i[a]){7(f)2T i[a][f.2A];N P(f 1r i[a])7(!c[1]||i[a][f].U==c[1])2T i[a][f];P(2f 1r i[a])1T;7(!2f){7(!E.16.2l[a]||E.16.2l[a].4g.1O(e)===S){7(e.6f)e.6f(a,E.Q(e,"1x"),S);N 7(e.6d)e.6d("4h"+a,E.Q(e,"1x"))}2f=W;2T i[a]}}})}P(2f 1r i)1T;7(!2f){L d=E.Q(e,"1x");7(d)d.O=W;E.3H(e,"2N");E.3H(e,"1x")}}},1U:J(f,b,c,d,g){b=E.2H(b||[]);7(!c){7(6.2g[f])E("*").1c([1e,T]).1U(f,b)}N{7(c.15==3||c.15==8)K 10;L a,2f,1i=E.1q(c[f]||W),16=!b[0]||!b[0].32;7(16)b.4U(6.51({U:f,2K:c}));b[0].U=f;7(E.1q(E.Q(c,"1x")))a=E.Q(c,"1x").1j(c,b);7(!1i&&c["4h"+f]&&c["4h"+f].1j(c,b)===S)a=S;7(16)b.4k();7(g&&E.1q(g)){2f=g.1j(c,a==W?b:b.6Q(a));7(2f!==10)a=2f}7(1i&&d!==S&&a!==S&&!(E.12(c,\'a\')&&f=="50")){6.52=R;1R{c[f]()}1W(e){}}6.52=S}K a},1x:J(c){L a;c=E.16.51(c||1e.16||{});L b=c.U.2d(".");c.U=b[0];L f=E.Q(6,"2N")&&E.Q(6,"2N")[c.U],3B=1N.2m.2V.1O(1a,1);3B.4U(c);P(L j 1r f){L d=f[j];3B[0].2k=d;3B[0].Q=d.Q;7(!b[1]||d.U==b[1]){L e=d.1j(6,3B);7(a!==S)a=e;7(e===S){c.32();c.41()}}}7(E.14.1d)c.2K=c.32=c.41=c.2k=c.Q=W;K a},51:J(c){L a=c;c=E.1s({},a);c.32=J(){7(a.32)a.32();a.7T=S};c.41=J(){7(a.41)a.41();a.7S=R};7(!c.2K)c.2K=c.7R||T;7(c.2K.15==3)c.2K=a.2K.1b;7(!c.4W&&c.4V)c.4W=c.4V==c.2K?c.7Q:c.4V;7(c.6b==W&&c.6a!=W){L b=T.1I,1k=T.1k;c.6b=c.6a+(b&&b.2i||1k&&1k.2i||0)-(b.68||0);c.7O=c.7N+(b&&b.2x||1k&&1k.2x||0)-(b.67||0)}7(!c.3r&&((c.4f||c.4f===0)?c.4f:c.66))c.3r=c.4f||c.66;7(!c.65&&c.64)c.65=c.64;7(!c.3r&&c.2G)c.3r=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2l:{21:{4i:J(){5A();K},4g:J(){K}},47:{4i:J(){7(E.14.1d)K S;E(6).2z("4Q",E.16.2l.47.2k);K R},4g:J(){7(E.14.1d)K S;E(6).42("4Q",E.16.2l.47.2k);K R},2k:J(a){7(I(a,6))K R;1a[0].U="47";K E.16.1x.1j(6,1a)}},46:{4i:J(){7(E.14.1d)K S;E(6).2z("4P",E.16.2l.46.2k);K R},4g:J(){7(E.14.1d)K S;E(6).42("4P",E.16.2l.46.2k);K R},2k:J(a){7(I(a,6))K R;1a[0].U="46";K E.16.1x.1j(6,1a)}}}};E.1i.1s({2z:J(c,a,b){K c=="4O"?6.30(c,a,b):6.V(J(){E.16.1c(6,c,b||a,b&&a)})},30:J(d,b,c){K 6.V(J(){E.16.1c(6,d,J(a){E(6).42(a);K(c||b).1j(6,1a)},c&&b)})},42:J(a,b){K 6.V(J(){E.16.1Y(6,a,b)})},1U:J(c,a,b){K 6.V(J(){E.16.1U(c,a,6,R,b)})},63:J(c,a,b){7(6[0])K E.16.1U(c,a,6[0],S,b);K 10},2h:J(){L b=1a;K 6.50(J(a){6.4N=0==6.4N?1:0;a.32();K b[6.4N].1j(6,1a)||S})},7F:J(a,b){K 6.2z(\'47\',a).2z(\'46\',b)},21:J(a){5A();7(E.2Q)a.1O(T,E);N E.3w.1h(J(){K a.1O(6,E)});K 6}});E.1s({2Q:S,3w:[],21:J(){7(!E.2Q){E.2Q=R;7(E.3w){E.V(E.3w,J(){6.1j(T)});E.3w=W}E(T).63("21")}}});L x=S;J 5A(){7(x)K;x=R;7(T.3F&&!E.14.2B)T.3F("61",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1R{T.1I.7D("2c")}1W(3e){3z(1a.3G,0);K}E.21()})();7(E.14.2B)T.3F("61",J(){7(E.2Q)K;P(L i=0;i<T.4M.M;i++)7(T.4M[i].2W){3z(1a.3G,0);K}E.21()},S);7(E.14.26){L a;(J(){7(E.2Q)K;7(T.3c!="60"&&T.3c!="1z"){3z(1a.3G,0);K}7(a===10)a=E("Y, 5O[7B=7A]").M;7(T.4M.M!=a){3z(1a.3G,0);K}E.21()})()}E.16.1c(1e,"43",E.21)}E.V(("7z,7y,43,7x,5g,4O,50,7w,"+"7v,7u,7C,4Q,4P,7t,2y,"+"59,7s,7r,7G,3e").2d(","),J(i,b){E.1i[b]=J(a){K a?6.2z(b,a):6.1U(b)}});L I=J(a,c){L b=a.4W;2e(b&&b!=c)1R{b=b.1b}1W(3e){b=c}K b==c};E(1e).2z("4O",J(){E("*").1c(T).42()});E.1i.1s({43:J(g,d,c){7(E.1q(g))K 6.2z("43",g);L e=g.1g(" ");7(e>=0){L i=g.2V(e,g.M);g=g.2V(0,e)}c=c||J(){};L f="4J";7(d)7(E.1q(d)){c=d;d=W}N{d=E.3v(d);f="5Z"}L h=6;E.3Q({1f:g,U:f,1G:"3q",Q:d,1z:J(a,b){7(b=="1X"||b=="5Y")h.3q(i?E("<1u/>").3t(a.4e.1p(/<1o(.|\\s)*?\\/1o>/g,"")).2r(i):a.4e);h.V(c,[a.4e,b,a])}});K 6},7q:J(){K E.3v(6.5X())},5X:J(){K 6.2a(J(){K E.12(6,"3i")?E.2H(6.7p):6}).1F(J(){K 6.37&&!6.2W&&(6.3o||/2y|6l/i.17(6.12)||/1t|23|3J/i.17(6.U))}).2a(J(i,c){L b=E(6).5P();K b==W?W:b.1n==1N?E.2a(b,J(a,i){K{37:c.37,1C:a}}):{37:c.37,1C:b}}).22()}});E.V("5W,5V,5U,69,5T,5S".2d(","),J(i,o){E.1i[o]=J(f){K 6.2z(o,f)}});L B=(1D 3O).3N();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=W}K E.3Q({U:"4J",1f:d,Q:b,1X:a,1G:c})},7o:J(b,a){K E.22(b,W,a,"1o")},7n:J(c,b,a){K E.22(c,b,a,"2O")},7m:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3Q({U:"5Z",1f:d,Q:b,1X:a,1G:c})},7Z:J(a){E.1s(E.4H,a)},4H:{2g:R,U:"4J",2U:0,5R:"49/x-7j-3i-7i",6x:R,3l:R,Q:W,6t:W,3J:W,4n:{3L:"49/3L, 1t/3L",3q:"1t/3q",1o:"1t/4l, 49/4l",2O:"49/2O, 1t/4l",1t:"1t/7e",4o:"*/*"}},4q:{},3Q:J(s){L f,2Y=/=\\?(&|$)/g,1A,Q;s=E.1s(R,s,E.1s(R,{},E.4H,s));7(s.Q&&s.6x&&1v s.Q!="25")s.Q=E.3v(s.Q);7(s.1G=="4u"){7(s.U.2w()=="22"){7(!s.1f.1E(2Y))s.1f+=(s.1f.1E(/\\?/)?"&":"?")+(s.4u||"7d")+"=?"}N 7(!s.Q||!s.Q.1E(2Y))s.Q=(s.Q?s.Q+"&":"")+(s.4u||"7d")+"=?";s.1G="2O"}7(s.1G=="2O"&&(s.Q&&s.Q.1E(2Y)||s.1f.1E(2Y))){f="4u"+B++;7(s.Q)s.Q=(s.Q+"").1p(2Y,"="+f+"$1");s.1f=s.1f.1p(2Y,"="+f+"$1");s.1G="1o";1e[f]=J(a){Q=a;1X();1z();1e[f]=10;1R{2T 1e[f]}1W(e){}7(h)h.2X(g)}}7(s.1G=="1o"&&s.1Q==W)s.1Q=S;7(s.1Q===S&&s.U.2w()=="22"){L i=(1D 3O()).3N();L j=s.1f.1p(/(\\?|&)4s=.*?(&|$)/,"$a2="+i+"$2");s.1f=j+((j==s.1f)?(s.1f.1E(/\\?/)?"&":"?")+"4s="+i:"")}7(s.Q&&s.U.2w()=="22"){s.1f+=(s.1f.1E(/\\?/)?"&":"?")+s.Q;s.Q=W}7(s.2g&&!E.5M++)E.16.1U("5W");7((!s.1f.1g("9Z")||!s.1f.1g("//"))&&(s.1G=="1o"||s.1G=="2O")&&s.U.2w()=="22"){L h=T.3V("6k")[0];L g=T.2R("1o");g.3R=s.1f;7(s.7c)g.9X=s.7c;7(!f){L l=S;g.9V=g.9U=J(){7(!l&&(!6.3c||6.3c=="60"||6.3c=="1z")){l=R;1X();1z();h.2X(g)}}}h.3k(g);K 10}L m=S;L k=1e.7a?1D 7a("9S.9Q"):1D 79();k.9P(s.U,s.1f,s.3l,s.6t,s.3J);1R{7(s.Q)k.4G("9N-9M",s.5R);7(s.5I)k.4G("9L-5H-9J",E.4q[s.1f]||"9H, 9G 9E 9B 5G:5G:5G 9z");k.4G("X-9x-9u","79");k.4G("9t",s.1G&&s.4n[s.1G]?s.4n[s.1G]+", */*":s.4n.4o)}1W(e){}7(s.75)s.75(k);7(s.2g)E.16.1U("5S",[k,s]);L c=J(a){7(!m&&k&&(k.3c==4||a=="2U")){m=R;7(d){74(d);d=W}1A=a=="2U"&&"2U"||!E.73(k)&&"3e"||s.5I&&E.72(k,s.1f)&&"5Y"||"1X";7(1A=="1X"){1R{Q=E.71(k,s.1G)}1W(e){1A="5C"}}7(1A=="1X"){L b;1R{b=k.5B("70-5H")}1W(e){}7(s.5I&&b)E.4q[s.1f]=b;7(!f)1X()}N E.5t(s,k,1A);1z();7(s.3l)k=W}};7(s.3l){L d=54(c,13);7(s.2U>0)3z(J(){7(k){k.9m();7(!m)c("2U")}},s.2U)}1R{k.9l(s.Q)}1W(e){E.5t(s,k,W,e)}7(!s.3l)c();J 1X(){7(s.1X)s.1X(Q,1A);7(s.2g)E.16.1U("5T",[k,s])}J 1z(){7(s.1z)s.1z(k,1A);7(s.2g)E.16.1U("5U",[k,s]);7(s.2g&&!--E.5M)E.16.1U("5V")}K k},5t:J(s,a,b,e){7(s.3e)s.3e(a,b,e);7(s.2g)E.16.1U("69",[a,s,e])},5M:0,73:J(r){1R{K!r.1A&&9k.9j=="5b:"||(r.1A>=6Y&&r.1A<9h)||r.1A==6X||r.1A==9e||E.14.26&&r.1A==10}1W(e){}K S},72:J(a,c){1R{L b=a.5B("70-5H");K a.1A==6X||b==E.4q[c]||E.14.26&&a.1A==10}1W(e){}K S},71:J(r,b){L c=r.5B("9d-U");L d=b=="3L"||!b&&c&&c.1g("3L")>=0;L a=d?r.9c:r.4e;7(d&&a.1I.28=="5C")6Z"5C";7(b=="1o")E.5l(a);7(b=="2O")a=4A("("+a+")");K a},3v:J(a){L s=[];7(a.1n==1N||a.5j)E.V(a,J(){s.1h(3s(6.37)+"="+3s(6.1C))});N P(L j 1r a)7(a[j]&&a[j].1n==1N)E.V(a[j],J(){s.1h(3s(j)+"="+3s(6))});N s.1h(3s(j)+"="+3s(a[j]));K s.6g("&").1p(/%20/g,"+")}});E.1i.1s({1J:J(c,b){K c?6.27({1P:"1J",29:"1J",1y:"1J"},c,b):6.1F(":23").V(J(){6.Y.18=6.5x||"";7(E.1m(6,"18")=="2D"){L a=E("<"+6.28+" />").6B("1k");6.Y.18=a.1m("18");7(6.Y.18=="2D")6.Y.18="3u";a.1Y()}}).3h()},1H:J(b,a){K b?6.27({1P:"1H",29:"1H",1y:"1H"},b,a):6.1F(":4b").V(J(){6.5x=6.5x||E.1m(6,"18");6.Y.18="2D"}).3h()},6U:E.1i.2h,2h:J(a,b){K E.1q(a)&&E.1q(b)?6.6U(a,b):a?6.27({1P:"2h",29:"2h",1y:"2h"},a,b):6.V(J(){E(6)[E(6).3K(":23")?"1J":"1H"]()})},98:J(b,a){K 6.27({1P:"1J"},b,a)},97:J(b,a){K 6.27({1P:"1H"},b,a)},96:J(b,a){K 6.27({1P:"2h"},b,a)},95:J(b,a){K 6.27({1y:"1J"},b,a)},94:J(b,a){K 6.27({1y:"1H"},b,a)},9f:J(c,a,b){K 6.27({1y:a},c,b)},27:J(l,k,j,h){L i=E.6V(k,j,h);K 6[i.2S===S?"V":"2S"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3K(":23"),4y=6;P(L p 1r l){7(l[p]=="1H"&&f||l[p]=="1J"&&!f)K E.1q(g.1z)&&g.1z.1j(6);7(p=="1P"||p=="29"){g.18=E.1m(6,"18");g.36=6.Y.36}}7(g.36!=W)6.Y.36="23";g.40=E.1s({},l);E.V(l,J(c,a){L e=1D E.2v(4y,g,c);7(/2h|1J|1H/.17(a))e[a=="2h"?f?"1J":"1H":a](l);N{L b=a.3D().1E(/^([+-]=)?([\\d+-.]+)(.*)$/),24=e.2o(R)||0;7(b){L d=2M(b[2]),2C=b[3]||"2P";7(2C!="2P"){4y.Y[c]=(d||1)+2C;24=((d||1)/e.2o(R))*24;4y.Y[c]=24+2C}7(b[1])d=((b[1]=="-="?-1:1)*d)+24;e.3Z(24,d,2C)}N e.3Z(24,a,"")}});K R})},2S:J(a,b){7(E.1q(a)||(a&&a.1n==1N)){b=a;a="2v"}7(!a||(1v a=="25"&&!b))K A(6[0],a);K 6.V(J(){7(b.1n==1N)A(6,a,b);N{A(6,a).1h(b);7(A(6,a).M==1)b.1j(6)}})},8Z:J(b,c){L a=E.3I;7(b)6.2S([]);6.V(J(){P(L i=a.M-1;i>=0;i--)7(a[i].O==6){7(c)a[i](R);a.6R(i,1)}});7(!c)6.5z();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2v";L q=E.Q(b,c+"2S");7(!q||a)q=E.Q(b,c+"2S",a?E.2H(a):[]);K q};E.1i.5z=J(a){a=a||"2v";K 6.V(J(){L q=A(6,a);q.4k();7(q.M)q[0].1j(6)})};E.1s({6V:J(b,a,c){L d=b&&b.1n==8Y?b:{1z:c||!c&&a||E.1q(b)&&b,2t:b,3Y:c&&a||a&&a.1n!=8W&&a};d.2t=(d.2t&&d.2t.1n==53?d.2t:{9w:8U,8T:6Y}[d.2t])||8S;d.5o=d.1z;d.1z=J(){7(d.2S!==S)E(6).5z();7(E.1q(d.5o))d.5o.1j(6)};K d},3Y:{6O:J(p,n,b,a){K b+a*p},5F:J(p,n,b,a){K((-1Z.9C(p*1Z.9D)/2)+0.5)*a+b}},3I:[],3T:W,2v:J(b,c,a){6.11=c;6.O=b;6.1l=a;7(!c.3U)c.3U={}}});E.2v.2m={4C:J(){7(6.11.33)6.11.33.1j(6.O,[6.2I,6]);(E.2v.33[6.1l]||E.2v.33.4o)(6);7(6.1l=="1P"||6.1l=="29")6.O.Y.18="3u"},2o:J(a){7(6.O[6.1l]!=W&&6.O.Y[6.1l]==W)K 6.O[6.1l];L r=2M(E.1m(6.O,6.1l,a));K r&&r>-8N?r:2M(E.2q(6.O,6.1l))||0},3Z:J(c,b,d){6.5s=(1D 3O()).3N();6.24=c;6.3h=b;6.2C=d||6.2C||"2P";6.2I=6.24;6.4E=6.4F=0;6.4C();L e=6;J t(a){K e.33(a)}t.O=6.O;E.3I.1h(t);7(E.3T==W){E.3T=54(J(){L a=E.3I;P(L i=0;i<a.M;i++)7(!a[i]())a.6R(i--,1);7(!a.M){74(E.3T);E.3T=W}},13)}},1J:J(){6.11.3U[6.1l]=E.1K(6.O.Y,6.1l);6.11.1J=R;6.3Z(0,6.2o());7(6.1l=="29"||6.1l=="1P")6.O.Y[6.1l]="8L";E(6.O).1J()},1H:J(){6.11.3U[6.1l]=E.1K(6.O.Y,6.1l);6.11.1H=R;6.3Z(6.2o(),0)},33:J(a){L t=(1D 3O()).3N();7(a||t>6.11.2t+6.5s){6.2I=6.3h;6.4E=6.4F=1;6.4C();6.11.40[6.1l]=R;L b=R;P(L i 1r 6.11.40)7(6.11.40[i]!==R)b=S;7(b){7(6.11.18!=W){6.O.Y.36=6.11.36;6.O.Y.18=6.11.18;7(E.1m(6.O,"18")=="2D")6.O.Y.18="3u"}7(6.11.1H)6.O.Y.18="2D";7(6.11.1H||6.11.1J)P(L p 1r 6.11.40)E.1K(6.O.Y,p,6.11.3U[p])}7(b&&E.1q(6.11.1z))6.11.1z.1j(6.O);K S}N{L n=t-6.5s;6.4F=n/6.11.2t;6.4E=E.3Y[6.11.3Y||(E.3Y.5F?"5F":"6O")](6.4F,n,0,1,6.11.2t);6.2I=6.24+((6.3h-6.24)*6.4E);6.4C()}K R}};E.2v.33={2i:J(a){a.O.2i=a.2I},2x:J(a){a.O.2x=a.2I},1y:J(a){E.1K(a.O.Y,"1y",a.2I)},4o:J(a){a.O.Y[a.1l]=a.2I+a.2C}};E.1i.5f=J(){L b=0,3b=0,O=6[0],5q;7(O)8K(E.14){L d=O.1b,45=O,1M=O.1M,1L=O.2u,5p=26&&4t(5n)<8H,2Z=E.1m(O,"3C")=="2Z";7(O.7b){L c=O.7b();1c(c.2c+1Z.2b(1L.1I.2i,1L.1k.2i),c.3b+1Z.2b(1L.1I.2x,1L.1k.2x));1c(-1L.1I.68,-1L.1I.67)}N{1c(O.5k,O.5K);2e(1M){1c(1M.5k,1M.5K);7(3X&&!/^t(8F|d|h)$/i.17(1M.28)||26&&!5p)3a(1M);7(!2Z&&E.1m(1M,"3C")=="2Z")2Z=R;45=/^1k$/i.17(1M.28)?45:1M;1M=1M.1M}2e(d&&d.28&&!/^1k|3q$/i.17(d.28)){7(!/^a0|1V.*$/i.17(E.1m(d,"18")))1c(-d.2i,-d.2x);7(3X&&E.1m(d,"36")!="4b")3a(d);d=d.1b}7((5p&&(2Z||E.1m(45,"3C")=="4Z"))||(3X&&E.1m(45,"3C")!="4Z"))1c(-1L.1k.5k,-1L.1k.5K);7(2Z)1c(1Z.2b(1L.1I.2i,1L.1k.2i),1Z.2b(1L.1I.2x,1L.1k.2x))}5q={3b:3b,2c:b}}J 3a(a){1c(E.2q(a,"a1",R),E.2q(a,"8D",R))}J 1c(l,t){b+=4t(l)||0;3b+=4t(t)||0}K 5q}})();',62,624,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|elem|for|data|true|false|document|type|each|null||style||undefined|options|nodeName||browser|nodeType|event|test|display|jQuery|arguments|parentNode|add|msie|window|url|indexOf|push|fn|apply|body|prop|css|constructor|script|replace|isFunction|in|extend|text|div|typeof|className|handle|opacity|complete|status|firstChild|value|new|match|filter|dataType|hide|documentElement|show|attr|doc|offsetParent|Array|call|height|cache|try|tbody|break|trigger|table|catch|success|remove|Math||ready|get|hidden|start|string|safari|animate|tagName|width|map|max|left|split|while|ret|global|toggle|scrollLeft|done|handler|special|prototype||cur|selected|curCSS|find|id|duration|ownerDocument|fx|toLowerCase|scrollTop|select|bind|guid|opera|unit|none|pushStack|toUpperCase|button|makeArray|now|nextSibling|target|stack|parseFloat|events|json|px|isReady|createElement|queue|delete|timeout|slice|disabled|removeChild|jsre|fixed|one|nth|preventDefault|step|merge|inArray|overflow|name|innerHTML|exec|border|top|readyState|multiFilter|error|trim|rl|end|form|first|appendChild|async|elems|insertBefore|checked|childNodes|html|which|encodeURIComponent|append|block|param|readyList|grep|color|setTimeout|runtimeStyle|args|position|toString|has|addEventListener|callee|removeData|timers|password|is|xml|last|getTime|Date|domManip|ajax|src|props|timerId|orig|getElementsByTagName|isXMLDoc|mozilla|easing|custom|curAnim|stopPropagation|unbind|load|selectedIndex|offsetChild|mouseleave|mouseenter|input|application|defaultView|visible|float|String|responseText|charCode|teardown|on|setup|currentStyle|shift|javascript|child|accepts|_default|nodeIndex|lastModified|RegExp|_|parseInt|jsonp|previousSibling|dir|tr|self|getAttribute|eval|empty|update|object|pos|state|setRequestHeader|ajaxSettings|not|GET|getPropertyValue|getComputedStyle|styleSheets|lastToggle|unload|mouseout|mouseover|andSelf|getWH|container2|unshift|fromElement|relatedTarget|visibility|init|absolute|click|fix|triggered|Number|setInterval|removeAttribute|prevObject|unique|classFilter|submit|after|file|clean|expr|windowData|offset|scroll|client|deep|jquery|offsetLeft|globalEval|sibling|version|old|safari2|results|wrapAll|startTime|handleError|container|createTextNode|radio|oldblock|checkbox|dequeue|bindReady|getResponseHeader|parsererror|lastChild|index|swing|00|Modified|ifModified|clone|offsetTop|values|active|getElementById|link|val|col|contentType|ajaxSend|ajaxSuccess|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|POST|loaded|DOMContentLoaded|Width|triggerHandler|ctrlKey|metaKey|keyCode|clientTop|clientLeft|ajaxError|clientX|pageX|cloneNode|detachEvent|swap|removeEventListener|join|attachEvent|substr|parse|head|textarea|reset|image|before|odd|zoom|even|prepend|username|quickClass|quickID|quickChild|processData|uuid|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|setArray|CSS1Compat|compatMode|cssFloat|styleFloat|webkit|nodeValue|eq|linear|replaceWith|concat|splice|100|href|_toggle|speed|alpha|304|200|throw|Last|httpData|httpNotModified|httpSuccess|clearInterval|beforeSend|colgroup|fieldset|multiple|XMLHttpRequest|ActiveXObject|getBoundingClientRect|scriptCharset|callback|plain|img|hasClass|br|urlencoded|www|abbr|pixelLeft|post|getJSON|getScript|elements|serialize|keypress|keydown|change|mouseup|mousedown|dblclick|resize|focus|blur|stylesheet|rel|mousemove|doScroll|round|hover|keyup|padding|offsetHeight|offsetWidth|Bottom|Top|Right|clientY|pageY|Left|toElement|srcElement|cancelBubble|returnValue|0n|substring|animated|header|enabled|ajaxSetup|innerText|noConflict|size|contains|only|line|gt|weight|lt|font|uFFFF|u0128|417|inner|Height|Boolean|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|wrap|prependTo|contentWindow|contentDocument|iframe|children|siblings|wrapInner|prevAll|nextAll|prev|next|parents|maxLength|maxlength|readOnly|readonly|borderTopWidth|class|able|htmlFor|522|reverse|boxModel|with|1px|compatible|10000|ie|ra|it|rv|400|fast|600|userAgent|Function|navigator|Object|stop|option|array|ig|NaN|fadeOut|fadeIn|slideToggle|slideUp|slideDown|setAttribute|changed|be|responseXML|content|1223|fadeTo|can|300|property|protocol|location|send|abort|getAttributeNode|specified|method|action|cssText|attributes|Accept|With|th|slow|Requested|td|GMT|cap|1970|cos|PI|Jan|colg|01|Thu|tfoot|Since|thead|If|Type|Content|leg|open|XMLHTTP|opt|Microsoft|embed|onreadystatechange|onload|area|charset|hr|http|inline|borderLeftWidth|1_|meta'.split('|'),0,{}))
js/spy.js ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ jQuery Plugin spy (leftlogic.com/info/articles/jquery_spy2)
3
+ (c) 2006 Remy Sharp (leftlogic.com)
4
+ $Id: spy.js,v 1.4 2006/09/30 11:05:04 remy Exp $
5
+ */
6
+ var spyRunning = 1;
7
+
8
+ (function($) {
9
+
10
+ $.fn.spy = function(settings) {
11
+ var spy = this;
12
+ spy.epoch = new Date(1970, 0, 1);
13
+ spy.last = '';
14
+ spy.parsing = 0;
15
+ spy.waitTimer = 0;
16
+ spy.json = null;
17
+
18
+ if (!settings.ajax) {
19
+ alert("An AJAX/AJAH URL must be set for the spy to work.");
20
+ return;
21
+ }
22
+
23
+ spy.attachHolder = function() {
24
+ // not mad on this, but the only way to parse HTML collections
25
+ if (o.method == 'html')
26
+ $('body').append('<div style="display: none!important;" id="_spyTmp"></div>');
27
+ }
28
+
29
+ // returns true for 'no dupe', and false for 'dupe found'
30
+ // latest = is latest ajax return value (raw)
31
+ // last = is previous ajax return value (raw)
32
+ // note that comparing latest and last if they're JSON objects
33
+ // always returns false, so you need to implement it manually.
34
+ spy.isDupe = function(latest, last) {
35
+ if ((last.constructor == Object) && (o.method == 'html'))
36
+ return (latest.html() == last.html());
37
+ else if (last.constructor == String)
38
+ return (latest == last);
39
+ else
40
+ return 0;
41
+ }
42
+
43
+ spy.timestamp = function() {
44
+ var now = new Date();
45
+ return Math.floor((now - spy.epoch) / 1000);
46
+ }
47
+
48
+ spy.parse = function(e, r) {
49
+ spy.parsing = 1; // flag to stop pull via ajax
50
+ if (o.method == 'html') {
51
+ $('div#_spyTmp').html(r); // add contents to hidden div
52
+ } else if (o.method == 'json') {
53
+ eval('spy.json = ' + r); // convert text to json
54
+ }
55
+
56
+ if ((o.method == 'json' && spy.json.constructor == Array) || o.method == 'html') {
57
+ if (spy.parseItem(e)) {
58
+ spy.waitTimer = window.setInterval(function() {
59
+ if (spyRunning) {
60
+ if (!spy.parseItem(e)) {
61
+ spy.parsing = 0;
62
+ clearInterval(spy.waitTimer);
63
+ }
64
+ }
65
+ }, o.pushTimeout);
66
+ } else {
67
+ spy.parsing = 0;
68
+ }
69
+ } else if (o.method == 'json') { // we just have 1
70
+ eval('spy.json = ' + r)
71
+ spy.addItem(e, spy.json);
72
+ spy.parsing = 0;
73
+ }
74
+ }
75
+
76
+ // returns true if there's more to parse
77
+ spy.parseItem = function(e) {
78
+ if (o.method == 'html') {
79
+ // note: pre jq-1.0 doesn't return the object
80
+ var i = $('div#_spyTmp').find('div:first').remove();
81
+ if (i.size() > 0) {
82
+ i.hide();
83
+ spy.addItem(e, i);
84
+ }
85
+ return ($('div#_spyTmp').find('div').size() != 0);
86
+ } else {
87
+ if (spy.json.length) {
88
+ var i = spy.json.shift();
89
+ spy.addItem(e, i);
90
+ }
91
+
92
+ return (spy.json.length != 0);
93
+ }
94
+ }
95
+
96
+ spy.addItem = function(e, i) {
97
+ if (! o.isDupe.call(this, i, spy.last)) {
98
+ spy.last = i; // note i is a pointer - so when it gets modified, so does spy.last
99
+ $('#' + e.id + ' > div:gt(' + (o.limit - 2) + ')').remove();
100
+ $('#' + e.id + ' > div:gt(' + (o.limit - o.fadeLast - 2) + ')').fadeEachDown();
101
+ o.push.call(e, i);
102
+ $('#' + e.id + ' > div:first').fadeIn(o.fadeInSpeed);
103
+ }
104
+ }
105
+
106
+ spy.push = function(r) {
107
+ $('#' + this.id).prepend(r);
108
+ }
109
+
110
+ var o = {
111
+ limit: (settings.limit || 10),
112
+ fadeLast: (settings.fadeLast || 5),
113
+ ajax: settings.ajax,
114
+ timeout: (settings.timeout || 3000),
115
+ pushTimeout: (settings.pushTimeout || settings.timeout || 3000),
116
+ method: (settings.method || 'html').toLowerCase(),
117
+ push: (settings.push || spy.push),
118
+ fadeInSpeed: (settings.fadeInSpeed || 'slow'), // 1400 = crawl
119
+ timestamp: (settings.timestamp || spy.timestamp),
120
+ isDupe: (settings.isDupe || spy.isDupe)
121
+ };
122
+
123
+ spy.attachHolder();
124
+
125
+ return this.each(function() {
126
+ var e = this;
127
+ var timestamp = o.timestamp.call();
128
+ var lr = ''; // last ajax return
129
+ spy.ajaxTimer = window.setInterval(function() {
130
+ if (spyRunning && (!spy.parsing)) {
131
+ $.post(o.ajax, { 'timestamp': timestamp }, function(r) {
132
+ spy.parse(e, r);
133
+ });
134
+ timestamp = o.timestamp.call();
135
+ }
136
+ }, o.timeout);
137
+ });
138
+ };
139
+
140
+ $.fn.fadeEachDown = function() {
141
+ var s = this.size();
142
+ return this.each(function(i) {
143
+ var o = 1 - (s == 1 ? 0.5 : 0.85/s*(i+1));
144
+ var e = this.style;
145
+ if (window.ActiveXObject)
146
+ e.filter = "alpha(opacity=" + o*100 + ")";
147
+ e.opacity = o;
148
+ });
149
+ };
150
+
151
+ })(jQuery);
152
+
153
+ function pauseSpy() {
154
+ spyRunning = 0; return false;
155
+ }
156
+
157
+ function playSpy() {
158
+ spyRunning = 1; return false;
159
+ }
js/thickbox.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Thickbox 3 - One Box To Rule Them All.
3
+ * By Cody Lindley (http://www.codylindley.com)
4
+ * Copyright (c) 2007 cody lindley
5
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
6
+ */
7
+
8
+ var tb_pathToImage = "/wp-content/plugins/wassup/img/loadingAnimation.gif";
9
+
10
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
js/ui.tabs.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Tabs 3 - New Wave Tabs
3
+ *
4
+ * Copyright (c) 2007 Klaus Hartl (stilbuero.de)
5
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
6
+ * and GPL (GPL-LICENSE.txt) licenses.
7
+ */
8
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){$.7=$.7||{};$.1M.4=5(a,b){3(a&&a.X==2Y){b=a;a=J}b=b||{};a=a&&a.X==1W&&--a||0;x 2.R(5(){37 $.7.4(2,$.19(b,{z:a}))})};$.R([\'2T\',\'2S\',\'2N\',\'2E\',\'2x\',\'2r\',\'2l\'],5(i,c){$.1M[\'4\'+c]=5(){6 b=1N;x 2.R(5(){6 a=$.7.4.1o(2);a[c.2a()].36(a,b)})}});$.1M.33=5(){6 b=-1;3(2[0]){6 a=$.7.4.1o(2[0]),$m=$(\'t\',2);b=$m.1k($m.16(\'.\'+a.y.v)[0]);$m=J}x b>=0?++b:-1};$.7.4=5(a,b){2.H=a;2.y=$.19({z:0,M:\'N\',1g:[],G:J,14:E,15:b.14?1y:E,1c:\'2k&#2j;\',1Q:E,1P:\'7-4-\',1m:{},1s:\'2f\',W:5(){},Y:5(){},1n:5(){},1a:5(){},N:5(){},D:5(){},B:5(){},T:5(){},27:\'<t><a l="#{l}"><S>#{25}</S></a></t>\',1J:\'<24></24>\',1I:\'7-4-2X\',v:\'7-4-2W\',1x:\'7-4-15\',12:\'7-4-1g\',18:\'7-4-1F\',P:\'7-4-D\',1e:\'7-4-2R\'},b);2.y.M+=\'.7-4\';2.y.G=$.G&&$.G.X==1C&&2.y.G;$.q(a,$.7.4.13,2);2.1i(1y)};$.7.4.13=\'2L\';$.7.4.1o=5(a){x $.q(a,$.7.4.13)};$.19($.7.4.2I,{1z:5(a){x a.1h&&a.1h.V(/\\s/g,\'23\').V(/[^A-2u-2s-9\\-23:\\.]/g,\'\')||2.y.1P+$.q(a)},1i:5(g){2.$m=$(\'t:2o(a[l])\',2.H);2.$4=2.$m.2m(5(){x $(\'a\',2)[0]});2.$8=$([]);6 f=2,o=2.y;2.$4.R(5(i,a){3(a.I&&a.I.V(\'#\',\'\')){f.$8=f.$8.W(a.I)}w 3($(a).U(\'l\')!=\'#\'){$.q(a,\'l\',a.l);6 b=f.1z(a);a.l=\'#\'+b;f.$8=f.$8.W($(\'#\'+b)[0]||$(o.1J).U(\'10\',b).u(o.18).2i(f.$8[i-1]||f.H))}w{o.1g.2h(i+1)}});3(g){$(2.H).L(o.1I)||$(2.H).u(o.1I);2.$8.R(5(){6 a=$(2);a.L(o.18)||a.u(o.18)});2g(6 i=0,1t;1t=o.1g[i];i++){2.1a(1t)}2.$4.R(5(i,a){3(1r.I){3(a.I==1r.I){o.z=i;3($.O.Z||$.O.2e){6 b=$(1r.I),1O=b.U(\'10\');b.U(\'10\',\'\');1p(5(){b.U(\'10\',1O)},2d)}2c(0,0);x E}}w 3(o.G){6 p=2b($.G($.7.4.13+$.q(f.H)));3(p&&f.$4[p]){o.z=p;x E}}w 3(f.$m.C(i).L(o.v)){o.z=i;x E}});6 n=2.$m.F;29(2.$m.C(o.z).L(o.12)&&n){o.z=++o.z<2.$m.F?o.z:0;n--}3(!n){o.14=o.15=1y}2.$8.u(o.P);2.$m.K(o.v);3(!o.14){2.$8.C(o.z).B().K(o.P);2.$m.C(o.z).u(o.v)}6 j=!o.14&&$.q(2.$4[o.z],\'l\');3(j){2.T(o.z+1,j)}3(!/^N/.35(o.M)){2.$4.28(\'N\',5(e){e.34()})}$(32).31(5(){f.$4.26(o.M);f.$m=f.$4=f.$8=J})}6 k={},1K=o.30||o.1s,Q={},1q=o.2Z||o.1s;3(o.1v||o.1w){3(o.1v){k[\'1u\']=\'B\';Q[\'1u\']=\'D\'}3(o.1w){k[\'11\']=\'B\';Q[\'11\']=\'D\'}}w{3(o.1H){k=o.1H}w{k[\'22-21\']=0;1K=1}3(o.1Z){Q=o.1Z}w{Q[\'22-21\']=0;1q=1}}6 h={1d:\'\',2U:\'\',1u:\'\'};3(!$.O.Z){h[\'11\']=\'\'}5 1G(b,c,a){c.1Y(Q,1q,5(){c.u(o.P).17(h);3($.O.Z&&Q[\'11\']){c[0].1X.16=\'\'}o.D(b,c[0],a&&a[0]||J);3(a){1j(b,a,c)}})}5 1j(b,a,c){3(!(o.1v||o.1w||o.1H)){a.17(\'1d\',\'1E\')}a.1Y(k,1K,5(){a.K(o.P).17(h);3($.O.Z&&k[\'11\']){a[0].1X.16=\'\'}o.B(b,a[0],c&&c[0]||J)})}5 1D(c,a,d,b){a.u(o.v).2Q().K(o.v);1G(c,d,b)}2.$4.26(o.M).28(o.M,5(){6 b=$(2).2P(\'t:C(0)\'),$D=f.$8.16(\':2O\'),$B=$(2.I);3((b.L(o.v)&&!o.15)||b.L(o.12)||o.N(2,$B[0],$D[0])===E){2.1f();x E}3(o.G){$.G($.7.4.13+$.q(f.H),f.$4.1k(2),o.G)}3(o.15){3(b.L(o.v)){b.K(o.v);f.$8.1B();1G(2,$D);2.1f();x E}w 3(!$D.F){f.$8.1B();3($.q(2,\'l\')){6 a=2;f.T(f.$4.1k(2)+1,$.q(2,\'l\'),5(){b.u(o.v).u(o.1x);1j(a,$B)})}w{b.u(o.v).u(o.1x);1j(2,$B)}2.1f();x E}}f.$8.1B();3($B.F){3($.q(2,\'l\')){6 a=2;f.T(f.$4.1k(2)+1,$.q(2,\'l\'),5(){1D(a,b,$D,$B)})}w{1D(2,b,$D,$B)}}w{1V\'1A 1U 1S: 2M 2K 2J.\';}3($.O.Z){2.1f()}x E})},W:5(d,b,f){3(d&&b){f=f||2.$4.F;6 o=2.y,$t=$(o.27.V(/#\\{l\\}/,d).V(/#\\{25\\}/,b));6 a=d.2H(\'#\')==0?d.V(\'#\',\'\'):2.1z($(\'a:2G-2F\',$t)[0]);6 c=$(\'#\'+a);c=c.F&&c||$(o.1J).U(\'10\',a).u(o.18).u(o.P);3(f>=2.$m.F){$t.1T(2.H);c.1T(2.H.2D)}w{$t.1R(2.$m[f-1]);c.1R(2.$8[f-1])}2.1i();3(2.$4.F==1){$t.u(o.v);c.K(o.P);6 e=$.q(2.$4[0],\'l\');3(e){2.T(f+1,e)}}o.W(2.$4[f],2.$8[f])}w{1V\'1A 1U 1S: 2C 2B 1N 2A W 2z.\';}},Y:5(a){3(a&&a.X==1W){6 o=2.y,$t=2.$m.C(a-1).Y(),$1F=2.$8.C(a-1).Y();3($t.L(o.v)&&2.$4.F>1){2.N(a+(a<2.$4.F?1:-1))}2.1i();o.Y($t.2y()[0],$1F[0])}},1n:5(a){6 o=2.y,$t=2.$m.C(a-1);$t.K(o.12);3($.O.2V){$t.17(\'1d\',\'2w-1E\');1p(5(){$t.17(\'1d\',\'1E\')},0)}o.1n(2.$4[a-1],2.$8[a-1])},1a:5(a){6 o=2.y;2.$m.C(a-1).u(o.12);o.1a(2.$4[a-1],2.$8[a-1])},N:5(a){2.$4.C(a-1).2v(2.y.M)},T:5(g,d,b){6 e=2,o=2.y,$a=2.$4.C(g-1),a=$a[0],$S=$(\'S\',a);3(d&&d.X==1C){b=d;d=J}3(d){$.q(a,\'l\',d)}w{d=$.q(a,\'l\')}3(o.1c){$.q(a,\'1h\',$S.1l());$S.1l(\'<20>\'+o.1c+\'</20>\')}6 c=5(){e.$4.16(\'.\'+o.1e).R(5(){$(2).K(o.1e);3(o.1c){$(\'S\',2).1l($.q(2,\'1h\'))}});e.1b=J};6 f=$.19({},o.1m,{2t:d,1L:5(r,s){$(a.I).1l(r);c();3(b&&b.X==1C){b()}3(o.1Q){$.2q(a,\'l\')}o.T(e.$4[g-1],e.$8[g-1]);o.1m.1L&&o.1m.1L(r,s)}});3(2.1b){2.1b.2p();c()}$a.u(o.1e);1p(5(){e.1b=$.2n(f)},0)},l:5(b,a){$.q(2.$4.C(b-1)[0],\'l\',a)}})})(1A);',62,194,'||this|if|tabs|function|var|ui|panels|||||||||||||href|lis||||data|||li|addClass|selectedClass|else|return|options|initial||show|eq|hide|false|length|cookie|source|hash|null|removeClass|hasClass|event|click|browser|hideClass|hideAnim|each|span|load|attr|replace|add|constructor|remove|msie|id|opacity|disabledClass|INSTANCE_KEY|unselected|unselect|filter|css|panelClass|extend|disable|xhr|spinner|display|loadingClass|blur|disabled|title|tabify|showTab|index|html|ajaxOptions|enable|getInstance|setTimeout|hideSpeed|location|fxSpeed|position|height|fxSlide|fxFade|unselectClass|true|tabId|jQuery|stop|Function|switchTab|block|panel|hideTab|fxShow|navClass|panelTemplate|showSpeed|success|fn|arguments|toShowId|idPrefix|cache|insertBefore|Tabs|appendTo|UI|throw|Number|style|animate|fxHide|em|width|min|_|div|text|unbind|tabTemplate|bind|while|toLowerCase|parseInt|scrollTo|500|opera|normal|for|push|insertAfter|8230|Loading|Href|map|ajax|has|abort|removeData|Load|z0|url|Za|trigger|inline|Click|end|tab|to|enough|Not|parentNode|Disable|child|first|indexOf|prototype|identifier|fragment|ui_tabs_instance|Mismatching|Enable|visible|parents|siblings|loading|Remove|Add|overflow|safari|selected|nav|Object|fxHideSpeed|fxShowSpeed|unload|window|tabsSelected|preventDefault|test|apply|new'.split('|'),0,{}))
lib/action.php ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('WASSUPFOLDER')) {
3
+ define('WASSUPFOLDER', dirname(__FILE__), TRUE);
4
+ }
5
+ if (!defined('ABSPATH')) {
6
+ define ('ABSPATH', substr(WASSUPFOLDER,0,strpos(WASSUPFOLDER,'/wp-content/')+1));
7
+ }
8
+ include_once(ABSPATH. 'wp-blog-header.php');
9
+ if (!function_exists('get_bloginfo')) {
10
+ include_once(ABSPATH.'wp-config.php');
11
+ }
12
+
13
+ include_once(WASSUPFOLDER. '/main.php');
14
+ $siteurl = get_bloginfo('siteurl');
15
+ $wpurl = get_bloginfo('wpurl');
16
+ $table_name = $wpdb->prefix . "wassup";
17
+
18
+ if ( $_GET['hash'] != wp_hash('wassup')) {
19
+ echo "Nothing to do here";
20
+ } else {
21
+ //Retrieve command-line arguments...
22
+ $max_char_len = ($_GET['width']/10);
23
+ if (isset($_GET['to_date'])) $to_date = urlencode(attribute_escape($_GET['to_date']));
24
+ else $to_date = wassup_get_time();
25
+ if (isset($_GET['from_date'])) $from_date = urlencode(attribute_escape($_GET['from_date']));
26
+ else $from_date = ($to_date - 3);
27
+ if (isset($_GET['rows'])) $rows = urlencode(attribute_escape($_GET['rows']));
28
+ else $rows = 999;
29
+
30
+ // ACTION: DELETE ON THE FLY FROM VISITOR DETAILS VIEW
31
+ if ($_GET['action'] == "delete") {
32
+ $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE wassup_id='%s'", urlencode(attribute_escape($_GET['id']))));
33
+ // ACTION: RUN SPY VIEW
34
+ } elseif ($_GET['action'] == "spy") {
35
+ //echo 'Starting spy from directory '.WASSUPFOLDER.' ABSPATH='.ABSPATH.'...<br />'; //debug...
36
+ spyview($from_date,$to_date,$rows);
37
+ // ACTION: SUMMARY PIE CHART
38
+ } elseif ($_GET['action'] == "piechart") {
39
+ // Prepare Pie Chart
40
+ $Tot = New MainItems;
41
+ $Tot->tableName = $table_name;
42
+ $Tot->from_date = $from_date;
43
+ $Tot->to_date = $to_date;
44
+ $items_pie[] = $Tot->calc_tot("items_by_type", $search, "spam");
45
+ $items_pie[] = $Tot->calc_tot("items_by_type", $search, "searchengine");
46
+ $items_pie[] = $Tot->calc_tot("items_by_type", $search, "referrer");
47
+ $items_pie[] = $Tot->calc_tot("items_by_type", $search, "direct");
48
+ echo "<div align='center'><img src=http://chart.apis.google.com/chart?cht=p3&chco=0000ff&chs=600x300&chl=Spam|Search%20Engine|Referrer|Direct&chd=".chart_data($items_pie, null, null, null, 'pie')."></div>";
49
+ // ACTION: DISPLAY RAW RECORDS
50
+ } elseif ($_GET['action'] == "displayraw") {
51
+ $raw_table = $wpdb->get_results("SELECT ip, hostname, agent, referrer, search, searchpage, os, browser, language FROM $table_name WHERE wassup_id='".urlencode(attribute_escape($_GET['wassup_id']))."' ORDER BY timestamp ASC LIMIT 1");
52
+ echo "<div><h2>Raw data:</h2>";
53
+ echo "<ul style='list-style-type:none;padding:20px 0 0 30px;'>";
54
+ foreach ($raw_table as $rt) {
55
+ if ($rt->ip != "") echo "<li>Ip: ".$rt->ip."</li>";
56
+ if ($rt->hostname != "") echo "<li>Hostname: ".$rt->hostname."</li>";
57
+ if ($rt->agent != "") echo "<li>User Agent: ".$rt->agent."</li>";
58
+ if ($rt->referrer != "") echo "<li>Referrer: ".urldecode($rt->referrer)."</li>";
59
+ if ($rt->search != "") echo "<li>Search: ".$rt->search."</li>";
60
+ if ($rt->os != "") echo "<li>OS: ".$rt->os."</li>";
61
+ if ($rt->browser != "") echo "<li>Browser: ".$rt->browser."</li>";
62
+ if ($rt->language != "") echo "<li>Labguage: ".$rt->language."</li>";
63
+ }
64
+ echo "<ul>
65
+ </div>";
66
+ // ACTION: RUN TOP TEN
67
+ } elseif ($_GET['action'] == "topten") {
68
+ //#get top 10 searches...
69
+ $ch_search = $wpdb->get_results("SELECT count(search) as top_search, search, referrer FROM $table_name WHERE search!='' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY search ORDER BY top_search DESC LIMIT 10");
70
+ //#get top 10 requests...
71
+ $ch_urlreq = $wpdb->get_results("SELECT count(urlrequested) as top_urlrequested, urlrequested FROM $table_name WHERE urlrequested!='' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY urlrequested ORDER BY top_urlrequested DESC LIMIT 10");
72
+ //#get top 50 referrers...will be narrowed down to 10
73
+ //# with exclusion of wpurl referrals...
74
+ $ch_referer = $wpdb->get_results("SELECT count(referrer) as top_referrer, referrer FROM $table_name WHERE referrer!='' AND spam='0' AND referrer NOT LIKE '%".$siteurl."%' AND searchengine='' AND timestamp BETWEEN $from_date AND $to_date GROUP BY referrer ORDER BY top_referrer DESC LIMIT 50");
75
+ //#get top 10 browsers...
76
+ $ch_browser = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND spam='0' AND browser NOT LIKE '%N/A%' AND timestamp BETWEEN $from_date AND $to_date GROUP BY browser ORDER BY top_browser DESC LIMIT 10");
77
+ //#get top 10 operating systems...
78
+ $ch_os = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' AND spam='0' AND timestamp BETWEEN $from_date AND $to_date GROUP BY os ORDER BY top_os DESC LIMIT 10");
79
+ ?>
80
+ <div>
81
+ <table border=0>
82
+ <tr valign="top">
83
+ <td width="25%">
84
+ <ul class="charts">
85
+ <li class="chartsT">TOP QUERY</li>
86
+ <?php
87
+ $char_len = round($max_char_len*.30,0);
88
+ foreach ($ch_search as $chS) {
89
+ print '<li class="charts">'.$chS->top_search.': <a href="'.$chS->referrer.'" target="_BLANK">'.stringShortener(preg_replace('/'.preg_quote($siteurl,'/').'/i', '', $chS->search),$char_len).'</a></li>'."\n";
90
+ } ?>
91
+ </ul>
92
+ </td>
93
+ <td width="20%">
94
+ <ul class="charts">
95
+ <li class="chartsT">TOP REFERER</li>
96
+ <?php
97
+ $char_len = round($max_char_len*.22,0);
98
+ $rec_count=0; //# of referrer records output...
99
+ foreach ($ch_referer as $chR) {
100
+ if ($rec_count < 10) { //limits output to 10...
101
+ //# exclude $wpurl from search results...
102
+ //# ...$siteurl already excluded in db query.
103
+ //if (!eregi($siteurl, $chR->referrer) {
104
+ if ($wpurl == $siteurl || !eregi($wpurl,$chR->referrer)) {
105
+ print '<li class="charts">'.$chR->top_referrer.': ';
106
+ print '<a href="'.$chR->referrer.'" title="'.$chR->referrer.'" target="_BLANK">';
107
+ //#cut "http://" from shown url, then truncate
108
+ //# instead of using stringShortener...
109
+ //print stringShortener($chR->referrer,round($max_char_len*.25,0)).'</a>'."\n";
110
+ print substr(preg_replace('/^'.preg_quote('http://','/').'/i', '', $chR->referrer),0,$char_len);
111
+ if (strlen($chR->referrer) > ($char_len + 7)) {
112
+ print '...';
113
+ }
114
+ print '</a></li>'."\n";
115
+ $rec_count=$rec_count+1;
116
+ } //end if !wpurl
117
+ } //end if rec_count
118
+ } ?>
119
+ </ul>
120
+ </td>
121
+ <td width="25%">
122
+ <ul class="charts">
123
+ <li class="chartsT">TOP REQUEST</li>
124
+ <?php
125
+ $char_len = round($max_char_len*.28,0);
126
+ foreach ($ch_urlreq as $chU) {
127
+ print '<li class="charts">'.$chU->top_urlrequested.': ';
128
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($chU->urlrequested))).'" title="'.html_entity_decode($chU->urlrequested).'" target="_BLANK">';
129
+ print stringShortener(urlencode(html_entity_decode($chU->urlrequested)),$char_len).'</a></li>'."\n";
130
+ } ?>
131
+ </ul>
132
+ </td>
133
+ <td width="16%">
134
+ <ul class="charts">
135
+ <li class="chartsT">TOP BROWSER</li>
136
+ <?php
137
+ $char_len = round($max_char_len*.17,0);
138
+ foreach ($ch_browser as $chB) {
139
+ print '<li class="charts"><span title="'.$chB->browser.'">';
140
+ print $chB->top_browser.': '.stringShortener($chB->browser, $char_len);
141
+ print '</span></li>'."\n";
142
+ } ?>
143
+ </ul>
144
+ </td>
145
+ <td width="14%">
146
+ <ul class="charts">
147
+ <li class="chartsT">TOP OS</li>
148
+ <?php
149
+ $char_len = round($max_char_len*.15,0);
150
+ foreach ($ch_os as $chO) {
151
+ print '<li class="charts"><span title="'.$chO->os.'">';
152
+ print $chO->top_os.': '.stringShortener($chO->os, $char_len);
153
+ print '</span></li>'."\n";
154
+ } ?>
155
+ </ul>
156
+ </td>
157
+ </tr>
158
+ </table>
159
+ <?php if ($wassup_settings['wassup_spamcheck'] == 1) { print '<span style="font-size:6pt;">* '.__("This top ten doesn't include Spam records","wassup").'</span>'; } ?>
160
+ </div>
161
+ <?php
162
+ }
163
+ }
164
+ ?>
lib/akismet.class.php ADDED
@@ -0,0 +1,388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * 01.07.2008 22:32:28est
4
+ *
5
+ * Akismet PHP4 class
6
+ *
7
+ * <b>Usage</b>
8
+ * <code>
9
+ * $comment = array(
10
+ * 'author' => 'viagra-test-123',
11
+ * 'email' => 'test@example.com',
12
+ * 'website' => 'http://www.example.com/',
13
+ * 'body' => 'This is a test comment',
14
+ * 'permalink' => 'http://yourdomain.com/yourblogpost.url',
15
+ * );
16
+ *
17
+ * $akismet = new Akismet('http://www.yourdomain.com/', 'YOUR_WORDPRESS_API_KEY', $comment);
18
+ *
19
+ * if($akismet->errorsExist()) {
20
+ * echo"Couldn't connected to Akismet server!";
21
+ * } else {
22
+ * if($akismet->isSpam()) {
23
+ * echo"Spam detected";
24
+ * } else {
25
+ * echo"yay, no spam!";
26
+ * }
27
+ * }
28
+ * </code>
29
+ *
30
+ * @author Bret Kuhns {@link www.miphp.net}
31
+ * @link http://www.miphp.net/blog/view/new_akismet_class/
32
+ * @version 0.3.4
33
+ * @license http://www.opensource.org/licenses/mit-license.php MIT License
34
+ */
35
+
36
+
37
+
38
+ // Error constants
39
+ define("AKISMET_SERVER_NOT_FOUND", 0);
40
+ define("AKISMET_RESPONSE_FAILED", 1);
41
+ define("AKISMET_INVALID_KEY", 2);
42
+
43
+
44
+
45
+ // Base class to assist in error handling between Akismet classes
46
+ class AkismetObject {
47
+ var $errors = array();
48
+
49
+
50
+ /**
51
+ * Add a new error to the errors array in the object
52
+ *
53
+ * @param String $name A name (array key) for the error
54
+ * @param String $string The error message
55
+ * @return void
56
+ */
57
+ // Set an error in the object
58
+ function setError($name, $message) {
59
+ $this->errors[$name] = $message;
60
+ }
61
+
62
+
63
+ /**
64
+ * Return a specific error message from the errors array
65
+ *
66
+ * @param String $name The name of the error you want
67
+ * @return mixed Returns a String if the error exists, a false boolean if it does not exist
68
+ */
69
+ function getError($name) {
70
+ if($this->isError($name)) {
71
+ return $this->errors[$name];
72
+ } else {
73
+ return false;
74
+ }
75
+ }
76
+
77
+
78
+ /**
79
+ * Return all errors in the object
80
+ *
81
+ * @return String[]
82
+ */
83
+ function getErrors() {
84
+ return (array)$this->errors;
85
+ }
86
+
87
+
88
+ /**
89
+ * Check if a certain error exists
90
+ *
91
+ * @param String $name The name of the error you want
92
+ * @return boolean
93
+ */
94
+ function isError($name) {
95
+ return isset($this->errors[$name]);
96
+ }
97
+
98
+
99
+ /**
100
+ * Check if any errors exist
101
+ *
102
+ * @return boolean
103
+ */
104
+ function errorsExist() {
105
+ return (count($this->errors) > 0);
106
+ }
107
+
108
+
109
+ }
110
+
111
+
112
+
113
+
114
+
115
+ // Used by the Akismet class to communicate with the Akismet service
116
+ class AkismetHttpClient extends AkismetObject {
117
+ var $akismetVersion = '1.1';
118
+ var $con;
119
+ var $host;
120
+ var $port;
121
+ var $apiKey;
122
+ var $blogUrl;
123
+ var $errors = array();
124
+
125
+
126
+ // Constructor
127
+ function AkismetHttpClient($host, $blogUrl, $apiKey, $port = 80) {
128
+ $this->host = $host;
129
+ $this->port = $port;
130
+ $this->blogUrl = $blogUrl;
131
+ $this->apiKey = $apiKey;
132
+ }
133
+
134
+
135
+ // Use the connection active in $con to get a response from the server and return that response
136
+ function getResponse($request, $path, $type = "post", $responseLength = 1160) {
137
+ $this->_connect();
138
+
139
+ if($this->con && !$this->isError(AKISMET_SERVER_NOT_FOUND)) {
140
+ $request =
141
+ strToUpper($type)." /{$this->akismetVersion}/$path HTTP/1.1\r\n" .
142
+ "Host: ".((!empty($this->apiKey)) ? $this->apiKey."." : null)."{$this->host}\r\n" .
143
+ "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" .
144
+ "Content-Length: ".strlen($request)."\r\n" .
145
+ "User-Agent: Akismet PHP4 Class\r\n" .
146
+ "\r\n" .
147
+ $request
148
+ ;
149
+ $response = "";
150
+
151
+ @fwrite($this->con, $request);
152
+
153
+ while(!feof($this->con)) {
154
+ $response .= @fgets($this->con, $responseLength);
155
+ }
156
+
157
+ $response = explode("\r\n\r\n", $response, 2);
158
+ return $response[1];
159
+ } else {
160
+ $this->setError(AKISMET_RESPONSE_FAILED, "The response could not be retrieved.");
161
+ }
162
+
163
+ $this->_disconnect();
164
+ }
165
+
166
+
167
+ // Connect to the Akismet server and store that connection in the instance variable $con
168
+ function _connect() {
169
+ if(!($this->con = @fsockopen($this->host, $this->port))) {
170
+ $this->setError(AKISMET_SERVER_NOT_FOUND, "Could not connect to akismet server.");
171
+ }
172
+ }
173
+
174
+
175
+ // Close the connection to the Akismet server
176
+ function _disconnect() {
177
+ @fclose($this->con);
178
+ }
179
+
180
+
181
+ }
182
+
183
+
184
+
185
+
186
+
187
+ // The controlling class. This is the ONLY class the user should instantiate in
188
+ // order to use the Akismet service!
189
+ class Akismet extends AkismetObject {
190
+ var $apiPort = 80;
191
+ var $akismetServer = 'rest.akismet.com';
192
+ var $akismetVersion = '1.1';
193
+ var $http;
194
+
195
+ var $ignore = array(
196
+ 'HTTP_COOKIE',
197
+ 'HTTP_X_FORWARDED_FOR',
198
+ 'HTTP_X_FORWARDED_HOST',
199
+ 'HTTP_MAX_FORWARDS',
200
+ 'HTTP_X_FORWARDED_SERVER',
201
+ 'REDIRECT_STATUS',
202
+ 'SERVER_PORT',
203
+ 'PATH',
204
+ 'DOCUMENT_ROOT',
205
+ 'SERVER_ADMIN',
206
+ 'QUERY_STRING',
207
+ 'PHP_SELF',
208
+ 'argv'
209
+ );
210
+
211
+ var $blogUrl = "";
212
+ var $apiKey = "";
213
+ var $comment = array();
214
+
215
+
216
+ /**
217
+ * Constructor
218
+ *
219
+ * Set instance variables, connect to Akismet, and check API key
220
+ *
221
+ * @param String $blogUrl The URL to your own blog
222
+ * @param String $apiKey Your wordpress API key
223
+ * @param String[] $comment A formatted comment array to be examined by the Akismet service
224
+ * @return Akismet
225
+ */
226
+ function Akismet($blogUrl, $apiKey, $comment = array()) {
227
+ $this->blogUrl = $blogUrl;
228
+ $this->apiKey = $apiKey;
229
+ $this->setComment($comment);
230
+
231
+ // Connect to the Akismet server and populate errors if they exist
232
+ $this->http = new AkismetHttpClient($this->akismetServer, $blogUrl, $apiKey);
233
+ if($this->http->errorsExist()) {
234
+ $this->errors = array_merge($this->errors, $this->http->getErrors());
235
+ }
236
+
237
+ // Check if the API key is valid
238
+ if(!$this->_isValidApiKey($apiKey)) {
239
+ $this->setError(AKISMET_INVALID_KEY, "Your Akismet API key is not valid.");
240
+ }
241
+ }
242
+
243
+
244
+ /**
245
+ * Query the Akismet and determine if the comment is spam or not
246
+ *
247
+ * @return boolean
248
+ */
249
+ function isSpam() {
250
+ $response = $this->http->getResponse($this->_getQueryString(), 'comment-check');
251
+
252
+ return ($response == "true");
253
+ }
254
+
255
+
256
+ /**
257
+ * Submit this comment as an unchecked spam to the Akismet server
258
+ *
259
+ * @return void
260
+ */
261
+ function submitSpam() {
262
+ $this->http->getResponse($this->_getQueryString(), 'submit-spam');
263
+ }
264
+
265
+
266
+ /**
267
+ * Submit a false-positive comment as "ham" to the Akismet server
268
+ *
269
+ * @return void
270
+ */
271
+ function submitHam() {
272
+ $this->http->getResponse($this->_getQueryString(), 'submit-ham');
273
+ }
274
+
275
+
276
+ /**
277
+ * Manually set the comment value of the instantiated object.
278
+ *
279
+ * @param Array $comment
280
+ * @return void
281
+ */
282
+ function setComment($comment) {
283
+ $this->comment = $comment;
284
+ if(!empty($comment)) {
285
+ $this->_formatCommentArray();
286
+ $this->_fillCommentValues();
287
+ }
288
+ }
289
+
290
+
291
+ /**
292
+ * Returns the current value of the object's comment array.
293
+ *
294
+ * @return Array
295
+ */
296
+ function getComment() {
297
+ return $this->comment;
298
+ }
299
+
300
+
301
+ /**
302
+ * Check with the Akismet server to determine if the API key is valid
303
+ *
304
+ * @access Protected
305
+ * @param String $key The Wordpress API key passed from the constructor argument
306
+ * @return boolean
307
+ */
308
+ function _isValidApiKey($key) {
309
+ $keyCheck = $this->http->getResponse("key=".$this->apiKey."&blog=".$this->blogUrl, 'verify-key');
310
+
311
+ return ($keyCheck == "valid");
312
+ }
313
+
314
+
315
+ /**
316
+ * Format the comment array in accordance to the Akismet API
317
+ *
318
+ * @access Protected
319
+ * @return void
320
+ */
321
+ function _formatCommentArray() {
322
+ $format = array(
323
+ 'type' => 'comment_type',
324
+ 'author' => 'comment_author',
325
+ 'email' => 'comment_author_email',
326
+ 'website' => 'comment_author_url',
327
+ 'body' => 'comment_content'
328
+ );
329
+
330
+ foreach($format as $short => $long) {
331
+ if(isset($this->comment[$short])) {
332
+ $this->comment[$long] = $this->comment[$short];
333
+ unset($this->comment[$short]);
334
+ }
335
+ }
336
+ }
337
+
338
+
339
+ /**
340
+ * Fill any values not provided by the developer with available values.
341
+ *
342
+ * @return void
343
+ */
344
+ function _fillCommentValues() {
345
+ if(!isset($this->comment['user_ip'])) {
346
+ $this->comment['user_ip'] = ($_SERVER['REMOTE_ADDR'] != getenv('SERVER_ADDR')) ? $_SERVER['REMOTE_ADDR'] : getenv('HTTP_X_FORWARDED_FOR');
347
+ }
348
+ if(!isset($this->comment['user_agent'])) {
349
+ $this->comment['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
350
+ }
351
+ if(!isset($this->comment['referrer'])) {
352
+ $this->comment['referrer'] = $_SERVER['HTTP_REFERER'];
353
+ }
354
+ if(!isset($this->comment['blog'])) {
355
+ $this->comment['blog'] = $this->blogUrl;
356
+ }
357
+ }
358
+
359
+
360
+ /**
361
+ * Build a query string for use with HTTP requests
362
+ *
363
+ * @access Protected
364
+ * @return String
365
+ */
366
+ function _getQueryString() {
367
+ foreach($_SERVER as $key => $value) {
368
+ if(!in_array($key, $this->ignore)) {
369
+ if($key == 'REMOTE_ADDR') {
370
+ $this->comment[$key] = $this->comment['user_ip'];
371
+ } else {
372
+ $this->comment[$key] = $value;
373
+ }
374
+ }
375
+ }
376
+
377
+ $query_string = '';
378
+
379
+ foreach($this->comment as $key => $data) {
380
+ $query_string .= $key . '=' . urlencode(stripslashes($data)) . '&';
381
+ }
382
+
383
+ return $query_string;
384
+ }
385
+
386
+
387
+ }
388
+ ?>
lib/main.php ADDED
@@ -0,0 +1,819 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!class_exists('pagination')) { //in case another app uses this class...
3
+ class pagination{
4
+ /*
5
+ Script Name: *Digg Style Paginator Class
6
+ Script URI: http://www.mis-algoritmos.com/2007/05/27/digg-style-pagination-class/
7
+ Description: Class in PHP that allows to use a pagination like a digg or sabrosus style.
8
+ Script Version: 0.3.2
9
+ Author: Victor De la Rocha
10
+ Author URI: http://www.mis-algoritmos.com
11
+ */
12
+ /*Default values*/
13
+ var $total_pages = null;
14
+ var $limit = null;
15
+ var $target = "";
16
+ var $page = 1;
17
+ var $adjacents = 2;
18
+ var $showCounter = false;
19
+ var $className = "pagination";
20
+ var $parameterName = "pages";
21
+ var $urlF = false;//urlFriendly
22
+
23
+ /*Buttons next and previous*/
24
+ var $nextT = "Next";
25
+ var $nextI = "&#187;"; //&#9658;
26
+ var $prevT = "Previous";
27
+ var $prevI = "&#171;"; //&#9668;
28
+
29
+ /*****/
30
+ var $calculate = false;
31
+
32
+ #Total items
33
+ function items($value){$this->total_pages = intval($value);}
34
+
35
+ #how many items to show per page
36
+ function limit($value){$this->limit = intval($value);}
37
+
38
+ #Page to sent the page value
39
+ function target($value){$this->target = $value;}
40
+
41
+ #Current page
42
+ function currentPage($value){$this->page = intval($value);}
43
+
44
+ #How many adjacent pages should be shown on each side of the current page?
45
+ function adjacents($value){$this->adjacents = intval($value);}
46
+
47
+ #show counter?
48
+ function showCounter($value=""){$this->showCounter=($value===true)?true:false;}
49
+
50
+ #to change the class name of the pagination div
51
+ function changeClass($value=""){$this->className=$value;}
52
+
53
+ function nextLabel($value){$this->nextT = $value;}
54
+ function nextIcon($value){$this->nextI = $value;}
55
+ function prevLabel($value){$this->prevT = $value;}
56
+ function prevIcon($value){$this->prevI = $value;}
57
+
58
+ #to change the class name of the pagination div
59
+ function parameterName($value=""){$this->parameterName=$value;}
60
+
61
+ #to change urlFriendly
62
+ function urlFriendly($value="%"){
63
+ if(eregi('^ *$',$value)){
64
+ $this->urlF=false;
65
+ return false;
66
+ }
67
+ $this->urlF=$value;
68
+ }
69
+
70
+ var $pagination;
71
+
72
+ function pagination(){}
73
+ function show(){
74
+ if(!$this->calculate)
75
+ if($this->calculate())
76
+ echo "<div class=\"$this->className\">$this->pagination</div>";
77
+ }
78
+ function get_pagenum_link($id){
79
+ if(strpos($this->target,'?')===false)
80
+ if($this->urlF)
81
+ return str_replace($this->urlF,$id,$this->target);
82
+ else
83
+ return "$this->target?$this->parameterName=$id";
84
+ else
85
+ return "$this->target&$this->parameterName=$id";
86
+ }
87
+
88
+ function calculate(){
89
+ $this->pagination = "";
90
+ $this->calculate == true;
91
+ $error = false;
92
+ if($this->urlF and $this->urlF != '%' and strpos($this->target,$this->urlF)===false){
93
+ //Es necesario especificar el comodin para sustituir
94
+ echo "Especificaste un wildcard para sustituir, pero no existe en el target<br />";
95
+ $error = true;
96
+ }elseif($this->urlF and $this->urlF == '%' and strpos($this->target,$this->urlF)===false){
97
+ echo "Es necesario especificar en el target el comodin % para sustituir el n�mero de p�gina<br />";
98
+ $error = true;
99
+ }
100
+ if($this->total_pages == null){
101
+ echo "It is necessary to specify the <strong>number of pages</strong> (\$class->items(1000))<br />";
102
+ $error = true;
103
+ }
104
+ if($this->limit == null){
105
+ echo "It is necessary to specify the <strong>limit of items</strong> to show per page (\$class->limit(10))<br />";
106
+ $error = true;
107
+ }
108
+ if($error)return false;
109
+
110
+ $n = trim($this->nextT.' '.$this->nextI);
111
+ $p = trim($this->prevI.' '.$this->prevT);
112
+
113
+ /* Setup vars for query. */
114
+ if($this->page)
115
+ $start = ($this->page - 1) * $this->limit; //first item to display on this page
116
+ else
117
+ $start = 0; //if no page var is given, set start to 0
118
+
119
+ /* Setup page vars for display. */
120
+ if ($this->page == 0) $this->page = 1; //if no page var is given, default to 1.
121
+ $prev = $this->page - 1; //previous page is page - 1
122
+ $next = $this->page + 1; //next page is page + 1
123
+ $lastpage = ceil($this->total_pages/$this->limit); //lastpage is = total pages / items per page, rounded up.
124
+ $lpm1 = $lastpage - 1; //last page minus 1
125
+
126
+ /*
127
+ Now we apply our rules and draw the pagination object.
128
+ We're actually saving the code to a variable in case we want to draw it more than once.
129
+ */
130
+
131
+ if($lastpage > 1){
132
+ //anterior button
133
+ if($this->page > 1)
134
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($prev)."\">$p</a>";
135
+ else
136
+ $this->pagination .= "<span class=\"disabled\">$p</span>";
137
+ //pages
138
+ if ($lastpage < 7 + ($this->adjacents * 2)){//not enough pages to bother breaking it up
139
+ for ($counter = 1; $counter <= $lastpage; $counter++){
140
+ if ($counter == $this->page)
141
+ $this->pagination .= "<span class=\"current\">$counter</span>";
142
+ else
143
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
144
+ }
145
+ }
146
+ elseif($lastpage > 5 + ($this->adjacents * 2)){//enough pages to hide some
147
+ //close to beginning; only hide later pages
148
+ if($this->page < 1 + ($this->adjacents * 2)){
149
+ for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++){
150
+ if ($counter == $this->page)
151
+ $this->pagination .= "<span class=\"current\">$counter</span>";
152
+ else
153
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
154
+ }
155
+ $this->pagination .= "...";
156
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
157
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
158
+ }
159
+ //in middle; hide some front and some back
160
+ elseif($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)){
161
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
162
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
163
+ $this->pagination .= "...";
164
+ for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++)
165
+ if ($counter == $this->page)
166
+ $this->pagination .= "<span class=\"current\">$counter</span>";
167
+ else
168
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
169
+ $this->pagination .= "...";
170
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
171
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
172
+ }
173
+ //close to end; only hide early pages
174
+ else{
175
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
176
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
177
+ $this->pagination .= "...";
178
+ for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++)
179
+ if ($counter == $this->page)
180
+ $this->pagination .= "<span class=\"current\">$counter</span>";
181
+ else
182
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
183
+ }
184
+ }
185
+ //siguiente button
186
+ if ($this->page < $counter - 1)
187
+ $this->pagination .= "<a href=\"".$this->get_pagenum_link($next)."\">$n</a>";
188
+ else
189
+ $this->pagination .= "<span class=\"disabled\">$n</span>";
190
+ if($this->showCounter)$this->pagination .= "<div class=\"pagination_data\">($this->total_pages Pages)</div>";
191
+ }
192
+
193
+ return true;
194
+ }
195
+ } //end class pagination
196
+ } //end if !class_exists('pagination')
197
+
198
+
199
+ if (!class_exists('Detector')) { //in case another app uses this class...
200
+ //
201
+ // Detector class (c) Mohammad Hafiz bin Ismail 2006
202
+ // detect location by ipaddress
203
+ // detect browser type and operating system
204
+ //
205
+ // November 27, 2006
206
+ //
207
+ // by : Mohammad Hafiz bin Ismail (info@mypapit.net)
208
+ //
209
+ // You are allowed to use this work under the terms of
210
+ // Creative Commons Attribution-Share Alike 3.0 License
211
+ //
212
+ // Reference : http://creativecommons.org/licenses/by-sa/3.0/
213
+ //
214
+
215
+ class Detector {
216
+
217
+ var $town;
218
+ var $state;
219
+ var $country;
220
+ var $ccode;
221
+ var $longitude;
222
+ var $latitude;
223
+ var $ipaddress;
224
+ var $txt;
225
+
226
+ var $browser;
227
+ var $browser_version;
228
+ var $os_version;
229
+ var $os;
230
+ var $useragent;
231
+
232
+ function Detector($ip="", $ua="")
233
+ {
234
+ $apiserver="http://showip.fakap.net/txt/";
235
+ if ($ip != "") {
236
+ if (preg_match('/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/',$ip,$matches))
237
+ {
238
+ $this->ipaddress=$ip;
239
+ }
240
+
241
+ else { $this->ipaddress = "0.0.0.0"; }
242
+
243
+ //uncomment this below if CURL doesnt work
244
+
245
+ $this->txt=file_get_contents($apiserver . "$ip");
246
+
247
+ $wtf=$this->txt;
248
+ $this->processTxt($wtf);
249
+ }
250
+
251
+ $this->useragent=$ua;
252
+ $this->check_os($ua);
253
+ $this->check_browser($ua);
254
+ }
255
+
256
+ function processTxt($wtf)
257
+
258
+ {
259
+ // $tok = strtok($txt, ',');
260
+ $this->town = strtok($wtf,',');
261
+ $this->state = strtok(',');
262
+ $this->country=strtok(',');
263
+ $this->ccode = strtok(',');
264
+ $this->latitude=strtok(',');
265
+ $this->longitude=strtok(',');
266
+ }
267
+
268
+ function check_os($useragent) {
269
+
270
+ $os = "N/A"; $version = "N/A";
271
+
272
+ if (preg_match("/Windows NT 5.1/",$useragent,$match)) {
273
+ $os = "Windows"; $version = "XP";
274
+ } elseif (preg_match("/Windows NT 5.2/",$useragent,$match)) {
275
+ $os = "Windows"; $version = "Server 2003";
276
+ } elseif (preg_match("/Windows NT 6.0/",$useragent,$match)) {
277
+ $os = "Windows"; $version = "Vista";
278
+ } elseif (preg_match("/(?:Windows NT 5.0|Windows 2000)/",$useragent,$match)) {
279
+ $os = "Windows"; $version = "2000";
280
+ } elseif (preg_match("/Windows ME/",$useragent,$match)) {
281
+ $os = "Windows"; $version = "ME";
282
+ } elseif (preg_match("/(?:WinNT|Windows\s?NT)\s?([0-9\.]+)?/",$useragent,$match)) {
283
+ $os = "Windows"; $version = "NT ".$match[1];
284
+ } elseif (preg_match("/Mac OS X/",$useragent,$match)) {
285
+ $os = "Mac OS"; $version = "X";
286
+ } elseif (preg_match("/(Mac_PowerPC|Macintosh)/",$useragent,$match)) {
287
+ $os = "Mac OS"; $version = "";
288
+ } elseif (preg_match("/(?:Windows95|Windows 95|Win95|Win 95)/",$useragent,$match)) {
289
+ $os = "Windows"; $version = "95";
290
+ } elseif (preg_match("/(?:Windows98|Windows 98|Win98|Win 98)/",$useragent,$match)) {
291
+ $os = "Windows"; $version = "98";
292
+ } elseif (preg_match("/(?:WindowsCE|Windows CE|WinCE|Win CE)/",$useragent,$match)) {
293
+ $os = "Windows"; $version = "CE";
294
+ } elseif (preg_match("/PalmOS/",$useragent,$match)) {
295
+ $os = "PalmOS";
296
+ } elseif (preg_match("/\(PDA(?:.*)\)(.*)Zaurus/",$useragent,$match)) {
297
+ $os = "Sharp Zaurus";
298
+ } elseif (preg_match("/Linux\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
299
+ $os = "Linux"; $version = $match[1];
300
+ } elseif (preg_match("/NetBSD\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
301
+ $os = "NetBSD"; $version = $match[1];
302
+ } elseif (preg_match("/OpenBSD\s*([0-9\.]+)?/",$useragent,$match)) {
303
+ $os = "OpenBSD"; $version = $match[1];
304
+ } elseif (preg_match("/CYGWIN\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2}\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
305
+ $os = "CYGWIN"; $version = $match[1];
306
+ } elseif (preg_match("/SunOS\s*([0-9\.]+)?/",$useragent,$match)) {
307
+ $os = "SunOS"; $version = $match[1];
308
+ } elseif (preg_match("/IRIX\s*([0-9\.]+)?/",$useragent,$match)) {
309
+ $os = "SGI IRIX"; $version = $match[1];
310
+ } elseif (preg_match("/FreeBSD\s*((?:i[0-9]{3})?\s*(?:[0-9]\.[0-9]{1,2})?\s*(?:i[0-9]{3})?)?/",$useragent,$match)) {
311
+ $os = "FreeBSD"; $version = $match[1];
312
+ } elseif (preg_match("/SymbianOS\/([0-9.]+)/i",$useragent,$match)) {
313
+ $os = "SymbianOS"; $version = $match[1];
314
+ } elseif (preg_match("/Symbian\/([0-9.]+)/i",$useragent,$match)) {
315
+ $os = "Symbian"; $version = $match[1];
316
+ } elseif (preg_match("/PLAYSTATION 3/",$useragent,$match)) {
317
+ $os = "Playstation"; $version = 3;
318
+ }
319
+
320
+ $this->os = $os;
321
+ $this->os_version = $version;
322
+ }
323
+
324
+ function check_browser($useragent) {
325
+
326
+ $browser = "N/A";
327
+
328
+ if (preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s(?:.*)Opera\s([0-9\.]+)/",$useragent,$match)) {
329
+ $browser = "Opera";
330
+ } elseif (preg_match("/^Opera\/([0-9\.]+)/",$useragent,$match)) {
331
+ $browser = "Opera";
332
+ } elseif (preg_match("/^Mozilla(?:.*)compatible;\siCab\s([0-9\.]+)/",$useragent,$match)) {
333
+ $browser = "iCab";
334
+ } elseif (preg_match("/^iCab\/([0-9\.]+)/",$useragent,$match)) {
335
+ $browser = "iCab";
336
+ } elseif (preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s([0-9\.]+)/",$useragent,$match)) {
337
+ $browser = "MSIE";
338
+ } elseif (preg_match("/^Mozilla(?:.*)\(Macintosh(?:.*)Safari\/([0-9\.]+)/",$useragent,$match)) {
339
+ $browser = "Safari";
340
+ } elseif (preg_match("/^Mozilla(?:.*)\(Macintosh(?:.*)OmniWeb\/v([0-9\.]+)/",$useragent,$match)) {
341
+ $browser = "Omniweb";
342
+ } elseif (preg_match("/^Mozilla(?:.*)\(compatible; Google Desktop/",$useragent,$match)) {
343
+ $browser = "Google Desktop";
344
+ } elseif (preg_match("/^Mozilla(?:.*)\(compatible;\sOmniWeb\/([0-9\.v-]+)/",$useragent,$match)) {
345
+ $browser = "Omniweb";
346
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Netscape\/([0-9\.]+)/",$useragent,$match)) {
347
+ $browser = "Netscape";
348
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)(?:Fire(?:fox|bird)|Phoenix)\/([0-9\.]+)/",$useragent,$match)) {
349
+ $browser = "Mozilla Firefox";
350
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Minefield\/([0-9\.]+)/",$useragent,$match)) {
351
+ $browser = "Minefield";
352
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)Epiphany\/([0-9\.]+)/",$useragent,$match)) {
353
+ $browser = "Epiphany";
354
+ } elseif (preg_match("/^Mozilla(?:.*)Galeon\/([0-9\.]+)\s(?:.*)Gecko/",$useragent,$match)) {
355
+ $browser = "Galeon";
356
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)K-Meleon\/([0-9\.]+)/",$useragent,$match)) {
357
+ $browser = "K-Meleon";
358
+ } elseif (preg_match("/^Mozilla(?:.*)Gecko(?:.*?)(?:Camino|Chimera)\/([0-9\.]+)/",$useragent,$match)) {
359
+ $browser = "Camino";
360
+ } elseif (preg_match("/^Mozilla(?:.*)rv:([0-9\.]+)\)\sGecko/",$useragent,$match)) {
361
+ $browser = "Mozilla";
362
+ } elseif (preg_match("/^Mozilla(?:.*)compatible;\sKonqueror\/([0-9\.]+);/",$useragent,$match)) {
363
+ $browser = "Konqueror";
364
+ } elseif (preg_match("/^Mozilla\/(?:[34]\.[0-9]+)(?:.*)AvantGo\s([0-9\.]+)/",$useragent,$match)) {
365
+ $browser = "AvantGo";
366
+ } elseif (preg_match("/^Mozilla(?:.*)NetFront\/([34]\.[0-9]+)/",$useragent,$match)) {
367
+ $browser = "NetFront";
368
+ } elseif (preg_match("/^Mozilla\/([34]\.[0-9]+)/",$useragent,$match)) {
369
+ $browser = "Netscape";
370
+ } elseif (preg_match("/^Liferea\/([0-9\.]+)/",$useragent,$match)) {
371
+ $browser = "Liferea";
372
+ } elseif (preg_match("/^curl\/([0-9\.]+)/",$useragent,$match)) {
373
+ $browser = "curl";
374
+ } elseif (preg_match("/^links\/([0-9\.]+)/i",$useragent,$match)) {
375
+ $browser = "Links";
376
+ } elseif (preg_match("/^links\s?\(([0-9\.]+)/i",$useragent,$match)) {
377
+ $browser = "Links";
378
+ } elseif (preg_match("/^lynx\/([0-9a-z\.]+)/i",$useragent,$match)) {
379
+ $browser = "Lynx";
380
+ } elseif (preg_match("/^Wget\/([0-9\.]+)/i",$useragent,$match)) {
381
+ $browser = "Wget";
382
+ } elseif (preg_match("/^Xiino\/([0-9\.]+)/i",$useragent,$match)) {
383
+ $browser = "Xiino";
384
+ } elseif (preg_match("/^W3C_Validator\/([0-9\.]+)/i",$useragent,$match)) {
385
+ $browser = "W3C Validator";
386
+ } elseif (preg_match("/^Jigsaw(?:.*) W3C_CSS_Validator_(?:[A-Z]+)\/([0-9\.]+)/i",$useragent,$match)) {
387
+ $browser = "W3C CSS Validator";
388
+ } elseif (preg_match("/^Dillo\/([0-9\.]+)/i",$useragent,$match)) {
389
+ $browser = "Dillo";
390
+ } elseif (preg_match("/^amaya\/([0-9\.]+)/i",$useragent,$match)) {
391
+ $browser = "Amaya";
392
+ } elseif (preg_match("/^DocZilla\/([0-9\.]+)/i",$useragent,$match)) {
393
+ $browser = "DocZilla";
394
+ } elseif (preg_match("/^fetch\slibfetch\/([0-9\.]+)/i",$useragent,$match)) {
395
+ $browser = "FreeBSD libfetch";
396
+ } elseif (preg_match("/^Nokia([0-9a-zA-Z\-.]+)\/([0-9\.]+)/i",$useragent,$match)) {
397
+ $browser="Nokia";
398
+ } elseif (preg_match("/^SonyEricsson([0-9a-zA-Z\-.]+)\/([a-zA-Z0-9\.]+)/i",$useragent,$match)) {
399
+ $browser="SonyEricsson";
400
+ }
401
+
402
+ $version = $match[1];
403
+
404
+ $this->browser = $browser;
405
+ $this->browser_version = $version;
406
+ }
407
+ } //end class Detector
408
+ } //end if !class_exists('Detector')
409
+
410
+ function wassup_get_time() {
411
+ $timeright = gmdate("U");
412
+ $offset = (get_option("gmt_offset")*60*60);
413
+ $timeright = ($timeright + $offset) ;
414
+ return $timeright;
415
+ }
416
+
417
+ /*
418
+ # PHP Calendar (version 2.3), written by Keith Devens
419
+ # http://keithdevens.com/software/php_calendar
420
+ # see example at http://keithdevens.com/weblog
421
+ # License: http://keithdevens.com/software/license
422
+ */
423
+ //
424
+ // Currently not used in WassUp it's a next implementation idea
425
+ //
426
+ function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()){
427
+ $first_of_month = gmmktime(0,0,0,$month,1,$year);
428
+ #remember that mktime will automatically correct if invalid dates are entered
429
+ # for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
430
+ # this provides a built in "rounding" feature to generate_calendar()
431
+
432
+ $day_names = array(); #generate all the day names according to the current locale
433
+ for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday
434
+ $day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name
435
+
436
+ list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
437
+ $weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day
438
+ $title = htmlentities(ucfirst($month_name)).'&nbsp;'.$year; #note that some locales don't capitalize month and day names
439
+
440
+ #Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
441
+ @list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
442
+ if($p) $p = '<span class="calendar-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span>&nbsp;';
443
+ if($n) $n = '&nbsp;<span class="calendar-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>';
444
+ $calendar = '<table class="calendar">'."\n".
445
+ '<caption class="calendar-month">'.$p.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).$n."</caption>\n<tr>";
446
+
447
+ if($day_name_length){ #if the day names should be shown ($day_name_length > 0)
448
+ #if day_name_length is >3, the full name of the day will be printed
449
+ foreach($day_names as $d)
450
+ $calendar .= '<th abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
451
+ $calendar .= "</tr>\n<tr>";
452
+ }
453
+
454
+ if($weekday > 0) $calendar .= '<td colspan="'.$weekday.'">&nbsp;</td>'; #initial 'empty' days
455
+ for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
456
+ if($weekday == 7){
457
+ $weekday = 0; #start a new week
458
+ $calendar .= "</tr>\n<tr>";
459
+ }
460
+ if(isset($days[$day]) and is_array($days[$day])){
461
+ @list($link, $classes, $content) = $days[$day];
462
+ if(is_null($content)) $content = $day;
463
+ $calendar .= '<td'.($classes ? ' class="'.htmlspecialchars($classes).'">' : '>').
464
+ ($link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
465
+ }
466
+ else $calendar .= "<td>$day</td>";
467
+ }
468
+ if($weekday != 7) $calendar .= '<td colspan="'.(7-$weekday).'">&nbsp;</td>'; #remaining "empty" days
469
+
470
+ return $calendar."</tr>\n</table>\n";
471
+ }
472
+
473
+ //Truncate $input string to a length of $max
474
+ function stringShortener($input, $max=0, $separator="(...)", $exceedFromEnd=0){
475
+ if(!$input || !is_string($input)){return false;};
476
+
477
+ //Replace all %-hex chars with literals and trim the input string of whitespaces
478
+ // ...because it is shorter and more legible -Helene D. 11/18/07
479
+ $input = trim(rawurldecode($input));
480
+
481
+ $inputlen=strlen($input);
482
+ $max=(is_numeric($max))?(integer)$max:$inputlen;
483
+ if($max>=$inputlen){return $input;};
484
+ $separator=($separator)?$separator:"(...)";
485
+ $modulus=(($max%2));
486
+ $halfMax=floor($max/2);
487
+ $begin="";
488
+ if(!$modulus){$begin=substr($input, 0, $halfMax);}
489
+ else{$begin=(!$exceedFromEnd)? substr($input, 0, $halfMax+1) : substr($input, 0, $halfMax);}
490
+ $end="";
491
+ if(!$modulus){$end=substr($input,$inputlen-$halfMax);}
492
+ else{$end=($exceedFromEnd)? substr($input,$inputlen-$halfMax-1) :substr($input,$inputlen-$halfMax);}
493
+ $extracted=substr( $input, strpos($input,$begin)+strlen($begin), $inputlen-$max );
494
+ $outstring = $begin.$separator.$end;
495
+ if (strlen($outstring) >= $inputlen) { //Because "Fir(...)fox" is longer than "Firefox"
496
+ $outstring = $input;
497
+ }
498
+ //# added WP 2.x function attribute_escape to help make malicious
499
+ //# code harmless when echoed to screen...
500
+ if (function_exists('attribute_escape')) {
501
+ return attribute_escape($outstring);
502
+ } else {
503
+ return addslashes($outstring);
504
+ }
505
+ }
506
+
507
+ //# Return a value of true if url argument is a root url and false when
508
+ //# url constains a subdirectory path or query parameters...
509
+ //# - Helene D. 2007
510
+ function url_rootcheck($urltocheck) {
511
+ $isroot = false;
512
+ //url must begin with 'http://'
513
+ if (strncasecmp($urltocheck,'http://',7) == 0) {
514
+ $isroot = true;
515
+ $urlparts=parse_url($urltocheck);
516
+ if (!empty($urlparts['path']) && $urlparts['path'] != "/") {
517
+ $isroot=false;
518
+ } elseif (!empty($urlparts['query'])) {
519
+ $isroot=false;
520
+ }
521
+ }
522
+ return $isroot;
523
+ }
524
+
525
+ //#from a page/post url input, output a url with "$siteurl" prepended for
526
+ //# blogs that have wordpress installed in a separate folder
527
+ //# -Helene D. 1/22/08
528
+ function wAddSiteurl($inputurl) {
529
+ $wpurl = get_bloginfo('wpurl');
530
+ $siteurl = get_bloginfo('siteurl');
531
+ if (strcasecmp($siteurl, $wpurl) == 0) {
532
+ $outputurl=$inputurl;
533
+ } elseif (stristr($inputurl,$siteurl) === FALSE && url_rootcheck($siteurl)) {
534
+ $outputurl="$siteurl$inputurl";
535
+ } else {
536
+ $outputurl=$inputurl;
537
+ }
538
+ return $outputurl;
539
+ }
540
+
541
+ //Output wassup records in Digg spy style...
542
+ function spyview ($from_date="",$to_date="",$rows="999") {
543
+ global $wpdb;
544
+
545
+ //check for arguments...
546
+ if(empty($to_date)) $to_date = wassup_get_time();
547
+ if (empty($from_date)) $from_date = ($to_date - 5);
548
+ $table_name = $wpdb->prefix . "wassup";
549
+
550
+ if (function_exists('get_option')) {
551
+ $wassup_settings = get_option('wassup_settings');
552
+ }
553
+ if (!empty($wassup_settings['wassup_screen_res'])) {
554
+ $screen_res_size = (int) $wassup_settings['wassup_screen_res'];
555
+ } else {
556
+ $screen_res_size = 670;
557
+ }
558
+ $max_char_len = ($screen_res_size)/10;
559
+ if (function_exists('get_bloginfo')) {
560
+ $wpurl = get_bloginfo('wpurl');
561
+ $siteurl = get_bloginfo('siteurl');
562
+ }
563
+
564
+ $qryC = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, searchengine, urlrequested, agent, referrer, spider, username, comment_author FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date GROUP BY id ORDER BY max_timestamp DESC");
565
+
566
+ if (!empty($qryC)) {
567
+ //restrict # of rows to display when needed...
568
+ $row_count = 0;
569
+ //display the rows...
570
+ foreach ($qryC as $cv) {
571
+ if ( $row_count < (int)$rows ) {
572
+ $timestamp = $cv->max_timestamp;
573
+ $ip = @explode(",", $cv->ip);
574
+ if ($cv->referrer != '') {
575
+ if (!eregi($wpurl, $cv->referrer) OR $cv->searchengine != "") {
576
+ if (!eregi($wpurl, $cv->referrer) AND $cv->searchengine == "") {
577
+ $referrer = '<a href="'.$cv->referrer.'" target=_"BLANK"><span style="font-weight: bold;">'.stringShortener($cv->referrer, round($max_char_len*.8,0)).'</span></a>';
578
+ } else {
579
+ $referrer = '<a href="'.$cv->referrer.'" target=_"BLANK">'.stringShortener($cv->referrer, round($max_char_len*.9,0)).'</a>';
580
+ }
581
+ } else {
582
+ $referrer = "Direct hit";
583
+ }
584
+ } else {
585
+ $referrer = "From your blog";
586
+ }
587
+ // User is logged in or is a comment's author
588
+ if ($cv->username != "" AND $cv->comment_author != "") {
589
+ $unclass = "-log";
590
+ } elseif ($cv->comment_author != "") {
591
+ $unclass = "-aut";
592
+ } elseif ($cv->spider != "") {
593
+ $unclass = "-spider";
594
+ } ?>
595
+ <div class="sum-spy">
596
+ <span class="sum-box<?php print $unclass; ?>">
597
+ <?php print $ip[0]; ?></span>
598
+ <div class="sum-det"><span class="det1">
599
+ <?php
600
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cv->urlrequested))).'" target="_BLANK">';
601
+ print stringShortener(html_entity_decode($cv->urlrequested), round($max_char_len*.9,0)); ?>
602
+ </a></span><br />
603
+ <span class="det2"><strong><?php print gmdate("H:i:s", $timestamp); ?> - </strong>
604
+ <?php print $referrer; ?></span>
605
+ </div></div>
606
+ <?php } //end if row_count
607
+ $row_count=$row_count+1;
608
+ } //end foreach
609
+ } else {
610
+ //display "no activity" periodically so we know spy is running...
611
+ if ((int)$to_date%7 == 0 ) {
612
+ echo '<div class="sum-spy"><span class="det3">'.gmdate("H:i:s",$to_date).' - No visitor activity &nbsp; &nbsp; :-( &nbsp; </span></div>';
613
+ }
614
+ } //end if !empty($qryC)
615
+ } //end function spyview
616
+
617
+ // How many digits have an integer
618
+ function digit_count($n, $base=10) {
619
+
620
+ if($n == 0) return 1;
621
+
622
+ if($base == 10) {
623
+ # using the built-in log10(x)
624
+ # might be more accurate than log(x)/log(10).
625
+ return 1 + floor(log10(abs($n)));
626
+ }else{
627
+ # here logB(x) = log(x)/log(B) will have to do.
628
+ return 1 + floor(log(abs($n))/ log($base));
629
+ }
630
+ }
631
+
632
+ //Round the integer to the next near 10
633
+ function roundup($value) {
634
+ $dg = digit_count($value);
635
+ if ($dg <= 2) {
636
+ $dg = 1;
637
+ } else {
638
+ $dg = ($dg-2);
639
+ }
640
+ return (ceil(intval($value)/pow(10, $dg))*pow(10, $dg)+pow(10, $dg));
641
+ }
642
+
643
+ function chart_data($values, $pages=null, $atime=null, $type, $charttype=null) {
644
+ // Port of JavaScript from http://code.google.com/apis/chart/
645
+ // http://james.cridland.net/code
646
+
647
+ // First, find the maximum value from the values given
648
+
649
+ $maxValue = roundup(max(array_merge($values, $pages)));
650
+ //$maxValue = roundup(max($values));
651
+ $halfValue = ($maxValue/2);
652
+ //$maxPage = roundup(max($pages));
653
+ //$halfPage = ($maxPage/2);
654
+
655
+ // A list of encoding characters to help later, as per Google's example
656
+ $simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
657
+
658
+ $chartData = "s:";
659
+
660
+ if ($charttype == "main") {
661
+ for ($i = 0; $i < count($values); $i++) {
662
+ $currentValue = $values[$i];
663
+ $currentTime = $atime[$i];
664
+ $label_time.=ereg_replace(" ", "+", $currentTime)."|";
665
+
666
+ if ($currentValue > -1) {
667
+ $chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
668
+ }
669
+ else {
670
+ $chartData.='_';
671
+ }
672
+ }
673
+ // Add pageviews line to the chart
674
+ if (count($pages) != 0) {
675
+ $chartData.=",";
676
+ for ($i = 0; $i < count($pages); $i++) {
677
+ $currentPage = $pages[$i];
678
+ $currentTime = $atime[$i];
679
+
680
+ if ($currentPage > -1) {
681
+ $chartData.=substr($simpleEncoding,61*($currentPage/$maxValue),1);
682
+ }
683
+ else {
684
+ $chartData.='_';
685
+ }
686
+ }
687
+ }
688
+ // Return the chart data - and let the Y axis to show the maximum value
689
+ return $chartData."&chxt=x,y&chxl=0:|".$label_time."|1:|0|".$halfValue."|".$maxValue."&chxs=0,6b6b6b,9";
690
+
691
+ } else {
692
+ for ($i = 0; $i < count($values); $i++) {
693
+ $currentValue = $values[$i];
694
+ $currentTime = $atime[$i];
695
+ $label_time.=ereg_replace(" ", "+", $currentTime)."|";
696
+
697
+ if ($currentValue > -1) {
698
+ $chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
699
+ }
700
+ else {
701
+ $chartData.='_';
702
+ }
703
+ }
704
+ return $chartData."&chxt=x,y&chxl=0:|".$label_time."|1:|0|".$halfValue."|".$maxValue."&chxs=0,6b6b6b,9";
705
+ }
706
+
707
+ }
708
+
709
+ // This is the new MAIN QUERY e COUNT ITEMS queries done by php class
710
+ class MainItems {
711
+ var $tableName;
712
+ var $searchString;
713
+ var $from_date;
714
+ var $to_date;
715
+ var $whereis;
716
+ var $ItemsType;
717
+ var $Limit;
718
+ var $Last;
719
+ var $Marked_ip;
720
+ var $WpUrl;
721
+
722
+ function calc_tot($Type, $Search="", $pertype="") {
723
+ global $wpdb;
724
+ $this->ItemsType = $Type;
725
+ $this->searchString = $Search;
726
+
727
+ if ($Search != "") { $ss = " AND (ip LIKE '%".$this->searchString."%' OR hostname LIKE '%".$this->searchString."%' OR urlrequested LIKE '%".$this->searchString."%' OR agent LIKE '%".$this->searchString."%' OR referrer LIKE '%".$this->searchString."%') "; }
728
+
729
+ switch ($Type) {
730
+ // This is the MAIN query to show the chronology
731
+ case "main":
732
+ $qry = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, urlrequested, agent, referrer, search, searchpage, os, browser, language, screen_res, searchengine, spider, feed, username, comment_author, spam FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis." GROUP BY wassup_id ORDER BY max_timestamp DESC ".$this->Limit."");
733
+ return $qry;
734
+ break;
735
+ // These are the queries to count the items hits/pages/spam
736
+ case "items":
737
+ $itemstot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) AS itemstot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
738
+ return $itemstot;
739
+ break;
740
+ case "pages":
741
+ $pagestot = $wpdb->get_var("SELECT COUNT(wassup_id) AS pagestot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
742
+ return $pagestot;
743
+ break;
744
+ case "spam":
745
+ $spamtot = $wpdb->get_var("SELECT COUNT(wassup_id) AS spamtot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND spam>0 AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
746
+ return $spamtot;
747
+ break;
748
+ case "items_by_type":
749
+ switch ($pertype) {
750
+ case "spam":
751
+ $items_type = "spam>0";
752
+ break;
753
+ case "marked":
754
+ $items_type = "ip LIKE '%".$this->Marked_ip."%'";
755
+ break;
756
+ case "searchengine":
757
+ $items_type = "searchengine!='' AND spam=0";
758
+ break;
759
+ case "referrer":
760
+ $items_type = "searchengine='' AND referrer NOT LIKE '%".$this->WpUrl."%' AND referrer!='' AND spam=0";
761
+ break;
762
+ case "direct":
763
+ $items_type = "searchengine='' AND (referrer LIKE '%".$this->WpUrl."%' OR referrer='') AND spam=0";
764
+ break;
765
+ }
766
+ $itemstot_by_type = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) AS itemstot FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND $items_type AND timestamp BETWEEN ".$this->from_date." AND ".$this->to_date." $ss ".$this->whereis);
767
+ return $itemstot_by_type;
768
+ break;
769
+ }
770
+ }
771
+
772
+ function TheChart($Ctype, $Res, $Search="") {
773
+ global $wpdb;
774
+ $this->searchString = $Search;
775
+ $this->Last = $Ctype;
776
+ switch ($Ctype) {
777
+ case 1:
778
+ $label = "Last 24 Hours";
779
+ $strto = "24 hours";
780
+ $cc = "%H";
781
+ $cd = "%H:00";
782
+ break;
783
+ case 7:
784
+ $label = "Last 7 Days";
785
+ $strto = "7 days";
786
+ $cc = "%d";
787
+ $cd = "%a %d %b";
788
+ break;
789
+ case 30:
790
+ $label = "Last Month";
791
+ $strto = "30 days";
792
+ $cc = "%d";
793
+ $cd = "%d %b";
794
+ break;
795
+ case 365:
796
+ $label = "Last Year";
797
+ $strto = "12 months";
798
+ $cc = "%m";
799
+ $cd = "%b %Y";
800
+ break;
801
+ }
802
+ if ($Search != "") { $ss = " AND (ip LIKE '%".$this->searchString."%' OR hostname LIKE '%".$this->searchString."%' OR urlrequested LIKE '%".$this->searchString."%' OR agent LIKE '%".$this->searchString."%' OR referrer LIKE '%".$this->searchString."%') "; }
803
+ $hour_todate = $this->to_date;
804
+ $hour_fromdate = strtotime("-".$strto, $hour_todate);
805
+ $aitems = $wpdb->get_results("SELECT COUNT(DISTINCT wassup_id) as items, COUNT(wassup_id) as pages, DATE_FORMAT(FROM_UNIXTIME(timestamp), '$cd') as thedate FROM ".$this->tableName." WHERE wassup_id IS NOT NULL AND timestamp BETWEEN $hour_fromdate AND $hour_todate ".$this->whereis." $ss GROUP BY DATE_FORMAT(FROM_UNIXTIME(timestamp), '$cc') ORDER BY timestamp", ARRAY_A);
806
+ foreach ($aitems as $bhits) {
807
+ $ahits[] = $bhits['items'];
808
+ $apages[] = $bhits['pages'];
809
+ $atime[] = $bhits['thedate'];
810
+ }
811
+
812
+ echo "<div id='placeholder' align='center'>
813
+ <img src=http://chart.apis.google.com/chart?chtt=".urlencode($label)."&chls=4,1,0|2,6,2&chco=0077cc,FF6D06&chm=B,14568A30,0,0,0&chg=10,20,2,5&cht=lc&chs=".$Res."x125&chd=".chart_data($ahits, $apages, $atime, $cc, "main").">
814
+ </div>";
815
+ }
816
+
817
+ }
818
+
819
+ ?>
lib/settings.php ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //# settings.php -- a wassup.php include file for changing Wassup default
3
+ //# settings in the Wassup options menu
4
+ ?>
5
+ <?php
6
+ $to_date = wassup_get_time();
7
+ $from_date = @strtotime($_POST['delete_manual'], $to_date);
8
+ if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name) {
9
+ if ($_POST['delete_manual'] != "") {
10
+ $wpdb->query("DELETE FROM $table_name WHERE timestamp<'$from_date'");
11
+ $wpdb->query("OPTIMIZE TABLE $table_name");
12
+ }
13
+ if ($_POST['wassup_empty'] == "1") {
14
+ $wpdb->query("DELETE FROM $table_name");
15
+ $wpdb->query("OPTIMIZE TABLE $table_name");
16
+ }
17
+ $table_status = $wpdb->get_results("SHOW TABLE STATUS LIKE '$table_name'");
18
+ foreach ($table_status as $fstatus) {
19
+ $data_lenght = $fstatus->Data_length;
20
+ $data_rows = $fstatus->Rows;
21
+ }
22
+ $tusage = number_format(($data_lenght/1024/1024), 2, ",", " ");
23
+ $tusage2 = ($data_lenght/1024/1024);
24
+ }
25
+
26
+ $adminemail = get_bloginfo('admin_email');
27
+
28
+ if ($wassup_settings['wassup_remind_flag'] == 2) {
29
+ $alert_msg = '<p style="color:red;font-weight:bold;">'.__('ATTENTION! Your WassUp table have reached the maximum value you set, I disabled the alert, you can re-enable it here.','wassup').'</p>';
30
+ $wassup_settings['wassup_remind_flag'] = 0;
31
+ update_option('wassup_settings', $wassup_settings);
32
+ }
33
+ $alertstyle = 'color:red; background-color:#ffd;';
34
+ ?>
35
+
36
+ <script type="text/javascript">
37
+ $(function() {
38
+ $('#tab_container > ul').tabs({ fxFade: true, fxSpeed: 'fast' });
39
+ });
40
+ </script>
41
+
42
+ <style type="text/css">
43
+ h3 { margin-bottom:0px; padding-bottom:5px; color:#333; }
44
+ form p { margin-top:0px; padding-top:0px; padding-left:15px; }
45
+ </style>
46
+ <h2><?php _e('Options','wassup'); ?></h2>
47
+ <p><?php _e('You can add a sidebar Widget with some useful statistics information by activating the','wassup'); ?>
48
+ <a href="/wp-admin/widgets.php"><?php _e('Wassup Widget in the Widgets menu option','wassup'); ?></a>.</p>
49
+ <p style="padding:10px 0 10px 0;"><?php _e('Select the options you want for the WassUp plugin','wassup'); ?></p>
50
+
51
+ <form action="" method="post">
52
+ <div id="tab_container">
53
+ <ul>
54
+ <li><a href="#fragment-1"><span>Basic</span></a></li>
55
+ <li><a href="#fragment-2"><span>Visitor Details</span></a></li>
56
+ <li><a href="#fragment-3"><span>Statistics Recording</span></a></li>
57
+ <li><a href="#fragment-4"><span>Actions for DB Table</span></a></li>
58
+ </ul>
59
+
60
+ <div id="fragment-1">
61
+ <!-- //Added by Helene D. to use more browser width to display visitor detail... -->
62
+ <br /><h3><?php _e('Your default screen resolution (browser width)','wassup'); ?></h3>
63
+ <p><?php _e('Default screen resolution (in pixels)','wassup'); ?>:
64
+ <select name='wassup_screen_res' style="width: 90px">
65
+ <option value='640' <?php if ($wassup_settings['wassup_screen_res'] == "640") { print "SELECTED"; } ?>> 640</option>
66
+ <option value='800' <?php if ($wassup_settings['wassup_screen_res'] == "800") { print "SELECTED"; } ?>> 800</option>
67
+ <option value='1024' <?php if ($wassup_settings['wassup_screen_res'] == "1024") { print "SELECTED"; } ?>> 1024</option>
68
+ <option value='1200' <?php if ($wassup_settings['wassup_screen_res'] == "1200") { print "SELECTED"; } ?>> 1200</option>
69
+ </select>
70
+ </p>
71
+ <br /><h3><?php _e('Set minimum users level which can view and manage WassUp plugin (default Administrators)','wassup'); ?></h3>
72
+ <p><select name="wassup_userlevel">
73
+ <option value="">--</option>
74
+ <option value="8" <?php if($wassup_settings['wassup_userlevel'] == "8") echo 'SELECTED'; ?>><?php _e('Administrators','wassup'); ?></option>
75
+ <option value="6" <?php if($wassup_settings['wassup_userlevel'] == "6") print "SELECTED"; ?>><?php _e('Contributors','wassup'); ?></option>
76
+ <option value="2" <?php if($wassup_settings['wassup_userlevel'] == "2") print "SELECTED"; ?>><?php _e('Authors','wassup'); ?></option>
77
+ </select></p><br />
78
+ <h3><?php _e('Set how many minutes wait for automatic page refresh (Current Visitors Online and Visitors Details)','wassup'); ?></h3>
79
+ <p><input type="text" name="wassup_refresh" size="2" value="<?php print $wassup_settings['wassup_refresh']; ?>" /> <?php _e('refresh minutes (default 3)','wassup'); ?></p><br />
80
+ </div>
81
+
82
+ <div id="fragment-2">
83
+ <br /><h3><?php _e('Show visitor details for','wassup'); ?>: <select name='wassup_default_type'>
84
+ <option value='everything' <?php if ($wassup_settings['wassup_default_type'] == "everything") { print "SELECTED"; } ?>>Everything</option>
85
+ <option value='spider' <?php if ($wassup_settings['wassup_default_type'] == "spider") { print "SELECTED"; } ?>>Spiders</option>
86
+ <option value='nospider' <?php if ($wassup_settings['wassup_default_type'] == "nospider") { print "SELECTED"; } ?>>NO Spiders</option>
87
+ <option value='spam' <?php if ($wassup_settings['wassup_default_type'] == "spam") { print "SELECTED"; } ?>>Spam</option>
88
+ <option value='nospam' <?php if ($wassup_settings['wassup_default_type'] == "nospam") { print "SELECTED"; } ?>>NO Spam</option>
89
+ <option value='nospamspider' <?php if ($wassup_settings['wassup_default_type'] == "nospamspider") { print "SELECTED"; } ?>>NO Spam NO Spider</option>
90
+ <option value='loggedin' <?php if ($wassup_settings['wassup_default_type'] == "loggedin") { print "SELECTED"; } ?>>Users logged in</option>
91
+ <option value='comauthor' <?php if ($wassup_settings['wassup_default_type'] == "comauthor") { print "SELECTED"; } ?>>Comment authors</option>
92
+ <option value='searchengine' <?php if ($wassup_settings['wassup_default_type'] == "searchengine") { print "SELECTED"; } ?>>Referer from search engine</option>
93
+ <option value='referrer' <?php if ($wassup_settings['wassup_default_type'] == "referrer") { print "SELECTED"; } ?>>Referer from ext link</option>
94
+ </select>
95
+ </h3>
96
+ <br /><h3><?php _e('Number of items per page','wassup'); ?>: <select name='wassup_default_limit'>
97
+ <option value='10' <?php if ($wassup_settings['wassup_default_limit'] == "10") { print "SELECTED"; } ?>>10</option>
98
+ <option value='20' <?php if ($wassup_settings['wassup_default_limit'] == "20") { print "SELECTED"; } ?>>20</option>
99
+ <option value='50' <?php if ($wassup_settings['wassup_default_limit'] == "50") { print "SELECTED"; } ?>>50</option>
100
+ <option value='100' <?php if ($wassup_settings['wassup_default_limit'] == "100") { print "SELECTED"; } ?>>100</option>
101
+ </select>
102
+ </h3>
103
+ <br />
104
+ </div>
105
+
106
+ <div id="fragment-3">
107
+ <br /><h3><?php _e('Statistics Recording Settings','wassup'); ?></h3>
108
+ <p> <input type="checkbox" name="wassup_active" value="1" <?php if($wassup_settings['wassup_active'] == 1) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Recording','wassup'); ?></strong></p>
109
+ <p style="margin-top:5px;"> <strong> Checkbox to record statistics for each type of "visitor"</strong><br />
110
+ <span style="padding-left:25px;padding-top:0;margin-top:0;display:block;clear:left;">
111
+ <input type="checkbox" name="wassup_loggedin" value="1" <?php if($wassup_settings['wassup_loggedin'] == 1) print "CHECKED"; ?> /> Record logged in users<br />
112
+ <input type="checkbox" name="wassup_spider" value="1" <?php if($wassup_settings['wassup_spider'] == 1) print "CHECKED"; ?> /> Record spiders and bots<br />
113
+ <input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_settings['wassup_attack'] == 1) print "CHECKED"; ?> /> Record attack/exploit attempts (libwww-perl agent)<br />
114
+ </span>
115
+ </p>
116
+ <br /><p><input type="checkbox" name="wassup_spamcheck" value="1" <?php if($wassup_settings['wassup_spamcheck'] == 1 ) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Spam Check on Records','wassup'); ?></strong></p>
117
+ <p style="margin-top:5px;"> <strong> <?php _e('Checkbox to record statistics for each type of "spam"','wassup'); ?></strong><br />
118
+ <span style="padding-left:25px;padding-top:0;margin-top:0;display:block;clear:left;">
119
+ <input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_settings['wassup_spam'] == 1) print "CHECKED"; ?> /> <?php _e('Record Akismet comment spam attempts','wassup'); ?><br />
120
+ <input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_settings['wassup_refspam'] == 1) print "CHECKED"; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?><br />
121
+ </span>
122
+ </p>
123
+ <br /><p><strong><?php _e('Enter source IPs to exclude from recording','wassup'); ?></strong>:
124
+ <br /><span style="padding-left:10px;display:block;clear:left;">
125
+ <textarea name="wassup_exclude" rows="4" cols="40"><?php print $wassup_settings['wassup_exclude']; ?></textarea></span>comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)</p>
126
+ <br /><p>
127
+ <?php
128
+ echo '<strong>'.__('"Save path" directory for storing temporary files to track visitors who have cookies disabled','wassup').'</strong>:';
129
+ $sessionpath = wGetSessionpath();
130
+ if (!empty($wassup_settings['wassup_savepath']) && $wassup_settings['wassup_savepath'] != $sessionpath ) {
131
+ $sessionpath = $wassup_settings['wassup_savepath'];
132
+ }
133
+ //$sessionpath = "/fakefolder/temp"; //#debug
134
+ $sessionstyle = '';
135
+ //# check that session_save_path exists and is writable...
136
+ if ( !file_exists($sessionpath)) {
137
+ $sessionwarn = '<small style="'.$alertstyle.' font-weight:bold; padding-left:5px;"><span style="text-decoration:blink;">'.__('WARNING','wassup').'!</span> '.__('Directory does not exist or is not writable. Please modify above path or edit "session.save_path" in "php.ini" to point to a valid, writable folder','wassup').'.</small>';
138
+ $sessionstyle = $alertstyle;
139
+ } else {
140
+ //#check that the directory is writable...
141
+ $sessiontestfile = $sessionpath."/temp".time().'.txt';
142
+ if (@touch($sessiontestfile)) {
143
+ $sessionwarn ='<small style="padding-left:5px;">'.__('Note: To adjust, change the above path or edit "sessions.save_path" in','wassup').' "php.ini".</small>';
144
+ unlink($sessiontestfile);
145
+ } else {
146
+ $sessionwarn = '<small style="'.$alertstyle.' font-weight:bold; padding-left:5px;"><span style="text-decoration:blink;">'.__('WARNING','wassup').'!</span> '.__('Directory does not exist or is not writable. Please modify above path or edit "session.save_path" in "php.ini" to point to a valid, writable folder','wassup').'.</small>';
147
+ $sessionstyle = $alertstyle;
148
+ }
149
+
150
+ }
151
+ echo '<textarea name="wassup_savepath" rows="1" style="width:550px;padding-left:25px;clear:left; '.$sessionstyle.'">'.$sessionpath.'</textarea>'."\n";
152
+ echo '<br />&nbsp;&nbsp;'.__('Use absolute directory paths only. This value is usually','wassup').' "/tmp".'."\n";
153
+ echo '<br />'.$sessionwarn."\n";
154
+ ?>
155
+ </p>
156
+ <br />
157
+ </div>
158
+
159
+ <div id="fragment-4">
160
+ <br /><h3><?php _e('Select actions for table growth','wassup'); ?></h3>
161
+ <p><?php _e("WassUp table grows very fast (especially if your blog is frequently visited), I recommend you to delete some old records sometimes. You can select any option below to reset it, delete old records automatically or manually. (If you haven't database space problems you can leave the table as is)","wassup"); ?><p>
162
+ <p><?php _e('Current WassUp table usage is','wassup');
163
+ print ': <strong>';
164
+ if ( (int)$tusage >= (int)$wassup_settings['wassup_remind_mb']) {
165
+ print '<span style="'.$alertstyle.'">'.$tusage.'</span>';
166
+ } else { print $tusage; }
167
+ print ' Mb</strong> ('.$data_rows.' '.__('records','wassup').')</p>'."\n";
168
+ print $alert_msg; ?>
169
+ <br /><p><input type="checkbox" name="wassup_remind_flag" value="1" <?php if ($wassup_settings['wassup_remind_flag'] == 1) print "CHECKED"; ?>>
170
+ <strong><?php _e('Alert me','wassup'); ?></strong> (<?php _e('email to','wassup'); ?>: <strong><?php print $adminemail; ?></strong>) <?php _e('when table reaches','wassup'); ?> <input type="text" name="wassup_remind_mb" size="3" value="<?php print $wassup_settings['wassup_remind_mb']; ?>"> Mb</p>
171
+ <p><input type="checkbox" name="wassup_empty" value="1">
172
+ <strong><?php _e('Empty table','wassup'); ?></strong> (<a href="?<?php print $_SERVER['QUERY_STRING']; ?>&export=1"><?php _e('export table in SQL format','wassup'); ?></a>)</p>
173
+ <br /><p><strong>Automatically delete records older than:</strong>
174
+ <select name="delete_auto">
175
+ <option value="never" <?php if($wassup_settings['delete_auto'] == "never") print "SELECTED"; ?>>Don't delete anything</option>
176
+ <option value="-1 day" <?php if($wassup_settings['delete_auto'] == "-1 day") print "SELECTED"; ?>>24 hours</option>
177
+ <option value="-1 week" <?php if($wassup_settings['delete_auto'] == "-1 week") print "SELECTED"; ?>>1 week</option>
178
+ <option value="-1 month" <?php if($wassup_settings['delete_auto'] == "-1 month") print "SELECTED"; ?>>1 month</option>
179
+ <option value="-3 months" <?php if($wassup_settings['delete_auto'] == "-3 months") print "SELECTED"; ?>>3 months</option>
180
+ <option value="-6 months" <?php if($wassup_settings['delete_auto'] == "-6 months") print "SELECTED"; ?>>6 months</option>
181
+ <option value="-1 year" <?php if($wassup_settings['delete_auto'] == "-1 year") print "SELECTED"; ?>>1 year</option>
182
+ </select></p>
183
+ <br /><p>Delete NOW records older than:
184
+ <select name="delete_manual">
185
+ <option value="never">Action is NOT undoable</option>
186
+ <option value="-1 day">24 hours</option>
187
+ <option value="-1 week">1 week</option>
188
+ <option value="-1 month">1 month</option>
189
+ <option value="-3 months">3 months</option>
190
+ <option value="-6 months">6 months</option>
191
+ <option value="-1 year">1 year</option>
192
+ </select></p>
193
+ <br />
194
+ </div>
195
+ </div>
196
+ <p style="padding-left:0;padding-top:15px;"><input type="submit" name="submit" value="<?php _e('Save Settings','wassup'); ?>" />&nbsp;<input type="reset" name="reset" value="<?php _e('Reset','wassup'); ?>" /> - <input type="submit" name="reset-to-default" value="Reset to Default Settings" /></p><br />
197
+ </form>
lib/spy.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('WASSUPFOLDER')) {
3
+ define('WASSUPFOLDER', dirname(__FILE__), TRUE);
4
+ }
5
+ if (!defined('ABSPATH')) {
6
+ define ('ABSPATH', substr(WASSUPFOLDER,0,strpos(WASSUPFOLDER,'/wp-content/')+1));
7
+ }
8
+ include_once(ABSPATH. 'wp-blog-header.php');
9
+ if (!function_exists('get_bloginfo')) {
10
+ include_once(ABSPATH.'wp-config.php');
11
+ }
12
+ include_once(WASSUPFOLDER. '/main.php');
13
+ $table_name = $wpdb->prefix . "wassup";
14
+
15
+ if ( $_GET['hash'] != wp_hash('wassup')) {
16
+ echo "Nothing to do here";
17
+ } else {
18
+
19
+ //Retrieve command-line arguments...
20
+ if (isset($_GET['to_date'])) $to_date = urlencode(attribute_escape($_GET['to_date']));
21
+ else $to_date = wassup_get_time();
22
+ if (isset($_GET['from_date'])) $from_date = urlencode(attribute_escape($_GET['from_date']));
23
+ else $from_date = ($to_date - 3);
24
+ if (isset($_GET['rows'])) $rows = urlencode(attribute_escape($_GET['rows']));
25
+ else $rows = 999;
26
+ //echo 'Starting spy from directory '.WASSUPFOLDER.' ABSPATH='.ABSPATH.'...<br />'; //debug...
27
+ spyview($from_date,$to_date,$rows);
28
+ }
readme.txt ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Plugin Name ===
2
+ Contributors: michelem, helened
3
+ Donate link: http://www.michelem.org/
4
+ Tags: tracker, tracking, statistics, analyze, web, realtime, stats, ajax, visitors, visits, online users, details, seo, admin, spy, visitors, widgets, widget, sidebar
5
+ Requires at least: 2.3
6
+ Tested up to: 2.3.2 - 2.3.1 - 2.3
7
+ Stable tag: 1.4.5
8
+
9
+ Wordpress plugin to analyze your visitors traffic with real time stats, chart and a lot of chronological informations. It has sidebar Widget support to show current online visitors and other statistics.
10
+
11
+ == Description ==
12
+
13
+ WORPDRESS 2.2 USERS NOW YOU COULD INSTALL WASSUP USING THE 1.4.5-wp2.2 BRANCH: http://www.wpwp.org/download
14
+
15
+ WassUp is a new Wordpress plugin to track your visitors in real time. It has a very readable and fancy admin console to keep tracks of your blog's users visits.
16
+ It has a "current visitors online" view and a more detailed "visitors details" view where you can know almost everything your users are doing on your blog, it's very useful for SEO or statistics maniacs. Now it comes with a new "Spy" view in Ajax like the Digg Spy.
17
+ The aim of WassUp is the knowledge of what your visitors do when they surf your blog, it is not intended to show grouped statistics for periods like visitors per day, pageviews per months and so on (there are many others tools to better gain that, like Google Analytics). With WassUp you'll get a cronology of your blog's visits with a lot of details for each single user session.
18
+
19
+ Now WassUp works with two anti-spam function to detect and skip (if you want) referers spammers and akismet spammers.
20
+
21
+ For people with database space problem, now WassUp has some options to manage his database table, you can empty it or delete old records to prevent reaching the size limit.
22
+
23
+ Now it comes with a nice sidebar Widget which shows current visitors online, last searched terms and last external referers. The widget is fully customizable.
24
+
25
+ WassUp shows a lot of data from who is visiting your blog like:
26
+
27
+ - ip / hostname
28
+ - referer
29
+ - spider
30
+ - search engines used
31
+ - keywords
32
+ - SERP (search engine result page)
33
+ - operating system / language / browser
34
+ - pages viewed (chronologically and per user session)
35
+ - complete user agent
36
+ - name of user logged in
37
+ - name of comment's author
38
+ - top ten charts with aggregate data (top queries, requests, os, browsers)
39
+
40
+ The admin console is very nice and you can customize it by:
41
+
42
+ - records by date range
43
+ - records per page
44
+ - records per entry type (spider, users logged in, comment's authors, search engine, referer)
45
+ - expand/collapse informations (with ajax support)
46
+
47
+ There are 4 views:
48
+
49
+ - Spy view like Digg Spy
50
+ - Current Online view
51
+ - Details view
52
+ - Options to customize WassUp
53
+
54
+ Many options are customizable:
55
+
56
+ - Refreshing minutes
57
+ - details width
58
+ - Users levels required
59
+ - Enable/Disable recording
60
+ - Record or not users logged in
61
+ - Record or not spiders and bots
62
+ - Record or not exploit attempts (libwww-perl user agent)
63
+ - IPs to exclude from recording
64
+ - Alert admin for table growth
65
+ - Empty/Reset the database table
66
+ - Export current table in SQL format
67
+ - Automatically deletes records older then selected period (day, week, months, year)
68
+ - Manually deletes records older then selected period (day, week, months, year)
69
+
70
+ == Frequently Asked Questions ==
71
+
72
+ Coming soon
73
+
74
+ == Screenshots ==
75
+
76
+ You could find some screenshots at http://www.wpwp.org
77
+
78
+ == Usage ==
79
+
80
+ Installation:
81
+
82
+ - Download the plugin WassUp (Real Time Visitors Tracking)
83
+ - uncompress it with your preferred unzip/untar program or use the command line: tar xzvf wassup.tar.gz
84
+ - copy the directory wassup in your plugins directory at your wordpress blog (/wp-content/plugins)
85
+ - activate the WassUp Wordpress plugin at your Plugins admin page
86
+
87
+ Upgrading:
88
+
89
+ If you upgrade from a previous version is recommended to disable plugin before you overwrite the directory and then re-activate the plugin. (It's not needed but it should be better)
90
+
91
+ Usage:
92
+
93
+ When you activate the plugin, it works "as is". You don't have anything to do. Wait your visitors hit your blog and start seeing details (click the dashboard and go to WassUp page)
94
+
95
+ Usage of wassup_sidebar function:
96
+
97
+ if (function_exists('wassup_sidebar')) {
98
+ wassup_sidebar('');
99
+ }
100
+
101
+ Valid option values for wassup_sidebar function are:
102
+
103
+ * before_widget - html before the widget
104
+ * after_widget - html after the widget
105
+ * before_title - html before the title (default <h2>)
106
+ * after_title - html after the title (default </h2>)
107
+ * wtitle - the title (default "visitors online")
108
+ * wulclass - the ul style class (default "links")
109
+ * wchars - the max width of sentences (default 18 characters)
110
+ * wsearch - set 1 to show last searched terms (default 0)
111
+ * wsearchlimit - how many searched terms to show (default 5)
112
+ * wref - set 1 to show last referers (default 0)
113
+ * wreflimit - how many referers to show (default 5)
114
+ * wtopbr - set 1 to show top browsers (default 0)
115
+ * wtopbrlimit - how many top browsers to show (default 5)
116
+ * wtopos - set 1 to show top OS (default 0)
117
+ * wtoposlimit - how many top OS to show (default 5)
118
+
119
+ You have to put every 15 values, leave them empty if you don't want to use them, for example:
120
+
121
+ if (function_exists('wassup_sidebar')){
122
+ wassup_sidebar('','','<h2>','</h2>','Online Visitors','links',20,1,5,1,5,1,10,1,10);
123
+ }
124
+
125
+ == Infos ==
126
+
127
+ You could find every informations and much more at http://www.wpwp.org - http://trac.wpwp.org - http://www.wpwp.org/forums
128
+
129
+ Credits to: Jquery ( http://www.jquery.com ) for the amazing Ajax framework, FAMFAMFAM ( http://www.famfamfam.com/ ) for the flags icons and a big thanks to Helene D. ( http://supernatural.hellioness.com/ ) for her help to improve WassUp!
thickbox.css ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ----------------------------------------------------------------------------------------------------------------*/
2
+ /* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
3
+ /* ----------------------------------------------------------------------------------------------------------------*/
4
+ *{padding: 0; margin: 0;}
5
+
6
+ /* ----------------------------------------------------------------------------------------------------------------*/
7
+ /* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
8
+ /* ----------------------------------------------------------------------------------------------------------------*/
9
+ #TB_window {
10
+ font: 12px Arial, Helvetica, sans-serif;
11
+ color: #333333;
12
+ }
13
+
14
+ #TB_secondLine {
15
+ font: 10px Arial, Helvetica, sans-serif;
16
+ color:#666666;
17
+ }
18
+
19
+ #TB_window a:link {color: #666666;}
20
+ #TB_window a:visited {color: #666666;}
21
+ #TB_window a:hover {color: #000;}
22
+ #TB_window a:active {color: #666666;}
23
+ #TB_window a:focus{color: #666666;}
24
+
25
+ /* ----------------------------------------------------------------------------------------------------------------*/
26
+ /* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
27
+ /* ----------------------------------------------------------------------------------------------------------------*/
28
+ #TB_overlay {
29
+ position: fixed;
30
+ z-index:100;
31
+ top: 0px;
32
+ left: 0px;
33
+ height:100%;
34
+ width:100%;
35
+ }
36
+
37
+ .TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
38
+ .TB_overlayBG {
39
+ background-color:#000;
40
+ filter:alpha(opacity=75);
41
+ -moz-opacity: 0.75;
42
+ opacity: 0.75;
43
+ }
44
+
45
+ * html #TB_overlay { /* ie6 hack */
46
+ position: absolute;
47
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
48
+ }
49
+
50
+ #TB_window {
51
+ position: fixed;
52
+ background: #ffffff;
53
+ z-index: 102;
54
+ color:#000000;
55
+ display:none;
56
+ border: 4px solid #525252;
57
+ text-align:left;
58
+ top:50%;
59
+ left:50%;
60
+ }
61
+
62
+ * html #TB_window { /* ie6 hack */
63
+ position: absolute;
64
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
65
+ }
66
+
67
+ #TB_window img#TB_Image {
68
+ display:block;
69
+ margin: 15px 0 0 15px;
70
+ border-right: 1px solid #ccc;
71
+ border-bottom: 1px solid #ccc;
72
+ border-top: 1px solid #666;
73
+ border-left: 1px solid #666;
74
+ }
75
+
76
+ #TB_caption{
77
+ height:25px;
78
+ padding:7px 30px 10px 25px;
79
+ float:left;
80
+ }
81
+
82
+ #TB_closeWindow{
83
+ height:25px;
84
+ padding:11px 25px 10px 0;
85
+ float:right;
86
+ }
87
+
88
+ #TB_closeAjaxWindow{
89
+ padding:7px 10px 5px 0;
90
+ margin-bottom:1px;
91
+ text-align:right;
92
+ float:right;
93
+ }
94
+
95
+ #TB_ajaxWindowTitle{
96
+ float:left;
97
+ padding:7px 0 5px 10px;
98
+ margin-bottom:1px;
99
+ }
100
+
101
+ #TB_title{
102
+ background-color:#e8e8e8;
103
+ height:27px;
104
+ }
105
+
106
+ #TB_ajaxContent{
107
+ clear:both;
108
+ padding:2px 15px 15px 15px;
109
+ overflow:auto;
110
+ text-align:left;
111
+ line-height:1.4em;
112
+ }
113
+
114
+ #TB_ajaxContent.TB_modal{
115
+ padding:15px;
116
+ }
117
+
118
+ #TB_ajaxContent p{
119
+ padding:5px 0px 5px 0px;
120
+ }
121
+
122
+ #TB_load{
123
+ position: fixed;
124
+ display:none;
125
+ height:13px;
126
+ width:208px;
127
+ z-index:103;
128
+ top: 50%;
129
+ left: 50%;
130
+ margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
131
+ }
132
+
133
+ * html #TB_load { /* ie6 hack */
134
+ position: absolute;
135
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
136
+ }
137
+
138
+ #TB_HideSelect{
139
+ z-index:99;
140
+ position:fixed;
141
+ top: 0;
142
+ left: 0;
143
+ background-color:#fff;
144
+ border:none;
145
+ filter:alpha(opacity=0);
146
+ -moz-opacity: 0;
147
+ opacity: 0;
148
+ height:100%;
149
+ width:100%;
150
+ }
151
+
152
+ * html #TB_HideSelect { /* ie6 hack */
153
+ position: absolute;
154
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
155
+ }
156
+
157
+ #TB_iframeContent{
158
+ clear:both;
159
+ border:none;
160
+ margin-bottom:-1px;
161
+ margin-top:1px;
162
+ _margin-bottom:1px;
163
+ }
thickbox/loadingAnimation.gif ADDED
Binary file
thickbox/macFFBgHack.png ADDED
Binary file
thickbox/thickbox.css ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ----------------------------------------------------------------------------------------------------------------*/
2
+ /* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
3
+ /* ----------------------------------------------------------------------------------------------------------------*/
4
+ *{padding: 0; margin: 0;}
5
+
6
+ /* ----------------------------------------------------------------------------------------------------------------*/
7
+ /* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
8
+ /* ----------------------------------------------------------------------------------------------------------------*/
9
+ #TB_window {
10
+ font: 12px Arial, Helvetica, sans-serif;
11
+ color: #333333;
12
+ }
13
+
14
+ #TB_secondLine {
15
+ font: 10px Arial, Helvetica, sans-serif;
16
+ color:#666666;
17
+ }
18
+
19
+ #TB_window a:link {color: #666666;}
20
+ #TB_window a:visited {color: #666666;}
21
+ #TB_window a:hover {color: #000;}
22
+ #TB_window a:active {color: #666666;}
23
+ #TB_window a:focus{color: #666666;}
24
+
25
+ /* ----------------------------------------------------------------------------------------------------------------*/
26
+ /* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
27
+ /* ----------------------------------------------------------------------------------------------------------------*/
28
+ #TB_overlay {
29
+ position: fixed;
30
+ z-index:100;
31
+ top: 0px;
32
+ left: 0px;
33
+ height:100%;
34
+ width:100%;
35
+ }
36
+
37
+ .TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
38
+ .TB_overlayBG {
39
+ background-color:#000;
40
+ filter:alpha(opacity=75);
41
+ -moz-opacity: 0.75;
42
+ opacity: 0.75;
43
+ }
44
+
45
+ * html #TB_overlay { /* ie6 hack */
46
+ position: absolute;
47
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
48
+ }
49
+
50
+ #TB_window {
51
+ position: fixed;
52
+ background: #ffffff;
53
+ z-index: 102;
54
+ color:#000000;
55
+ display:none;
56
+ border: 4px solid #525252;
57
+ text-align:left;
58
+ top:50%;
59
+ left:50%;
60
+ }
61
+
62
+ * html #TB_window { /* ie6 hack */
63
+ position: absolute;
64
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
65
+ }
66
+
67
+ #TB_window img#TB_Image {
68
+ display:block;
69
+ margin: 15px 0 0 15px;
70
+ border-right: 1px solid #ccc;
71
+ border-bottom: 1px solid #ccc;
72
+ border-top: 1px solid #666;
73
+ border-left: 1px solid #666;
74
+ }
75
+
76
+ #TB_caption{
77
+ height:25px;
78
+ padding:7px 30px 10px 25px;
79
+ float:left;
80
+ }
81
+
82
+ #TB_closeWindow{
83
+ height:25px;
84
+ padding:11px 25px 10px 0;
85
+ float:right;
86
+ }
87
+
88
+ #TB_closeAjaxWindow{
89
+ padding:7px 10px 5px 0;
90
+ margin-bottom:1px;
91
+ text-align:right;
92
+ float:right;
93
+ }
94
+
95
+ #TB_ajaxWindowTitle{
96
+ float:left;
97
+ padding:7px 0 5px 10px;
98
+ margin-bottom:1px;
99
+ }
100
+
101
+ #TB_title{
102
+ background-color:#e8e8e8;
103
+ height:27px;
104
+ }
105
+
106
+ #TB_ajaxContent{
107
+ clear:both;
108
+ padding:2px 15px 15px 15px;
109
+ overflow:auto;
110
+ text-align:left;
111
+ line-height:1.4em;
112
+ }
113
+
114
+ #TB_ajaxContent.TB_modal{
115
+ padding:15px;
116
+ }
117
+
118
+ #TB_ajaxContent p{
119
+ padding:5px 0px 5px 0px;
120
+ }
121
+
122
+ #TB_load{
123
+ position: fixed;
124
+ display:none;
125
+ height:13px;
126
+ width:208px;
127
+ z-index:103;
128
+ top: 50%;
129
+ left: 50%;
130
+ margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
131
+ }
132
+
133
+ * html #TB_load { /* ie6 hack */
134
+ position: absolute;
135
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
136
+ }
137
+
138
+ #TB_HideSelect{
139
+ z-index:99;
140
+ position:fixed;
141
+ top: 0;
142
+ left: 0;
143
+ background-color:#fff;
144
+ border:none;
145
+ filter:alpha(opacity=0);
146
+ -moz-opacity: 0;
147
+ opacity: 0;
148
+ height:100%;
149
+ width:100%;
150
+ }
151
+
152
+ * html #TB_HideSelect { /* ie6 hack */
153
+ position: absolute;
154
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
155
+ }
156
+
157
+ #TB_iframeContent{
158
+ clear:both;
159
+ border:none;
160
+ margin-bottom:-1px;
161
+ margin-top:1px;
162
+ _margin-bottom:1px;
163
+ }
thickbox/thickbox.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Thickbox 3 - One Box To Rule Them All.
3
+ * By Cody Lindley (http://www.codylindley.com)
4
+ * Copyright (c) 2007 cody lindley
5
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
6
+ */
7
+
8
+ var tb_pathToImage = "/wp-content/plugins/wassup/thickbox/loadingAnimation.gif";
9
+
10
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(o).2S(9(){1u(\'a.18, 3n.18, 3i.18\');1w=1p 1t();1w.L=2H});9 1u(b){$(b).s(9(){6 t=X.Q||X.1v||M;6 a=X.u||X.23;6 g=X.1N||P;19(t,a,g);X.2E();H P})}9 19(d,f,g){3m{3(2t o.v.J.2i==="2g"){$("v","11").r({A:"28%",z:"28%"});$("11").r("22","2Z");3(o.1Y("1F")===M){$("v").q("<U 5=\'1F\'></U><4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}n{3(o.1Y("B")===M){$("v").q("<4 5=\'B\'></4><4 5=\'8\'></4>");$("#B").s(G)}}3(1K()){$("#B").1J("2B")}n{$("#B").1J("2z")}3(d===M){d=""}$("v").q("<4 5=\'K\'><1I L=\'"+1w.L+"\' /></4>");$(\'#K\').2y();6 h;3(f.O("?")!==-1){h=f.3l(0,f.O("?"))}n{h=f}6 i=/\\.2s$|\\.2q$|\\.2m$|\\.2l$|\\.2k$/;6 j=h.1C().2h(i);3(j==\'.2s\'||j==\'.2q\'||j==\'.2m\'||j==\'.2l\'||j==\'.2k\'){1D="";1G="";14="";1z="";1x="";R="";1n="";1r=P;3(g){E=$("a[@1N="+g+"]").36();25(D=0;((D<E.1c)&&(R===""));D++){6 k=E[D].u.1C().2h(i);3(!(E[D].u==f)){3(1r){1z=E[D].Q;1x=E[D].u;R="<1e 5=\'1X\'>&1d;&1d;<a u=\'#\'>2T &2R;</a></1e>"}n{1D=E[D].Q;1G=E[D].u;14="<1e 5=\'1U\'>&1d;&1d;<a u=\'#\'>&2O; 2N</a></1e>"}}n{1r=1b;1n="1t "+(D+1)+" 2L "+(E.1c)}}}S=1p 1t();S.1g=9(){S.1g=M;6 a=2x();6 x=a[0]-1M;6 y=a[1]-1M;6 b=S.z;6 c=S.A;3(b>x){c=c*(x/b);b=x;3(c>y){b=b*(y/c);c=y}}n 3(c>y){b=b*(y/c);c=y;3(b>x){c=c*(x/b);b=x}}13=b+30;1a=c+2G;$("#8").q("<a u=\'\' 5=\'1L\' Q=\'1o\'><1I 5=\'2F\' L=\'"+f+"\' z=\'"+b+"\' A=\'"+c+"\' 23=\'"+d+"\'/></a>"+"<4 5=\'2D\'>"+d+"<4 5=\'2C\'>"+1n+14+R+"</4></4><4 5=\'2A\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4>");$("#Z").s(G);3(!(14==="")){9 12(){3($(o).N("s",12)){$(o).N("s",12)}$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1D,1G,g);H P}$("#1U").s(12)}3(!(R==="")){9 1i(){$("#8").C();$("v").q("<4 5=\'8\'></4>");19(1z,1x,g);H P}$("#1X").s(1i)}o.1h=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}n 3(I==3k){3(!(R=="")){o.1h="";1i()}}n 3(I==3j){3(!(14=="")){o.1h="";12()}}};16();$("#K").C();$("#1L").s(G);$("#8").r({Y:"T"})};S.L=f}n{6 l=f.2r(/^[^\\?]+\\??/,\'\');6 m=2p(l);13=(m[\'z\']*1)+30||3h;1a=(m[\'A\']*1)+3g||3f;W=13-30;V=1a-3e;3(f.O(\'2j\')!=-1){1E=f.1B(\'3d\');$("#15").C();3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\' Q=\'1o\'>1l</a> 1k 1j 1s</4></4><U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\' > </U>")}n{$("#B").N();$("#8").q("<U 1W=\'0\' 2d=\'0\' L=\'"+1E[0]+"\' 5=\'15\' 1v=\'15"+1f.2c(1f.1y()*2b)+"\' 1g=\'1m()\' J=\'z:"+(W+29)+"p;A:"+(V+17)+"p;\'> </U>")}}n{3($("#8").r("Y")!="T"){3(m[\'1A\']!="1b"){$("#8").q("<4 5=\'2f\'><4 5=\'1H\'>"+d+"</4><4 5=\'2e\'><a u=\'#\' 5=\'Z\'>1l</a> 1k 1j 1s</4></4><4 5=\'F\' J=\'z:"+W+"p;A:"+V+"p\'></4>")}n{$("#B").N();$("#8").q("<4 5=\'F\' 3c=\'3b\' J=\'z:"+W+"p;A:"+V+"p;\'></4>")}}n{$("#F")[0].J.z=W+"p";$("#F")[0].J.A=V+"p";$("#F")[0].3a=0;$("#1H").11(d)}}$("#Z").s(G);3(f.O(\'37\')!=-1){$("#F").q($(\'#\'+m[\'26\']).1T());$("#8").24(9(){$(\'#\'+m[\'26\']).q($("#F").1T())});16();$("#K").C();$("#8").r({Y:"T"})}n 3(f.O(\'2j\')!=-1){16();3($.1q.35){$("#K").C();$("#8").r({Y:"T"})}}n{$("#F").34(f+="&1y="+(1p 33().32()),9(){16();$("#K").C();1u("#F a.18");$("#8").r({Y:"T"})})}}3(!m[\'1A\']){o.21=9(e){3(e==M){I=2w.2v}n{I=e.2u}3(I==27){G()}}}}31(e){}}9 1m(){$("#K").C();$("#8").r({Y:"T"})}9 G(){$("#2Y").N("s");$("#Z").N("s");$("#8").2X("2W",9(){$(\'#8,#B,#1F\').2V("24").N().C()});$("#K").C();3(2t o.v.J.2i=="2g"){$("v","11").r({A:"1Z",z:"1Z"});$("11").r("22","")}o.1h="";o.21="";H P}9 16(){$("#8").r({2U:\'-\'+20((13/2),10)+\'p\',z:13+\'p\'});3(!(1V.1q.2Q&&1V.1q.2P<7)){$("#8").r({38:\'-\'+20((1a/2),10)+\'p\'})}}9 2p(a){6 b={};3(!a){H b}6 c=a.1B(/[;&]/);25(6 i=0;i<c.1c;i++){6 d=c[i].1B(\'=\');3(!d||d.1c!=2){39}6 e=2a(d[0]);6 f=2a(d[1]);f=f.2r(/\\+/g,\' \');b[e]=f}H b}9 2x(){6 a=o.2M;6 w=1S.2o||1R.2o||(a&&a.1Q)||o.v.1Q;6 h=1S.1P||1R.1P||(a&&a.2n)||o.v.2n;1O=[w,h];H 1O}9 1K(){6 a=2K.2J.1C();3(a.O(\'2I\')!=-1&&a.O(\'3o\')!=-1){H 1b}}',62,211,'|||if|div|id|var||TB_window|function||||||||||||||else|document|px|append|css|click||href|body||||width|height|TB_overlay|remove|TB_Counter|TB_TempArray|TB_ajaxContent|tb_remove|return|keycode|style|TB_load|src|null|unbind|indexOf|false|title|TB_NextHTML|imgPreloader|block|iframe|ajaxContentH|ajaxContentW|this|display|TB_closeWindowButton||html|goPrev|TB_WIDTH|TB_PrevHTML|TB_iframeContent|tb_position||thickbox|tb_show|TB_HEIGHT|true|length|nbsp|span|Math|onload|onkeydown|goNext|Esc|or|close|tb_showIframe|TB_imageCount|Close|new|browser|TB_FoundURL|Key|Image|tb_init|name|imgLoader|TB_NextURL|random|TB_NextCaption|modal|split|toLowerCase|TB_PrevCaption|urlNoQuery|TB_HideSelect|TB_PrevURL|TB_ajaxWindowTitle|img|addClass|tb_detectMacXFF|TB_ImageOff|150|rel|arrayPageSize|innerHeight|clientWidth|self|window|children|TB_prev|jQuery|frameborder|TB_next|getElementById|auto|parseInt|onkeyup|overflow|alt|unload|for|inlineId||100||unescape|1000|round|hspace|TB_closeAjaxWindow|TB_title|undefined|match|maxHeight|TB_iframe|bmp|gif|png|clientHeight|innerWidth|tb_parseQuery|jpeg|replace|jpg|typeof|which|keyCode|event|tb_getPageSize|show|TB_overlayBG|TB_closeWindow|TB_overlayMacFFBGHack|TB_secondLine|TB_caption|blur|TB_Image|60|tb_pathToImage|mac|userAgent|navigator|of|documentElement|Prev|lt|version|msie|gt|ready|Next|marginLeft|trigger|fast|fadeOut|TB_imageOff|hidden||catch|getTime|Date|load|safari|get|TB_inline|marginTop|continue|scrollTop|TB_modal|class|TB_|45|440|40|630|input|188|190|substr|try|area|firefox'.split('|'),0,{}))
ui.tabs.css ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Caution! Ensure accessibility in print and other media types... */
2
+ @media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
3
+ .ui-tabs-hide {
4
+ display: none;
5
+ }
6
+ }
7
+
8
+ /* Hide useless elements in print layouts... */
9
+ @media print {
10
+ .ui-tabs-nav {
11
+ display: none;
12
+ }
13
+ }
14
+
15
+ /* Skin */
16
+ .ui-tabs-nav, .ui-tabs-panel {
17
+ font-family: "Trebuchet MS", Trebuchet, Verdana, Helvetica, Arial, sans-serif;
18
+ font-size: 12px;
19
+ }
20
+ .ui-tabs-nav {
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: 0 0 0 4px;
24
+ }
25
+ .ui-tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
26
+ display: block;
27
+ clear: both;
28
+ content: " ";
29
+ }
30
+ .ui-tabs-nav li {
31
+ float: left;
32
+ margin: 0 0 0 1px;
33
+ min-width: 84px; /* be nice to Opera */
34
+ }
35
+ .ui-tabs-nav a, .ui-tabs-nav a span {
36
+ display: block;
37
+ padding: 0 10px;
38
+ background: url(img/tab.png) no-repeat;
39
+ }
40
+ .ui-tabs-nav a {
41
+ margin: 1px 0 0; /* position: relative makes opacity fail for disabled tab in IE */
42
+ padding-left: 0;
43
+ color: #27537a;
44
+ font-weight: bold;
45
+ line-height: 1.2;
46
+ text-align: center;
47
+ text-decoration: none;
48
+ white-space: nowrap; /* required in IE 6 */
49
+ outline: 0; /* prevent dotted border in Firefox */
50
+ }
51
+ .ui-tabs-nav .ui-tabs-selected a {
52
+ position: relative;
53
+ top: 1px;
54
+ z-index: 2;
55
+ margin-top: 0;
56
+ color: #000;
57
+ }
58
+ .ui-tabs-nav a span {
59
+ width: 64px; /* IE 6 treats width as min-width */
60
+ min-width: 64px;
61
+ height: 18px; /* IE 6 treats height as min-height */
62
+ min-height: 18px;
63
+ padding-top: 6px;
64
+ padding-right: 0;
65
+ }
66
+ *>.ui-tabs-nav a span { /* hide from IE 6 */
67
+ width: auto;
68
+ height: auto;
69
+ }
70
+ .ui-tabs-nav .ui-tabs-selected a span {
71
+ padding-bottom: 1px;
72
+ }
73
+ .ui-tabs-nav .ui-tabs-selected a, .ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active {
74
+ background-position: 100% -150px;
75
+ }
76
+ .ui-tabs-nav a, .ui-tabs-nav .ui-tabs-disabled a:hover, .ui-tabs-nav .ui-tabs-disabled a:focus, .ui-tabs-nav .ui-tabs-disabled a:active {
77
+ background-position: 100% -100px;
78
+ }
79
+ .ui-tabs-nav .ui-tabs-selected a span, .ui-tabs-nav a:hover span, .ui-tabs-nav a:focus span, .ui-tabs-nav a:active span {
80
+ background-position: 0 -50px;
81
+ }
82
+ .ui-tabs-nav a span, .ui-tabs-nav .ui-tabs-disabled a:hover span, .ui-tabs-nav .ui-tabs-disabled a:focus span, .ui-tabs-nav .ui-tabs-disabled a:active span {
83
+ background-position: 0 0;
84
+ }
85
+ .ui-tabs-nav .ui-tabs-selected a:link, .ui-tabs-nav .ui-tabs-selected a:visited, .ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
86
+ cursor: text;
87
+ }
88
+ .ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active,
89
+ .ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active { /* @ Opera, we need to be explicit again here now... */
90
+ cursor: pointer;
91
+ }
92
+ .ui-tabs-disabled {
93
+ opacity: .4;
94
+ filter: alpha(opacity=40);
95
+ }
96
+ .ui-tabs-panel {
97
+ border-top: 1px solid #97a5b0;
98
+ padding: 1em 8px;
99
+ background: #fff; /* declare background color for container to avoid distorted fonts in IE while fading */
100
+ }
101
+ .ui-tabs-loading em {
102
+ padding: 0 0 0 20px;
103
+ background: url(img/loading.gif) no-repeat 0 50%;
104
+ }
105
+
106
+ /* Additional IE specific bug fixes... */
107
+ * html .ui-tabs-nav { /* auto clear, @ IE 6 & IE 7 Quirks Mode */
108
+ display: inline-block;
109
+ }
110
+ *:first-child+html .ui-tabs-nav { /* @ IE 7 Standards Mode - do not group selectors, otherwise IE 6 will ignore complete rule (because of the unknown + combinator)... */
111
+ display: inline-block;
112
+ }
113
+
wassup.css ADDED
@@ -0,0 +1,449 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* wassup.css - stylesheet for WassUp plugin */
2
+ #minisub {
3
+ display: none;
4
+ }
5
+ .pagination {
6
+ padding: 3px;
7
+ margin: 3px;
8
+ text-align: center;
9
+ width: 100%;
10
+ }
11
+
12
+ .pagination a {
13
+ padding: 2px 5px 2px 5px;
14
+ margin: 2px;
15
+ border: 1px solid #EEE;
16
+ text-decoration: none; /* no underline */
17
+ color: #667;
18
+ }
19
+
20
+ .pagination a:hover,
21
+ .pagination a:active {
22
+ border: 1px solid #999;
23
+ background-color: #999;
24
+ color: #FFF;
25
+ }
26
+ .pagination .current {
27
+ padding: 2px 5px 2px 5px;
28
+ margin: 2px;
29
+ border: 1px solid #999;
30
+ font-weight: bold;
31
+ background-color: #999;
32
+ color: #FFF;
33
+ }
34
+ .pagination .disabled {
35
+ padding: 2px 5px 2px 5px;
36
+ margin: 2px;
37
+ border: 1px solid #EEE;
38
+ color: #DDD;
39
+ }
40
+
41
+ .sum {
42
+ position: relative;
43
+ clear: left;
44
+ border-bottom: 2px #ddd solid;
45
+ border-top: 1px #ddd solid;
46
+ padding: 15px 0 15px 0;
47
+ width: 100%;
48
+ margin: 0 !important;
49
+ background-image: url(img/list-bg.png);
50
+ background-repeat: repeat-x;
51
+ }
52
+ .sum-spy {
53
+ position: relative;
54
+ clear: left;
55
+ border-bottom: 4px #999 solid;
56
+ border-top: 1px #ddd solid;
57
+ padding: 15px 0 15px 0;
58
+ width: 100%;
59
+ margin: 0 !important;
60
+ background-image: url(img/list-bg.png);
61
+ background-repeat: repeat-x;
62
+ }
63
+ .sum-nav-mark {
64
+ position: relative;
65
+ clear: left;
66
+ border-bottom: 2px #ddd solid;
67
+ border-top: 1px #ddd solid;
68
+ margin: 0 !important;
69
+ padding: 15px 0 15px 0;
70
+ width: 100%;
71
+ background: #FBFEB5 url(img/list-bg.png);
72
+ background-repeat: repeat-x;
73
+ }
74
+ .sum-nav {
75
+ position: relative;
76
+ clear: left;
77
+ border-bottom: 2px #ddd solid;
78
+ border-top: 1px #ddd solid;
79
+ margin: 0 !important;
80
+ padding: 15px 0 15px 0;
81
+ width: 100%;
82
+ background-image: url(img/list-bg.png);
83
+ background-repeat: repeat-x;
84
+ }
85
+ .delbut img {
86
+ float: right;
87
+ padding: 0px 5px 10px 0;
88
+ }
89
+ .sum-footer {
90
+ clear: both;
91
+ border-bottom: 4px #999 solid;
92
+ margin: 0 !important;
93
+ padding: 0;
94
+ width: 100%;
95
+ }
96
+ .sum-det {
97
+ margin: 0px 0 0px 0;
98
+ padding: 0;
99
+ line-height: 20px;
100
+ font-size: 14px;
101
+ }
102
+ .det1 {
103
+ font-weight: bold;
104
+ }
105
+ .det3 {
106
+ padding-left: 20px;
107
+ font-size: 11px;
108
+ color: #963; /* #cab87b; */
109
+ }
110
+ .det2 {
111
+ font-size: 11px;
112
+ color: #963; /* #cab87b; */
113
+ }
114
+ .det2 a, .det2 a:link, .sum-det span.det2 a {
115
+ color: #963; /* #cab87b; */
116
+ text-decoration: none;
117
+ }
118
+ .det2 a:hover, .sum-det span.det2 a:hover {
119
+ color: #cab87b;
120
+ text-decoration: none;
121
+ }
122
+ .det2 strong {
123
+ color: #667; /* #999; */
124
+ font-weight: normal;
125
+ }
126
+ .agent strong {
127
+ font-weight: bold;
128
+ }
129
+ .sum-box {
130
+ float: left;
131
+ display: block;
132
+ margin: 2px 10px 0 10px;
133
+ border: 1px #ddd solid;
134
+ background-image: url(img/list-bg.png);
135
+ padding: 10px 6px 10px 6px;
136
+ font-size: 11px;
137
+ width: 120px;
138
+ text-align: center;
139
+ color: #963; /* #cab87b; */
140
+ font-weight: bold;
141
+ }
142
+ .sum-box-log {
143
+ float: left;
144
+ display: block;
145
+ margin: 2px 10px 0 10px;
146
+ border: 1px #ddd solid;
147
+ background: #e7f1c8 url(img/list-bg.png);
148
+ padding: 10px 6px 10px 6px;
149
+ font-size: 11px;
150
+ width: 120px;
151
+ text-align: center;
152
+ color: #963; /* #cab87b; */
153
+ font-weight: bold;
154
+ }
155
+ .sum-box-aut {
156
+ float: left;
157
+ display: block;
158
+ margin: 2px 10px 0 10px;
159
+ border: 1px #ddd solid;
160
+ background: #fbf9d3 url(img/list-bg.png);
161
+ padding: 10px 6px 10px 6px;
162
+ font-size: 11px;
163
+ width: 120px;
164
+ text-align: center;
165
+ color: #963; /* #cab87b; */
166
+ font-weight: bold;
167
+ }
168
+ .sum-box-spider {
169
+ float: left;
170
+ display: block;
171
+ margin: 2px 10px 0 10px;
172
+ border: 1px #ddd solid;
173
+ background: #cab87b url(img/list-bg.png);
174
+ padding: 10px 6px 10px 6px;
175
+ font-size: 11px;
176
+ width: 120px;
177
+ text-align: center;
178
+ color: #FFFFFF;
179
+ font-weight: bold;
180
+ }
181
+ .sum-date {
182
+ clear: left;
183
+ float:left;
184
+ margin: 0;
185
+ padding: 4px 7px 0px 7px;
186
+ font-size: 11px;
187
+ width: 140px;
188
+ text-align: center;
189
+ color: #667; /* #999; */
190
+ }
191
+ ul.charts {
192
+ list-style-type: none;
193
+ margin: 0;
194
+ padding: 0px 0px 0px 0px;
195
+ }
196
+ li.charts {
197
+ list-style-type: none;
198
+ color: #667; /* #999; */
199
+ font-size: 11px;
200
+ border-top: 1px #ddd solid;
201
+ margin: 0px 0 4px 0;
202
+ padding: 2px 4px 4px 4px;
203
+ background: url(img/list-bg2.png);
204
+ }
205
+ li.chartsT {
206
+ list-style-type: none;
207
+ color: #efefef;
208
+ font-size: 11px;
209
+ border-bottom: 2px #D2DFE9 solid;
210
+ margin: 2px 0 0 0;
211
+ padding: 2px 4px 2px 4px;
212
+ background: #14568A;
213
+ font-weight: bold;
214
+ }
215
+ ul.agent {
216
+ list-style-type: none;
217
+ margin: 0;
218
+ width: 100%;
219
+ border-bottom: 1px #ddd solid;
220
+ padding: 4px 0 5px 0;
221
+ background: #f5f5f5;
222
+ }
223
+ ul.searcheng {
224
+ list-style-type: none;
225
+ margin: 0;
226
+ width: 100%;
227
+ border-bottom: 1px #ddd solid;
228
+ padding: 4px 0 5px 0;
229
+ background: #e4ecf4;
230
+ }
231
+ li.searcheng {
232
+ display: inline;
233
+ list-style-type: none;
234
+ color: #667; /* #999; */
235
+ border-right: 1px dotted #999;
236
+ font-size: 11px;
237
+ width: 100%;
238
+ padding: 0 4px 0 4px;
239
+ }
240
+ ul.useragent {
241
+ list-style-type: none;
242
+ margin: 0;
243
+ width: 100%;
244
+ border-bottom: 1px #ddd solid;
245
+ padding: 4px 0 2px 0;
246
+ background: #999;
247
+ }
248
+ li.useragent {
249
+ list-style-type: none;
250
+ color: #f5f5f5;
251
+ font-size: 11px;
252
+ width: 100%;
253
+ padding: 0 6px 0 0;
254
+ text-align: center;
255
+ }
256
+ ul.spam {
257
+ list-style-type: none;
258
+ margin: 0;
259
+ width: 100%;
260
+ border-bottom: 1px #999 solid;
261
+ padding: 4px 0 4px 0;
262
+ background: #f92a4a;
263
+ }
264
+ li.spam {
265
+ display: inline;
266
+ list-style-type: none;
267
+ color: #f5f5f5;
268
+ font-size: 11px;
269
+ width: 100%;
270
+ padding: 0 6px 0 0;
271
+ }
272
+ ul.spider {
273
+ list-style-type: none;
274
+ margin: 0;
275
+ width: 100%;
276
+ border-bottom: 1px #ddd solid;
277
+ padding: 4px 0 4px 0;
278
+ background: #cab87b;
279
+ }
280
+ li.spider {
281
+ display: inline;
282
+ list-style-type: none;
283
+ color: #f5f5f5;
284
+ font-size: 11px;
285
+ width: 100%;
286
+ padding: 0 6px 0 0;
287
+ }
288
+ li.feed {
289
+ display: inline;
290
+ list-style-type: none;
291
+ color: #667; /* #999; */
292
+ border-right: 1px dotted #999;
293
+ font-size: 11px;
294
+ width: 100%;
295
+ padding: 0 4px 0 4px;
296
+ }
297
+ li.agent {
298
+ display: inline;
299
+ list-style-type: none;
300
+ color: #667; /* #999; */
301
+ border-right: 1px dotted #999;
302
+ font-size: 11px;
303
+ width: 100%;
304
+ padding: 0 4px 0 4px;
305
+ }
306
+ ul.users {
307
+ list-style-type: none;
308
+ margin: 0;
309
+ width: 100%;
310
+ border-bottom: 1px #ddd solid;
311
+ padding: 4px 0 5px 0;
312
+ background: #fbf9d3;
313
+ }
314
+ ul.userslogged {
315
+ list-style-type: none;
316
+ margin: 0;
317
+ width: 100%;
318
+ border-bottom: 1px #ddd solid;
319
+ padding: 4px 0 5px 0;
320
+ background: #e7f1c8;
321
+ }
322
+ li.users {
323
+ display: inline;
324
+ list-style-type: none;
325
+ color: #667; /* #999; */
326
+ border-right: 1px dotted #999;
327
+ font-size: 11px;
328
+ width: 100%;
329
+ padding: 0 4px 0 4px;
330
+ }
331
+ ul.url {
332
+ list-style-type: none;
333
+ margin: 0;
334
+ padding-left: 0;
335
+ width: 100%;
336
+ }
337
+ li.url {
338
+ list-style-type: none;
339
+ color: #667; /* #999; */
340
+ font-size: 11px;
341
+ border-bottom: 1px #ddd solid;
342
+ padding: 4px 0 6px 0;
343
+ background-image: url(img/list-bg.png);
344
+ margin: 0;
345
+ width: 100%;
346
+ }
347
+ li.urlodd {
348
+ list-style-type: none;
349
+ color: #667; /* #999; */
350
+ font-size: 11px;
351
+ border-bottom: 1px #ddd solid;
352
+ padding: 4px 0 6px 0;
353
+ background-image: url(img/list-bg2.png);
354
+ margin: 0;
355
+ width: 100%;
356
+ }
357
+ .indent-li {
358
+ padding-left: 155px;
359
+ }
360
+ .indent-li-nav {
361
+ padding-left: 88px;
362
+ }
363
+ .indent-li-agent {
364
+ padding-left: 12px;
365
+ padding-right: 12px;
366
+ }
367
+ .box-log {
368
+ margin: 0;
369
+ border: 1px #ddd solid;
370
+ background: #e7f1c8;
371
+ padding: 0;
372
+ }
373
+ .box-aut {
374
+ margin: 0;
375
+ border: 1px #ddd solid;
376
+ background: #fbf9d3;
377
+ padding: 0;
378
+ }
379
+ .box-spider {
380
+ margin: 0;
381
+ border: 1px #ddd solid;
382
+ background: #cab87b;
383
+ padding: 0;
384
+ }
385
+ #placeholder {
386
+ padding-top: 8px;
387
+ background-color:#FFF;
388
+ background-image:url(img/loading.gif);
389
+ background-repeat:no-repeat;
390
+ background-position: center center;
391
+ min-height: 60px;
392
+ }
393
+ div.main-tabs {
394
+ margin-top: 6px;
395
+ margin-bottom: 6px;
396
+ }
397
+ #settings {
398
+ width: 100%;
399
+ margin:0 auto;
400
+ padding: 4px 4px 6px 4px;
401
+ border-bottom: 1px #ddd solid;
402
+ border-top: 2px #ddd solid;
403
+ background-image: url(img/list-bg.png);
404
+ background-repeat: repeat-x;
405
+ }
406
+ #usage {
407
+ text-align: center;
408
+ width: 100%;
409
+ margin:0 auto;
410
+ padding: 10px 4px 12px 4px;
411
+ border-bottom: 1px #ddd solid;
412
+ border-top: 2px #ddd solid;
413
+ background-image: url(img/list-bg.png);
414
+ background-repeat: repeat-x;
415
+ }
416
+ #usage ul li {
417
+ list-style-type: none;
418
+ padding: 4px;
419
+ }
420
+ #usage a {
421
+ color: #565656;
422
+ }
423
+ #usage span {
424
+ color: #565656;
425
+ font-size: 14pt;
426
+ font-weight: bold;
427
+ }
428
+ #usage li {
429
+ display: inline;
430
+ margin: 10px;
431
+ }
432
+ #usage small {
433
+ color: #797979;
434
+ }
435
+ ul.usage-title {
436
+ list-style-type: none;
437
+ text-align: center;
438
+ margin: 0;
439
+ width: 120px;
440
+ background: #565656;
441
+ padding: 2px;
442
+ font-size: 7pt;
443
+ color: #FFF;
444
+ font-weight: bold;
445
+ }
446
+ ul.usage-title li {
447
+ display: inline;
448
+ list-style-type: none;
449
+ }
wassup.php ADDED
@@ -0,0 +1,1998 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: WassUp
4
+ Plugin URI: http://www.wpwp.org
5
+ Description: Wordpress plugin to analyze your visitors traffic with real time stats, chart and a lot of chronological informations. It has sidebar Widget support to show current online visitors and other statistics.
6
+ Version: 1.4.5
7
+ Author: Michele Marcucci
8
+ Author URI: http://www.michelem.org/
9
+
10
+ Copyright (c) 2007 Michele Marcucci
11
+ Released under the GNU General Public License (GPL)
12
+ http://www.gnu.org/licenses/gpl.txt
13
+ */
14
+
15
+ //# Stop any attempt to call wassup.php directly. -Helene D. 1/27/08.
16
+ if (preg_match('#'.basename(__FILE__) .'#', $_SERVER['PHP_SELF'])) {
17
+ die('Permission Denied! You are not allowed to call this page directly.');
18
+ }
19
+ $version = "1.4.5";
20
+ define('WASSUPFOLDER', dirname(plugin_basename(__FILE__)), TRUE);
21
+ require_once(dirname(__FILE__).'/lib/main.php');
22
+ $wpurl = get_bloginfo('wpurl');
23
+
24
+ if (isset($_GET['export'])) {
25
+ export_wassup();
26
+ }
27
+
28
+ function wassup_activation_error() {
29
+ echo '<p><strong>' . __("Sorry, Wassup requires WordPress 2.3 or higher to work.","wassup") . '</strong></p>';
30
+ }
31
+
32
+ global $wp_version;
33
+ //#This works only in WP2.3 or higher
34
+ if (version_compare($wp_version, '2.3', '<')) {
35
+ add_action('admin_notices', wassup_activation_error());
36
+ exit(1);
37
+ } else {
38
+ register_activation_hook( __FILE__, 'wassup_install' );
39
+ add_action('admin_head', 'add_wassup_css');
40
+ add_action('init', 'add_wassup_scripts');
41
+ add_action('wp_head', 'add_wassup_meta_info');
42
+ add_action("widgets_init", "wassup_widget_init");
43
+ add_action('admin_menu', 'wassup_add_pages');
44
+ add_action('send_headers', 'wassupAppend');
45
+ }
46
+
47
+ //#initial wassup settings for options this is here because
48
+ //I need it in more then one function (using global)
49
+ $defaultWdata = array(
50
+ 'wassup_active' => "1",
51
+ 'wassup_loggedin' => "1",
52
+ 'wassup_spider' => "1",
53
+ 'wassup_attack' => "1",
54
+ 'wassup_spamcheck' => "1",
55
+ 'wassup_spam' => "1",
56
+ 'wassup_refspam' => "1",
57
+ 'wassup_exclude' => "",
58
+ 'wassup_savepath' => null,
59
+ 'wassup_chart' => "1",
60
+ 'delete_auto' => "never",
61
+ 'delete_auto_size' => "0",
62
+ 'wassup_remind_mb' => "0",
63
+ 'wassup_remind_flag' => "0",
64
+ 'wassup_refresh' => "3",
65
+ 'wassup_userlevel' => "8",
66
+ 'wassup_screen_res' => "800",
67
+ 'wassup_default_type' => "everything",
68
+ 'wassup_default_limit' => "10",
69
+ 'wassup_widget_title' => "Visitors Online",
70
+ 'wassup_widget_ulclass' => "links",
71
+ 'wassup_widget_loggedin' => "1",
72
+ 'wassup_widget_comauth' => "1",
73
+ 'wassup_widget_search' => "1",
74
+ 'wassup_widget_searchlimit' => "5",
75
+ 'wassup_widget_ref' => "1",
76
+ 'wassup_widget_reflimit' => "5",
77
+ 'wassup_widget_topbr' => "1",
78
+ 'wassup_widget_topbrlimit' => "5",
79
+ 'wassup_widget_topos' => "1",
80
+ 'wassup_widget_toposlimit' => "5",
81
+ 'wassup_widget_chars' => "18"
82
+ );
83
+
84
+ //#add initial options and create table when Wassup activated
85
+ function wassup_install() {
86
+ global $wpdb, $defaultWdata;
87
+ //### add/update wassup settings to Wordpress options table
88
+ $wassup_settings = get_option('wassup_settings');
89
+ if (empty($wassup_settings)) {
90
+ //# initialize wassup settings to default values
91
+ add_option('wassup_settings', $defaultWdata, 'Options for WassUp');
92
+ } else {
93
+ //# update wassup settings for 'spamcheck', 'refspam', and 'spam'
94
+ if (!isset($wassup_settings['wassup_spamcheck'])) {
95
+ $wassup_settings['wassup_spamcheck'] = "1";
96
+ //#set wassup_spamcheck=0 if wassup_refspam=0 and wassup_spam=0
97
+ if (!isset($wassup_settings['wassup_spam']) && !isset($wassup_settings['wassup_refspam'])) {
98
+ $wassup_settings['wassup_spam'] = "1";
99
+ $wassup_settings['wassup_refspam'] = "1";
100
+ } elseif ( $wassup_settings['wassup_spam'] == "0" && $wassup_settings['wassup_refspam'] == "0" ) {
101
+ $wassup_settings['wassup_spamcheck'] = "0";
102
+ }
103
+ }
104
+ //# update wassup settings for 'savepath' (default is null)
105
+ if (!isset($wassup_settings['wassup_savepath'])) {
106
+ $wassup_settings['wassup_savepath'] = null;
107
+ //$wassup_settings['wassup_savepath'] = "/tmp"; #debug
108
+ }
109
+ //#save wassup settings changes
110
+ update_option('wassup_settings', $wassup_settings);
111
+ }
112
+
113
+ //### create/upgrade wassup table
114
+ $table_name = $wpdb->prefix . "wassup";
115
+ if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
116
+ CreateTable();
117
+ } else {
118
+ UpdateTable();
119
+ }
120
+ } //#end function wassup_install
121
+
122
+ $wassup_settings = get_option('wassup_settings');
123
+
124
+ function add_wassup_meta_info() {
125
+ global $version;
126
+ print '<meta name="wassup-version" content="'.$version.'" />';
127
+ }
128
+
129
+ //Add jquery AJAX library and dependent scripts for all Wassup admin menus...
130
+ function add_wassup_scripts() {
131
+ global $wpurl;
132
+ if (stristr($_GET['page'],'wassup') !== FALSE) {
133
+ if ( function_exists('wp_deregister_script')) {
134
+ wp_deregister_script('jquery'); //removes old jquery vers.
135
+ }
136
+ // the safe way to load jquery into WP...
137
+ wp_register_script('jquery', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/jquery.js',FALSE,'1.2.2');
138
+ if ($_GET['page'] == "wassup-spy") {
139
+ //the safe way to load a jquery dependent script into WP...
140
+ wp_enqueue_script('spy', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/spy.js', array('jquery'), '1.4');
141
+ } elseif($_GET['page'] == "wassup-options") {
142
+ wp_enqueue_script('ui.tabs', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/js/ui.tabs.js', array('jquery'), '3');
143
+ } else {
144
+ //the safe way to load a jquery dependent script into WP...
145
+ wp_enqueue_script('thickbox', $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/thickbox/thickbox.js', array('jquery'), '3');
146
+ }
147
+ }
148
+ }
149
+
150
+ //Add the wassup stylesheet and other javascripts...
151
+ function add_wassup_css() {
152
+ global $wpurl;
153
+ $hash = wp_hash('wassup');
154
+ $plugin_page = attribute_escape($_GET['page']);
155
+ if (stristr($plugin_page,'wassup') !== FALSE) { $plugin_page="wassup"; }
156
+ //Add css and javascript to wassup menu pages only...
157
+ if ($plugin_page == "wassup") {
158
+ $wassup_settings = get_option('wassup_settings');
159
+ //$siteurl = get_bloginfo('siteurl'); //not used
160
+ //$wpurl = get_bloginfo('wpurl'); //global
161
+
162
+ echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/wassup.css'.'" type="text/css" />';
163
+ echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/thickbox/thickbox.css'.'" type="text/css" />';
164
+ echo '<link rel="stylesheet" href="'.$wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/ui.tabs.css'.'" type="text/css" />';
165
+
166
+ if ($_GET['page'] != "wassup-options" AND $_GET['page'] != "wassup-spy") { ?>
167
+ <script type='text/javascript'>
168
+ //<![CDATA[
169
+ function selfRefresh(){
170
+ location.href='?<?php print $_SERVER['QUERY_STRING']; ?>';
171
+ }
172
+ setTimeout('selfRefresh()', <?php print ($wassup_settings['wassup_refresh'] * 60000); ?>);
173
+ //]]>
174
+ </script>
175
+
176
+ <script type='text/javascript'>
177
+ //<![CDATA[
178
+ var _countDowncontainer="0";
179
+ var _currentSeconds="0";
180
+ function ActivateCountDown(strContainerID, initialValue) {
181
+ _countDowncontainer = document.getElementById(strContainerID);
182
+ SetCountdownText(initialValue);
183
+ window.setTimeout("CountDownTick()", 1000);
184
+ }
185
+ function CountDownTick() {
186
+ SetCountdownText(_currentSeconds-1);
187
+ window.setTimeout("CountDownTick()", 1000);
188
+ }
189
+ function SetCountdownText(seconds) {
190
+ //store:
191
+ _currentSeconds = seconds;
192
+ //build text:
193
+ var strText = AddZero(seconds);
194
+ //apply:
195
+ if (_countDowncontainer) { //prevents error in "Options" submenu
196
+ _countDowncontainer.innerHTML = strText;
197
+ }
198
+ }
199
+ function AddZero(num) {
200
+ return ((num >= "0")&&(num < 10))?"0"+num:num+"";
201
+ }
202
+ //]]>
203
+ </script>
204
+ <script type="text/javascript">
205
+ //<![CDATA[
206
+ window.onload=WindowLoad;
207
+ function WindowLoad(event) {
208
+ ActivateCountDown("CountDownPanel", <?php print ($wassup_settings['wassup_refresh'] * 60); ?>);
209
+ }
210
+ //]]>
211
+ </script>
212
+
213
+ <script type="text/javascript">
214
+ //<![CDATA[
215
+ jQuery(document).ready(function($){
216
+ $("a.showhide").click(function(){
217
+ var id = $(this).attr('id');
218
+ $("div.navi" + id).toggle("slow");
219
+ return false;
220
+ });
221
+ $("a.toggleagent").click(function(){
222
+ var id = $(this).attr('id');
223
+ $("div.naviagent" + id).slideToggle("slow");
224
+ return false;
225
+ });
226
+ $("a.deleteID").click(function(){
227
+ var id = $(this).attr('id');
228
+ $.ajax({
229
+ url: "<?php echo $wpurl; ?>/wp-content/plugins/<?php echo WASSUPFOLDER; ?>/lib/action.php?action=delete&hash=<?php echo $hash; ?>&id=" + id,
230
+ async: false
231
+ })
232
+ $("div.delID" + id).fadeOut("slow");
233
+ return false;
234
+ });
235
+ $("a.show-search").toggle(function(){
236
+ $("div.search-ip").slideDown("slow");
237
+ $("a.show-search").html("<a href='#' class='show-search'>Hide Search</a>");
238
+ },function() {
239
+ $("div.search-ip").slideUp("slow");
240
+ $("a.show-search").html("<a href='#' class='show-search'>Search</a>");
241
+ return false;
242
+ });
243
+ $("a.show-topten").toggle(function(){
244
+ $("div.topten").slideDown("slow");
245
+ $("a.show-topten").html("<a href='#' class='show-topten'>Hide TopTen</a>");
246
+ },function() {
247
+ $("div.topten").slideUp("slow");
248
+ $("a.show-topten").html("<a href='#' class='show-topten'>Show TopTen</a>");
249
+ return false;
250
+ });
251
+
252
+ $("a.toggle-all").toggle(function() {
253
+ $("div.togglenavi").slideDown("slow");
254
+ $("a.toggle-all").html("<a href='#' class='toggle-all'>Collapse All</a>");
255
+ },function() {
256
+ $("div.togglenavi").slideUp("slow");
257
+ $("a.toggle-all").html("<a href='#' class='toggle-all'>Expand All</a>");
258
+ return false;
259
+ });
260
+ $("a.toggle-allcrono").toggle(function() {
261
+ $("div.togglecrono").slideUp("slow");
262
+ $("a.toggle-allcrono").html("<a href='#' class='toggle-allcrono'>Expand Cronology</a>");
263
+ },function() {
264
+ $("div.togglecrono").slideDown("slow");
265
+ $("a.toggle-allcrono").html("<a href='#' class='toggle-allcrono'>Collapse Cronology</a>");
266
+ return false;
267
+ });
268
+ }); //end jQuery(document).ready
269
+ //]]>
270
+ </script>
271
+ <?php } //end if page != wassup-options ?>
272
+
273
+ <script type='text/javascript'>
274
+ //<![CDATA[
275
+ function go()
276
+ {
277
+ box = document.forms["0"].navi;
278
+ destination = box.options[box.selectedindex].value;
279
+ if (destination) location.href = destination;
280
+ }
281
+ function go2()
282
+ {
283
+ box2 = document.forms["0"].type;
284
+ destination2 = box2.options[box2.selectedindex].value;
285
+ if (destination2) location.href = destination2;
286
+ }
287
+ //]]>
288
+ </script>
289
+
290
+ <?php
291
+ if ($_GET['page'] == "wassup-spy") {
292
+ ?>
293
+ <script type="text/javascript">
294
+ jQuery(document).ready(function($){
295
+ $('#spyContainer > div:gt(4)').fadeEachDown(); // initial fade
296
+ $('#spyContainer').spy({
297
+ limit: 10,
298
+ fadeLast: 5,
299
+ ajax: '<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?action=spy&hash=$hash"; ?>',
300
+ timeout: 2000,
301
+ 'timestamp': myTimestamp,
302
+ fadeInSpeed: 1100 });
303
+ });
304
+
305
+ function myTimestamp() {
306
+ var d = new Date();
307
+ var timestamp = d.getFullYear() + '-' + pad(d.getMonth()) + '-' + pad(d.getDate());
308
+ timestamp += ' ';
309
+ timestamp += pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds());
310
+ return timestamp;
311
+ }
312
+
313
+ // pad ensures the date looks like 2006-09-13 rather than 2006-9-13
314
+ function pad(n) {
315
+ n = n.toString();
316
+ return (n.length == 1 ? '0' + n : n);
317
+ }
318
+
319
+ //]]>
320
+ </script>
321
+ <?php } //end if page == "wassup-spy"
322
+
323
+ } //end if plugin_page == "wassup"
324
+ } //end function add_wassup_css()
325
+
326
+ //put WassUp in the top-level admin menu and add submenus....
327
+ function wassup_add_pages() {
328
+ $wassup_settings = get_option('wassup_settings');
329
+ $userlevel = $wassup_settings['wassup_userlevel'];
330
+ if (empty($userlevel)) { $userlevel = 8; }
331
+ // add the default submenu first (important!)...
332
+ add_submenu_page(WASSUPFOLDER, __('Visitor Details', 'wassup'), __('Visitor Details', 'wassup'), $userlevel, WASSUPFOLDER, 'WassUp'); //<-- WASSUPFOLDER needed here for directory names that include a version number...
333
+ // then add top menu and other submenus...
334
+ add_menu_page('Wassup', 'WassUp', $userlevel, WASSUPFOLDER, 'Wassup');
335
+ add_submenu_page(WASSUPFOLDER, __('Spy Visitors', 'wassup'), __('SPY Visitors', 'wassup'), $userlevel, 'wassup-spy', 'WassUp');
336
+ add_submenu_page(WASSUPFOLDER, __('Current Visitors Online', 'wassup'), __('Current Visitors Online', 'wassup'), $userlevel, 'wassup-online', 'WassUp');
337
+ add_submenu_page(WASSUPFOLDER, __('Options', 'wassup'), __('Options', 'wassup'), $userlevel, 'wassup-options', 'WassUp');
338
+ }
339
+
340
+ function WassUp() {
341
+ global $wpdb, $version, $wpurl, $defaultWdata;
342
+ $hash = wp_hash('wassup');
343
+ $table_name = $wpdb->prefix . "wassup";
344
+ $wassup_settings = get_option('wassup_settings');
345
+ // RUN THE SAVE/RESET OPTIONS
346
+ if (isset($_POST['submit'])) {
347
+ if ($_POST['wassup_remind_flag'] == 1 AND $_POST['wassup_remind_mb'] == "") {
348
+ $wassup_settings['wassup_remind_flag'] = $_POST['wassup_remind_flag'];
349
+ $wassup_settings['wassup_remind_mb'] = 10;
350
+ } else {
351
+ $wassup_settings['wassup_remind_flag'] = $_POST['wassup_remind_flag'];
352
+ $wassup_settings['wassup_remind_mb'] = $_POST['wassup_remind_mb'];
353
+ }
354
+ $wassup_settings['wassup_active'] = $_POST['wassup_active'];
355
+ $wassup_settings['wassup_loggedin'] = $_POST['wassup_loggedin'];
356
+ $wassup_settings['wassup_spider'] = $_POST['wassup_spider'];
357
+ $wassup_settings['wassup_attack'] = $_POST['wassup_attack'];
358
+ $wassup_settings['wassup_spamcheck'] = $_POST['wassup_spamcheck'];
359
+ $wassup_settings['wassup_spam'] = $_POST['wassup_spam'];
360
+ $wassup_settings['wassup_refspam'] = $_POST['wassup_refspam'];
361
+ $wassup_settings['wassup_exclude'] = $_POST['wassup_exclude'];
362
+ $wassup_settings['delete_auto'] = $_POST['delete_auto'];
363
+ $wassup_settings['delete_auto_size'] = $_POST['delete_auto_size'];
364
+ $wassup_settings['wassup_screen_res'] = $_POST['wassup_screen_res'];
365
+ $wassup_settings['wassup_refresh'] = $_POST['wassup_refresh'];
366
+ $wassup_settings['wassup_userlevel'] = $_POST['wassup_userlevel'];
367
+ $wassup_settings['wassup_default_type'] = $_POST['wassup_default_type'];
368
+ $wassup_settings['wassup_default_limit'] = $_POST['wassup_default_limit'];
369
+ if ( $_POST['wassup_savepath'] != $wassup_settings['wassup_savepath'] ) {
370
+ if ( empty($_POST['wassup_savepath']) || rtrim($_POST['wassup_savepath'],"/") == wGetSessionpath() ) {
371
+ $wassup_settings['wassup_savepath'] = NULL;
372
+ } else {
373
+ $wassup_settings['wassup_savepath'] = rtrim($_POST['wassup_savepath'],"/");
374
+ }
375
+ }
376
+ update_option('wassup_settings', $wassup_settings);
377
+ } elseif (isset($_POST['submit-spam'])) {
378
+ $wassup_settings['wassup_spamcheck'] = $_POST['wassup_spamcheck'];
379
+ $wassup_settings['wassup_spam'] = $_POST['wassup_spam'];
380
+ $wassup_settings['wassup_refspam'] = $_POST['wassup_refspam'];
381
+ update_option('wassup_settings', $wassup_settings);
382
+ } elseif (isset($_POST['reset-to-default'])) {
383
+ print_r($defaultWdata);
384
+ delete_option('wassup_settings');
385
+ update_option('wassup_settings', $defaultWdata);
386
+ $wassup_settings = get_option('wassup_settings');
387
+ }
388
+
389
+
390
+ if ($_GET['page'] == "wassup-spy") {
391
+ $class_spy="class='current'";
392
+ } elseif ($_GET['page'] == "wassup-options") {
393
+ $class_opt="class='current'";
394
+ } elseif ($_GET['page'] == "wassup-online") {
395
+ $class_ol="class='current'";
396
+ } else {
397
+ $class_sub="class='current'";
398
+ }
399
+
400
+ //for stringShortener calculated values and max-width...-Helene D. 11/27/07, 12/6/07
401
+ if (!empty($wassup_settings['wassup_screen_res'])) {
402
+ $screen_res_size = (int) $wassup_settings['wassup_screen_res'];
403
+ } else {
404
+ $screen_res_size = 670;
405
+ }
406
+ $max_char_len = ($screen_res_size)/10;
407
+ $screen_res_size = $screen_res_size+20; //for wrap margins...
408
+
409
+ //moved max-width to single "wrap" div and removed it from
410
+ // the individual spans and divs in style.php...
411
+ print '<div class="wrap" style="max-width:'.$screen_res_size.'px;" >';
412
+ //#moved CreateTable/UpdateTable to "wassup_install" function...
413
+
414
+ //for generating page link urls....
415
+ //$wpurl = get_bloginfo('wpurl'); //global
416
+ $siteurl = get_bloginfo('siteurl');
417
+
418
+ if ($_GET['page'] == "wassup-online") {
419
+ $to_date = wassup_get_time();
420
+ $from_date = strtotime('-3 minutes', $to_date);
421
+ print '<h2>Current Visitors Online</h2>';
422
+ print '<p style="font-size:11px">Legend: <span class="box-log">&nbsp;&nbsp;</span> Logged-in Users <span class="box-aut">&nbsp;&nbsp;</span> Comments Authors <span class="box-spider">&nbsp;&nbsp;</span> Spiders/bots</p><br />'."\n";
423
+ print '<p style="font-size:11px;"><a href="#" class="toggle-all">Expand All</a></p>';
424
+ $currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date");
425
+ $currenttot = $currenttot+0; //set to integer
426
+ print "<p style='font-size:11px;'>Visitors online: <strong>".$currenttot."</strong></p><br />";
427
+ if ($currenttot > 0) {
428
+ $qryC = $wpdb->get_results("SELECT id, wassup_id, max(timestamp) as max_timestamp, ip, hostname, searchengine, urlrequested, agent, referrer, spider, username, comment_author FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date GROUP BY ip ORDER BY max_timestamp DESC");
429
+ foreach ($qryC as $cv) {
430
+ //$timestamp = $cv->max_timestamp; //redundant
431
+ $timed = gmdate("H:i:s", $cv->max_timestamp);
432
+ $ip = @explode(",", $cv->ip);
433
+ if ($cv->referrer != '') {
434
+ if (!eregi($wpurl, $cv->referrer) OR $cv->searchengine != "") {
435
+ if (!eregi($wpurl, $cv->referrer) AND $cv->searchengine == "") {
436
+ $referrer = '<a href="'.$cv->referrer.'" target=_"BLANK"><span style="font-weight: bold;">'.stringShortener($cv->referrer, round($max_char_len*.8,0)).'</span></a>';
437
+ } else {
438
+ $referrer = '<a href="'.$cv->referrer.'" target=_"BLANK">'.stringShortener($cv->referrer, round($max_char_len*.9,0)).'</a>';
439
+ }
440
+ } else {
441
+ $referrer = "Direct hit";
442
+ }
443
+ } else {
444
+ $referrer = "From your blog";
445
+ }
446
+ $numurl = $wpdb->get_var("SELECT COUNT(DISTINCT id) as numurl FROM $table_name WHERE wassup_id='".$cv->wassup_id."'");
447
+ ?>
448
+ <div class="sum">
449
+ <span class="sum-box"><?php if ($numurl >= 2) { ?><a href="#" class="showhide" id="<?php echo $cv->id ?>"><?php print $ip[0]; ?></a><? } else { ?><?php print $ip[0]; ?><?php } ?></span>
450
+ <div class="sum-det"><span class="det1">
451
+ <?php
452
+ //# html_entity_decode() links that were already
453
+ //# "htmlentities-encoded" in database to prevent wacky links
454
+ //# like "/imagegallery/?album=3&amp;amp;amp;gallery=13"
455
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cv->urlrequested))).'" target="_BLANK">';
456
+ print stringShortener(urlencode(html_entity_decode($cv->urlrequested)), round($max_char_len*.9,0)); ?></a></span><br />
457
+ <span class="det2"><strong><?php print $timed; ?> - </strong><?php print $referrer ?></span></div>
458
+ </div>
459
+ <?php // User is logged in or is a comment's author
460
+ if ($cv->username != "" OR $cv->comment_author != "") {
461
+ if ($cv->username != "") {
462
+ $Ousername = '<li class="users"><span class="indent-li-agent">LOGGED IN USER: <strong>'.$cv->username.'</strong></span></li>';
463
+ $Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$cv->comment_author.'</strong></span></li>';
464
+ $unclass = "userslogged";
465
+ } elseif ($cv->comment_author != "") {
466
+ $Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$cv->comment_author.'</strong></span></li>';
467
+ $unclass = "users";
468
+ }
469
+ ?>
470
+ <ul class="<?php print $unclass; ?>">
471
+ <?php print $Ousername; ?>
472
+ <?php print $Ocomment_author; ?>
473
+ </ul>
474
+ <?php } ?>
475
+ <div style="display: none;" class="togglenavi navi<?php echo $cv->id ?>">
476
+ <ul class="url">
477
+ <?php
478
+ $qryCD = $wpdb->get_results("SELECT timestamp, urlrequested FROM $table_name WHERE wassup_id='".$cv->wassup_id."' ORDER BY timestamp ASC");
479
+ $i=0;
480
+ foreach ($qryCD as $cd) {
481
+ //$timestamp2 = $cd->timestamp; //redundant
482
+ $time2 = gmdate("H:i:s", $cd->timestamp);
483
+ $num = ($i&1);
484
+ $char_len = round($max_char_len*.9,0);
485
+ if ($num == 0) $classodd = "urlodd"; else $classodd = "url";
486
+ if ($i >= 1) {
487
+ ?>
488
+ <li class="<?php print $classodd; ?> navi<?php echo $cv->id ?>"><span class="indent-li"><?php print $time2; ?> -
489
+ <?php
490
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cd->urlrequested))).'" target="_BLANK">';
491
+ print stringShortener(urlencode(html_entity_decode($cd->urlrequested)), $char_len).'</a></span></li>'."\n";
492
+ }
493
+ $i++;
494
+ } //end foreach qryCD
495
+ print '</ul>';
496
+ print '</div>';
497
+ print '<p class="sum-footer"></p>';
498
+ } //end foreach qryC
499
+ } //end if currenttot
500
+ print '<br /><p style="font-size:11px;"><a href="#" class="toggle-all">Expand All</a></p>';
501
+
502
+ // HERE IS THE SPY MODE VIEW
503
+ } elseif ($_GET['page'] == "wassup-spy") {
504
+ print '<h2>SPY Visitors</h2>';
505
+ print '<p style="font-size:11px">Legend: <span class="box-log">&nbsp;&nbsp;</span> Logged-in Users <span class="box-aut">&nbsp;&nbsp;</span> Comments Authors <span class="box-spider">&nbsp;&nbsp;</span> Spiders/bots</p><br />'."\n";
506
+ print '<div>';
507
+ print '<a href="#?" onclick="return pauseSpy();"><span id="spy-pause">Pause</span></a> ';
508
+ print '<a href="#?" onclick="return playSpy();"><span id="spy-play">Play</span></a>';
509
+ print '<br />&nbsp;<br /></div>'."\n";
510
+ print '<div id="spyContainer">'."\n".'<!-- spyContainer is empty -->'."\n";
511
+ //display the last few hits here. The rest will be added via spy.js
512
+ $to_date = (wassup_get_time()-2);
513
+ $from_date = ($to_date - 12*(60*60)); //display last 10 visits in 12 hours...
514
+ spyview($from_date,$to_date,10);
515
+ print '</div>';
516
+ echo "<br />";
517
+
518
+ // HERE IS THE OPTIONS VIEW
519
+ } elseif($_GET['page'] == "wassup-options") {
520
+ //#moved content to external include file, "settings.php"
521
+ //# to make "wassup" code easier to read and modify
522
+ //# -Helene D. 1/15/08.
523
+ include(dirname(__FILE__).'/lib/settings.php'); ?>
524
+
525
+ <?php // HERE IS THE MAIN/DETAILS VIEW
526
+ } else {
527
+
528
+ $search = attribute_escape($_GET['search']);
529
+ $res = (int) $wassup_settings['wassup_screen_res'];
530
+ if (empty($res)) $res=620;
531
+ elseif ($res < 800) $res=620;
532
+ elseif ($res < 1024) $res=740;
533
+ elseif ($res < 1200) $res=1000;
534
+ else $res=1000;
535
+
536
+ if (isset($_GET['wmark'])) {
537
+ if ($_GET['wmark'] == 0) {
538
+ $wassup_settings['wmark'] = "0";
539
+ $wassup_settings['wip'] = "";
540
+ } else {
541
+ $wassup_settings['wmark'] = "1";
542
+ $wassup_settings['wip'] = attribute_escape($_GET['wip']);
543
+ }
544
+ update_option('wassup_settings', $wassup_settings);
545
+ }
546
+ if (isset($_GET['wchart'])) {
547
+ if ($_GET['wchart'] == 0) {
548
+ $wassup_settings['wassup_chart'] = 0;
549
+ } else {
550
+ $wassup_settings['wassup_chart'] = 1;
551
+ }
552
+ update_option('wassup_settings', $wassup_settings);
553
+ }
554
+
555
+ if ($wassup_settings['wassup_default_limit'] != '' AND !isset($_GET['limit'])) {
556
+ $items = $wassup_settings['wassup_default_limit'];
557
+ } elseif(isset($_GET['limit'])) {
558
+ $items = htmlentities(attribute_escape($_GET['limit']));
559
+ } else {
560
+ $items = 10;
561
+ }
562
+
563
+ if ($wassup_settings['wassup_default_type'] != '' AND !isset($_GET['type'])) {
564
+ $type = $wassup_settings['wassup_default_type'];
565
+ } else {
566
+ $type = htmlentities(attribute_escape($_GET['type']));
567
+ }
568
+
569
+ if ($type == 'spider') {
570
+ $whereis = " AND spider!=''";
571
+ } elseif ($type == 'nospider') {
572
+ $whereis = " AND spider=''";
573
+ } elseif ($type == 'spam') {
574
+ $whereis = " AND spam>0";
575
+ } elseif ($type == 'nospam') {
576
+ $whereis = " AND spam=0";
577
+ } elseif ($type == 'nospamspider') {
578
+ $whereis = " AND spam=0 AND spider=''";
579
+ } elseif ($type == 'searchengine') {
580
+ $whereis = " AND searchengine!='' AND search!=''";
581
+ } elseif ($type == 'referrer') {
582
+ $whereis = " AND referrer!='' AND referrer NOT LIKE '%$wpurl%' AND searchengine='' AND search=''";
583
+ } elseif ($type == 'comauthor') {
584
+ $whereis = " AND comment_author!='' AND username=''";
585
+ } elseif ($type == 'loggedin') {
586
+ $whereis = " AND username!=''";
587
+ }
588
+
589
+ $pages = 1;
590
+ if(isset($_GET['pages']) and is_numeric($_GET['pages']) and $pages = $_GET['pages']) {
591
+ $limit = " LIMIT ".(($pages-1)*$items).",$items";
592
+ } else {
593
+ $limit = " LIMIT $items";
594
+ }
595
+
596
+ print "<h2>Latest hits</h2>";
597
+ $to_date = wassup_get_time();
598
+ if ($_GET['last'] == "") $last = 1; else $last = htmlentities(attribute_escape($_GET['last']));
599
+ $from_date = strtotime('-'.$last.' day', $to_date);
600
+
601
+ // Instantiate class to count items
602
+ $Tot = New MainItems;
603
+ $Tot->tableName = $table_name;
604
+ $Tot->from_date = $from_date;
605
+ $Tot->to_date = $to_date;
606
+ $Tot->whereis = $whereis;
607
+ $Tot->Limit = $limit;
608
+ $Tot->WpUrl = $wpurl;
609
+
610
+ $itemstot = $Tot->calc_tot("items", $search);
611
+ $pagestot = $Tot->calc_tot("pages", $search);
612
+ $spamtot = $Tot->calc_tot("spam", $search);
613
+ // Check if some records was marked
614
+ if ($wassup_settings['wmark'] == 1) {
615
+ $Tot->Marked_ip = $wassup_settings['wip'];
616
+ $markedtot = $Tot->calc_tot("items_by_type", $search, "marked");
617
+ }
618
+
619
+
620
+ $new_limit = eregi_replace("\&limit=".$_GET['limit']."", "", $_SERVER['QUERY_STRING']);
621
+ $new_type = eregi_replace("\&type=".$_GET['type']."", "", $_SERVER['QUERY_STRING']);
622
+ $new_last = eregi_replace("\&last=".$_GET['last']."", "", $_SERVER['QUERY_STRING']);
623
+
624
+ if ($wassup_settings['wassup_active'] != 1) {
625
+ print "<p style='color: red; font-weight: bold;'>WassUp recording is disabled</p>";
626
+ }
627
+ // DELETE EVERY RECORD MARKED BY IP
628
+ if ($_GET['deleteMARKED'] == 1) {
629
+ $rec_deleted = $wpdb->get_var("SELECT COUNT(ip) as deleted FROM $table_name WHERE ip='".urlencode(attribute_escape($_GET['dip']))."'");
630
+ $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE ip='%s'", urlencode(attribute_escape($_GET['dip']))));
631
+ echo "<p><strong>".$rec_deleted." records deleted</strong></p>";
632
+ }
633
+ echo "<table width='100%'>
634
+ <tr>
635
+ <td>
636
+ <form><p style=\"font-size: 11px;\">";
637
+ if ($wassup_settings['wassup_chart'] == 1) {
638
+ echo "<a href='?page=".WASSUPFOLDER."&wchart=0' style='text-decoration:none;'><img src='$wpurl/wp-content/plugins/".WASSUPFOLDER."/img/chart_delete.png' style='padding:0px 6px 0 0;' alt='hide chart' title='Hide the chart and site usage'></a>";
639
+ } else {
640
+ echo "<a href='?page=".WASSUPFOLDER."&wchart=1' style='text-decoration:none;'><img src='$wpurl/wp-content/plugins/".WASSUPFOLDER."/img/chart_add.png' style='padding:0px 6px 0 0;' alt='show chart' title='Show the chart and site usage'></a>";
641
+ }
642
+ echo "Summary for the last <select style=\"font-size: 11px;\" name='last' onChange='window.location.href=this.options[this.selectedIndex].value;'>
643
+ <option value='?$new_last&last=1'".($_GET['last'] == 1 ? " SELECTED" : "").">24 hours</option>
644
+ <option value='?$new_last&last=7'".($_GET['last'] == 7 ? " SELECTED" : "").">7 days</option>
645
+ <option value='?$new_last&last=30'".($_GET['last'] == 30 ? " SELECTED" : "").">1 month</option>
646
+ <option value='?$new_last&last=365'".($_GET['last'] == 365 ? " SELECTED" : "").">1 year</option>
647
+ </select></p>
648
+ </td>
649
+ <td align='right'><p style=\"font-size: 11px;\">Items per page: <select name='navi' style=\"font-size: 11px;\" onChange='window.location.href=this.options[this.selectedIndex].value;'>
650
+ <option value='?$new_limit&limit=10'".($items == 10 ? " SELECTED" : "").">10</option>
651
+ <option value='?$new_limit&limit=20'".($items == 20 ? " SELECTED" : "").">20</option>
652
+ <option value='?$new_limit&limit=50'".($items == 50 ? " SELECTED" : "").">50</option>
653
+ <option value='?$new_limit&limit=100'".($items == 100 ? " SELECTED" : "").">100</option>
654
+ </select> - Show items by: <select style=\"font-size: 11px;\" name='type' onChange='window.location.href=this.options[this.selectedIndex].value;'>
655
+ <option value='?page=".WASSUPFOLDER."'>--</option>
656
+ <option value='?$new_type&type=spider'".($type == "spider" ? " SELECTED" : "").">Spider</option>
657
+ <option value='?$new_type&type=nospider'".($type == "nospider" ? " SELECTED" : "").">NO Spider</option>
658
+ <option value='?$new_type&type=spam'".($type == "spam" ? " SELECTED" : "").">Spam</option>
659
+ <option value='?$new_type&type=nospam'".($type == "nospam" ? " SELECTED" : "").">NO Spam</option>
660
+ <option value='?$new_type&type=nospamspider'".($type == "nospamspider" ? " SELECTED" : "").">NO Spam NO Spider</option>
661
+ <option value='?$new_type&type=loggedin'".($type == "loggedin" ? " SELECTED" : "").">Users logged in</option>
662
+ <option value='?$new_type&type=comauthor'".($type == "comauthor" ? " SELECTED" : "").">Comment's authors</option>
663
+ <option value='?$new_type&type=searchengine'".($type == "searchengine" ? " SELECTED" : "").">Referer from search engine</option>
664
+ <option value='?$new_type&type=referrer'".($type == "referrer" ? " SELECTED" : "").">Referer from ext link</option>
665
+ <option value='?$new_type&type=everything'".($type == "everything" ? " SELECTED" : "").">Everything</option>
666
+ </select>
667
+ </p>
668
+ </form>
669
+ </td>
670
+ </tr>
671
+ </table>
672
+ ";
673
+
674
+ if ($wassup_settings['wassup_chart'] == 1) {
675
+ // Print Site Usage
676
+ //#print useage/google chart only on page 1...
677
+ //if (!isset($_GET['pages']) || (int)$_GET['pages'] < 2) {
678
+ echo "
679
+ <div class='main-tabs'>
680
+ <div id='usage'>
681
+ <ul>
682
+ <li><span style='border-bottom: 2px solid #0077CC;'>".$itemstot."</span> <small>Visits</small></li>
683
+ <li><span style='border-bottom: 2px dashed #FF6D06;'>".$pagestot."</span> <small>Pageviews</small></li>
684
+ <li><span>".@number_format(($pagestot/$itemstot), 2)."</span> <small>Pages/Visits</small></li>
685
+ <li><span><a href=\"#TB_inline?height=55&width=400&inlineId=hiddenspam\" class=\"thickbox\">".$spamtot."</a></span> <span>(".@number_format(($spamtot*100/$pagestot), 2)."%)</span> <small>Spams</small></li>
686
+ </ul>";
687
+ // Print the Google chart!
688
+ if ($pagestot > 20) {
689
+ echo $Tot->TheChart($last, $res, attribute_escape($_GET['search']))."";
690
+ } else {
691
+ echo "<div id='placeholder' align='center'><p style='padding-top:50px;'>Waiting for some data to print chart...</p></div>";
692
+ }
693
+ echo "
694
+ </div>
695
+ </div>";
696
+ }
697
+
698
+ if ($_GET['limit'] == 10 OR $_GET['limit'] == 20 OR !isset($_GET['limit'])) {
699
+ $expcol = '
700
+ <table width="100%"><tr>
701
+ <td align="left" style="font-size: 11px;"><a href="#" class="toggle-all">'.__('Expand All','wassup').'</a></td>
702
+ <td align="right" style="font-size: 11px;"><a href="#" class="toggle-allcrono">'.__('Collapse Chronology','wassup').'</a></td>
703
+ </tr></table><br />';
704
+ }
705
+
706
+ // MAIN QUERY
707
+ $main = $Tot->calc_tot("main", $search);
708
+
709
+ if ($itemstot > 0) {
710
+ $p=new pagination();
711
+ $p->items($itemstot);
712
+ $p->limit($items);
713
+ $p->currentPage($pages);
714
+ $p->target("admin.php?page=".WASSUPFOLDER."&limit=$items&type=$type&last=$last&search=$search");
715
+ $p->calculate();
716
+ $p->adjacents(5);
717
+ }
718
+
719
+ // hidden spam options
720
+ ?>
721
+ <div id="hiddenspam" style="display:none;">
722
+ <h2>Spam Options</h2>
723
+ <form action="" method="post">
724
+ <p><input type="checkbox" name="wassup_spamcheck" value="1" <?php if($wassup_settings['wassup_spamcheck'] == 1 ) print "CHECKED"; ?> /> <strong><?php _e('Enable/Disable Spam Check on Records','wassup'); ?></strong></p>
725
+ <p style="padding-left:30px;"><input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_settings['wassup_spam'] == 1) print "CHECKED"; ?> /> <?php _e('Record Akismet comment spam attempts','wassup'); ?></p>
726
+ <p style="padding-left:30px;"><input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_settings['wassup_refspam'] == 1) print "CHECKED"; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?></p>
727
+ <p style="padding-left:0;"><input type="submit" name="submit-spam" value="<?php _e('Save Settings','wassup'); ?>" /></p>
728
+ </form>
729
+ </div>
730
+ <table width="100%">
731
+ <tr>
732
+ <td align="left" style="font-size: 11px;"><?php if ($wassup_settings['wmark'] == 1) echo "<a href='?".$_SERVER['QUERY_STRING']."&search=".$wassup_settings['wip']."' title='Filter by marked IP'><strong>$markedtot</strong> visits marked</a> - "; if ($search != "") print "Searched for: <strong>$search</strong> - "; ?>Auto refresh in <span id="CountDownPanel"></span> seconds</td>
733
+
734
+ <td align="right" style="font-size: 11px;"><a href="<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?height=400&width=$res&action=topten&hash=$hash&from_date=$from_date&to_date=$to_date"; ?>" class="thickbox">Show TopTen</a> - <a href="#" class='show-search'>Search</a></td>
735
+ </tr>
736
+ </table>
737
+ <div class="search-ip" style="display: none;">
738
+ <table border=0 width="100%">
739
+ <tr valign="top">
740
+ <td align="right">
741
+ <form action="" method="get">
742
+ <input type="hidden" name="page" value="<?php echo WASSUPFOLDER; ?>">
743
+ <input type="text" size="25" name="search" value="<?php if ($search != "") print $search; ?>"><input type="submit" name="submit-search" value="search">
744
+ </form>
745
+ </td>
746
+ </tr>
747
+ </table>
748
+ </div>
749
+ <!-- end Top Ten -->
750
+ <?php
751
+ //# Detailed List of Wassup Records...
752
+ print $expcol;
753
+ //# Show Page numbers/Links...
754
+ if ($itemstot >= 10) {
755
+ print "<div id='pag' align='center'>".$p->show()."</div>";
756
+ }
757
+ ?>
758
+ <br />
759
+
760
+ <?php
761
+ if ($itemstot > 0) {
762
+ foreach ($main as $rk) {
763
+ $timestampF = $rk->max_timestamp;
764
+ $dateF = gmdate("d M Y", $timestampF);
765
+ $timeF = gmdate("H:i:s", $timestampF);
766
+ $datetimeF = gmdate('Y-m-d H:i:s', $timestampF);
767
+ $ip = @explode(",", $rk->ip);
768
+ if ($rk->referrer != '') {
769
+ if (!eregi($wpurl, $rk->referrer) OR $rk->searchengine != "") {
770
+ if (!eregi($wpurl, $rk->referrer) AND $rk->searchengine == "") {
771
+ $referrer = '<a href="'.$rk->referrer.'" target="_BLANK"><span style="font-weight: bold;">'.stringShortener($rk->referrer, round($max_char_len*.8,0)).'</span></a>';
772
+ } else {
773
+ $referrer = '<a href="'.$rk->referrer.'" target="_BLANK">'.stringShortener($rk->referrer, round($max_char_len*.9,0)).'</a>';
774
+ }
775
+ } else {
776
+ $referrer = "From your blog";
777
+ }
778
+ } else {
779
+ $referrer = "Direct hit";
780
+ }
781
+ $numurl = $wpdb->get_var("SELECT COUNT(DISTINCT id) as numurl FROM $table_name WHERE wassup_id='".$rk->wassup_id."'");
782
+ if ($rk->hostname != "") $hostname = $rk->hostname; else $hostname = "unknown";
783
+ ?>
784
+
785
+ <div class="delID<?php echo $rk->wassup_id ?>">
786
+ <div class="<?php if ($wassup_settings['wmark'] == 1 AND $wassup_settings['wip'] == $ip[0]) echo "sum-nav-mark"; else echo "sum-nav"; ?>">
787
+
788
+ <p class="delbut">
789
+ <?php // Mark/Unmark IP
790
+ if ($wassup_settings['wmark'] == 1 AND $wassup_settings['wip'] == $ip[0]) { ?>
791
+ <a href="?<?php echo $_SERVER['QUERY_STRING'] ?>&deleteMARKED=1&dip=<?php print $ip[0]; ?>" style="text-decoration:none;"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/cross.png'; ?>" alt="delete" title="Delete EVERY records marked by this IP from DB"></a>
792
+ <a href="?page=<?php echo WASSUPFOLDER; ?>&wmark=0" style="text-decoration:none;">
793
+ <img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/error_delete.png'; ?>" alt="mark" title="UnMark IP">
794
+ </a>
795
+ <?php } else { ?>
796
+ <a href="#" class="deleteID" id="<?php echo $rk->wassup_id ?>" style="text-decoration:none;"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/cross.png'; ?>" alt="delete" title="Delete record from DB"></a>
797
+ <a href="?<?php echo $_SERVER['QUERY_STRING'] ?>&wmark=1&wip=<?php print $ip[0]; ?>" style="text-decoration:none;">
798
+ <img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/error_add.png'; ?>" alt="mark" title="Mark IP">
799
+ </a>
800
+ <?php } ?>
801
+ <a href="<?php echo $wpurl."/wp-content/plugins/".WASSUPFOLDER."/lib/action.php?height=400&width=$res&action=displayraw&hash=$hash&wassup_id=".$rk->wassup_id.""; ?>" class="thickbox"><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/database_table.png'; ?>" alt="show raw table" title="Show the items as raw table"></a>
802
+ </p>
803
+
804
+ <span class="sum-box"><?php if ($numurl >= 2) { ?><a href="#" class="showhide" id="<?php echo $rk->id ?>"><?php print $ip[0]; ?></a><? } else { ?><?php print $ip[0]; ?><?php } ?></span>
805
+ <span class="sum-date"><?php print $datetimeF; ?></span>
806
+ <div class="sum-det"><span class="det1">
807
+ <?php
808
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($rk->urlrequested))).'" target="_BLANK">';
809
+ print stringShortener(urlencode(html_entity_decode($rk->urlrequested)), round($max_char_len*.8,0)); ?></a>
810
+ </span><br />
811
+ <span class="det2"><strong>Referer: </strong><?php print $referrer; ?><br /><strong>Hostname:</strong> <a href="#" class="toggleagent" id="<?php echo $rk->id ?>"><?php print $hostname; ?></a></span></div>
812
+ </div>
813
+ <div style="margin-left: auto; margin-right: auto;">
814
+ <div style="display: none;" class="togglenavi naviagent<?php echo $rk->id ?>">
815
+ <ul class="useragent">
816
+ <li class="useragent"><span class="indent-li-agent">UserAgent: <strong><?php print $rk->agent; ?></strong></span></li>
817
+ </ul>
818
+ </div>
819
+ <?php // Referer is search engine
820
+ if ($rk->searchengine != "") {
821
+ if (eregi("images", $rk->searchengine)) {
822
+ $bg = 'style="background: #e5e3ec;"';
823
+ $page = (number_format(($rk->searchpage / 19), 0) * 18);
824
+ $Apagenum = explode(".", number_format(($rk->searchpage / 19), 1));
825
+ $pagenum = ($Apagenum[0] + 1);
826
+ $url = parse_url($rk->referrer);
827
+ $ref = $url['scheme']."://".$url['host']."/images?q=".eregi_replace(" ", "+", $rk->search)."&start=".$page;
828
+ } else {
829
+ $bg = 'style="background: #e4ecf4;"';
830
+ $pagenum = $rk->searchpage;
831
+ $ref = $rk->referrer;
832
+ }
833
+ ?>
834
+ <ul class="searcheng" <?php print $bg; ?>>
835
+ <li class="searcheng"><span class="indent-li-agent">SEARCH ENGINE: <strong><?php print $rk->searchengine." (page: $pagenum)"; ?></strong></span></li>
836
+ <li class="searcheng">KEYWORDS: <strong><a href="<?php print $ref; ?>" target="_BLANK"><?php print stringShortener($rk->search, round($max_char_len*.52,0)); ?></a></strong></li>
837
+ </ul>
838
+ <?php
839
+ } ?>
840
+ <?php
841
+ // User is logged in or is a comment's author
842
+ if ($rk->username != "" OR $rk->comment_author != "") {
843
+ if ($rk->username != "") {
844
+ $Ocomment_author = '<li class="users"><span class="indent-li-agent">LOGGED IN USER: <strong>'.$rk->username.'</strong></span></li>
845
+ <li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.$rk->comment_author.'</strong></span></li>';
846
+ $unclass = "userslogged";
847
+ } elseif ($rk->comment_author != "") {
848
+ $Ocomment_author = '<li class="users"><span class="indent-li-agent">COMMENT AUTHOR: <strong>'.utf8_decode($rk->comment_author).'</strong></span></li>';
849
+ $unclass = "users";
850
+ }
851
+ ?>
852
+ <ul class="<?php print $unclass; ?>">
853
+ <?php print $Ocomment_author; ?>
854
+ </ul>
855
+ <?php } ?>
856
+ <?php // Referer is a Spider or Bot
857
+ if ($rk->spider != "") {
858
+ if ($rk->feed != "") { ?>
859
+ <ul style="background:#fdeec8;" class="spider">
860
+ <li class="feed"><span class="indent-li-agent">FEEDREADER: <strong><?php print $rk->spider; ?></strong></span></li>
861
+ <li class="feed"><span class="indent-li-agent">SUBSCRIBER(S): <strong><?php print $rk->feed; ?></strong></span></li>
862
+ </ul>
863
+ <?php } else { ?>
864
+ <ul class="spider">
865
+ <li class="spider"><span class="indent-li-agent">SPIDER: <strong><?php print $rk->spider; ?></strong></span></li>
866
+ </ul>
867
+ <?php }
868
+ } ?>
869
+ <?php // Referer is a SPAM
870
+ if ($rk->spam > 0) { ?>
871
+ <ul class="spam">
872
+ <li class="spam"><span class="indent-li-agent">Probably SPAM! <?php if ($rk->spam==1) { ?>(Akismet Spam)<?php } elseif ($rk->spam==2) { ?>(Referer Spam)<?php } ?></span></li>
873
+ </ul>
874
+ <?php } ?>
875
+ <?php // User os/broswer/language
876
+ if ($rk->os != "" OR $rk->browser != "") {
877
+ ?>
878
+ <ul class="agent">
879
+ <li class="agent"><span class="indent-li-agent"><?php if ($rk->language != "") { ?><img src="<?php echo $wpurl.'/wp-content/plugins/'.WASSUPFOLDER.'/img/flags/'.strtolower($rk->language).'.png'; ?>" alt="<?php print strtolower($rk->language); ?>" title="Language: <?php print strtolower($rk->language); ?>"><?php } ?> OS: <strong><?php print $rk->os; ?></strong></span></li>
880
+ <li class="agent">BROWSER: <strong><?php print $rk->browser; ?></strong></li>
881
+ </ul>
882
+ <?php } ?>
883
+
884
+ <div style="display: visible;" class="togglecrono navi<?php echo $rk->id ?>">
885
+ <ul class="url">
886
+ <?php
887
+ $qryCD = $wpdb->get_results("SELECT timestamp, urlrequested FROM $table_name WHERE wassup_id='".$rk->wassup_id."' ORDER BY timestamp ASC");
888
+ $i=0;
889
+ foreach ($qryCD as $cd) {
890
+ //$timestamp2 = $cd->timestamp; //redundant
891
+ $time2 = gmdate("H:i:s", $cd->timestamp);
892
+ $char_len = round($max_char_len*.92,0);
893
+ $num = ($i&1);
894
+ if ($num == 0) $classodd = "urlodd"; else $classodd = "url";
895
+ if ($i >= 1) {
896
+ print '<li class="'.$classodd.' navi'.$rk->id.'"><span class="indent-li-nav">'.$time2.' ->';
897
+ print '<a href="'.wAddSiteurl(htmlspecialchars(html_entity_decode($cd->urlrequested))).'" target="_BLANK">';
898
+ print stringShortener(urlencode(html_entity_decode($cd->urlrequested)), $char_len).'</a></span></li>'."\n";
899
+ }
900
+ $i++;
901
+ } //end foreach qryCD
902
+ print "</ul>";
903
+ ?>
904
+ </div>
905
+ <p class="sum-footer"></p>
906
+ </div>
907
+ </div>
908
+ <?php } //end foreach qry
909
+
910
+ } //end if itemstot > 0
911
+ print '<br />';
912
+ if ($itemstot >= 10) $p->show();
913
+ print '<br />';
914
+ if ($_GET['limit'] == 10 OR $_GET['limit'] == 20 OR !isset($_GET['limit'])) {
915
+ print $expcol;
916
+ }
917
+
918
+ } //end MAIN/DETAILS VIEW
919
+
920
+ print "<p><small>WassUp ver: $version - Check the official <a href='http://www.wpwp.org' target='_BLANK'>WassUp</a> page for updates, bug reports and your hints to improve it</small></p>";
921
+ print "</div>";
922
+ } //end function Wassup
923
+
924
+ function CreateTable() {
925
+ global $wpdb;
926
+ $table_name = $wpdb->prefix . "wassup";
927
+ $sql_createtable = "CREATE TABLE " . $table_name . " (
928
+ id mediumint(9) NOT NULL auto_increment,
929
+ wassup_id varchar(50) NOT NULL,
930
+ timestamp varchar(20) default NULL,
931
+ ip varchar(35) default NULL,
932
+ hostname varchar(255) default NULL,
933
+ urlrequested text,
934
+ agent varchar(255) default NULL,
935
+ referrer text default NULL,
936
+ search varchar(255) default NULL,
937
+ searchpage int(11) default 0,
938
+ os varchar(15) default NULL,
939
+ browser varchar(50) default NULL,
940
+ language varchar(5) default NULL,
941
+ screen_res varchar(15) default NULL,
942
+ searchengine varchar(20) default NULL,
943
+ spider varchar(50) default NULL,
944
+ feed varchar(30) default NULL,
945
+ username VARCHAR( 50 ) default NULL,
946
+ comment_author VARCHAR( 50 ) default NULL,
947
+ spam VARCHAR( 50 ) default 0,
948
+ UNIQUE KEY id (id),
949
+ KEY wassup_id (wassup_id)
950
+ );";
951
+ require_once( ABSPATH.'wp-admin/upgrade-functions.php');
952
+ dbDelta($sql_createtable);
953
+ } //end function createTable
954
+
955
+ function UpdateTable() {
956
+ global $wpdb, $wassup_settings;
957
+ $table_name = $wpdb->prefix . "wassup";
958
+ // Upgrade from version < 1.1b
959
+ if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'username'") == "") {
960
+ $sql_add_username = "ALTER TABLE {$table_name} ADD COLUMN username VARCHAR( 50 ) NULL";
961
+ $wpdb->query( $sql_add_username );
962
+ }
963
+ if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'comment_author'") == "") {
964
+ $sql_add_comment_author = "ALTER TABLE {$table_name} ADD COLUMN comment_author VARCHAR( 50 ) NULL";
965
+ $wpdb->query( $sql_add_comment_author );
966
+ }
967
+ // Upgrade from version < 1.1.4b
968
+ $Freferrer = $wpdb->get_results("show columns from $table_name LIKE 'referrer'");
969
+ foreach ($Freferrer as $ff) {
970
+ if (eregi("varchar", $ff->Type)) {
971
+ $sql_alter_referrer = "ALTER TABLE {$table_name} CHANGE referrer referrer TEXT NULL";
972
+ $wpdb->query( $sql_alter_referrer );
973
+ }
974
+ }
975
+ // Upgrade from version < 1.2b
976
+ $Fsearchpage = $wpdb->get_results("show columns from $table_name LIKE 'searchpage'");
977
+ foreach ($Fsearchpage as $ss) {
978
+ if ($ss->Default == "") {
979
+ $sql_alter_searchpage = "ALTER TABLE {$table_name} CHANGE searchpage searchpage INT( 11 ) NULL DEFAULT '0'";
980
+ $wpdb->query( $sql_alter_searchpage );
981
+ }
982
+ }
983
+ $Fuseragent = $wpdb->get_results("show columns from $table_name LIKE 'agent'");
984
+ foreach ($Fuseragent as $ua) {
985
+ if ($ua->Type != "varchar(255)") {
986
+ $sql_alter_useragent = "ALTER TABLE {$table_name} CHANGE agent agent varchar(255) NULL";
987
+ $wpdb->query( $sql_alter_useragent );
988
+ }
989
+ }
990
+ $Fbrowser = $wpdb->get_results("show columns from $table_name LIKE 'browser'");
991
+ foreach ($Fbrowser as $br) {
992
+ if ($br->Type != "varchar(50)") {
993
+ $sql_alter_browser = "ALTER TABLE {$table_name} CHANGE browser browser varchar(50) NULL";
994
+ $wpdb->query( $sql_alter_browser );
995
+ }
996
+ }
997
+ $Fspider = $wpdb->get_results("show columns from $table_name LIKE 'spider'");
998
+ foreach ($Fspider as $sp) {
999
+ if ($sp->Type != "varchar(50)") {
1000
+ $sql_alter_spider = "ALTER TABLE {$table_name} CHANGE spider spider varchar(50) NULL";
1001
+ $wpdb->query( $sql_alter_spider );
1002
+ }
1003
+ }
1004
+ // Upgrade from version < 1.3.9
1005
+ if ($wpdb->get_var("SHOW COLUMNS FROM $table_name LIKE 'spam'") == "") {
1006
+ $sql_add_spam = "ALTER TABLE {$table_name} ADD COLUMN spam VARCHAR( 50 ) DEFAULT '0'";
1007
+ $wpdb->query( $sql_add_spam );
1008
+ }
1009
+ } //end function UpdateTable()
1010
+
1011
+ //Track visitors and save record in wassup table
1012
+ function wassupAppend() {
1013
+ global $wpdb, $wassup_id, $wp_query, $HTTP_COOKIE_VARS, $screen_res, $wassup_settings, $wpurl;
1014
+ $siteurl = get_bloginfo('siteurl');
1015
+ $table_name = $wpdb->prefix . "wassup"; //moved;
1016
+
1017
+ if (!is_admin()) { //exclude wordpress admin page visits
1018
+
1019
+ //#### Get the visitor's details from http header...
1020
+ if (isset($_SERVER["REMOTE_ADDR"])) {
1021
+ if ($_SERVER["HTTP_X_FORWARDED_FOR"] != ""){
1022
+ $IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
1023
+ $proxy = $_SERVER["REMOTE_ADDR"];
1024
+ $hostname = @gethostbyaddr($_SERVER["HTTP_X_FORWARDED_FOR"]);
1025
+ $ipAddress = $proxy.",".$IP;
1026
+ }else{
1027
+ $IP = $_SERVER["REMOTE_ADDR"];
1028
+ $hostname = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
1029
+ $ipAddress = $IP;
1030
+ }
1031
+ }
1032
+ $urlRequested = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '' );
1033
+ $referrer = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');
1034
+ $userAgent = (isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '');
1035
+ $language = (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? attribute_escape($_SERVER['HTTP_ACCEPT_LANGUAGE']) : '');
1036
+ $current_user = wp_get_current_user();
1037
+ $logged_user = $current_user->user_login;
1038
+ $comment_user = utf8_encode($_COOKIE['comment_author_'.COOKIEHASH]);
1039
+
1040
+ $timestamp = wassup_get_time(); //Add a timestamp to visit...
1041
+
1042
+ //#####Start recording visit....
1043
+ //## wassup is activated and IP not on exclusion list...
1044
+ if ($wassup_settings['wassup_active'] == 1) { //(moved)
1045
+ if (empty($wassup_settings['wassup_exclude']) ||
1046
+ strstr($wassup_settings['wassup_exclude'],$ipAddress) == FALSE) {
1047
+
1048
+ //### Exclude requests for themes, plugins, and favicon from recordings
1049
+ if (stristr($urlRequested,"favicon.ico") === FALSE) { //moved
1050
+ if (stristr($urlRequested,"/wp-content/plugins") === FALSE || stristr($urlRequested,"forum") !== FALSE ) { //moved and modified to allow forum requests
1051
+ if (stristr($urlRequested,"/wp-content/themes") === FALSE || stristr($urlRequested,"comment") !== FALSE ) { //moved and modified to allow comment requests
1052
+
1053
+ //##### Extract useful visit information from http header..
1054
+ $dip = &new Detector("", $userAgent);
1055
+ $browser = $dip->browser." ".$dip->browser_version;
1056
+ $os = $dip->os." ".$dip->os_version;
1057
+ if ($os != "" OR $browser != "") {
1058
+ $bot=wGetSpider($userAgent);
1059
+ if (is_array($bot)) {
1060
+ $spider = $bot[0];
1061
+ $feed = $bot[1];
1062
+ } else {
1063
+ $spider = trim($bot);
1064
+ }
1065
+ }
1066
+ //#I prefer to see os/browser info. for spiders/bots.
1067
+ //if ($spider != '') { $os=''; $browser=''; }
1068
+
1069
+ //# More recording exclusion controls (moved to avoid unneeded spam testing)
1070
+ if ($wassup_settings['wassup_loggedin'] == 1 || !is_user_logged_in() ) {
1071
+ if ($wassup_settings['wassup_spider'] == 1 || $spider == '') {
1072
+ if ($wassup_settings['wassup_attack'] == 1 || stristr($userAgent,"libwww-perl") === FALSE ) {
1073
+
1074
+ //#===================================================
1075
+ //###Start visitor tracking with "session"...
1076
+ //
1077
+ //#create a temporary id for this visit from a combination of
1078
+ //# date/hour/min/ip/spider/browser/os. It is not unique so
1079
+ //# that multiple visits from the same ip/userAgent within a
1080
+ //# 10 minute-period, can be tracked as such, even when
1081
+ //# session/cookies is disabled. An md5 encoded version of
1082
+ //# this id is saved in a session/cookie as "wassup_id".
1083
+ $temp_id = sprintf("%-032.32s",str_replace(array(" ","/",".","\"","'","\\","\$","-","&","+","_","\;","\,","\>","\<",":","#","*","%","http","\)","\(",), '', substr(date('YmdHi'),0,11).$ipAddress.$spider.$browser.$os.$userAgent));
1084
+ $wassup_id = "";
1085
+ $session_timeout = 1;
1086
+ $dup_urlrequest=0;
1087
+ //
1088
+ //### Check if this is an ongoing visit or a new hit...
1089
+ //# Test for valid savepath directory before session_start()
1090
+ //# Note: a read-only savepath directory can cause errors here.
1091
+ if (!empty($wassup_settings['wassup_savepath'])) {
1092
+ $sessionpath = $wassup_settings['wassup_savepath'];
1093
+ } else {
1094
+ $sessionpath = wGetSessionpath();
1095
+ }
1096
+ if ( file_exists($sessionpath)) {
1097
+ //#reset sessionpath to value set in options...
1098
+ if ( $sessionpath != wGetSessionpath() ) {
1099
+ session_save_path($sessionpath);
1100
+ }
1101
+ session_start(); //required to use/update $_SESSION
1102
+ //#confirm that session is started...
1103
+ if (isset($_SESSION)) {
1104
+ if (isset($_SESSION['wassup_id'])) {
1105
+ $wassup_id = $_SESSION['wassup_id'];
1106
+ $session_timeout = ((int)$_SESSION['wassup_timer'] - (int)time());
1107
+ if (isset($_SESSION['spamresult'])) {
1108
+ $spamresult = $_SESSION['spamresult'];
1109
+ }
1110
+ if ( $_SESSION['urlrequest'] == $urlRequested && (($timestamp - (int)$_SESSION['visittime']) < 5)) {
1111
+ $dup_urlrequest=1;
1112
+ }
1113
+ }
1114
+ //#reset wassup_id for new visitors or when timer is 0...
1115
+ if (empty($wassup_id) or $session_timeout < 1) {
1116
+ //# don't "destroy" old session in case it is
1117
+ //# in use elsewhere in wordpress ??..
1118
+ //if (!empty($wassup_id)) {
1119
+ // session_destroy();
1120
+ // session_start();
1121
+ //}
1122
+ $_SESSION['wassup_id'] = md5($temp_id);
1123
+ //$_SESSION['wassup_id'] = md5(uniqid(rand(), true));
1124
+ //#timeout session after 24 minutes
1125
+ $_SESSION['wassup_timer'] = ((int)time() + 1440);
1126
+ $dup_urlrequest=0;
1127
+ }
1128
+ $wassup_id = $_SESSION['wassup_id'];
1129
+ if ($dup_urlrequest == 0) { //for dup checks
1130
+ $_SESSION['visittime'] = $timestamp; //for dup checks
1131
+ $_SESSION['urlrequest'] = $urlRequested;
1132
+ }
1133
+ //#SID is empty when session uses cookies...
1134
+ //if (defined('SID') && !empty(SID)) {
1135
+ // //#manually add SID to url_rewriter when trans-sid
1136
+ // //# is disabled (how to test for this???)...
1137
+ // output_add_rewrite_var(session_name(), htmlspecialchars(session_id()));
1138
+ //}
1139
+ @session_write_close(); /* close session and commit changes*/
1140
+
1141
+ } elseif (isset($_COOKIE['wassup_id'])) {
1142
+ $wassup_id = $_COOKIE['wassup_id'];
1143
+ }
1144
+ } elseif (isset($_COOKIE['wassup_id'])) {
1145
+ $wassup_id = $_COOKIE['wassup_id'];
1146
+ }
1147
+ //#create cookie when bad session_savepath or when "session" is not available
1148
+ if (empty($wassup_id)) {
1149
+ //$wassup_id = md5(uniqid(rand(), true));
1150
+ $wassup_id = md5($temp_id);
1151
+ $url = parse_url(get_option('home'));
1152
+ setcookie('wassup_id', $wassup_id, wassup_get_time()+1440, $url['path'] . '/');
1153
+ }
1154
+ //#End session/cookie section
1155
+ //#===================================================
1156
+
1157
+ //### Exclude duplicates...
1158
+ if ($dup_urlrequest == 0) { //#dup checked only with sessions
1159
+
1160
+ //### Extract useful visit information from http header...
1161
+ $language = @explode("-", $language);
1162
+ $language = @explode(",", $language[1]);
1163
+ $language = @explode(";", $language[0]);
1164
+
1165
+ list($searchengine,$search_phrase)=explode("|",wGetSE($referrer));
1166
+ $se=seReferer($referrer);
1167
+ if ($search_phrase != '') {
1168
+ if (stristr($searchengine,"images")) {
1169
+ // ATTENTION Position retrieved by referer in Google Images is
1170
+ // the Position number of image NOT the number of items in the page like web search
1171
+ $searchpage=$se['Pos'];
1172
+ $searchcountry = explode(".", $se['Se']);
1173
+ } else {
1174
+ $searchpage=($se['Pos']/10+1);
1175
+ $searchcountry = explode(".", $se['Se']);
1176
+ }
1177
+ if ($searchcountry[3] != '' ) {
1178
+ $searchengine .= " ".strtoupper($searchcountry[3]);
1179
+ } elseif ($searchcountry[2] != '') {
1180
+ $searchengine .= " ".strtoupper($searchcountry[2]);
1181
+ }
1182
+ }
1183
+ if ($searchpage == "") {
1184
+ $searchpage = 0;
1185
+ }
1186
+
1187
+ //### Check for spam...
1188
+ $spam = 0; //a spam default of 0 is required to add record...
1189
+ //# some useragents to exclude from spam checking...
1190
+ $goodbots = array('Google','Yahoo!', 'SummizeFeedReader'); //omit
1191
+
1192
+ if ( $wassup_settings['wassup_spamcheck'] == 1 ) {
1193
+ //
1194
+ //# No duplicate spam testing in same session unless there
1195
+ //# is a forum page request or comment...
1196
+ if (isset($spamresult) && stristr($urlRequested,"comment") === FALSE && stristr($urlRequested,"forum") === FALSE && empty($comment_user) && empty($_POST['comment'])) {
1197
+ $spam = $spamresult;
1198
+
1199
+ //# No spam check on known bots (google, yahoo,...) unless
1200
+ //# there is a comment or forum page request...
1201
+ } elseif ( empty($spider) || array_search($spider,$goodbots) === FALSE || stristr($urlRequested,"comment") !== FALSE || stristr($urlRequested,"forum") !== FALSE || !empty($comment_user) ) {
1202
+
1203
+ //#first check for referrer spam (faster, if positive)
1204
+ //#...but skip when referrer is own blog ($siteurl/$wpurl)
1205
+ if (!empty($referrer)) {
1206
+ if (!stristr($referrer,$wpurl) && !stristr($referrer,$siteurl)) {
1207
+ // Do a control if it is Referrer Spam
1208
+ if (wGetSpamRef($referrer) == 1) { $spam = 2; }
1209
+ }
1210
+ }
1211
+
1212
+ //#lastly check for comment spammers using Akismet API
1213
+ // Start Akismet integration to prevent spam records
1214
+ $akismet_key = get_option('wordpress_api_key');
1215
+ if (!empty($akismet_key) && ($spam == 0 || !empty($comment_user)) || is_feed()) {
1216
+ $comment_user_email = utf8_encode($_COOKIE['comment_author_email_'.COOKIEHASH]);
1217
+ $comment_user_url = utf8_encode($_COOKIE['comment_author_url_'.COOKIEHASH]);
1218
+ include(dirname(__FILE__).'/lib/akismet.class.php');
1219
+
1220
+ // load array with comment data
1221
+ $Acomment = array(
1222
+ 'author' => $comment_user,
1223
+ 'email' => $comment_user_email,
1224
+ 'website' => $comment_user_url,
1225
+ 'body' => $_POST["comment"],
1226
+ 'permalink' => $urlRequested,
1227
+ 'user_ip' => $ipAddress,
1228
+ 'user_agent' => $userAgent
1229
+ );
1230
+
1231
+ // instantiate an instance of the class
1232
+ $akismet = new Akismet($wpurl, $akismet_key, $Acomment);
1233
+
1234
+ // Check if it's spam
1235
+ if ( $akismet->isSpam() ) {
1236
+ $spam = 1;
1237
+ }
1238
+ // test for errors
1239
+ // no need for error checks...spam=0 already set by default
1240
+ //if($akismet->errorsExist()) {
1241
+ // returns true if any errors exist
1242
+ //if($akismet->isError('AKISMET_INVALID_KEY')) {
1243
+ // $spam = 0;
1244
+ //} elseif($akismet->isError('AKISMET_RESPONSE_FAILED')) {
1245
+ // $spam = 0;
1246
+ //} elseif($akismet->isError('AKISMET_SERVER_NOT_FOUND')) {
1247
+ // $spam = 0;
1248
+ //}
1249
+ //}
1250
+ //end if akismet_key
1251
+ } else {
1252
+ //#no akismet key...check for known spammers using
1253
+ //# wGetSpamRef() with $hostname in place of
1254
+ //# $referrer...
1255
+ if ( $spam == 0) {
1256
+ if (!empty($hostname) && $hostname != "unknown") {
1257
+ if (wGetSpamRef($hostname) == 1) { $spam = 1; }
1258
+ }
1259
+ }
1260
+ } //end else akismet_key
1261
+
1262
+ // #save spam results in session...
1263
+ if ( file_exists($sessionpath)) {
1264
+ @session_start(); //required to access $_SESSION
1265
+ $_SESSION['spamresult'] = $spam;
1266
+ @session_write_close();
1267
+ }
1268
+
1269
+ } //end else $spamresult
1270
+ } //end if wassup_spamcheck
1271
+
1272
+ // Personally used to debug
1273
+ if ($current_user->user_email == "michele@befree.it") {
1274
+ }
1275
+
1276
+ //### Record visit in wassup table...
1277
+ //## Final exclusion control is spam...
1278
+ if ($spam == 0 OR ($wassup_settings['wassup_spam'] == 1 AND $spam == 1) OR ($wassup_settings['wassup_refspam'] == 1 AND $spam == 2)) {
1279
+
1280
+ $insert = $wpdb->query( $wpdb->prepare("INSERT INTO $table_name (wassup_id, timestamp, ip, hostname, urlrequested, agent, referrer, search, searchpage, os, browser, language, screen_res, searchengine, spider, feed, username, comment_author, spam)
1281
+ VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s )",
1282
+ $wassup_id,
1283
+ $timestamp,
1284
+ attribute_escape($ipAddress),
1285
+ attribute_escape($hostname),
1286
+ attribute_escape($urlRequested),
1287
+ attribute_escape($userAgent),
1288
+ attribute_escape($referrer),
1289
+ $search_phrase,
1290
+ $searchpage,
1291
+ $os,
1292
+ $browser,
1293
+ $language[0],
1294
+ $screen_res,
1295
+ $searchengine,
1296
+ $spider,
1297
+ $feed,
1298
+ attribute_escape($logged_user),
1299
+ attribute_escape($comment_user),
1300
+ $spam
1301
+ ));
1302
+
1303
+ } //end if wassup_spam
1304
+ } //end if dup_urlrequest == 0
1305
+
1306
+ } //end if wassup_attack
1307
+ } //end if wassup_spider
1308
+ } //end if wassup_loggedin
1309
+
1310
+ } //end if !themes
1311
+ } //end if !plugins
1312
+ } //end if !favicon
1313
+
1314
+ //### Purge old records from wassup table
1315
+ //automatic database cleanup of old records...
1316
+ if ($wassup_settings['delete_auto'] != "") {
1317
+ // do purge every few visits to keep wassup fast...
1318
+ if ( ((int)$timestamp)%5 == 0 ) {
1319
+ //use visit timestamp instead of current time for
1320
+ // delete parameter
1321
+ //$to_date = wassup_get_time();
1322
+ $from_date = strtotime($wassup_settings['delete_auto'], $timestamp);
1323
+ if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name AND $wpdb->get_var("SELECT COUNT(id) FROM $table_name WHERE timestamp<'$from_date'") > 0) {
1324
+ $wpdb->query("DELETE FROM $table_name WHERE timestamp<'$from_date'");
1325
+ $wpdb->query("OPTIMIZE TABLE $table_name");
1326
+ }
1327
+ }
1328
+ } //end if delete_auto
1329
+
1330
+ } //end if wassup_exclude
1331
+ } //end if wassup_active
1332
+ } //end if !is_admin
1333
+
1334
+ //### Notify admin if alert is set and wassup table > alert
1335
+ if ($wassup_settings['wassup_remind_flag'] == 1) {
1336
+ // check database size every few visits to keep wassup fast...
1337
+ if ( (time())%7 == 0 ) {
1338
+ $table_status = $wpdb->get_results("SHOW TABLE STATUS LIKE '$table_name'");
1339
+ foreach ($table_status as $fstatus) {
1340
+ $data_lenght = $fstatus->Data_length;
1341
+ }
1342
+ $tusage = ($data_lenght/1024/1024);
1343
+ if ($tusage > $wassup_settings['wassup_remind_mb']) {
1344
+ $recipient = get_bloginfo('admin_email');
1345
+ $sender = get_bloginfo('name').' <wassup_noreply@'.parse_url(get_bloginfo('siteurl'),PHP_URL_HOST).'>';
1346
+ $subject = "[ALERT] WassUp Plugin table has reached maximum size!";
1347
+ $message = "Hi,\nyou have received this email because your WassUp Database table at your Wordpress blog (".get_bloginfo('url').") had reached the maximum value you set in the options menu (".$wassup_settings['wassup_remind_mb']." Mb).\n\nThis is only a reminder, please take the actions you want in the WassUp options menu (".get_bloginfo('url')."/wp-admin/admin.php?page=wassup-options).\n\nThis alert now will be removed and you will be able to set a new one.\n\nThank you for using WassUp plugin. Check if there is a new version available here: http://wordpress.org/extend/plugins/wassup/\n\nHave a nice day!";
1348
+ mail($recipient, $subject, $message, "From: $sender");
1349
+ $wassup_settings['wassup_remind_flag'] = 2;
1350
+ update_option('wassup_settings', $wassup_settings);
1351
+
1352
+ }
1353
+ }
1354
+ } //if wassup_remind_flag
1355
+ } //end function wassupAppend()
1356
+
1357
+ function wGetQueryPairs($url){
1358
+ $parsed_url = parse_url($url);
1359
+ $tab=parse_url($url);
1360
+ $host = $tab['host'];
1361
+ if(key_exists("query",$tab)){
1362
+ $query=$tab["query"];
1363
+ return explode("&",$query);
1364
+ } else {
1365
+ return null;
1366
+ }
1367
+ }
1368
+
1369
+ function array_search_extended($file,$str_search)
1370
+ {
1371
+ foreach($file as $key => $line)
1372
+ {
1373
+ if (strpos($line, $str_search)!== FALSE)
1374
+ {
1375
+ return $key;
1376
+ }
1377
+ }
1378
+ return false;
1379
+ }
1380
+
1381
+ function seReferer($ref = false){
1382
+ $SeReferer = (is_string($ref) ? $ref : mb_convert_encoding(strip_tags($_SERVER['HTTP_REFERER']), "HTML-ENTITIES", "auto"));
1383
+ if( //Check against Google, Yahoo, MSN, Ask and others
1384
+ preg_match(
1385
+ "/[&\?](prev|q|p|w|searchfor|as_q|as_epq|s|query)=([^&]+)/i",
1386
+ $SeReferer,$pcs)
1387
+ ){
1388
+ if(preg_match("/https?:\/\/([^\/]+)\//i",$SeReferer,$SeDomain)){
1389
+ $SeDomain = trim(strtolower($SeDomain[1]));
1390
+ $SeQuery = $pcs[2];
1391
+ if(preg_match("/[&\?](start|b|first|stq)=([0-9]*)/i",$SeReferer,$pcs)){
1392
+ $SePos = (int)trim($pcs[2]);
1393
+ }
1394
+ }
1395
+ }
1396
+ if(!isset($SeQuery)){
1397
+ if( //Check against DogPile
1398
+ preg_match(
1399
+ "/\/search\/web\/([^\/]+)\//i",
1400
+ $SeReferer,$pcs)
1401
+ ){
1402
+ if(preg_match("/https?:\/\/([^\/]+)\//i",$SeReferer,$SeDomain)){
1403
+ $SeDomain = trim(strtolower($SeDomain[1]));
1404
+ $SeQuery = $pcs[1];
1405
+ }
1406
+ }
1407
+ }
1408
+ // We Do Not have a query
1409
+ if(!isset($SeQuery)){ return false; }
1410
+ $OldQ=$SeQuery;
1411
+ $SeQuery=urldecode($SeQuery);
1412
+ // The Multiple URLDecode Trick to fix DogPile %XXXX Encodes
1413
+ while($SeQuery != $OldQ){
1414
+ $OldQ=$SeQuery; $SeQuery=urldecode($SeQuery);
1415
+ }
1416
+ //-- We have a query
1417
+ return array(
1418
+ "Se"=>$SeDomain,
1419
+ "Query"=>$SeQuery,
1420
+ "Pos"=>(int)$SePos,
1421
+ "Referer"=>$SeReferer
1422
+ );
1423
+ }
1424
+
1425
+ function wGetSE($referrer = null){
1426
+ $key = null;
1427
+ $lines = array("Alice|search.alice.it|qs|","Google|www.google.|q|","Google Groups|groups.google.|q|", "Google Images|images.google.|prev|", "Yahoo|search.yahoo.com|p|",
1428
+ "Virgilio|search.virgilio.it|qs|","Arianna|arianna.libero.it|query|","Altavista|.altavista.com|q|","Kataweb|kataweb.it|q|",
1429
+ "Il Trovatore|categorie.iltrovatore.it|query|","Il Trovatore|search.iltrovatore.it|q|","2020Search|2020search.c|us|st|pn|1|",
1430
+ "abcsearch.com|abcsearch.com|terms|","100Links|100links.supereva.it|q|","Alexa|alexa.com|q|","Alltheweb|alltheweb.com|q|",
1431
+ "Aol|.aol.|query|","Aol|aolrecherches.aol.fr|query|","Ask|ask.com|ask|","Ask|ask.com|q|","DMOZ|search.dmoz.org|search|",
1432
+ "Dogpile|dogpile.com|q|","Excite|excite.|q|","Godago|.godago.com|keywords|","HotBot|hotbot.*|query|","ixquick|ixquick.com|query|",
1433
+ "Lycos|cerca.lycos.it|query|","Lycos|lycos.|q|","Windows Live|search.live.com|q|mkt|","My Search|mysearch.com|searchfor|",
1434
+ "My Way|mysearch.myway.com|searchfor|","Metacrawler|metacrawler.|q|","Netscape Search|search.netscape.com|query|","MSN|msn.|q|",
1435
+ "Overture|overture.com|Keywords|","Supereva|supereva.it|q|","Teoma|teoma.com|q|","Tiscali|search-dyn.tiscali.|key|","Voil|voila.fr|kw|",
1436
+ "Web|web.de|su|","Clarence|search.clarence.com|q|","Gazzetta|search.gazzetta.it|q|","PagineGialle|paginegialle.it|qs|",
1437
+ "Jumpy|servizi.mediaset.it|searchWord|","ItaliaPuntoNet|italiapuntonet.net|search|","StartNow|search.startnow.|q|","Search|search.it|srctxt|",
1438
+ "Search|search.com|q|");
1439
+ foreach($lines as $line_num => $se) {
1440
+ list($nome,$url,$key,$lang)=explode("|",$se);
1441
+ if(@strpos($referrer,$url)===FALSE) continue;
1442
+ // found it!
1443
+ // The SE is Google Images
1444
+ if ($nome == "Google Images") {
1445
+ $variables = wGetQueryPairs($referrer);
1446
+ $rightkey = array_search_extended($variables, "images");
1447
+ $variables = eregi_replace("prev=/images\?q=", "", urldecode($variables[$rightkey]));
1448
+ $variables = explode("&",$variables);
1449
+ return ($nome."|".urldecode($variables[0]));
1450
+ } else {
1451
+ $variables = wGetQueryPairs($referrer);
1452
+ $i = count($variables);
1453
+ while($i--){
1454
+ $tab=explode("=",$variables[$i]);
1455
+ if($tab[0] == $key){return ($nome."|".urldecode($tab[1]));}
1456
+ }
1457
+ }
1458
+ }
1459
+ return null;
1460
+ }
1461
+
1462
+ function wGetSpider($agent = null){
1463
+ $agent=str_replace(" ","",$agent);
1464
+ $key = null;
1465
+ $lines = array("Wordpress Pingback/Trackback|Wordpress|", "Alexa|ia_archiver|","Ask.com/Teoma|AskJeeves/Teoma)|","Biz360|Biz360|","Naver|NaverBot|","Naver|Cowbot|","cURL|curl/|","Google|Googlebot/|",
1466
+ "Google|googlebot/|","Google Images|Googlebot-Image|","LookSmart|grub-client|","Yahoo!|slurp@inktomi|","Yahoo!|Yahoo!Slurp|",
1467
+ "Yahoo!|MMCrawler|","MSN|msnbot|","AltaVista|Scooter-|","Wget|Wget/1.|","Technorati|Technoratibot|","Moreover|Moreoverbot|",
1468
+ "Yahoo FeedSeeker|YahooFeedSeeker|","Java|Java/|","relevantNOISE|www.relevantnoise.com|","Voila|VoilaBot|","IRLIRLbot/|","Snapbot|Snap|",
1469
+ "ichiro|ichiro|", "shelob|shelob|", "Google AdSense|Mediapartners-Google|", "Seekbot|HTTPFetcher|", "CommentTracker|CommentTracker|",
1470
+ "Bloglines|bloglines|", "Italian Blog Rankings|blogbabel", "Ask Jeeves/Teoma|ask|", "Akregator|Akregator|", "NewsGatorOnline|NewsGatorOnline|", "Rojo|rojo|", "FeedTools|feedtools|",
1471
+ "Feedfetcher-Google|Feedfetcher-google|", "AideRSS|AideRSS|", "psbot|psbot|", "Ruby|Rfeedfinder|", "everyfeed-spider|everyfeed-spider", "Attentio/Nutch|Attentio",
1472
+ "Megite2.0|Megite.com|", "radianrss|RadianRSS|", "Sitemap Generator|Sitemap Generator|", "Feedshow|Feedshow|", "ABCdatos|ABCdatos|", "Acme.Spider|Due|", "Ahoy!|Ahoy!|",
1473
+ "Alkaline|AlkalineBOT|", "appie|Appie|", "Arachnophilia|Arachnophilia|", "Araneo|Araneo/0.7|", "AraybOt|AraybOt/1.0|", "ArchitextSpider|ArchitextSpider|",
1474
+ "ARIADNE|Due|", "ASpider|ASpider/0.09|", "Atomz.com|Atomz/1.0|", "AURESYS|AURESYS/1.0|", "BackRub|BackRub/*.*|", "BBot|bbot/0.100|", "Big|Big|", "Bjaaland|Bjaaland/0.5|",
1475
+ "BlackWidow|BlackWidow|", "Die|Die|", "Borg-Bot|borg-bot/0.9|", "BoxSeaBot|BoxSeaBot/0.5|", "BSpider|BSpider/1.0|", "CACTVS|CACTVS|", "Calif|Calif/0.6|",
1476
+ "Digimarc|Digimarc|", "Checkbot|Checkbot/x.xx|", "cIeNcIaFiCcIoN.nEt|cIeNcIaFiCcIoN.nEt|", "CMC/0.01|CMC/0.01|", "Combine|combine/0.0|", "ConfuzzledBot|Confuzzledbot/X.X|",
1477
+ "CoolBot|CoolBot|", "Web|root/0.1|", "XYLEME|cosmos/0.3|", "Cusco|Cusco/3.2|", "CyberSpyder|CyberSpyder/2.1|", "CydralSpider|CydralSpider/X.X|", "Desert|DesertRealm.com;|",
1478
+ "DeWeb(c)|Deweb/1.01|", "DienstSpider|dienstspider/1.0|", "Digger|Digger/1.0|", "Digital|DIIbot|", "Direct|grabber|", "DNAbot|DNAbot/1.0|", "DragonBot|DragonBot/1.0|",
1479
+ "DWCP|DWCP/2.0|", "e-collector|LWP::|", "EIT|EIT-Link-Verifier-Robot/0.2|", "Emacs-w3|Emacs-w3/v[0-9\.]+|", "ananzi|EMC|", "esculapio|esculapio/1.1|", "Esther|esther|",
1480
+ "Evliya|Evliya|", "nzexplorer|explorersearch|", "FastCrawler|FastCrawler|", "Dynamics|(compatible:|", "Felix|FelixIDE/1.0|", "Wild|Hazel's|", "FetchRover|ESIRover|",
1481
+ "fido|fido/0.9|", "KIT-Fireball|KIT-Fireball/2.0|", "Fish|Fish-Search-Robot|", "Fouineur|Fouineur|", "Robot|Robot|", "Freecrawl|Freecrawl|", "FunnelWeb|FunnelWeb-1.0|",
1482
+ "gammaSpider|gammaSpider|", "gazz|gazz/1.0|", "GCreep|gcreep/1.0|", "GetURL|GetURL.rexx|", "Golem|Golem/1.1|", "Googlebot|Googlebot/2.X|", "Gromit|Gromit/1.0|",
1483
+ "Northern|Gulliver/1.1|", "Gulper|Gulper|", "Harvest|yes|", "havIndex|havIndex/X.xx[bxx]|", "HI|AITCSRobot/1.1|", "Hometown|Hometown|", "Wired|wired-digital-newsbot/1.5|",
1484
+ "ht://Dig|htdig/3.1.0b2|", "HTMLgobble|HTMLgobble|", "Hyper-Decontextualizer|Hyper|", "iajaBot|iajaBot/0.1|", "IBM_Planetwide|IBM_Planetwide,|",
1485
+ "Popular|gestaltIconoclast/1.0|", "Ingrid|INGRID/0.1|", "Imagelock|Imagelock|", "IncyWincy|IncyWincy/1.0b1|", "Informant|Informant|", "InfoSeek|InfoSeek|",
1486
+ "Infoseek|Infoseek|", "InfoSpiders|InfoSpiders/0.1|", "Inspector|inspectorwww/1.0|", "IntelliAgent|'IAGENT/1.0'|", "Israeli-search|IsraeliSearch/1.0|", "JBot|JBot|",
1487
+ "JCrawler|JCrawler/0.2|", "AskJeeves|Askjeeves|", "JoBo|JoBo|", "Jobot|Jobot/0.1alpha|", "JoeBot|JoeBot/x.x,|", "The|JubiiRobot/version#|", "JumpStation|jumpstation|",
1488
+ "image.kapsi.net|image.kapsi.net/1.0|", "Katipo|Katipo/1.0|", "KDD-Explorer|KDD-Explorer/0.1|", "KO_Yappo_Robot|KO_Yappo_Robot/1.0.4(http://yappo.com/info/robot.html)|",
1489
+ "LabelGrabber|LabelGrab/1.1|", "larbin|larbin|", "legs|legs|", "Link|Linkidator/0.93|", "LinkWalker|LinkWalker|", "logo.gif|logo.gif|", "Lycos|Lycos/x.x|",
1490
+ "Magpie|Magpie/1.0|", "marvin/infoseek|marvin/infoseek|", "Mattie|M/3.8|", "MediaFox|MediaFox/x.y|", "NEC-MeshExplorer|NEC-MeshExplorer|", "MindCrawler|MindCrawler|",
1491
+ "mnoGoSearch|UdmSearch|", "MOMspider|MOMspider/1.00|", "Monster|Monster/vX.X.X|", "Motor|Motor/0.2|", "MSNBot|MSNBOT/0.1|", "Muninn|Muninn/0.1|",
1492
+ "Muscat|MuscatFerret/<version>|", "Mwd.Search|MwdSearch/0.1|", "Internet|User-Agent:|", "NDSpider|NDSpider/1.5|", "NetCarta|NetCarta|", "NetMechanic|NetMechanic|",
1493
+ "NetScoop|NetScoop/1.0|", "newscan-online|newscan-online/1.1|", "NHSE|NHSEWalker/3.0|", "Nomad|Nomad-V2.x|", "ObjectsSearch|ObjectsSearch/0.01|", "Occam|Occam/1.0|",
1494
+ "HKU|HKU|", "Openfind|Openfind|", "Orb|Orbsearch/1.0|", "Pack|PackRat/1.0|", "ParaSite|ParaSite/0.21|", "Patric|Patric/0.01a|", "PerlCrawler|PerlCrawler/1.0|",
1495
+ "Phantom|Duppies|", "PhpDig|phpdig/x.x.x|", "PiltdownMan|PiltdownMan/1.0|", "Pimptrain.com's|Pimptrain|", "Pioneer|Pioneer|", "Portal|PortalJuice.com/4.0|",
1496
+ "PGP|PGP-KA/1.2|", "PlumtreeWebAccessor|PlumtreeWebAccessor/0.9|", "Poppi|Poppi/1.0|", "PortalB|PortalBSpider/1.0|", "psbot|psbot/0.X|", "GetterroboPlus|straight|",
1497
+ "Raven|Raven-v2|", "Resume|Resume|", "RoadHouse|RHCS/1.0a|", "RixBot|RixBot|", "Road|Road|", "Robbie|Robbie/0.1|", "ComputingSite|ComputingSite|", "RoboCrawl|RoboCrawl|",
1498
+ "RoboFox|Robofox|", "Robozilla|Robozilla/1.0|", "Roverbot|Roverbot|", "RuLeS|RuLeS/1.0|", "SafetyNet|SafetyNet|", "Scooter|Scooter/2.0|", "Search.Aus-AU.COM|not|",
1499
+ "Sleek|Sleek|", "SearchProcess|searchprocess/0.9|", "Senrigan|Senrigan/xxxxxx|", "SG-Scout|SG-Scout|", "Shai'Hulud|Shai'Hulud|", "Simmany|SimBot/1.0|", "SBIder|Site|",
1500
+ "SiteTech-Rover|SiteTech-Rover|", "Skymob.com|aWapClient|", "Inktomi|Slurp/2.0|", "Smart|ESISmartSpider/2.0|", "Snooper|Snooper/b97_01|", "Solbot|Solbot/1.0|",
1501
+ "Spider|Spider|", "spider_monkey|mouse.house/7.1|", "SpiderBot|SpiderBot/1.0|", "Spiderline|spiderline/3.1.3|", "SpiderView(tm)|SpiderView|", "Site|ssearcher100|",
1502
+ "Suke|suke/*.*|", "suntek|suntek/1.0|", "Sygol|http://www.sygol.com|", "TACH|TACH|", "Tarantula|Tarantula/1.0|", "tarspider|tarspider|", "Tcl|dlw3robot/x.y|",
1503
+ "TechBOT|TechBOT|", "Templeton|Templeton/{version}|", "TitIn|TitIn/0.2|", "TITAN|TITAN/0.1|", "UCSD|UCSD-Crawler|", "UdmSearch|UdmSearch/2.1.1|", "UptimeBot|uptimebot|",
1504
+ "URL|urlck/1.2.3|", "URL|URL|", "Valkyrie|Valkyrie/1.0|", "Verticrawl|Verticrawlbot|", "Victoria|Victoria/1.0|", "vision-search|vision-search/3.0'|",
1505
+ "void-bot|void-bot/0.1|", "Voyager|Voyager/0.0|", "VWbot|VWbot_K/4.2|", "The|w3index|", "W3M2|W3M2/x.xxx|", "WallPaper|CrawlPaper/n.n.n|", "the|WWWWanderer|",
1506
+ "w@pSpider|w@pSpider/xxx|", "WebCatcher|WebCatcher/1.0|", "WebCopy|WebCopy/(version)|", "webfetcher|WebFetcher/0.8,|", "Webinator|weblayers|", "weblayers/0.0|WebLinker|",
1507
+ "WebLinker/0.0|WebMirror|", "Digimarc|WebReaper|", "WebReaper|webs|", "webs@recruit.co.jp|Websnarf|", "WebVac|webvac/1.0|", "webwalk|webwalk|",
1508
+ "WebWalker|WebWalker/1.10|", "WebWatch|WebWatch|", "Wget|Wget/1.4.0|", "whatUseek|whatUseek_winona/3.0|", "Weblog|wlm-1.1|", "w3mir|w3mir|", "WebStolperer|WOLP/1.0|",
1509
+ "WWWC|WWWC/0.25|", "WebZinger|none|", "XGET|XGET/0.7|", "Nederland.zoek|Nederland.zoek|", "boitho.com|boitho.com|", "GreatNews|GreatNews|", "AlestiFeedBot|AlestiFeedBot|",
1510
+ "SummizeFeedReader|SummizeFeedReader|", "FeedBurner|FeedBurner|", "lilina|Lilina|", "BuzzTracker|BuzzTracker|", "kinjabot|kinjabot|", "Krugle|Krugle|",
1511
+ "libwww-perl|libwww-perl|", "Jakarta|Jakarta|", "VadixBot|VadixBot|", "Google Desktop|Google Desktop|", "BlogsNowBot|BlogsNowBot|", "Feedster|Feedster|",
1512
+ "WebCopier|WebCopier|", "MSRBOT|MSRBOT|", "Charlotte|Charlotte|", "wp-autoblogSimplePie|SimplePie|", "wikioblogs|wikioblogs|", "Wells Search II|Wells Search II|",
1513
+ "BlogsNowBot|BlogsNowBot|", "NG/2.0|NG/2.0|", "BlogBridge|BlogBridge|", "Drupal|Drupal|", "WebGenBot|WebGenBot|", "CazoodleBot|CazoodleBot|", "MJ12bot|MJ12bot|",
1514
+ "Feedreader|Feedreader|", "Strategic Board Bot|Strategic Board Bot|", "LiteFinder|LiteFinder|", "SurveyBot|SurveyBot|", "Teemer|Teemer|", "NetNewsWire|NetNewsWire|",
1515
+ "disco/Nutch|disco/Nutch", "StackRambler|StackRambler|", "MagpieRSS|MagpieRSS|", "WebAlta|WebAlta|", "NewsAlloy|NewsAlloy|",
1516
+ "WikioFeedBot|WikioFeedBot|", "Strategic Board Bot |Strategic Board Bot |", "Mail.ru|Mail.ru|", "OpiDig|OpiDig|", "webcollage|webcollage|",
1517
+ "R6_FeedFetcher|R6_FeedFetcher|", "UniversalFeedParser|UniversalFeedParser|", "Syndic8|Syndic8|", "BlogBot|BlogBot|", "W3C_Validator|W3C_Validator|",
1518
+ "Runnk RSS aggregator|Runnk|", "RssBandit|RssBandit|");
1519
+ foreach($lines as $line_num => $spider) {
1520
+ list($nome,$key)=explode("|",$spider);
1521
+ if(@strpos(strtolower($agent),strtolower($key))===FALSE) continue;
1522
+ if (@strpos(strtolower($agent), "subscriber")!== FALSE) {
1523
+ preg_match("/([0-9]{1,10})(subscriber)/i", $agent, $subscriber);
1524
+ $feed[] = $nome;
1525
+ $feed[] = $subscriber[1];
1526
+ // It's a feedreader with some subscribers
1527
+ return $feed;
1528
+ } else {
1529
+ // find it!
1530
+ return $nome;
1531
+ }
1532
+ }
1533
+ return null;
1534
+ }
1535
+
1536
+ //# Check input, $referrer against a list of known spammers and
1537
+ //# return "1" if match found.
1538
+ //# All comparisons are case-insensistive and uses the faster string
1539
+ //# functions (stristr) instead of "regular expression" functions.
1540
+ function wGetSpamRef($referrer) {
1541
+ $referrer=htmlentities(strip_tags(str_replace(" ","",html_entity_decode($referrer))));
1542
+ $badhostfile= dirname(__FILE__).'/badhosts.txt';
1543
+ $key = null;
1544
+
1545
+ if (empty($referrer)) { return null; } //nothing to check...
1546
+
1547
+ //#Assume any referrer name similar to "viagra/zanax/.."
1548
+ //# is spam and mark as such...
1549
+ $lines = array("cialis","viagra","zanax","phentermine");
1550
+ foreach ($lines as $badreferrer) {
1551
+ if (stristr($referrer, $badreferrer) !== FALSE) {
1552
+ return 1;
1553
+ }
1554
+ }
1555
+
1556
+ $lines = array("1clickholdem.com", "1ps.biz", "24h.to", "4all-credit.com", "4all-prescription.com", "4u-money.com", "6q.org", "88.to", "always-casino.com",
1557
+ "always-credit.com", "andipink.com", "antiquemarketplace.net", "artmedia.com.ru", "asstraffic.com", "at.cx", "available-casino.com", "available-credit.com",
1558
+ "available-prescription.com", "base-poker.com", "bayfronthomes.net", "bitlocker.net", "black-poker.com", "blest-money.com", "budgethawaii.net", "bwdow.com",
1559
+ "cafexml.com", "cameralover.net", "capillarychromatogr.org", "cash-2u.com", "casino-500.com", "casino-bu.com", "casinos4spain.com", "cheat-elite.com", "clan.ws",
1560
+ "computerxchange.com", "conjuratia.com", "credit-4me.com", "credit-dreams.com", "cups.cs.cmu.edu", "de.tc", "dietfacts.com", "doctor-here.com", "doctor-test.com",
1561
+ "eu.cx", "fidelityfunding.net", "finance-4all.com", "finestrealty.net", "fortexasholdem.com", "freewarechannel.de", "gb.com", "golfshoot.com", "great-finance.com",
1562
+ "great-money.com", "health-livening.com", "here.ws", "hu.tc", "iepills.com", "ihomebroker.com", "including-poker.com", "internettexashold.com", "isdrin.de",
1563
+ "iwebtool.com", "jaja-jak-globusy.com", "jobruler.com", "jpe.com", "js4.de", "just-pharmacy.com", "learnhowtoplay.com", "mine-betting.com", "new-doctor.com",
1564
+ "nonews.ru", "now-cash.com", "online-pills.us", "online.cx", "only-casino.com", "ourtexasholdem.com", "p.cx", "partyshopcentral.com", "petsellers.net",
1565
+ "pharmacy-here.com", "pills-only.com", "plenty-cash.com", "poker-check.com", "poker-spanish.com", "pressemitteilung.ws", "quality-poker.com", "reale-amateure.com",
1566
+ "realtorx2.com", "rulen.de", "shop.tc", "sp.st", "spanish-casino-4u.com", "standard-poker.com", "start.bg", "take-mortgage.com", "texasholdfun.com",
1567
+ "the-discount-store.com", "unique-pills.com", "unixlover.com", "us.tc", "useful-pills.com", "vadoptions.com", "vcats.com", "vinsider.com", "vjackpot.com",
1568
+ "vmousetrap.com", "vplaymate.com", "vselling.com", "vsymphony.com", "vthought.com", "walnuttownfireco.org", "white-pills.com", "wkelleylucas.com", "yourpsychic.net",
1569
+ "mature-lessons.com", "wrongsideoftown.com", "wildpass.com", "collegefuckfest.com", "brutalblowjobs.com", "livemarket.com.ua", "allinternal.com", "asstraffic.com",
1570
+ "progressiveupdate.net","dating-s.net","ua-princeton.com","royalfreehost.com", "www.texas-va-loan.com", "jmhic.com", "whvc.net", "vegas-hair.com", "owned.com",
1571
+ "sml338.org", "kredite-kredit", "buy-2005.com", "vrajitor.com", "ro7kalbe.com", "ca-america.com", "udcorp.com", "walnuttownfireco.org", "yx-colorweaving.com",
1572
+ "terashells.com", "chat-nett.com", "exitq.com", "cxa.de", "sysrem03.com", "pharmacy.info", "guide.info", "drugstore.info","vpshs.com", "vp888.net", "coresat.com",
1573
+ "psxtreme.com", "freakycheats.com", "cool-extreme.com", "pervertedtaboo.com", "crescentarian.net", "texas-holdem", "yelucie.com", "poker-online.com",
1574
+ "findwebhostingnow.com", "smsportali.net", "6q.org", "flowersdeliveredquick.com", "trackerom.com", "andrewsaluk.com", "4u.net", "4u.com", "doobu.com", "isacommie.com",
1575
+ "musicbox1.com", "roody.com", "zoomgirls.net", "cialis-gl-pills.com", "fickenfetzt.com");
1576
+ foreach($lines as $line_num => $spammer) {
1577
+ if(stristr($referrer,$spammer) !== FALSE) {
1578
+ // find it!
1579
+ return 1;
1580
+ }
1581
+ }
1582
+ //#check for a customized spammer list...
1583
+ if (file_exists($badhostfile)) {
1584
+ $lines = file($badhostfile,FILE_IGNORE_NEW_LINES);
1585
+ //$lines2 = file($badhostfile,FILE_IGNORE_NEW_LINES);
1586
+ //$lines = array_merge($lines, $lines2);
1587
+
1588
+ foreach($lines as $line_num => $spammer) {
1589
+ if(stristr($referrer,trim($spammer)) !== FALSE) {
1590
+ // find it!
1591
+ return 1;
1592
+ }
1593
+ }
1594
+ }
1595
+ return null;
1596
+ } //end function wGetSpamRef()
1597
+
1598
+ //# Get current session_save_path value and return the pathname portion
1599
+ //# - Helene D. 1/14/08.
1600
+ function wGetSessionpath() {
1601
+ $sessionpath = session_save_path();
1602
+ if (strpos($sessionpath, ";") !== FALSE) {
1603
+ $sessionpath = substr($sessionpath, strpos($sessionpath, ";")+1);
1604
+ }
1605
+ return rtrim($sessionpath,"/");
1606
+ }
1607
+
1608
+ function export_wassup() {
1609
+ global $wpdb, $table_name;
1610
+ $table_name = $wpdb->prefix . "wassup";
1611
+ $filename = 'wassup.' . gmdate('Y-m-d') . '.sql';
1612
+
1613
+ //# check for records before exporting...
1614
+ $numrecords = $wpdb->get_var("SELECT COUNT(wassup_id) FROM $table_name");
1615
+ if ( $numrecords > 0 ) {
1616
+ //TODO: use compressed file transfer when zlib available...
1617
+ do_action('export_wassup');
1618
+ header('Content-Description: File Transfer');
1619
+ header("Content-Disposition: attachment; filename=$filename");
1620
+ header('Content-Type: text/plain charset=' . get_option('blog_charset'), true);
1621
+
1622
+ // Function is below
1623
+ backup_table($table_name);
1624
+
1625
+ die(); //sends output and flushes buffer
1626
+ } //end if numrecords > 0
1627
+ } //end function export_wassup()
1628
+
1629
+ /**
1630
+ * Taken partially from wp-db-backup plugin
1631
+ * Alain Wolf, Zurich - Switzerland
1632
+ * Website: http://www.ilfilosofo.com/blog/wp-db-backup/
1633
+ * @param string $table
1634
+ * @param string $segment
1635
+ * @return void
1636
+ */
1637
+ function backup_table($table, $segment = 'none') {
1638
+ global $wpdb;
1639
+ define('ROWS_PER_SEGMENT', 100);
1640
+
1641
+ $table_structure = $wpdb->get_results("DESCRIBE $table");
1642
+ if (! $table_structure) {
1643
+ $this->error(__('Error getting table details','wassup') . ": $table");
1644
+ return FALSE;
1645
+ }
1646
+
1647
+ if(($segment == 'none') || ($segment == 0)) {
1648
+ // Add SQL statement to drop existing table
1649
+ $sql .= "\n\n";
1650
+ $sql .= "#\n";
1651
+ $sql .= "# " . sprintf(__('Delete any existing table %s','wassup'),$table) . "\n";
1652
+ $sql .= "#\n";
1653
+ $sql .= "\n";
1654
+ $sql .= "#\n";
1655
+ $sql .= "# Uncomment if you need\n";
1656
+ $sql .= "#DROP TABLE IF EXISTS " . $table . ";\n";
1657
+
1658
+ // Table structure
1659
+ // Comment in SQL-file
1660
+ $sql .= "\n\n";
1661
+ $sql .= "#\n";
1662
+ $sql .= "# " . sprintf(__('Table structure of table %s','wassup'),$table) . "\n";
1663
+ $sql .= "#\n";
1664
+ $sql .= "\n";
1665
+ $sql .= "#\n";
1666
+ $sql .= "# Uncomment if you need\n";
1667
+
1668
+ $create_table = $wpdb->get_results("SHOW CREATE TABLE $table", ARRAY_N);
1669
+ if (FALSE === $create_table) {
1670
+ $err_msg = sprintf(__('Error with SHOW CREATE TABLE for %s.','wassup'), $table);
1671
+ print $err_msg;
1672
+ $sql .= "#\n# $err_msg\n#\n";
1673
+ }
1674
+ $sql .= $create_table[0][1] . ' ;';
1675
+
1676
+ if (FALSE === $table_structure) {
1677
+ $err_msg = sprintf(__('Error getting table structure of %s','wassup'), $table);
1678
+ print $err_msg;
1679
+ $sql .= "#\n# $err_msg\n#\n";
1680
+ }
1681
+
1682
+ // Comment in SQL-file
1683
+ $sql .= "\n\n";
1684
+ $sql .= "#\n";
1685
+ $sql .= '# ' . sprintf(__('Data contents of table %s','wassup'),$table) . "\n";
1686
+ $sql .= "#\n";
1687
+ }
1688
+
1689
+ if(($segment == 'none') || ($segment >= 0)) {
1690
+ $defs = array();
1691
+ $ints = array();
1692
+ foreach ($table_structure as $struct) {
1693
+ if ( (0 === strpos($struct->Type, 'tinyint')) ||
1694
+ (0 === strpos(strtolower($struct->Type), 'smallint')) ||
1695
+ (0 === strpos(strtolower($struct->Type), 'mediumint')) ||
1696
+ (0 === strpos(strtolower($struct->Type), 'int')) ||
1697
+ (0 === strpos(strtolower($struct->Type), 'bigint')) ||
1698
+ (0 === strpos(strtolower($struct->Type), 'timestamp')) ) {
1699
+ $defs[strtolower($struct->Field)] = $struct->Default;
1700
+ $ints[strtolower($struct->Field)] = "1";
1701
+ }
1702
+ }
1703
+
1704
+ // Batch by $row_inc
1705
+
1706
+ if($segment == 'none') {
1707
+ $row_start = 0;
1708
+ $row_inc = ROWS_PER_SEGMENT;
1709
+ } else {
1710
+ $row_start = $segment * ROWS_PER_SEGMENT;
1711
+ $row_inc = ROWS_PER_SEGMENT;
1712
+ }
1713
+
1714
+ do {
1715
+ if ( !ini_get('safe_mode')) @set_time_limit(15*60);
1716
+ $table_data = $wpdb->get_results("SELECT * FROM $table LIMIT {$row_start}, {$row_inc}", ARRAY_A);
1717
+
1718
+ $entries = 'INSERT INTO ' . $table . ' VALUES (';
1719
+ // \x08\\x09, not required
1720
+ $search = array("\x00", "\x0a", "\x0d", "\x1a");
1721
+ $replace = array('\0', '\n', '\r', '\Z');
1722
+ if($table_data) {
1723
+ foreach ($table_data as $row) {
1724
+ $values = array();
1725
+ foreach ($row as $key => $value) {
1726
+ if ($ints[strtolower($key)]) {
1727
+ // make sure there are no blank spots in the insert syntax,
1728
+ // yet try to avoid quotation marks around integers
1729
+ $value = ( '' === $value) ? $defs[strtolower($key)] : $value;
1730
+ $values[] = ( '' === $value ) ? "''" : $value;
1731
+ } else {
1732
+ $values[] = "'" . str_replace($search, $replace, addslashes($value)) . "'";
1733
+ }
1734
+ }
1735
+ $sql .= " \n" . $entries . implode(', ', $values) . ') ;';
1736
+ }
1737
+ $row_start += $row_inc;
1738
+ }
1739
+ } while((count($table_data) > 0) and ($segment=='none'));
1740
+ }
1741
+
1742
+ if(($segment == 'none') || ($segment < 0)) {
1743
+ // Create footer/closing comment in SQL-file
1744
+ $sql .= "\n";
1745
+ $sql .= "#\n";
1746
+ $sql .= "# " . sprintf(__('End of data contents of table %s','wp-db-backup'),$table) . "\n";
1747
+ $sql .= "# --------------------------------------------------------\n";
1748
+ $sql .= "\n";
1749
+ }
1750
+ print $sql;
1751
+ } // end backup_table()
1752
+
1753
+ function wassup_widget_init() {
1754
+
1755
+ if ( !function_exists('register_sidebar_widget') )
1756
+ return;
1757
+
1758
+ function wassup_widget($wargs) {
1759
+ global $wpdb;
1760
+ extract($wargs);
1761
+ $wassup_settings = get_option('wassup_settings');
1762
+ $wpurl = get_bloginfo('wpurl');
1763
+ $siteurl = get_bloginfo('siteurl');
1764
+ if ($wassup_settings['wassup_widget_title'] != "") $title = $wassup_settings['wassup_widget_title']; else $title = "Visitors Online";
1765
+ if ($wassup_settings['wassup_widget_ulclass'] != "") $ulclass = $wassup_settings['wassup_widget_ulclass']; else $ulclass = "links";
1766
+ if ($wassup_settings['wassup_widget_chars'] != "") $chars = $wassup_settings['wassup_widget_chars']; else $chars = "18";
1767
+ if ($wassup_settings['wassup_widget_searchlimit'] != "") $searchlimit = $wassup_settings['wassup_widget_searchlimit']; else $searchlimit = "5";
1768
+ if ($wassup_settings['wassup_widget_reflimit'] != "") $reflimit = $wassup_settings['wassup_widget_reflimit']; else $reflimit = "5";
1769
+ if ($wassup_settings['wassup_widget_topbrlimit'] != "") $topbrlimit = $wassup_settings['wassup_widget_topbrlimit']; else $topbrlimit = "5";
1770
+ if ($wassup_settings['wassup_widget_toposlimit'] != "") $toposlimit = $wassup_settings['wassup_widget_toposlimit']; else $toposlimit = "5";
1771
+ $table_name = $wpdb->prefix . "wassup";
1772
+ $to_date = wassup_get_time();
1773
+ $from_date = strtotime('-3 minutes', $to_date);
1774
+
1775
+ print $before_widget;
1776
+
1777
+ // Widget TOP Searches
1778
+ if ($wassup_settings['wassup_widget_search'] == 1) {
1779
+ $query_det = $wpdb->get_results("SELECT search, referrer FROM $table_name WHERE search!='' GROUP BY search ORDER BY timestamp DESC LIMIT $searchlimit");
1780
+ if (count($query_det) > 0) {
1781
+ print "$before_title Last searched terms $after_title";
1782
+ print "<ul class='$ulclass'>";
1783
+ foreach ($query_det as $sref) {
1784
+ print "<li>- <a href='".htmlentities($sref->referrer)."' target='_BLANK'>".stringShortener($sref->search, $chars)."</a></li>";
1785
+ }
1786
+ print "</ul>";
1787
+ }
1788
+ }
1789
+
1790
+ // Widget TOP Referers
1791
+ if ($wassup_settings['wassup_widget_ref'] == 1) {
1792
+ $query_ref = $wpdb->get_results("SELECT referrer FROM $table_name WHERE searchengine='' AND referrer!='' AND referrer NOT LIKE '$wpurl%' GROUP BY referrer ORDER BY timestamp DESC LIMIT $reflimit");
1793
+ if (count($query_ref) > 0) {
1794
+ print "$before_title Last referers $after_title";
1795
+ print "<ul class='$ulclass'>";
1796
+ foreach ($query_ref as $eref) {
1797
+ print "<li>- <a href='".htmlentities($eref->referrer)."' target='_BLANK'>".stringShortener(eregi_replace("http://", "", htmlentities($eref->referrer)), $chars)."</a></li>";
1798
+ }
1799
+ print "</ul>";
1800
+ }
1801
+ }
1802
+
1803
+ // Widget TOP Browsers
1804
+ if ($wassup_settings['wassup_widget_topbr'] == 1) {
1805
+ $query_topbr = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND browser NOT LIKE '%N/A%' GROUP BY browser ORDER BY top_browser DESC LIMIT $topbrlimit");
1806
+ if (count($query_topbr) > 0) {
1807
+ print "$before_title Top Browsers $after_title";
1808
+ print "<ul class='$ulclass'>";
1809
+ foreach ($query_topbr as $etopbr) {
1810
+ print "<li>- ".stringShortener($etopbr->browser, $chars)."</li>";
1811
+ }
1812
+ print "</ul>";
1813
+ }
1814
+ }
1815
+
1816
+ // Widget TOP Oses
1817
+ if ($wassup_settings['wassup_widget_topos'] == 1) {
1818
+ $query_topos = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' GROUP BY os ORDER BY top_os DESC LIMIT $toposlimit");
1819
+ if (count($query_topos) > 0) {
1820
+ print "$before_title Top OS $after_title";
1821
+ print "<ul class='$ulclass'>";
1822
+ foreach ($query_topos as $etopos) {
1823
+ print "<li>- ".stringShortener($etopos->os, $chars)."</li>";
1824
+ }
1825
+ print "</ul>";
1826
+ }
1827
+ }
1828
+
1829
+ // Widget Visitors Online
1830
+ print $before_title . $title . $after_title;
1831
+ print "<ul class='$ulclass'>";
1832
+ $currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date ");
1833
+ $currentlogged = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentlogged FROM $table_name WHERE username!=''AND timestamp BETWEEN $from_date AND $to_date");
1834
+ $currentauth = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentauth FROM $table_name WHERE comment_author!='' AND username=''AND timestamp BETWEEN $from_date AND $to_date");
1835
+ if ((int)$currenttot < 10) $currenttot = "0".$currenttot;
1836
+ print "<li><strong style='padding:0 4px 0 4px;background:#ddd;color:#777'>".$currenttot."</strong> visitor(s) online</li>";
1837
+ if ((int)$currentlogged > 0 AND $wassup_settings['wassup_widget_loggedin'] == 1) {
1838
+ if ((int)$currentlogged < 10) $currentlogged = "0".$currentlogged;
1839
+ print "<li><strong style='padding:0 4px 0 4px;background:#e7f1c8;color:#777'>".$currentlogged."</strong> logged-in user(s)</li>";
1840
+ }
1841
+ if ((int)$currentauth > 0 AND $wassup_settings['wassup_widget_comauth'] == 1) {
1842
+ if ((int)$currentauth < 10) $currentauth = "0".$currentauth;
1843
+ print "<li><strong style='padding:0 4px 0 4px;background:#fbf9d3;color:#777'>".$currentauth."</strong> comment author(s)</li>";
1844
+ }
1845
+ print "<li style='font-size:6pt; color:#bbb;'>powered by <a style='color:#777;' href='http://www.wpwp.org' title='WassUp - Real Time Visitors Tracking'>WassUp</a></li>";
1846
+ print "</ul>";
1847
+ print $after_widget;
1848
+ }
1849
+
1850
+ function wassup_widget_control() {
1851
+ //global $_POST;
1852
+ $wassup_settings = get_option('wassup_settings');
1853
+
1854
+ if (isset($_POST['submit']))
1855
+ {
1856
+ $wassup_settings['wassup_widget_title'] = $_POST['wassup_widget_title'];
1857
+ $wassup_settings['wassup_widget_ulclass'] = $_POST['wassup_widget_ulclass'];
1858
+ $wassup_settings['wassup_widget_chars'] = $_POST['wassup_widget_chars'];
1859
+ $wassup_settings['wassup_widget_loggedin'] = $_POST['wassup_widget_loggedin'];
1860
+ $wassup_settings['wassup_widget_comauth'] = $_POST['wassup_widget_comauth'];
1861
+ $wassup_settings['wassup_widget_search'] = $_POST['wassup_widget_search'];
1862
+ $wassup_settings['wassup_widget_searchlimit'] = $_POST['wassup_widget_searchlimit'];
1863
+ $wassup_settings['wassup_widget_ref'] = $_POST['wassup_widget_ref'];
1864
+ $wassup_settings['wassup_widget_reflimit'] = $_POST['wassup_widget_reflimit'];
1865
+ $wassup_settings['wassup_widget_topbr'] = $_POST['wassup_widget_topbr'];
1866
+ $wassup_settings['wassup_widget_topbrlimit'] = $_POST['wassup_widget_topbrlimit'];
1867
+ $wassup_settings['wassup_widget_topos'] = $_POST['wassup_widget_topos'];
1868
+ $wassup_settings['wassup_widget_toposlimit'] = $_POST['wassup_widget_toposlimit'];
1869
+
1870
+ update_option('wassup_settings', $wassup_settings);
1871
+ $wassup_settings = get_option('wassup_settings');
1872
+ }
1873
+
1874
+ ?>
1875
+ <div class="wrap" style="text-align:left">
1876
+ <h3>Wassup Widget</h3>
1877
+ <form action="" method="post">
1878
+ <p style="text-align:left"><input type="text" name="wassup_widget_title" size="20" value="<?php echo $wassup_settings['wassup_widget_title'] ?>" /> What title for the widget (default "Visitors Online")</p>
1879
+ <p style="text-align:left"><input type="text" name="wassup_widget_ulclass" size="3" value="<?php echo $wassup_settings['wassup_widget_ulclass'] ?>" /> What style sheet class for &lt;ul&gt; attribute (default "links")</p>
1880
+ <p style="text-align:left"><input type="text" name="wassup_widget_chars" size="3" value="<?php echo $wassup_settings['wassup_widget_chars'] ?>" /> How many characters left? (For template compatibility - default 18)</p>
1881
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_loggedin" value="1"<?php if ($wassup_settings['wassup_widget_loggedin'] == 1) echo "CHECKED"; ?> /> Check if you want to show logged-in online users (default Yes)</p>
1882
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_comauth" value="1" <?php if ($wassup_settings['wassup_widget_comauth'] == 1) echo "CHECKED"; ?> /> Check if you want to show comment-author online users (default Yes)</p>
1883
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_search" value="1" <?php if ($wassup_settings['wassup_widget_search'] == 1) echo "CHECKED"; ?> /> Check if you want to show some last search referers (default Yes)</p>
1884
+ <p style="text-align:left"><input type="text" name="wassup_widget_searchlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_searchlimit'] ?>" /> How many search referers want to show (default 5)</p>
1885
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_ref" value="1" <?php if ($wassup_settings['wassup_widget_ref'] == 1) echo "CHECKED"; ?> /> Check if you want to show some last external referers (default Yes)</p>
1886
+ <p style="text-align:left"><input type="text" name="wassup_widget_reflimit" size="3" value="<?php echo $wassup_settings['wassup_widget_reflimit'] ?>" /> How many external referers want to show (default 5)</p>
1887
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_topbr" value="1" <?php if ($wassup_settings['wassup_widget_topbr'] == 1) echo "CHECKED"; ?> /> Check if you want to show top browsers (default Yes)</p>
1888
+ <p style="text-align:left"><input type="text" name="wassup_widget_topbrlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_topbrlimit'] ?>" /> How many top browsers want to show (default 5)</p>
1889
+ <p style="text-align:left"><input type="checkbox" name="wassup_widget_topos" value="1" <?php if ($wassup_settings['wassup_widget_topos'] == 1) echo "CHECKED"; ?> /> Check if you want to show top operating systems (default Yes)</p>
1890
+ <p style="text-align:left"><input type="text" name="wassup_widget_toposlimit" size="3" value="<?php echo $wassup_settings['wassup_widget_toposlimit'] ?>" /> How many top operating systems want to show (default 5)</p>
1891
+ <p style="text-align:left"><input type="submit" name="submit" value="Save Settings" /></p>
1892
+ </form>
1893
+ </div>
1894
+ <?php
1895
+ }
1896
+
1897
+ $wassup_settings = get_option('wassup_settings');
1898
+ if ($wassup_settings['wassup_userlevel'] == "") {
1899
+ if ($wassup_settings['wassup_userlevel'] == "") {
1900
+ $wassup_settings['wassup_userlevel'] = 8;
1901
+ update_option('wassup_settings', $wassup_settings);
1902
+ }
1903
+ if ($wassup_settings['wassup_refresh'] == "") {
1904
+ $wassup_settings['wassup_refresh'] = 3;
1905
+ update_option('wassup_settings', $wassup_settings);
1906
+ }
1907
+ }
1908
+ if(function_exists('register_sidebar_widget')) {
1909
+ register_sidebar_widget(__('Wassup Widget'), 'wassup_widget');
1910
+ register_widget_control(array('Wassup Widget', 'widgets'), 'wassup_widget_control', 600, 540);
1911
+ }
1912
+ }
1913
+
1914
+ function wassup_sidebar($before_widget='', $after_widget='', $before_title='', $after_title='', $wtitle='', $wulclass='', $wchars='', $wsearch='', $wsearchlimit='', $wref='', $wreflimit='', $wtopbr='', $wtopbrlimit='', $wtopos='', $wtoposlimit='') {
1915
+ global $wpdb;
1916
+ $wpurl = get_bloginfo('wpurl');
1917
+ $siteurl = get_bloginfo('siteurl');
1918
+ if ($wtitle != "") $title = $wtitle; else $title = "Visitors Online";
1919
+ if ($wulclass != "") $ulclass = $wulclass; else $ulclass = "links";
1920
+ if ($wchars != "") $chars = $wchars; else $chars = "18";
1921
+ if ($wsearchlimit != "") $searchlimit = $wsearchlimit; else $searchlimit = "5";
1922
+ if ($wreflimit != "") $reflimit = $wreflimit; else $reflimit = "5";
1923
+ if ($wtopbrlimit != "") $topbrlimit = $wtopbrlimit; else $topbrlimit = "5";
1924
+ if ($wtoposlimit != "") $toposlimit = $wtoposlimit; else $toposlimit = "5";
1925
+ $table_name = $wpdb->prefix . "wassup";
1926
+ $to_date = wassup_get_time();
1927
+ $from_date = strtotime('-3 minutes', $to_date);
1928
+
1929
+ print $before_widget;
1930
+ if ($wsearch == 1) {
1931
+ $query_det = $wpdb->get_results("SELECT search, referrer FROM $table_name WHERE search!='' GROUP BY search ORDER BY timestamp DESC LIMIT $searchlimit");
1932
+ if (count($query_det) > 0) {
1933
+ print "$before_title Last searched terms $after_title";
1934
+ print "<ul class='$ulclass'>";
1935
+ foreach ($query_det as $sref) {
1936
+ print "<li>- <a href='".$sref->referrer."' target='_BLANK'>".stringShortener($sref->search, $chars)."</a></li>";
1937
+ }
1938
+ print "</ul>";
1939
+ }
1940
+ }
1941
+
1942
+ if ($wref == 1) {
1943
+ $query_ref = $wpdb->get_results("SELECT referrer FROM $table_name WHERE searchengine='' AND referrer!='' AND referrer NOT LIKE '$wpurl%' GROUP BY referrer ORDER BY timestamp DESC LIMIT $reflimit");
1944
+ if (count($query_ref) > 0) {
1945
+ print "$before_title Last referers $after_title";
1946
+ print "<ul class='$ulclass'>";
1947
+ foreach ($query_ref as $eref) {
1948
+ print "<li>- <a href='".$eref->referrer."' target='_BLANK'>".stringShortener(eregi_replace("http://", "", $eref->referrer), $chars)."</a></li>";
1949
+ }
1950
+ print "</ul>";
1951
+ }
1952
+ }
1953
+
1954
+ if ($wtopbr == 1) {
1955
+ $query_topbr = $wpdb->get_results("SELECT count(browser) as top_browser, browser FROM $table_name WHERE browser!='' AND browser NOT LIKE '%N/A%' GROUP BY browser ORDER BY top_browser DESC LIMIT $topbrlimit");
1956
+ if (count($query_topbr) > 0) {
1957
+ print "$before_title Top Browsers $after_title";
1958
+ print "<ul class='$ulclass'>";
1959
+ foreach ($query_topbr as $etopbr) {
1960
+ print "<li>- ".stringShortener($etopbr->browser, $chars)."</li>";
1961
+ }
1962
+ print "</ul>";
1963
+ }
1964
+ }
1965
+
1966
+ if ($wtopos == 1) {
1967
+ $query_topos = $wpdb->get_results("SELECT count(os) as top_os, os FROM $table_name WHERE os!='' AND os NOT LIKE '%N/A%' GROUP BY os ORDER BY top_os DESC LIMIT $toposlimit");
1968
+ if (count($query_topos) > 0) {
1969
+ print "$before_title Top OS $after_title";
1970
+ print "<ul class='$ulclass'>";
1971
+ foreach ($query_topos as $etopos) {
1972
+ print "<li>- ".stringShortener($etopos->os, $chars)."</li>";
1973
+ }
1974
+ print "</ul>";
1975
+ }
1976
+ }
1977
+
1978
+ print $before_title . $title . $after_title;
1979
+ print "<ul class='$ulclass'>";
1980
+ $currenttot = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currenttot FROM $table_name WHERE timestamp BETWEEN $from_date AND $to_date ");
1981
+ $currentlogged = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentlogged FROM $table_name WHERE username!=''AND timestamp BETWEEN $from_date AND $to_date");
1982
+ $currentauth = $wpdb->get_var("SELECT COUNT(DISTINCT wassup_id) as currentauth FROM $table_name WHERE comment_author!='' AND username=''AND timestamp BETWEEN $from_date AND $to_date");
1983
+ if ((int)$currenttot < 10) $currenttot = "0".$currenttot;
1984
+ print "<li><strong style='padding:0 4px 0 4px;background:#ddd;color:#777'>".$currenttot."</strong> visitor(s) online</li>";
1985
+ if ((int)$currentlogged > 0 AND $wassup_settings['wassup_widget_loggedin'] == 1) {
1986
+ if ((int)$currentlogged < 10) $currentlogged = "0".$currentlogged;
1987
+ print "<li><strong style='padding:0 4px 0 4px;background:#e7f1c8;color:#777'>".$currentlogged."</strong> logged-in user(s)</li>";
1988
+ }
1989
+ if ((int)$currentauth > 0 AND $wassup_settings['wassup_widget_comauth'] == 1) {
1990
+
1991
+ if ((int)$currentauth < 10) $currentauth = "0".$currentauth;
1992
+ print "<li><strong style='padding:0 4px 0 4px;background:#fbf9d3;color:#777'>".$currentauth."</strong> comment author(s)</li>";
1993
+ }
1994
+ print "<li style='font-size:6pt; color:#bbb;'>powered by <a style='color:#777;' href='http://www.wpwp.org/' title='WassUp - Real Time Visitors Tracking'>WassUp</a></li>";
1995
+ print "</ul>";
1996
+ print $after_widget;
1997
+ }
1998
+