Apps Home
|
Create an App
pb2
Author:
pbchnd
Description
Source Code
Launch App
Current Users
Created by:
Pbchnd
/* Token Keno */ var timerCount = 0; var kenoTimer = 2; var kenoOffTheBoardMsg = ''; var knAlreadyPickedMsg = 'Too late, somebody already picked that one'; var knBoardClearedMsg = 'Keno Board Has Been Cleared!'; var knIsStartedMsg = 'Keno is Running'; var knIsStoppedMsg = 'Keno is Not Running'; var knNewBoardMsg = 'New Keno Board'; var knWinnerMsg = 'A Winner! Prize won: PRIZE'; var broadCaster = cb.room_slug; var kenoIsLoaded = false; var kenoIsOn = false; var knFortuneCookiesOn = false; var knMin = 0; var knMax = 0; var knSpots = 0; var knBoard = []; var knPrize = []; var knBoardDef = {Num: 01, Rand: 0, Name: ''}; var knPrizeDef = {Name: '', Count: 0}; var knTryAgainCount = 0; var knClearGoalMsg = 'knClearGoalMsg'; var knRemWinnerTips = 0; var knRemLoserTips = 0; var knRemWinners = 0; var knRemLosers = 0; cb.settings_choices = [ ,{name: 'knMin' , label: 'Lowest Number on Keno Board' , type:'int' ,minValue: 1, maxValue: 1000 ,defaultValue: 02} ,{name: 'knMax' , label: 'Highest Number on Keno Board' , type:'int' ,minValue: 2, maxValue: 1000 ,defaultValue: 02} ,{name: 'knFill' , label: 'Fill Percentage' , type:'int' ,minValue: 10, maxValue: 100 ,defaultValue: 80} ,{name: 'knGoal' , label: 'Optional - Cleared Board Reward' , type:'str' ,minLength: 1 ,maxLength: 255, required: false} ,{name: 'knFortuneCookies', label: 'Default Prize is Fortune Cookie' , type: 'choice', defaultValue: 'Yes' ,choice1: 'Yes', choice2: 'No'} ,{name: 'kn00', type: 'str', required: true , minLength: 0 ,maxLength: 512, label:'Highest-Value Prize 01'} ,{name: 'kn01', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 02'} ,{name: 'kn02', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 03'} ,{name: 'kn03', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 04'} ,{name: 'kn04', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 05'} ,{name: 'kn05', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 06'} ,{name: 'kn06', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 07'} ,{name: 'kn07', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 08'} ,{name: 'kn08', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 09'} ,{name: 'kn09', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 10'} ,{name: 'kn10', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 11'} ,{name: 'kn11', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 12'} ,{name: 'kn12', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 13'} ,{name: 'kn13', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 14'} ,{name: 'kn14', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 15'} ,{name: 'kn15', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 16'} ,{name: 'kn16', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 17'} ,{name: 'kn17', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 18'} ,{name: 'kn18', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:' Prize 19'} ,{name: 'kn19', type: 'str', required: false, minLength: 0 ,maxLength: 512, label:'Lowest-Value Prize 20'} ]; function loadSettings() { } cb.onTip(function(tip) { var amt = tip.amount; var u = tip.from_user; var n = tip.message; var i; if (KenoIsOn && knMin <= amt && amt <= knMax) { kenoPlay(tip); } }); function kenoPlay(tip) { var amt = tip.amount; var u = tip.from_user; var m = tip.msg; if (knBoard[amt - knMin].Name == 'X') { cb.sendNotice("Somebody already picked that one, sorry"); return; } cb.sendNotice(u + ' picked number ' + amt); if (knBoard[amt - knMin].Name = 'TA') { if (knFortuneCookiesOn == true) { cb.sendNotice('Prize is a Fortune Cookie: ' + randPick(knFortuneCookies)); } else { cb.sendNotice(randPick(knTryAgainMsgs)); } knBoard[amt - knMin].Name = 'X'; return; } var ki = knPrize.indexOf(knBoard[amt - knMin].Name); knPrize[ki].Count--; cb.sendNotice(knWinnerMsg.replace('PRIZE',knBoard[amt - knMin].Name)); knBoard[amt - knMin].Name = 'X'; knRemWinnerTips -= amt; knRemWinners--; if (knRemWinners == 0) { myNotice(knBoardClearedMsg); KenoIsLoaded = false; kenoIsOn = false; kenoLoad(); } } cb.onMessage(function(msg) { var i; var iT = []; var m = msg.m; var u = msg.user; if (m.slice(0,1) == '/' && u == broadCaster) { return slashCmds(msg); } if (m.slice(0,1) == '!' && m != '!') { msg = exclamCmds(msg,u); } return msg; }); function slashCmds(msg) { var t = msg.m; var u = msg.user; var a = t.split(/\s+/); var a0 = a[0].toLowerCase(); if (a0 == '/knew') { kenoLoad(); msg['X-Spam'] = true; return msg; } if (a0 == '/kstat') { kenoStatus(); msg['X-Spam'] = true; return msg; } if (a0 == '/ksend') { kenoSend(); msg['X-Spam'] = true; return msg; } if (a0 == '/kstop') { kenoIsOn = false; cb.sendNotice('Keno has been stopped'); msg['X-Spam'] = true; return msg; } if (a0 == '/help') { var h = '' + '\n/knew (build Keno board and start the game)' + '\n/kstat (send detailed status report to broadcaster' + '\n/ksend user (send board to user)' + '\n/ksend (send board to all)' + '\n/kstop (stop Keno and clear the board)' ; cb.sendNotice(h,broadCaster,'','','bold'); msg['X-Spam'] = false; return msg; } msg['X-Spam'] = false; return msg; } function exclamCmds(msg,u) { var t = msg.m; var u = msg.user; var a = t.split(/\s+/); var a0 = a[0].toLowerCase(); if (a0 == '!kb') { if (!KenoIsLoaded) { cb.sendNotice(knIsStoppedMsg,u); msg['X-Spam'] = true; return msg; } cb.sendNotice(kenoBoard(),u); msg['X-Spam'] = true; return msg; } if (a0 == '!kp') { if (!KenoIsLoaded) { cb.sendNotice(knIsStoppedMsg,u); msg['X-Spam'] = true; return msg; } cb.sendNotice(kenoRemPrizes(),u); msg['X-Spam'] = true; return msg; } msg['X-Spam'] = false; return msg; } function randPick(a) { return a[Math.floor(Math.random() * a.length)]; } function kenoRemPrizes() { var i; var prizeList = 'Prizes Remaining: '; for (i = 0; i < knPrize.length; i++) { if (knPrize.Count[knPrize.length - i - 1]) { prizeList = prizeList + '\n' + knPrize[knPrize.length - i - 1].Name; } } return prizeList; } function kenoStatus() { if (!kenoIsLoaded) { cb.sendNotice('Keno board is not loaded',broadCaster); return; } var i; var boardList = 'Prize List'; for (i = 0; i < knBoard.length; i++) { if (knBoard[i].Name != 'X' && knBoard[i].Name != 'TA') { boardList = boardList + '\n' + i + ': ' + knBoard[i].Name; cb.sendNotice(boardList,broadCaster); } } } function kenoBoard() { var i; var kndigits = knMax.toString().length; var kni = 10; var s; var myBoard = 'Keno Board Remaining'; var knt = 0; if (kndigits == 5) { kni = 5;} if (kndigits == 4) { kni = 5;} if (kndigits == 3) { kni = 8;} if (kndigits == 2) { kni = 10;} if (kndigits == 1) { kni = 10;} for (knt = 0; knt < knSpots; knt++) { if (knt % kni == 0) { myBoard = myBoard + '\n'; } if (knBoard[knt].Name == 'X') { myBoard = myBoard + 'xxxxx'.slice(5-kndigits) + ' '; } else { s = '00000' + (knt + knMin).toString(); myBoard = myBoard + s.slice(s.length-kndigits) + ' '; } } return myBoard; } function kenoLoad() { kenoIsLoaded = false; knGoal = cb.settings.knGoal; knMin = cb.settings.knMin; knMax = cb.settings.knMax; knSpots = knMax - knMin + 1; knFortuneCookiesOn = cb.settings.knFortuneCookies == 'Cookies'; if (knSpots < 2) { cb.sendNotice('Keno Spots must be at least 2',broadCaster); return; } var kCalc = {min: 0, max: 0}; var i,j,p; knMin = 1; knTryAgainCount = Math.floor(knSpots * (100 - cb.Fill) / 100); knClearGoal = cb.settings.knGoal; knRemWinnerTips = 0; knRemLoserTips = 0; knRemWinners = 0; knRemLosers = 0; knPrize=[]; i = 0; var cbs = [cb.settings.kn00,cb.settings.kn01,cb.settings.kn02,cb.settings.kn03,cb.settings.kn04 ,cb.settings.kn05,cb.settings.kn06,cb.settings.kn07,cb.settings.kn08,cb.settings.kn09 ,cb.settings.kn10,cb.settings.kn11,cb.settings.kn12,cb.settings.kn13,cb.settings.kn14 ,cb.settings.kn15,cb.settings.kn16,cb.settings.kn17,cb.settings.kn18,cb.settings.kn19 ] for (i = 0; i < cbs.length; i++) { if (cbs[i] != '') { knPrize[knPrize.length] = {Name: cbs[i], Count: 0}; } } if (knPrize.length > knSpots) { cb.sendNotice('You have more prizes than spots, increasing spots',broadCaster); knSpots = knPrize.length; } kCalc = knCalculateMultipliers(); knPrize[0].Count = kCalc.min; var h = kCalc.max; // var h = 2.0 * (knSpots - knTryAgainCount - (knPrize[0].Count * (knPrize.length - 1))/(knPrize.length - 2)); for (i = 0; i < knPrize.length; i++) { knPrize[i].Count = knPrize[0].Count + Math.floor(i * h / (knPrize.length - 1)); } knTryAgainCount = knSpots; for (i = 0; i < knPrize.length; i++) { knTryAgainCount = knTryAgainCount - knPrize[i].Count; } if (knTryAgainCount < 0) { knSpots -= knTryAgainCount; cb.sendNotice('You have more prizes than spots, increasing spots to ' + knSpots, broadCaster); kenoLoad(); return; } for (i = 0; i < (knMax - knMin + 1); i++) { knBoard[i] = {Num: 0, Rand: 0, Name: ''}; knBoard[i].Num = i + knMin; knBoard[i].Rand = i + Math.sqrt(knSpots) * (Math.random() - Math.random() + Math.random() - Math.random()); knBoard[i].Name = 'TA'; } knShuffle(); for (i = 0; i < knTryAgainCount; i++) { knBoard[i].Rand = -1; knRemLosers += 1; knRemLoserTips += knBoard[i].Num; } knBoard.sort(function(a,b) {return a.Rand - b.Rand;}); var k = knSpots; for (i = 0; i < knPrize.length; i++) { for (j = 0; j < knPrize[i].Count; j++) { knBoard[--k].Name = knPrize[i].Name; knRemWinners += 1; knRemWinnerTips += knBoard[k].Num; } } knBoard.sort(function(a,b) {return a.Num - b.Num;}); for (i = 0; i < knBoard.length; i++) { cb.sendNotice('kn: ' + i + '|' + knBoard[i].Name); } kenoIsLoaded = true; kenoIsOn = true; } function knShuffle() { var i,j,tNum,tRand,tName; for (i = knBoard.length; i; i--) { j = Math.floor(Math.random() * i); tNum = knBoard[i - 1].Num; tRand = knBoard[i - 1].Rand; tName = knBoard[i - 1].Name; knBoard[i - 1].Num = knBoard[j].Num; knBoard[i - 1].Rand = knBoard[j].Rand; knBoard[i - 1].Name = knBoard[j].Name; knBoard[j].Num = tNum; knBoard[j].Rand = tRand; knBoard[j].Name = tName; } } function knCalculateMultipliers() { if (knPrize.length >= knSpots / 2) { return {min: 1, max: 1}; } cSp = knSpots; cPz = knPrize.length; var cTa = cSp; var cTop0 = 1; var cTopH = 0; var cTopTa = 0; var ct0,ctH,ta; var ctR = 0; while (++ctR < 5) { for (ct0 = 1; cSp > ct0 * cPz; ct0++) { for (ctH = 0; cSp > ct0 * cPz + (ctH * cPz / 2); ctH++) { ta = cSp - (ct0 * cPz + (ctH * cPz / 2)); if ((Math.abs(ta - (cSp / 2))) < (Math.abs(cTa - (cSp / 2))) && (Math.abs(ctH / ct0 - ctR) <= Math.abs(cTopH / cTop0 - ctR))) { cTop0 = ct0; cTopH = ctH; cTopTa = ta; cTa = ta; } } } } return {min: cTop0, max: cTopH}; } // cb.log(cSp + ',' + cPz + ',' + cTop0 + ',' + cTopH + ',' + cTopTa); function oneMinuteTimer() { timerCount++; if (timerCount % kenoTimer == 0) { cb.sendNotice("Play Keno"); } cb.setTimeout(oneMinuteTimer, 60000); } function shuffleCookies() { var i,j,t; for (i = fortuneCookies.length; i; i--) { j = Math.floor(Math.random() * i); t = fortuneCookies[i - 1]; fortuneCookies[i - 1] = fortuneCookies[j]; fortuneCookies[j] = t; } } function init() { loadSettings(); oneMinuteTimer(); shuffleCookies(); } var colors = {stpatrickgreen: "#004000", aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff00", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgrey: "#a9a9a9", darkgreen: "#006400", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkslategrey: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdc", ghostwhite: "#f8f8ff", gold: "#ffe866", goldenrod: "#daa520", gray: "#808080", grey: "#808080", green: "#008000", greenyellow: "#adff2f", honeydew: "#f0fff0", hotpink: "#ff69b4", indianred: "# cd5c5c", indigo: "# 4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgrey: "#d3d3d3", lightgreen: "#90ee90", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370db", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#db7093", papayawhip: "#ffefd5", pbchnd: "#f5fffa", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", rebeccapurple: "#663399", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", slategrey: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32" }; var fortuneCookies = [ "Actions speak louder than words, Tip!" ,"A good man is hard to find, be good and try again :)" ,"A journey of a thousand smiles begins with a single tip " ,"A leopard cannot change its tips " ,"A little of what you fancy does you good" ,"All is fair in love and keno" ,"All publicity is good publicity - click that Thumbs-up!" ,"All talk and no tip makes Jack a dull boy" ,"All the world loves a lover - show some love by Tipping!" ,"All things come to those who wait - NOT!" ,"All you need is love, all I need is Tips!" ,"A man is known by his tips" ,"A man who is his own lawyer has a fool for his client" ,"A miss is as good as a mile, try again!" ,"An apple a day keeps the doctor away" ,"An ounce of tips is worth a pound of words " ,"A person is known by the tokens they don't keep - Tip!" ,"A person of beauty is a joy forever" ,"A place for everything and everything in its place" ,"A poor tipper always blames his tool" ,"A rising tide lifts all boats" ,"Ask a silly question and you'll get a silly answer" ,"Ask no questions, hear no lies - send no tips, see no show :)" ,"A stitch in time saves nine" ,"A token tipped is a token earned" ,"A volunteer is worth twenty draftees" ,"A watched pot never boilsf - Tip!" ,"A woman's work is never done, so Tip!" ,"A word to the wise is enough - Tip!" ,"Barking dogs seldom bite" ,"Beauty is in the eye of the beholder - show is in the eye of the Tipper!" ,"Beggars should not be choosers - choosing is for Tippers!" ,"Better late than never - Tip now!" ,"Better safe than sorry" ,"Better to have tipped and lost than never to have tipped at all" ,"Brevity is the soul of wit" ,"Business before pleasure - Tip!" ,"Cowards die many times before their death - they should Tip!" ,"Crime doesn't pay - just Tokens!" ,"Distance lends enchantment to the view - get closer by Tipping!" ,"Don't bite the hand that feeds you" ,"Don't put the cart before the horse - Tips precede Show!" ,"Don't rock the boat" ,"Don't sweat the small stuff" ,"Don't try to run before you can walk" ,"Easy come, easy go - send some tokens to help the show!" ,"Eat, tip and be merry, for tomorrow we die" ,"Empty hands make the most noise" ,"Every little helps - Tip!" ,"Every stick has two ends - there's no end to Tipping!" ,"Faint heart never won fair lady - show some appreciation!" ,"Fair exchange is not robbery" ,"Fight fire with tips!" ,"Fight the good fight - with a nice Tip!" ,"Fine words butter no parsnips - Tip!" ,"First come, first served - NOT! Tippers rule!" ,"Fish and tightwads smell after three hours " ,"For everything there is a season - now is the season to Tip!" ,"Forewarned is forearmed - tokens power the show!" ,"Forgive and forget - but don't forget to Tip!" ,"Fortune favours the brave - Cammers favor the Tipper!" ,"From the sublime to the ridiculous is only one tip" ,"Good fences make good neighbours - good tips make good guests!" ,"Good things come to those who Tip" ,"Go the extra mile - tip for bigger smile!" ,"Hell hath no fury like a woman untipped" ,"He who hesitates is lost" ,"Home is where the tip is" ,"Honesty is the best policy - tipping is the best strategy" ,"Hope springs eternal - someone else MIGHT tip :(" ,"If a job is worth doing it is worth tipping well" ,"If at first you don't succeed, tip, tip, and tip again" ,"If life deals you lemons, send more Tips!" ,"If the shoe fits, tip!" ,"If wishes were tokens, grays would rule" ,"If you build it they will come - if you Tip it you will come" ,"If you can't beat em, Tip!" ,"If you can't be good, Tip!" ,"If you can't stand the heat, Tip!" ,"If you pay peanuts, you get monkeys" ,"It is best to be on the safe side - send Tokens!" ,"It is better to give than to receive" ,"It's an ill wind that blows no one any good" ,"It's better to have tipped and lost than never to have played at all" ,"It's better to tip and then receive" ,"It's never too late - Tip!" ,"It's the early tipper that catches the show" ,"Keep your chin up - and your tokens coming!" ,"Laughter is the best medicine" ,"Less is more - on Cammers!" ,"Look before you leap - Tip before you beg" ,"Love makes the world go round - show some love by Tipping!" ,"Make hay while the sun shines - send Tokens!" ,"Make love not war" ,"Man does not live by bread alone - send Tips to find out why!" ,"Many hands make light work - many Tips make Cammers work" ,"Mighty oaks from little tippers grow" ,"Money doesn't grow on trees - and Cammer's show is not free" ,"Money makes the world go round - and tips make the Cammer turn around" ,"Money talks - Tippers rule!" ,"Never put off until tomorrow what you can do today - tip Now!" ,"No pain, no gain - no tips, no nips" ,"Nothing succeeds like success" ,"Nothing ventured, nothing gained - try Tipping!" ,"Patience is a virtue - not looking for virtue? send Tips!" ,"Patience is a virtue - all out of patience? send Tokens!" ,"People who live in glass houses shouldn't throw stones - they should Tip!" ,"Practice makes perfect - tip, repeat - tip, repeat..." ,"Seeing is believing - wanna see? Tip!" ,"See no evil, hear no evil, speak no evil - just Tip!" ,"Seize the day - send some Tokens!" ,"Talk is cheap - Tip!" ,"That which does not kill us makes us stronger" ,"The best things in life are free, just not on CB" ,"The bottom line is the bottom line - want to see it? Tip!" ,"The more the merrier - Tokens!" ,"There's no such thing as a free lunch - Tip!" ,"There's no time like the present - and no present like Tokens!" ,"Third time lucky - get lucky by Tipping!" ,"Those who live in glass houses shouldn't throw stones - they should Tip!" ,"Time and tide wait for no man - unlike Cammers :(" ,"Time is money" ,"To every thing there is a season - this is the season for Tipping!" ,"Tokens make the heart grow fonder" ,"To the tipper go the spoils" ,"Truth is stranger than fiction - don't be a stranger, Tip!" ,"Two tips are better than one" ,"Variety is the spice of life - wanna see some? Tip!" ,"What goes up must come down - wanna watch? send Tokens!" ,"When the going gets tough, the tough start Tipping!" ,"Where there's a will there's a Tip!" ,"While there's life there's a Tip!" ,"Wonders will never cease - when Tokens are on the increase" ,"Worrying never did anyone any good - only Tokens!" ,"You are never too old to tip!" ,"You can't get blood out of a stone - or a Gray" ,"You win some, you lose some - try again?" ]; // colors site with demonstrations: http://www.w3schools.com/colors/colors_names.asp var notifyColor = 'navy'; init(); /* by pbchnd */
© Copyright Chaturbate 2011- 2025. All Rights Reserved.