var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
{
let window = _____WB$wombat$assign$function_____("window");
let self = _____WB$wombat$assign$function_____("self");
let document = _____WB$wombat$assign$function_____("document");
let location = _____WB$wombat$assign$function_____("location");
let top = _____WB$wombat$assign$function_____("top");
let parent = _____WB$wombat$assign$function_____("parent");
let frames = _____WB$wombat$assign$function_____("frames");
let opener = _____WB$wombat$assign$function_____("opener");
/*
Copyright © 2008 Pippa http://www.spacegirlpippa.co.uk
Released: 30.05.2008 Stockholm, Sweden
Contact: sthlm.pippa@gmail.com
This file is part of wTag mini chat - shoutbox.
wTag is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, orontent
(at your option) any later version.
wTag is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with wTag. If not, see .
*/
/*------ JavaScript functions for the shoutbox -------------------------------*/
// Parse URLs to links
function autoLinks(msg) {
var text = msg.replace(/((?:ht|f)tps?:\/\/([^\s,]*))/gi,
"{url}");
return text;
}
// Split too long lines
function splitMsg(msg) {
var text = msg.replace(/(.[^\s\<\>]{15})/gi,
"$1\n");
return text;
}
// Replace smileys tags with images
function replaceSmileys(message) {
var sm = message.replace(/(:\)|:\-\))/g, "
").
replace(/(:\(|:-\()/g, "
").
replace(/(\;\)|\;\-\))/g, "
").
replace(/(:-P)/g, "
").
replace(/(S\-\))/g, "
").
replace(/(\>\()/g, "
").
replace(/(\:\*\))/g, "
").
replace(/(\:-D)/g, "
").
replace(/(QQ)/g, "
").
replace(/(\=O)/g, "
").
replace(/(\=\/)/g, "
").
replace(/(8\-\))/g, "
").
replace(/(:-X)/g, "
").
replace(/(O:\])/g, "
");
return sm;
}
// Add a smiley tag to a message
function tagSmiley(tag) {
var chat_message = document.getElementById('message');
if (chat_message.value == "message")
{
chat_message.value = '';
}
var cache = chat_message.value;
this.tag = tag;
chat_message.value = cache + tag;
}
// Clear default value of the name field
// + change the name field text color
function set_focus_n(t) {
if (t.defaultValue == t.value)
t.value = '';
t.style.color = '#000000';
}
// Change the url field text color
function set_focus_u(t) {
t.style.color = '#000000';
}
// Clear default value of the message field
// + change the message field text color
function set_focus_m(t) {
//alert ("focus");
if (t.defaultValue == t.value)
t.value = '';
t.style.color = 'blue';
}
// Submit on Enter key press
// The function taken from http://www.ryancooper.com/resources/keycode.asp
function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
if(keycode == 13)
{
sendMessage();
return false;
}
else return true;
}
// Replace bad words with symbols
function filterBW(message) {
for (var i=0; i < badwords.length; i++) {
var pattern=new RegExp("\\b("+badwords.join("|")+"){1,}\\b",'gi');
var replacement = "*!*?*";
text = message.replace(pattern,replacement);
}
return text;
}
// Validate user input and alert if something goes wrong
function checkInput(name, url, message) {
var input_e = "";
input_e += checkName(name);
if (input_e != "")
{
alert(input_e);
var msg = document.getElementById('message');
msg.value='';
return false;
}
input_e += checkUrl(url);
input_e += checkMessage(message);
input_e += checkChars(name);
input_e += checkChars(url);
input_e += checkChars(message);
input_e += checkSpam(name);
input_e += checkSpam(url);
input_e += checkSpam(message);
if (input_e != "")
{
alert(input_e);
var msg = document.getElementById('message');
msg.value='';
return false;
}
return true;
}
// Check for restricted tags and attributes
function checkChars(msg) {
var error = "";
for (var i=0; i < characters.length; i++) {
if (msg.indexOf(characters[i])!= -1)
{
error = "Some tags are not allowed. Please use 'http://' if you want to send a url.\n";
}
}
return error;
}
// Check a message against the banned words list
function checkSpam(msg) {
var error = "";
for (var i=0; i < spamwords.length; i++) {
var pattern = new RegExp("\\b("+spamwords.join("|")+"){1,}\\b",'gi');
if (pattern.test(msg))
{
error = "Your message contains a banned word.\n";
}
}
return error;
}
// Validate a name
function checkName(name) {
var error="";
if (name == "" || name == "name")
{
error = "Please login or register to continue chat.\n";
}
for (var i=0; i < badwords.length; i++) {
var pattern = new RegExp("\\b("+badwords.join("|")+"){1,}\\b",'gi');
if ((name.length > 26)||(pattern.test(name)))
{
error = "The name is longer than 26 or contains characters that are not allowed. Please choose another one.\n";
}
}
return error;
}
// Validate a message
function checkMessage(message) {
var error="";
if (message=="" || message=="message")
{
error = "You didn't enter a message.\n";
}
if (message.length > 400)
{
error = "The message is longer than 400 characters.\n";
}
return error;
}
// Validate a URL
function checkUrl(url) {
var error="";
var pattern=new RegExp("((?:ht|f)tps?://.*?)([^\s,]*)\.([^\s,]*)",'gi');
if (!(url=="" || url=="http://"))
{
if ((url.length>100)||(!pattern.test(url)))
{
error = "The url you provided seems to be incorrect.\n";
}
}
return error;
}
/*------ AJAX part -----------------------------------------------------------*/
/*
* The Ajax part of the shoutbox script is based on AJAX-Based Chat System
* by Alejandro Gervasio
* URL: http://images.devshed.com/da/stories/Building_AJAX_Chat/chat_example.zip
*/
// Create the XMLHttpRequestObject
function getXMLHttpRequestObject() {
var xmlobj;
// Check for existing requests
if (xmlobj!=null&&xmlobj.readyState!=0&&xmlobj.readyState!=4) {
xmlobj.abort();
}
try {
// Instantiate object for Mozilla, Nestcape, etc.
xmlobj=new XMLHttpRequest();
}
catch(e) {
try {
// Instantiate object for Internet Explorer
xmlobj=new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e) {
// Ajax is not supported by the browser
xmlobj=null;
return false;
}
}
return xmlobj;
}
// Check status of sender object
function senderStatusChecker() {
// Check if request is completed
if(senderXMLHttpObj.readyState==4) {
if(senderXMLHttpObj.status==200) {
// If status == 200 display chat data
displayChatData(senderXMLHttpObj);
}
else {
var post=document.getElementById('content1');
var error_message = document.createTextNode('Failed to get response :'+ senderXMLHttpObj.statusText);
post.appendChild(error_message);
}
}
}
// Check status of receiver object
function receiverStatusChecker() {
// If request is completed
if(receiverXMLHttpObj.readyState==4) {
if(receiverXMLHttpObj.status==200) {
//alert ("display");
// If status == 200 display chat data
displayChatData(receiverXMLHttpObj);
}
else {
var post=document.getElementById('content1');
var error_message = document.createTextNode('Failed to get response :'+ receiverXMLHttpObj.statusText);
post.appendChild(error_message);
}
}
}
// Get messages from database each 5 seconds
function getChatData() {
showUser();
//alert("alert2");
receiverXMLHttpObj.open('GET','wtag/getchat.php',true);
receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
receiverXMLHttpObj.send(null);
setTimeout('getChatData()',2000);
}
// instantiate sender XMLHttpRequest object
var senderXMLHttpObj = getXMLHttpRequestObject();
// instantiate receiver XMLHttpRequest object
var receiverXMLHttpObj = getXMLHttpRequestObject();
// Display messages
function displayChatData(reqObj) {
var post=document.getElementById('content1');
if(!post)
{
// alert("return");
return;
}
post.innerHTML = '';
//alert ("check");
var xmldoc = receiverXMLHttpObj.responseXML;
var message_nodes = xmldoc.getElementsByTagName('msg');
for (i = 0; i < message_nodes.length; i++) {
var date = message_nodes[i].getElementsByTagName('date');
var name = message_nodes[i].getElementsByTagName('name');
var url = message_nodes[i].getElementsByTagName('url');
var message = message_nodes[i].getElementsByTagName('message');
var user = document.createElement('div');
user.className = 'user';
var slink = document.createElement('span');
slink.className = 'link';
var sname = document.createElement('span');
sname.className = 'name';
var name = document.createTextNode(name[0].firstChild.nodeValue);
sname.appendChild(name);
if (url.length && url[0].firstChild)
{
var usr = document.createElement('a');
usr.href = url[0].firstChild.nodeValue;
usr.title = url[0].firstChild.nodeValue;
usr.target = "_blank";
usr.appendChild(name);
slink.appendChild(usr);
}
else
{
slink = sname;
}
var maintext = document.createElement('span');
maintext.className='text';
if (sm_options == 'yes')
{
var text = splitMsg(filterBW(autoLinks(replaceSmileys(message[0].firstChild.nodeValue))));
}
else
{
var text = splitMsg(filterBW(autoLinks(message[0].firstChild.nodeValue)));
}
maintext.innerHTML += text;
user.appendChild(slink);
user.appendChild(maintext);
post.appendChild(user);
scroller.init();
}
}
// Send a message
function sendMessage() {
//alert("check");
var token = document.getElementById('token').value;
var name = document.getElementById('name').value;
var url = document.getElementById('url').value;
var message = document.getElementById('message').value;
if (!checkInput(name, url, message))
{
return;
}
senderXMLHttpObj.open('POST','wtag/sendchat.php',true);
senderXMLHttpObj.setRequestHeader('content-Type','application/x-www-form-urlencoded');
senderXMLHttpObj.send('token='+token+'&name='+encodeURIComponent(name)+'&url='+encodeURIComponent(url)+'&message='+encodeURIComponent(message));
senderXMLHttpObj.onreadystatechange = senderStatusChecker;
var post = document.getElementById('content1');
var scrollbar = document.getElementById('scroller')
post.style.position = 'absolute';
post.style.top = '0px';
post.style.bottom = '0px';
post.style.position = 'relative';
scrollbar.style.top="0px";
document.getElementById('url').value = 'http://';
document.getElementById('message').value = '';
document.getElementById('message').focus();
}
// Initialize chat
function startChat() {
//alert ("asad");
var cform = document.getElementById('cform');
// var name = document.getElementById('name');
// var url = document.getElementById('url');
var msg = document.getElementById('message');
var submit = document.getElementById('submit1');
cform.onkeydown = checkKeycode;
//name.onfocus = function () {set_focus_n(this);}
//url.onfocus = function () {set_focus_u(this);}
msg.onfocus = function () {set_focus_m(this);}
submit.onclick = sendMessage;
// url.value = 'http://';
// msg.value = 'message';
getChatData();
startList();
//showUser();
}
// JavaScript Document
var xmlhttp1=GetXmlHttpObject();
function showUser()
{
if (xmlhttp1==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="currentuser.php";
xmlhttp1.onreadystatechange=stateChanged;
xmlhttp1.open("GET",url,true);
xmlhttp1.send(null);
//setTimeout('showUser()',12000);
}
function stateChanged()
{
if (xmlhttp1.readyState==4)
{
if (xmlhttp1.status == 200)
{
document.getElementById("currentuser").innerHTML=xmlhttp1.responseText;
}
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
window.onload = startChat;
}
/*
FILE ARCHIVED ON 12:13:27 Jan 16, 2013 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 10:32:48 Jul 18, 2025.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
/*
playback timings (ms):
captures_list: 11.342
exclusion.robots: 0.02
exclusion.robots.policy: 0.01
esindex: 0.013
cdx.remote: 18.789
LoadShardBlock: 180.614 (3)
PetaboxLoader3.datanode: 132.826 (4)
load_resource: 34.809
*/