Post by ⓦ৹₪deⓡ on Oct 15, 2005 16:59:37 GMT -8
This code puts the user's average posts per day on their profile page. It should work with any date/time format users set in their profile and is probably the most accurate the date is going to get. No editting is required. Do NOT PM me for support or requests. That's what the coding boards are for. Enjoy. ~Wonder |
Top of Global Header
<script>
//Average Posts/Day only displayed in Profile v2.0
//Copyright 10-15-2005 ~Wonder
//May be reposted anywhere as long as this header remains in tact
//Put In Global Header
function getDate(d,fs)
{
ty="";
if(ty=d.match(/(To|Yester)day/i)){d=document.getElementsByTagName("table")[0].innerHTML.match(/\.<br>.+ \d{1,2}\:/i)[0].replace(/\d{1,2}:/,"")+d.match(/( \d{1,2}\:\d{2}(a|pm)?)/);}
months=new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");te=0;
curDate=d.match(/.+ (\d{1,2}\:\d{2}(a|pm)?)/i)[0];
time=RegExp.$1;dm=0;
curDate=curDate.toLowerCase().replace(/\.<br>/i,"").replace(time,"").replace(/ at /i,"").replace(/,/g,"").replace(/\.|\-|\//g," ").split(" ");
time=time.split(":");
if(time[1].match(/am/) && time[0].match(/12/)){time[0]=parseInt(time[0],10)-12;}
if(time[1].match(/pm/) && !time[0].match(/12/)){time[0]=parseInt(time[0],10)+12;}time[1]=time[1].replace(/[^\d]/g,"");
for(k=0;k<12;k++){if(curDate[0].match(months[k]) || curDate[1].match(months[k])){break;}}
if((t=curDate[0].match(months[k]))!=null && t!=""){curDate[0]=(k+1)+"";te=1;fs=0;}else if((t=curDate[1].match(months[k]))!=null && t!=""){curDate[1]=(k+1)+"";fs=1;temp2=curDate[1];curDate[1]=curDate[0];curDate[0]=temp2;te=1;}
curDate[0]=curDate[0].replace(/[^\d]/g,"");curDate[1]=curDate[1].replace(/[^\d]/g,"");
if(parseInt(curDate[0],10)>12){fs=1;te=1;temp2=curDate[1];curDate[1]=curDate[0];curDate[0]=temp2;}
if(parseInt(curDate[1],10)<13 && te==0)
{
if(fs==1){temp2=curDate[1];curDate[1]=curDate[0];curDate[0]=temp2;}
else if(fs==0){}
else
{
now = new Date();fs=0;
if(parseInt(curDate[1],10)==(now.getMonth()+1))
{
temp2=curDate[1];
curDate[1]=curDate[0];
curDate[0]=temp2;fs=1;
}
}
}
if(curDate[2].length<=2){curDate[2]=parseInt(curDate[2],10)+2000;}if(ty!=null && ty[0].match(/yesterday/i)){dm=1;}
return [new Date(parseInt(curDate[2],10),parseInt(curDate[0],10)-1,parseInt(curDate[1],10)-dm,parseInt(time[0],10),parseInt(time[1],10)),fs];
}
mainDate=getDate(document.getElementsByTagName("table")[0].innerHTML.match(/\.<br>.+ (\d{1,2}\:\d{2}(a|pm)?)/i)[0]);
</script>
Top of Global Footer
<script>
//Average Posts/Day only displayed in Profile v2.0
//Copyright 10-15-2005 ~Wonder
//May be reposted anywhere as long as this header remains in tact
//Put In Global Footer
if(location.href.match(/action\=viewprofile/))
{
tp=0;
t=document.forms[0].parentNode.parentNode.parentNode.parentNode.getElementsByTagName("td");
for(i=0;i<t.length;i++)
{
if(t[i].innerHTML.match(/Posts:/i) && tp==0)
{
p=t[i+1].getElementsByTagName("font")[0].innerHTML.replace(/[^\d]/ig,"");
tp=i+1;
}
t[i].innerHTML.match(/Date Registered:/i)?rd=t[i+1].getElementsByTagName("font")[0].innerHTML:"";
}
p=parseInt(p,10);
rd=getDate(rd,mainDate[1]);
rd=Math.round((mainDate[0]-rd[0])/1000/60/60/24);
rd=(Math.round((p/rd)*1000))/1000;
document.forms[0].parentNode.parentNode.parentNode.parentNode.getElementsByTagName("td")[tp].getElementsByTagName("font")[0].innerHTML+=" / "+rd+" per day";
}
</script>