
var posOffset={};posOffset[1]={x:1,y:1};posOffset[2]={x:1,y:3};posOffset[3]={x:1,y:2};posOffset[4]={x:2,y:1};posOffset[5]={x:1,y:4};posOffset[6]={x:1,y:5};posOffset[7]={x:1,y:6};posOffset[8]={x:3,y:4};posOffset[9]={x:3,y:6};posOffset[10]={x:2,y:6};posOffset[11]={x:3,y:3};posOffset[12]={x:3,y:5};posOffset[13]={x:2,y:5};posOffset[14]={x:3,y:2};posOffset[15]={x:3,y:1};posOffset[16]={x:2,y:3};posOffset[17]={x:2,y:2};posOffset[18]={x:2,y:4};posOffset[19]={x:2,y:7};posOffset[20]={x:3,y:7};posOffset[21]={x:1,y:7};posOffset[22]={x:2,y:8};posOffset[23]={x:1,y:8};posOffset[24]={x:3,y:8};var statHistoryData={};for(var i=1;i<=24;i++){statHistoryData[i]=[];}
var charData={};var sorted={};function buildOverview(charName){var container=cg_ge("statHistoryOverviewCell");if(charName!=null){skillData=charData[charName.toLowerCase()];container=cg_ge("statHistoryOverviewCell"+charName.replace(" ","_"));}
var skillContainer=cg_ce("div");skillContainer.className="statOverview";cg_ae(container,skillContainer);for(var p in Curse.Lookup.skill_type){var skill=skillData[p];if(posOffset[p]!=null){var hoverSpot=cg_ce("div");hoverSpot.className="statOverviewHover";hoverSpot.style.left=(14+((posOffset[p].x-1)*55))+"px";hoverSpot.style.top=(30+((posOffset[p].y-1)*32))+"px";var level=cg_ce("div");level.className="statOverviewStat";var rank=0;var xp=0;var xpToNext=0;if(skill!=null){level.innerHTML=skill.level;rank=skill.rank;xp=skill.xp;if(skill.level<99){xpToNext=findXp(skill.level+1)-xp;}}
else{level.innerHTML="-";level.className="statOverviewStatMissing";}
var tip="<table><tr><td>"+Curse.Lookup.skill_type[p]+"</td></tr><tr><td>Rank: "+rank+"</td></tr><tr><td>Current XP: "+xp+"</td></tr><tr><td>Xp to Next Level: "+xpToNext+"</td></tr></table>";hoverSpot.onmouseout=Curse.Tooltip.hide;hoverSpot.onmouseover=Curse.Tooltip.showTip.bind(this,tip,null,"zybez");cg_ae(hoverSpot,level);cg_ae(skillContainer,hoverSpot);}}}
function initSkillSelection(){var container=cg_ge("statHistorySelection");for(var p in Curse.Lookup.skill_type){if(statHistoryData[p].length>0){var opt=cg_ce("option");opt.value=p;opt.innerHTML=Curse.Lookup.skill_type[p];cg_ae(container,opt);}}}
function updateSkillLineGraphVariable(){var skill=cg_ge("statHistorySelection").value;buildSkillLineGraph(skill);}
function getVariable(data){var varSelect=cg_ge("statHistoryVariableSelection");return data.xp/100000.0;}
function getGraphLabel(){var varSelect=cg_ge("statHistoryVariableSelection");return"XP";}
function dateSort(a,b){var aparts=a.time.split(" ")[0].split("/");var atimes=a.time.split(" ")[1].split(":");var asection=a.time.split(" ")[2];var bparts=b.time.split(" ")[0].split("/");var btimes=b.time.split(" ")[1].split(":");var bsection=b.time.split(" ")[2];if(a.xp>b.xp){return 1;}
if((aparts[2]*1)>(bparts[2]*1)){return 1;}
if((aparts[1]*1)>(bparts[1]*1)){return 1;}
if((aparts[0]*1)>(bparts[0]*1)){return 1;}
if(asection=="PM"&&bsection=="AM")
{return 1;}
return-1;}
function buildSkillLineGraph(skill){var container=cg_ge("statHistoryGraphCell");while(container.childNodes[0]!=null){cg_de(container.childNodes[0]);}
var src="chs=550x310&cht=ls&chxt=y,x&chd=t:";var data="";if(statHistoryData[skill].length==0){return;}
var min=getVariable(statHistoryData[skill][0]);var max=getVariable(statHistoryData[skill][0]);var values=[];if(!sorted[skill]){statHistoryData[skill]=statHistoryData[skill].sort(dateSort);sorted[skill]=true;}
for(var i=0;i<statHistoryData[skill].length;i++){var val=getVariable(statHistoryData[skill][i]);if(val<min){min=val;}
if(val>max){max=val;}}
for(var i=0;i<statHistoryData[skill].length;i++){var val=getVariable(statHistoryData[skill][i]);var diff=roundperc(((val-min)/(max-min))*100.0);if(isNaN(diff)){diff=0;}
data+=","+diff;}
var labels=[];labels.push(min);var interval=(max-min)/5;for(var i=1;i<5;i++){labels.push(min+(interval*i));}
labels.push(max);src+=data.substr(1)+"&chxl=0:|";var valueText="";for(var i=0;i<labels.length;i++)
{valueText+="|"+roundperc(labels[i]*100)+"k";}
src+=valueText.substr(1);src+="|1:|";var xLabels="";for(var i=0;i<statHistoryData[skill].length;i++){var dateParts=statHistoryData[skill][i].time.split("/");xLabels+="|"+dateParts[0]+"/"+dateParts[1];}
src+=xLabels.substring(1);src+="&chtt="+Curse.Lookup.skill_type[skill]+" "+getGraphLabel()+" from "+statHistoryData[skill][0].time+" - "+statHistoryData[skill][statHistoryData[skill].length-1].time;var img=cg_ce("img");img.src="http://chart.apis.google.com/chart?"+src;cg_ae(container,img);}
function syndicateUser(userName){var hd=document.getElementsByTagName("head")[0];var oscript=document.createElement("script");oscript.type="text/javascript";oscript.src="http://localhost/zybez/ExStats.aspx?name="+userName;hd.appendChild(oscript);var css=document.createElement("link");css.rel="stylesheet";css.type="text/css";css.href="http://localhost/zybez/tooltips.css";hd.appendChild(css);document.write("<div id='statHistoryOverviewCell"+userName.replace(" ","_")+"'></div>");}
function addCharStats(statData,charName){charData[charName.toLowerCase()]=statData;buildOverview(charName);}