/* Copyright © 2010 Drew "Kaku" Fisher (kakudevel@gmail.com)
 * ALL RIGHTS RESERVED
 *
 * This work is distributed under the MIT License.
 * See: http://www.opensource.org/licenses/mit-license.html
 * for the full license text.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Version 2.0.0
 */
 var colors={text:"#FFF",damage_text:"#F90",main_bg:"#009",hpBarFull:"#F0F",hpBarHalf:"#4F4",hpBarQuarter:"#FF6",hpBarEmpty:"#000",nextTurnSmbl:"#0CF",postNote:"#0CF",hpCalcLine:"#CCC",defeatedName:"#C00"};var divWidth=680;var nextTurnSmbl={left:"",right:""};nextTurnSmbl.left="&bull; ";nextTurnSmbl.right=" &bull;";function getElementsByClassName(g){var b=[];var f=new RegExp("\\b"+g+"\\b");var e=document.getElementsByTagName("div");for(var d=0,c=e.length;d<c;d++){if(f.test(e[d].className)){b.push(e[d]);}}return b;}function formatOuterDiv(d){var c="";var a="width: ";var b=7;if(d.names.length>1){a+=divWidth+"px;";}else{a+=(divWidth/2)+"px;";}c="<br />";if(d.damageNote[0]){b+=1;}c+='<div style="'+a+"min-height: "+b+"em; ";c+="background: "+colors.main_bg+"; color:"+colors.text+";";c+='-moz-border-radius: 10px; -webkit-border-radius: 10px; padding: .5em 1em;">';return c;}function formatName_and_postNote(f,c,a){var e="",b="float: left;",d="width: ";var g=f.newHP[c];if(a==1){d+="100%;";}else{d+="50%;";}e+='<div style="'+d+b+'">';e+='<div style=" width: 100%;">';e+='<span style="font-size: x-large; font-variant: small-caps;';if(g==="0"||g===0){e+=" color: "+colors.defeatedName+";";}e+='">';e+=f.names[c];e+="</span>";if(f.postNotes[c]){e+='<div style="font-size: x-small; padding-top: .25em; padding-bottom: 1em; ';e+="margin-left: .25em;";e+="color: "+colors.postNote+';"> ';e+=f.postNotes[c];e+="</div>";}return e;}function formatStats(d,b,a){var c="";c+='<div style="font-size: x-small; border-width: 1px 0px; border-style: dotted;';if(b%2===0){c+="margin-right: 2em;";}c+='border-color: #999; padding: .5em 0;">'+d.stats[b];c+="</div>";return c;}function formatHPTable(k,l,f){var e="";var n=[];var p=k.maxHP[l];var h=k.newHP[l];var m=1;if(p>25){m=p/25;}p/=m;h/=m;var q=Math.floor(p/2)-1;var d="",b="",c="";var a=2;n[n.length]="<table><tr>";for(var o=0;o<p;o++){n[n.length]="<td>";d=colors.hpBarFull;b=d;if(h>o){if(h-o<1&&h-o>0.75){d=colors.hpBarHalf;b=colors.hpBarFull;}else{if(h-o<=0.75&&h-o>0.5){d=colors.hpBarQuarter;b=colors.hpBarFull;}else{if(h-o==0.5){d=colors.hpBarEmpty;b=colors.hpBarFull;}else{if(h-o<0.5&&h-o>0.25){d=colors.hpBarEmpty;b=colors.hpBarHalf;}else{if(h-o<=0.25){d=colors.hpBarEmpty;b=colors.hpBarQuarter;}}}}}}else{d=colors.hpBarEmpty;b=d;}e="-moz-border-radius-topright: 5px; -moz-border-radius-topleft: 5px;";e+=" -webkit-border-top-right-radius: 5px;  -webkit-border-top-left-radius: 5px;";a=2;if(o==q-1){a-=(a/4);}else{if(o==q){a/=2;}else{if(o==q+1){a/=4;}else{if(o>q){a=0;}}}}c="margin-top: "+a+"em; ";n[n.length]='<div style="background-color: '+d+"; "+e+c+'">';if(p>18){n[n.length]="&nbsp;";}else{n[n.length]="&nbsp;&nbsp;";}n[n.length]="</div>";e="-moz-border-radius-bottomright: 5px;  -moz-border-radius-bottomleft: 5px;";e+=" -webkit-border-bottom-right-radius: 5px;  -webkit-border-bottom-left-radius: 5px;";n[n.length]='<div style="background-color: '+b+"; "+e+'">&nbsp;</div>';n[n.length]="</td>";}n[n.length]='<td>&nbsp;</td><td style="font-size: small;">';h=k.newHP[l];p=k.maxHP[l];var g=0;if(k.damage[l]){n[n.length]='<span style="font-size: x-small; color: '+colors.damage_text+';">';n[n.length]=k.damage[l];if(k.damageNote[l]){n[n.length]=" <br />("+k.damageNote[l]+")";}n[n.length]="</span><br />";n[n.length]='<div style="margin-top: .5em; padding-top: .25em; width: ';g=2;}else{n[n.length]='<div style="width: ';}if(h.length>3||p.length>2){n[n.length]="7.75em;";}else{n[n.length]="6em;";}n[n.length]="border-top: "+g+"px solid "+colors.hpCalcLine+';">';n[n.length]=h+" / "+p+" HP";n[n.length]="</div></td></tr></table>";return n.join("");}function formatStatusData(e){var d="",a=[];a[a.length]=formatOuterDiv(e);for(var c=0,b=e.names.length;c<b;c++){a[a.length]=formatName_and_postNote(e,c,b);a[a.length]=formatStats(e,c,b);a[a.length]="</div>";a[a.length]=formatHPTable(e,c,b);if(c!=(b-1)){a[a.length]="<br />";}a[a.length]="</div>";if(c%2==1&&c>0){a[a.length]='<div style="clear: both;" />';}}a[a.length]="</div></div>";return a.join("");}function doHPAwesomeness(){var n=getElementsByClassName("content");var m=[],o=[],r="",b="",d=null;var p=-1;var h={pre:"",update:"",post:""};var q={names:[],stats:[],damage:[],damageNote:[],newHP:[],maxHP:[],postNotes:[]};for(var g=0,f=n.length;g<f;g++){if(n[g].innerHTML.search(/\[status update\]/i)!==-1){m=n[g].childNodes;p=m.length;for(var e=0,l=p;e<l;e++){d=m[e];if(d.nodeType===3){r=d.nodeValue;if(r.search(/\[status update\]/i)!==-1){p=e;}else{if(p<l&&r.search(/\[.status update\]/i)!==-1){p=l;}else{if(p<l&&r!=="\n"&&r!==" "){if(r.search("damage")!==-1){r=r.replace(/\s?=\s?/,"");if(r.search(/\(|\)/)!==-1){q.damageNote.push(r.replace(/.*\(|\)/g,""));}else{q.damageNote.push(null);}r=r.replace(/\(.*\)/,"");r=r.replace(/.*-.?/,"");r="Took ".concat(r);q.damage.push(r);}else{if(r.search("/")!==-1){r=r.replace(/(HP)|\s+/ig,"");o=r.split("/");q.newHP.push(o[0]);q.maxHP.push(o[1]);}else{if(r.search(/\[\/status update\]/i)!==-1){p=l;}}}}}}}else{if(p<l&&d.nodeType===1&&d.tagName==="SPAN"){r=d.innerHTML;if(r.search(":")!==-1){r=r.replace(/^\s+/,"");r=r.replace(/:\s*/,"");if(r.indexOf("*")>-1){b='<span style="font-size: 70%; color: '+colors.nextTurnSmbl+';">';b+=nextTurnSmbl.left+"</span>";r=r.replace(/\*/,b);b='<span style="font-size: 70%; color: '+colors.nextTurnSmbl+';">';b+=nextTurnSmbl.right+"</span>";r+=b;}q.names.push(r);}else{if(r.search(/\bDeals\b/i)!==-1&&r.search(/NDS/)!==-1){q.stats.push(r);}else{if(r.search(/\bHP\b/i)!==-1&&d.tagName==="SPAN"){r=r.replace(/(HP)|\s+/ig,"");o=r.split("/");q.newHP.push(o[0]);q.maxHP.push(o[1]);}else{if(r.search(/\(/)!==-1){r=r.replace(/\(|\)/g,"");r=r.substr(0,1).toUpperCase()+r.substr(1);q.postNotes.push(r);}else{q.postNotes.push(null);}}}}}}}o=n[g].innerHTML.split(/\[\/?status update\]/i);h.pre=o[0];h.update=formatStatusData(q);h.post=o[2];r=h.pre+h.update+"</div>"+h.post;n[g].innerHTML=r;o=[];q.names=[];q.stats=[];q.damage=[];q.damageNote=[];q.newHP=[];q.maxHP=[];q.postNotes=[];}}}if(document.addEventListener){document.addEventListener("DOMContentLoaded",doHPAwesomeness,false);}else{if(window.attachEvent){window.attachEvent("onload",doHPAwesomeness);}}
