// Copyright © 2009 Injosoft - Alla rättigheter förbehålles.
function $(id){return(document.getElementById(id));}
function showmsg(id){$(id).style.display="";$('bmiCell').style.display="none";return false;}
function closemsg(id){$(id).style.display="none";$('bmiCell').style.display="";return false;}
function getTargetElement(e){return(e.target)?((e.target.nodeType==3)?e.target.parentNode:e.target):e.srcElement;}
function addEvent(o,t,f){if(o.attachEvent){o["e"+t+f]=f;o[t+f]=function(){o["e"+t+f](window.event);}
o.attachEvent("on"+t,o[t+f]);}else
o.addEventListener(t,f,false);}
function removeEvent(o,t,f){if(o.detachEvent){o.detachEvent("on"+t,o[t+f]);o[t+f]=null;}else
o.removeEventListener(t,f,false);}
Function.prototype.bind=function(obj){var _method=this;return function(){return _method.apply(obj,arguments);};}
function slider(){this.style={backgroundColor:"#828282",height:"10px",width:"300px",borderBottom:"#cfcfcf 1px solid",borderRight:"#cfcfcf 1px solid"};this.pointer={top:"0px",width:"12px",height:"12px",backgroundColor:"#008c00"};this.values={min:0,mid:50,max:100,enhet:"",fontSize:"14px"};};slider.prototype={init:function(settings){for(var i in settings){if(typeof(this[i])=="undefined"){this[i]=settings[i];}
else
for(var j in settings[i]){this[i][j]=settings[i][j];}}
this.createslider();this._event_docMouseMove=this._docMouseMove.bind(this);this._event_docMouseUp=this._docMouseUp.bind(this);this.point.onmousedown=this._mouseDown.bind(this);this.slider_bar.onclick=this._sliderClick.bind(this);},createslider:function(){var $=document.getElementById(this.id)
$.appendChild(this.valuebox());this.slider_bar=this.sliderbar();this.colorbar=this.setcolorbar();if(this.pointer.isarrow==null){this.point=this.setpoint();}else{this.point=this.arrows();}
this.slider_bar.appendChild(this.colorbar);this.slider_bar.appendChild(this.point);var div=document.createElement('div');div.style.clear="both";$.appendChild(div);$.appendChild(this.slider_bar);},valuebox:function(){var div=document.createElement('div');div.style.width=this.style.width;div.style.fontSize=this.values.fontSize;var min=div.cloneNode(false);var divfloat=(document.all)?"styleFloat":"cssFloat";min.style[divfloat]="left";var mid=min.cloneNode(false);this.display=mid;var max=document.createElement('div');max.style[divfloat]="right";min.innerHTML=this.values.min;mid.innerHTML=this.values.mid+' '+this.values.enhet;max.innerHTML=this.values.max;min.style.width=2/5*parseInt(this.style.width)+"px";mid.style.width=2/5*parseInt(this.style.width)+"px";div.appendChild(min);div.appendChild(mid);div.appendChild(max);return div;},sliderbar:function(){var d=document.createElement('div');d.style.position="relative";d.style.backgroundColor=this.style.backgroundColor;d.style.height=this.style.height;d.style.width=this.style.width;d.style.fintSize="1px";d.style.borderBottom=this.style.borderBottom;d.style.borderRight=this.style.borderRight;return d;},arrows:function(){var w=parseInt(this.pointer.width),h=parseInt(this.pointer.height);var par=this.setpoint();par.style.backgroundColor="transparent";par.style.top=parseInt(this.style.height)+"px";t0=this.divnode();t0.style.backgroundColor=this.pointer.backgroundColor;par.appendChild(t0);for(var i=1;i<h;i++){t=t0.cloneNode(false);t.style.backgroundColor=this.pointer.backgroundColor;t.style.marginLeft=1/2*w/h*i+"px";t.style.marginRight=1/2*w/h*i+"px";par.appendChild(t);}
return this.reverseNodes(par);},divnode:function(){var o=document.createElement("div");o.style.height="1px";o.style.overflow="hidden";return o;},reverseNodes:function(n){var k=n.childNodes;var rk=n.cloneNode(false);var n=k.length;for(var i=n-1;i>=0;i--){rk.appendChild(k[i]);}
return rk;},setcolorbar:function(){var d=document.createElement('div');d.style.width=parseInt((this.values.mid-this.values.min)/(this.values.max-this.values.min)*parseInt(this.style.width))+"px";d.style.backgroundColor=this.pointer.backgroundColor;d.style.height=this.style.height;d.style.overflow="hidden";return d;},setpoint:function(){var d=document.createElement('div');d.style.width=this.pointer.width;d.style.backgroundColor=this.pointer.backgroundColor;d.style.height=this.pointer.height;d.style.overflow="hidden";d.style.position="absolute";d.style.top=this.pointer.top;d.style.left=parseInt((this.values.mid-this.values.min)/(this.values.max-this.values.min)*parseInt(this.style.width))-parseInt(this.pointer.width)/2+"px";return d;},_sliderClick:function(e){e=(e)?e:((window.event)?window.event:"");var o=getTargetElement(e);if(o!=this.point){this.setValuesClick(e);if(this.fire)
addEvent(this.slider_bar,'click',this.fire);}
this.noBubbleDefault();},_mouseDown:function(e){addEvent(document,'mousemove',this._event_docMouseMove);if(this.fire)
addEvent(document,'mousemove',this.fire);addEvent(document,'mouseup',this._event_docMouseUp);this.noBubbleDefault()},_docMouseMove:function(e){this.setValuesClick(e)
this.noBubbleDefault();},_docMouseUp:function(e){removeEvent(document,'mouseup',this._event_docMouseUp);removeEvent(document,'mousemove',this._event_docMouseMove);if(this.fire){removeEvent(document,'mousemove',this.fire);}
this.noBubbleDefault();},setValuesClick:function(e){var x=e.clientX+document.documentElement.scrollLeft;var offsetX=this.getPosition(this.slider_bar)[0];var x_x=x-offsetX
this.setPosition(x_x);},setPosition:function(x){if(x>parseInt(this.style.width)){x=parseInt(this.style.width);}
else if(x<0){x=0;this.point.style.left=x+"px";}
this.colorbar.style.width=x+"px";this.point.style.left=x-parseInt(this.pointer.width)/2+"px";this.values.mid=parseInt(x/parseInt(this.style.width)*(this.values.max-this.values.min)+this.values.min)
this.display.innerHTML=this.values.mid+' '+this.values.enhet;},noBubbleDefault:function(e){if(e&&e.stopPropagation){e.stopPropagation();e.preventDefault();}else if(window.event)window.event.returnValue=false;},getPosition:function(el){var l=0,t=0,s=this.getScrolls(el);if(el.offsetParent){do{l+=el.offsetLeft;t+=el.offsetTop;}while(el=el.offsetParent);return[(l-s[0]),(t-s[1])];}},getScrolls:function(el){var cX=0,cY=0;do{cX+=el.scrollLeft;cY+=el.scrollTop;if(el.nodeName=='BODY')break;}while(el=el.parentNode);return[cX,cY];}}
var bmiS1=new slider();var bmiS2=new slider();var doBMI=function(){l=bmiS2.values.mid/100;r=Math.round((bmiS1.values.mid/(l*l))*10)/10;if(r<18.5){s='Undervikt';bg='CCCCCC';b='Du befinner dig i farozonen och b&ouml;r g&aring; upp i vikt.';}
else if(r>=18.5&&r<25){s='Normalvikt';bg='BDDCBF';b='Du har en sund viktklass, f&ouml;rs&ouml;k att bibeh&aring;ll detta.';}
else if(r>=25&&r<30){s='&Ouml;vervikt';bg='F7D94D';b='&Ouml;vervikt kan leda till sjukdomar som diabetes typ 2 m.m.';}
else if(r>=30&&r<40){s='Fetma';bg='F7A14D';b='Du befinner dig i farozonen f&ouml;r flertalet sjukdomar.';}
else{s='Sv&aring;r fetma';bg='F76B4D';b='Du b&ouml;r omg&aring;ende g&aring; ner i vikt samt kontakta l&auml;kare.';}
$("bmiResult").innerHTML='<table cellspacing="0" cellpadding="4"><tr><td align="center" style="background-color:#'+bg+';border-right:1px solid gray;" nowrap="nowrap">Ditt BMI &auml;r<br><span style="font-size:160%;"><strong>'+r+'</strong></span></td><td>'+s+'<div style="font-size:80%">'+b+'</span></td></tr></table>';}
function start(){document.write('<div id="bmiBody">');document.write('<div id="bmiAnsvar" style="display:none;"><div><strong>Ansvarsfriskrivning</strong></div>Se resultatet som indikation/riktlinje och inte som n&aring;gon absolut sanning. Ber&auml;kningen bygger p&aring; f&ouml;renklad modell av verkligheten och g&auml;ller inte f&ouml;r personer under 18 &aring;r samt &auml;ldre och v&auml;ltr&auml;nade. Anv&auml;nd ditt sunda f&ouml;rnuft n&auml;r du l&auml;ser av resultatet.<div align="center" style="padding:5px;"><a href="#" onclick="return closemsg(\'bmiAnsvar\');">Tillbaka/St&auml;ng</a></div></div>');document.write('<div id="bmiVad" style="display:none;"><div><strong>Vad &auml;r BMI?</strong></div>BMI betyder Body Mass Index &auml;r ett kroppsligt riktm&aring;tt p&aring; hurvida du ligger i riskzonen f&ouml;r fetma/undervikt eller inte. Man ber&auml;knar BMI genom att dividera sin kroppsvikt (kg) med l&auml;ngden (m) i kvadrat, dvs BMI=vikten/l&auml;ngden&sup2;. Om man &auml;r v&auml;ltr&auml;nad, muskul&ouml;s fungerar inte BMI samma sak g&auml;ller om du &auml;r barn, ungdom eller &auml;ldre f&ouml;r d&aring; g&auml;ller andra rekommendationer.<div align="center" style="padding:5px;"><a href="#" onclick="return closemsg(\'bmiVad\');">Tillbaka/St&auml;ng</a></div></div>');document.write('<div id="bmiGrans" style="display:none;"><strong>Gr&auml;nsv&auml;rden f&ouml;r BMI</strong><table cellspacing="0" cellpadding="4"><tr><td><strong>Viktklasser</strong></td><td><strong>BMI</strong></td></tr><tr><td>Undervikt</td><td>Under 18,5</td></tr><tr><td>Normalvikt</td><td>18,5 - 24,99</td></tr><tr><td>&Ouml;vervikt</td><td>25 - 29,99</td></tr><tr><td>Fetma</td><td>30 - 39,99</td></tr><tr><td>Sv&aring;r fetma</td><td>40 och &ouml;ver</td></tr></table><div align="center" style="padding:5px;"><a href="#" onclick="return closemsg(\'bmiGrans\');">Tillbaka/St&auml;ng</a></div></div>');document.write('<div id="bmiCell"><div id ="bmiS1"></div><div id ="bmiS2" style="margin-top:20px;"></div>');document.write('<div id="bmiResult" style="margin-top:20px;border:1px solid gray;"></div>');document.write('<div style="text-align:center;padding:2px;font-size:80%;margin-top:6px;"><a href="#" onclick="return showmsg(\'bmiVad\');">Vad &auml;r BMI?</a> | <a href="#" onclick="return showmsg(\'bmiGrans\');">Gr&auml;nsv&auml;rden</a> | <a href="#" onclick="return showmsg(\'bmiAnsvar\');">Ansvarsfriskrivning</a></div></div>');document.write('</div>');bmiS1.init({id:"bmiS1",fire:doBMI,style:{width:bmiWidth-10+"px"},pointer:{backgroundColor:bmiArrow,isarrow:"up"},values:{min:40,max:160,mid:bmiVikt,enhet:"kg"}});bmiS2.init({id:"bmiS2",fire:doBMI,style:{width:bmiWidth-10+"px"},pointer:{backgroundColor:bmiArrow,isarrow:"up"},values:{min:100,max:210,mid:bmiLangd,enhet:"cm"}});doBMI();}