337 lines
5.7 KiB
HTML
337 lines
5.7 KiB
HTML
<script>
|
|
'use strict';
|
|
var Chat = window.Chat || {};
|
|
var djb2Code = function(str) {
|
|
var hash = 5381;
|
|
for (var i = 0; i < str.length; i++) {
|
|
var character = str.charCodeAt(i);
|
|
hash = ((hash << 5) + hash) + character; /* hash * 33 + c */
|
|
}
|
|
return hash > 0 ? hash : -hash;
|
|
};
|
|
var animals = [
|
|
'Adelie',
|
|
'Penguin',
|
|
'Akita',
|
|
'Bulldog',
|
|
'Ant',
|
|
'Fox',
|
|
'Hare',
|
|
'Wolf',
|
|
'Terrier',
|
|
'Avocet',
|
|
'Baboon',
|
|
'Camel',
|
|
'Badger',
|
|
'Barb',
|
|
'Basenji',
|
|
'Basking',
|
|
'Bat',
|
|
'Beagle',
|
|
'Bear',
|
|
'Collie',
|
|
'Beaver',
|
|
'Beetle',
|
|
'Bichon',
|
|
'Bird',
|
|
'Birman',
|
|
'Bison',
|
|
'Bobcat',
|
|
'Bombay',
|
|
'Bongo',
|
|
'Bonobo',
|
|
'Booby',
|
|
'Boykin',
|
|
'Budgie',
|
|
'Buffalo',
|
|
'Burmese',
|
|
'Fish',
|
|
'Caiman',
|
|
'Lizard',
|
|
'Canaan',
|
|
'Caracal',
|
|
'Cat',
|
|
'Catfish',
|
|
'Cesky',
|
|
'Fousek',
|
|
'Chamois',
|
|
'Cheetah',
|
|
'Chicken',
|
|
'Chinook',
|
|
'Cichlid',
|
|
'Leopard',
|
|
'Clumber',
|
|
'Coati',
|
|
'Coral',
|
|
'Tamarin',
|
|
'Cougar',
|
|
'Cow',
|
|
'Coyote',
|
|
'Crab',
|
|
'Macaque',
|
|
'Crane',
|
|
'Cuscus',
|
|
'Frog',
|
|
'Deer',
|
|
'Bracke',
|
|
'Dhole',
|
|
'Dingo',
|
|
'Discus',
|
|
'Dodo',
|
|
'Dog',
|
|
'Dogo',
|
|
'Dolphin',
|
|
'Donkey',
|
|
'Drever',
|
|
'Duck',
|
|
'Dugong',
|
|
'Dunker',
|
|
'Dusky',
|
|
'Eagle',
|
|
'Earwig ',
|
|
'Gorilla',
|
|
'Echidna',
|
|
'Emu',
|
|
'Falcon',
|
|
'Fennec',
|
|
'Ferret',
|
|
'Spitz',
|
|
'Fly',
|
|
'Fossa',
|
|
'Gecko',
|
|
'Gerbil',
|
|
'Gharial',
|
|
'Gibbon',
|
|
'Giraffe',
|
|
'Goat',
|
|
'Oriole',
|
|
'Goose',
|
|
'Gopher',
|
|
'Grouse',
|
|
'Guppy',
|
|
'Shark',
|
|
'Hamster',
|
|
'Harrier',
|
|
'Heron',
|
|
'Horse',
|
|
'Human',
|
|
'Hyena',
|
|
'Ibis',
|
|
'Iguana',
|
|
'Impala',
|
|
'Indri',
|
|
'Insect',
|
|
'Setter',
|
|
'Jackal',
|
|
'Jaguar',
|
|
'Kakapo',
|
|
'Kiwi',
|
|
'Koala',
|
|
'Lemming',
|
|
'Lemur',
|
|
'Liger',
|
|
'Lion',
|
|
'Llama',
|
|
'Lobster',
|
|
'Owl',
|
|
'Lynx',
|
|
'Mayfly',
|
|
'Meerkat',
|
|
'Molly',
|
|
'Mongrel',
|
|
'Monkey',
|
|
'Moorhen',
|
|
'Moose',
|
|
'Mouse',
|
|
'Mule',
|
|
'Numbat',
|
|
'Ocelot',
|
|
'Octopus',
|
|
'Okapi',
|
|
'Opossum',
|
|
'Ostrich',
|
|
'Otter',
|
|
'Oyster',
|
|
'Panther',
|
|
'Parrot',
|
|
'Peacock',
|
|
'Pelican',
|
|
'Persian',
|
|
'Pig',
|
|
'Piranha',
|
|
'Pointer',
|
|
'Poodle',
|
|
'Possum',
|
|
'Prawn',
|
|
'Puffin',
|
|
'Pug',
|
|
'Puma',
|
|
'Pygmy',
|
|
'Quail',
|
|
'Quetzal',
|
|
'Quokka',
|
|
'Quoll',
|
|
'Rabbit',
|
|
'Raccoon',
|
|
'Ragdoll',
|
|
'Rat',
|
|
'Robin',
|
|
'Saola',
|
|
'Seal',
|
|
'Serval',
|
|
'Sheep',
|
|
'Shrimp',
|
|
'Siamese',
|
|
'Skunk',
|
|
'Sloth',
|
|
'Snail',
|
|
'Snake',
|
|
'Somali',
|
|
'Sparrow',
|
|
'Dogfish',
|
|
'Sponge',
|
|
'Squid',
|
|
'Stoat',
|
|
'Swan',
|
|
'Tang',
|
|
'Tapir',
|
|
'Tarsier',
|
|
'Termite',
|
|
'Tetra',
|
|
'Tiffany',
|
|
'Tiger',
|
|
'Toucan',
|
|
'Tuatara',
|
|
'Turkey',
|
|
'Uakari',
|
|
'Uguisu',
|
|
'Vulture',
|
|
'Wallaby',
|
|
'Walrus',
|
|
'Warthog',
|
|
'Wasp',
|
|
'Weasel',
|
|
'Whippet',
|
|
'Wombat',
|
|
'Wrasse',
|
|
'Yak',
|
|
'Yorkie',
|
|
'Zebra',
|
|
'Zebu',
|
|
'Zonkey',
|
|
'Zorse'
|
|
];
|
|
var bb = [
|
|
'Walter White',
|
|
'Skyler White',
|
|
'Jesse Pinkman',
|
|
'Hank Schrader',
|
|
'Marie Schrader',
|
|
'Walter White, Jr.',
|
|
'Saul Goodman',
|
|
'Gustavo Fring',
|
|
'Mike Ehrmantraut',
|
|
'Lydia Rodarte-Quayle',
|
|
'Todd Alquist',
|
|
'Steven Gomez',
|
|
'Detectives Kalanchoe & Munn',
|
|
'George Merkert',
|
|
'Sac Ramey',
|
|
'Tim Roberts',
|
|
'Maximino Arciniega',
|
|
'Gale Boetticher',
|
|
'Duane Chow',
|
|
'Ron Forenall',
|
|
'Barry Goodman',
|
|
'Tyrus Kitt',
|
|
'Chris Mara',
|
|
'Dennis Markowski',
|
|
'Victor',
|
|
'Dan Wachsberger',
|
|
'Don Eladio Vuente',
|
|
'Juan Bolsa',
|
|
'Hector Salamanca',
|
|
'Tuco Salamanca',
|
|
'Leonel Salamanca',
|
|
'Marco Salamanca',
|
|
'Gonzo',
|
|
'Emilio Koyama',
|
|
'Krazy-8 Molina',
|
|
'Jack Welker',
|
|
'Andrea Cantillo',
|
|
'Brock Cantillo',
|
|
'Jane Margolis',
|
|
'Brandon Mayhew',
|
|
'Combo Ortega',
|
|
'Skinny Pete',
|
|
'Adam Pinkman',
|
|
'Mrs. Pinkman',
|
|
'Jake Pinkman',
|
|
'Wendy',
|
|
'Huell Babineaux',
|
|
'Ed',
|
|
'Francesca',
|
|
'Patrick Kuby',
|
|
'Hugo Archuleta',
|
|
'Ted Beneke',
|
|
'Clovis',
|
|
'Louis Corbett',
|
|
'Dr. Delcavoli',
|
|
'Lawson',
|
|
'Donald Margolis',
|
|
'Carmen Molina',
|
|
'Old Joe',
|
|
'Pamela',
|
|
'Gretchen Schwartz',
|
|
'Elliott Schwartz',
|
|
'Drew Sharp',
|
|
'Spooge',
|
|
'Holly White',
|
|
'Bogdan Wolynetz'
|
|
];
|
|
Chat.AnonymousContactBehavior = {
|
|
properties: {
|
|
contact: {
|
|
type: Object,
|
|
notify: true
|
|
},
|
|
_displayName: {
|
|
computed: '_computeDisplayName(contact)'
|
|
}
|
|
},
|
|
_computeDisplayName: function(contact) {
|
|
if (contact === undefined || contact === null) {
|
|
return 'connecting...';
|
|
}
|
|
if (contact === 'error' || contact === 'invite') {
|
|
return '';
|
|
}
|
|
if (!contact.name) {
|
|
return this.anonymousAccount(contact).name;
|
|
}
|
|
return contact.name;
|
|
},
|
|
get names() {
|
|
return bb;
|
|
},
|
|
anonymousAccount: function(contact) {
|
|
if (contact && !contact.name) {
|
|
var peer = contact.peer || contact;
|
|
var hash = djb2Code(peer);
|
|
var i = hash % this.names.length;
|
|
var name = this.names[i];
|
|
var marginTop = i % 2;
|
|
var marginLeft = Math.floor(i / 2) % 5;
|
|
return {
|
|
name: name,
|
|
peer: peer,
|
|
avatar: {
|
|
url: 'images/avatars.jpg',
|
|
left: -14 + 80 * marginLeft,
|
|
top: -19 + 95 * marginTop
|
|
}
|
|
};
|
|
}
|
|
}
|
|
};
|
|
</script>
|