
[b]Modified by me:blacklizard[/b]
[b]LATEST FIX FOR IE[/b](problem:the tracker won't load in IE)

[b]v3.1.2 Changelog from [url=http://theftalk.com/t42669-WVMv3.1.1-Sharing-Database-%28with-blacklizard%27s-modifications%29.html]v3.1.1 blacklizard's version[/url][/b]
[quote]

[b]Fixed[/b]
1. Static "duration" display
2. Online icon didn't show when the user is online
3. Minor CSS bugs

[b]New features[/b]
1. DOM Ready event as onload handler(the tracker box will load faster)
2. Send A Smile
3. Send Message
4. Forward to Friend
5. Invite To Group
6. Add Comment
7. Shake image onMouseover[/quote]
[img]http://img228.imageshack.us/img228/5620/animationze6.gif[/img]
[url=http://profiles.friendster.com/blacklizard]LIVE PREVIEW[/url]
[b]Screenshot:[/b]
[img]http://img222.imageshack.us/img222/9196/trackerce6.jpg[/img]

[b]Wat you need[/b]

-fileave account or any webhost
-Friendster profile
-Patient
.gif)
[b]1. First create one file named as "tracker.css" in your webhost.[/b]
- After the file was created, copy the code below and paste it to "tracker.css"
[spoiler]body, div, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, th, td{margin:0; padding:0}table{border-collapse:collapse; border-spacing:0}fieldset, img{border:0}ol, ul{list-style:none}h1, h2, h3, h4, h5, h6{font-size:100%}body{color:#555; font:11px arial,helvetica,sans-serif}table{font-size:inherit; font:100%}select, input, textarea{font:99% arial,helvetica,sans-serif} *img{vertical-align:bottom}
/*BACKGROUND COLOR*/
body {
background: #dce7ed;
border: 0px;
overflow: hidden!important;
}
.even {
background: #97b6ca;
}
/* Default link styles */
a {
font-weight: bold;
}
a:link, a:visited, a:active, a:hover {
text-decoration: none;
color: #004F59;
}
a:hover {
text-decoration: underline;
color: #004F59;
}
a.action:link, a.action:visited, a.action:hover, a.action:active {
color: #004F59;
}
.row {
width: 100%;
}
span, .more, .visit, .copy {
font-size: smaller;
}
.imageblock {
vertical-align: top;
background-color: #FFFFFE;
overflow: hidden;
height: 75px;
width: 75px;
text-align: center;
border: 2px solid #DDDDDD;
}
img {
height: 75px;
border: 0px;
}
.visit {
margin-bottom: 5px;
}
.wrapper {
width: 285;
}
.ltd {
width: 85px;
vertical-align: top;
}
#top, #foot {
padding-left: 5px;
}
.copy {
width: 285;
}
.row {
padding: 5px;
}
sup {
font-size: .5em;
}
.online {
color: green;
font-weight: bold;
}
.strong {
font-weight: bold;
}
.visit img {
height: 25px;
width: 100px;
}[/spoiler]

you can edit the attributes in your own liking

[b]2. Next,you must register with my database in order for your visitor's detail to be saved.[/b]
- What you need for registration
[spoiler]1. friendster ID
2. your "tracker.css" direct link OR if you don't want to have your css file for the tracker, you can use the default css file link<">-dont know how to find your friendster ID? [url=http://theftalk.com/t3499-Tutorial-Find-Userid%21%21%21.html]Proceed HERE[/url][/spoiler]
- [url=http://blacklizard.blackapplehost.com/wvm3.1.2/Tracker%20Registration.php]CLICK HERE to start the registeration process[/url]
[b]3. After registration, copy the code below and paste it at top most(after css or js injection) of your external JS file.[/b]
[spoiler]//force login
if(pageViewerID==""){
alert("Please log in your Friendster account to view my page!");
top.location.href="http://www.friendster.com/login.php?next=%2fuser.php%3fuid%3D"+pageOwnerID+"&cookie=1";
}
//onload handler
function onProfileLoad() {
//addbox code here
addBox("RIGHT","My Visitors",TRACKER.div.innerHTML,"tracker","2");
//other onload here
}
/*TRACKER OBJECT*/
if (typeof TRACKER == "undefined") { TRACKER = {}; }
TRACKER = {
//iframe css
style: {
filter: "chroma(color='#FFFFFF')",
width: '300px',
height: '560px',
border: '0px',
overflow: 'hidden'
},
//iframe attributes
attributes: {
frameborder: '0',
allowtransparency: 'true'
},
phplink: "http://blacklizard.blackapplehost.com/wvm3.1.2/tracker.php",
display: 4,
/*do not edit below this line*/
/*
WVMv3.1.2
by marfillaster, (c) 2007
www.friendster.com/mumbhaki
credits: blacklizard
licensed under GNU General Public License, version 2
http://www.gnu.org/licenses/gpl.html
Disclaimer: NO GUARANTEE and WARRANTY provided! For educational purposes only. Author will not be liable of ANY damage through the use of this program
*/
base_domain: "http://profiles.friendster.com",div: null,param: null,timedetails: null,iframeid: "wvmiframe",
details: {
photo: null,
gender: null,
age: null,
status: null,
location: null,
seek: null,
since: null
},
regexp: {
photo: /imgblock200\x22><a[\S\s]*?img src="([\S\s]*?)"/i,
gender: />([\S]*?male)/i,
age: /male, ([\d]*?),/i,
status: /male, [\d]*?, ([\S\s]*?)<\/span>/i,
location: /Location\: <\/span><a[\S\s]*?>([\S\s]*?)<\/a><\/li>/i,
seek: /In\: <\/span>([\S\s]*?)<\/li>/i,
since: /Since\: <\/span>([\S\s]*?)<\/li>/i
},
init: function() {
try{getElementsByClass(/commonbox[\s]*?controlpanel/i,null,"DIV")[0].innerHTML+="<iframe id=\""+this.iframeid+"\" style=\"display:none\" src=\"about:blank\"></iframe>";}catch(e){this.error("Cannot insert inline iframe.");return;}
var d= new Date();
var hr=invert(d.getTimezoneOffset()/60);
this.timedetails="os="+hr;
var ifsrc=this.phplink+"?"+this.timedetails+"&id="+pageViewerID+"&owner="+pageOwnerID+"&num="+this.display;
var atr="";
var sty="";
for (val in this.attributes) {
atr += val +"="+ this.attributes[val]+" ";
}
for (val in this.style) {
sty += val +":"+ this.style[val]+";";
}
try {this.div=document.createElement("<div>")}
catch(e){this.div=document.createElement("div")}
this.div.innerHTML="<iframe id=\"wvm\" "+atr+"src=\""+ifsrc+"\" style=\""+sty+"\"></iframe>";
//Refresh/Reload Button
this.div.innerHTML="<center><iframe id=\"wvm\" "+atr+"src=\""+ifsrc+"\" style=\""+sty+"\"></iframe><br /><input type=\"button\" value=\"REFRESH TRACKER\" class=\"reloadbutt\" onclick=\"Reload();\"></center>";
if(pageViewerID!=pageOwnerID) if(pageViewerID!="") this.getDETAILS();
},
getDETAILS: function() {
processAjaxRequest("GET",this.base_domain+"/user.php?uid="+pageViewerID+"&_pmr=h&_pmmo=0&_pmt=controlpanel_1_1",true,null, "TRACKER.parseDETAILS",null);
},
parseDETAILS: function(htm) {
if(htm.replace(/^\s*|\s*$/mg,"")=="") {this.error("Empty xmlresponse! Unable to parse your details!");return;}
else {
for (val in this.details) {
try {
this.details[val]=encodeURIComponent(new RegExp(this.regexp[val]).exec(htm)[1]);
}
catch(e) {
this.details[val]="";
}
}
if(!this.details.photo) {this.error("Unable to parse primary photo! Invalid xmlresponse or incorrect photo regexp.");return;}
this.param="?owner="+pageOwnerID+"&id="+pageViewerID+"&name="+pageViewerFName+"&img="+this.details.photo+"&gen="+this.details.gender+"&age="+this.details.age+"&stat="+this.details.status+"&loc="+this.details.location+"&seek="+this.details.seek+"&since="+this.details.since;
try{document.getElementById(this.iframeid).src=this.phplink+this.param;}catch(e){this.error("Unable to locate inline iframe id:"+this.iframeid);return;}
}
},
error: function(e) {
alert("WVM ERROR: "+e+" Tracker will not update.");
}
};
/*END TRACKER OBJECT*/
if(navigator.appName =="Microsoft Internet Explorer")
{
setTimeout("onProfileLoad()","1000");
}
window.addEvent('domready', function(){onProfileLoad();});
TRACKER.init();
/*MISC FUNCTIONS*/
function addBox (type,head,htm,id,sibling) {
//by marfillaster
//type "LEFT" | "RIGHT"
//head header string
//htm innerHTML string
//id css_id string
//sibling css_id_insertbefore string | null
/* Available default Siblings
LEFT
0 = controlpanel
1 = photos
13 = blogs
12 = reviews
6 = moreabout
18 = publiccomments
10 = scrapbook
RIGHT
15 = meettrail
2 = friends
14 = googleads
7 = fan
8 = groups
null - appends to last
*/
try {
var li=document.createElement("li");
} catch(e) {
var li=document.createElement("<li>");
}
if(type=="LEFT") {
var ul=document.getElementById("0").parentNode.parentNode;
htm="<div class='boxcontent'>"+htm+"</div>";
}
else var ul=document.getElementById("2").parentNode.parentNode;
li.innerHTML="<div id='"+id+"' class='commonbox "+id+"'>"+
"<h2>"+head+"</h2>"+
"<div id='content_"+id+"'>"+
htm+
"</div>"+
"</div>";
if(sibling==null) ul.appendChild(li);
else {
sibling=document.getElementById(sibling).parentNode;
ul.insertBefore(li,sibling);
}
}
function processAjaxRequest(type,url,cont,param,handler,handlerparam) {
//by marfillaster
if(handlerparam) handlerparam=","+handlerparam;
else handlerparam="";
var httprequest= window.XMLHttpRequest? new XMLHttpRequest():new ActiveXObject("Msxml2.XMLHTTP");
if(handler) eval("httprequest.onreadystatechange=function(){if (httprequest.readyState==4) {"+handler+"(httprequest.responseText"+handlerparam+");}}");
httprequest.open( type, url, cont);
if(type=="POST") {
httprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httprequest.setRequestHeader("Content-length", param.length);
httprequest.setRequestHeader("Connection", "close");
}
httprequest.send(param);
}
function invert(x) {
if(x>0) return parseInt("-"+x);
else if(x<0) {
x=x+"";
return parseInt(x.substr(1,x.length-1));
}
return 0;
}
function randOrd(){
return (Math.round(Math.random())-0.5);
}
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp(searchClass);
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
/*END MISC FUNCTIONS*/
//other codes goes here
function Reload () {
var f = document.getElementById('wvm');
f.src = f.src;
}[/spoiler]
[b]
4. Link your external JS file to your profile.[/b]

[b][u]ignore step 4 if you already have external JS file linked to your profile[/u][/b]
And thats it, congratulations.U're done..


[b]For more information information, read FAQs below:[/b]
[spoiler][b]Q: When i try to register, this message was shown, "MySQL error....Duplicate entry '0' for key 1".why?[/b]
[b]A:[/b] This happen because your Friendster ID already registered.
[b]Q: How can i change my WVM's background color?[/b]
[b]A:[/b] Edit this part in your "tracker.css" file.
[spoiler]/*BACKGROUND COLOR*/
body {
background: [b]#dce7ed[/b];
border: 0px;
overflow: hidden!important;
}
.even {
background: [b]#97b6ca[/b];
}
- change [b]bold[/b] part with color of your choice

[/spoiler][/spoiler]

[b]CREDITS[/b]
- Marfillaster(the creator)
- [img]http://www.dynamicdrive.com/ddincludes/logo.gif[/img]
- Myself; blacklizard
If you like my post and find it helpful, fell free to [img]http://theftalk.com/img/warn_add.gif[/img]1 for me.
Happy Tweaking
Last edited by blacklizard_return (2009-01-01 17:18:56)