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, ":-P"). replace(/(S\-\))/g, "S-)"). replace(/(\>\()/g, ">("). replace(/(\:\*\))/g, ":*)"). replace(/(\:-D)/g, ":-D"). replace(/(QQ)/g, "QQ"). replace(/(\=O)/g, "=O"). replace(/(\=\/)/g, "=/"). replace(/(8\-\))/g, "8-)"). replace(/(:-X)/g, ":-X"). replace(/(O:\])/g, "O:]"); 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 */