//
// BMI Calculator 3.2 (3D)
//
// (c) 2007-2011 Horst Klier / All rights reserved
//
// This Script is NO Freeware.
// You can use it, but don't copy it.
// If you want use it, go to http://www.bmi-club.com/script.html and read the instructions / use the wizard.
//

// Example param object:
// var bmi = {
//   font      : "Tahoma, Verdana, Arial, Helvetica, sans-serif",
//   title     : "Body Mass Index Rechner 3D",
//   color     : ["#000000","#000000"], // Title, Links
//   bgimage   : "bmi-bg-test.png",
//   measure   : 0, // 0=metric system / 1=feets, inches & pounds
//   decimal   : ",", // "," or "."
//   small     : 0, // 0: width=468 pixel / 1: width=350 pixel
//   prude     : 0, // 0= nude / 1=Hair and clothes only
//   rendertext: ["Mann","Frau","Viel Fett","Normal","Muskulös","Für diesen BMI ist leider (noch) keine 3D-Ansicht möglich","Nackt"], // male,female,fat,normal,muscle,norender,nude
//   textcolor   : ["#000000","#000000","#660000"], // sexradio,fatradio,norender
//   size      : {
//     range       : [150,220,5,175], // min,max,step,start            <- for metric measure system
////     range       : ["4'0","7'0","0'3","5'11"], // min,max,step,start  <- for american measure system
//     slider      : ["bmi-slider-test.png","bmi-button-test.png","bmi-button2-test.png","bmi-buttonout-test.png"], // background,button,button clicked,button out of range
//     text        : ["Größe"],
//     textcolor   : ["#000000","#155c8b"], // text,slider
//     field       : ["#000000","#FBFBFB","#155c8b"]  // color,bgcolor,bordercolor
//   },
//   weight    : {
//     range       : [50,140,5,75], // min,max,step,start   <- for metric measure system
////     range       : [90,350,20,150], // min,max,step,start  <- for american measure system
//     slider      : ["bmi-slider-test.png","bmi-button-test.png","bmi-button2-test.png","bmi-buttonout-test.png"], // background,button,button clicked,button out of range
//     text        : ["Gewicht"],
//     textcolor   : ["#000000","#155c8b"], // text,slider
//     field       : ["#000000","#FBFBFB","#155c8b"]  // color,bgcolor,bordercolor
//     },
//   bmi       : {
//     range       : [18,40,1,22], // min,max,step,start ()
//     slider      : ["bmi-slider-test.png","bmi-button-test.png","bmi-button2-test.png","bmi-buttonout-test.png"], // background,button,button clicked,button out of range
//     text        : ["BMI"],
//     textcolor   : ["#000000","#155c8b"], // text,slider
//     field       : ["#000000","#FBFBFB","#155c8b"]  // color,bgcolor,bordercolor
//     }
//   };
//
// Image sizes:
// background 468x468
// slider 14x380
// button 32x32


function runden(zahl,nks) {
return Math.floor(zahl * Math.pow(10,nks) + .5) / Math.pow(10,nks);
}
function nachkomma(zahl,nks){
  var text=zahl.toString();
  if (text.indexOf('.')==-1){
    text+='.';
  };
  text+='000000000000000000';
  text=text.substr(0,text.indexOf('.')+nks+1);
  return text
};
function undodezimaltrenner(c){
  if(bmi.decimal!='.'){
    c=c.replace(bmi.decimal,'.');
  };
  return c;
};
function dodezimaltrenner(c){
  if(bmi.decimal!='.'){
    c=c.replace('.',bmi.decimal);
  };
  return c;
};
function getfeet(c) {
  c=c.substr(0,c.indexOf("'"));
  return c;
};
function getinch(c) {
  c=c.substr(c.indexOf("'")+1);
  return c;
};
function inchonly(c){
  var feet;
  var inch;
  feet=getfeet(c);
  inch=getinch(c);
  return ((feet*12)+inch*1); // *1 ist ein trick um string in zahl zu konvertieren
};
function getfeetinchfrominchonly(n){
  // n sind inches mit feet*12
  // liefert string im format "feet' inch" zurück
  var feet=0;
  var inch=0;
  feet=parseInt(n / 12);
  inch=parseInt(n % 12);
  return feet+"' "+inch;
};
function posslider() {
  // slider positionierung


  var sliderwidth=330;
  var sliderstart=55;
  var ypos=0;
  var abstand=0;
//  document.getElementById('sliderbtngroesse').style.top=document.getElementById('groesseslider').offsetTop - ((document.getElementById('sliderbtngroesse').offsetHeight - document.getElementById('groesseslider').offsetHeight) / 2)+'px';
//  document.getElementById('sliderbtngewicht').style.top=document.getElementById('gewichtslider').offsetTop - ((document.getElementById('sliderbtngewicht').offsetHeight - document.getElementById('gewichtslider').offsetHeight) / 2)+'px';
//  document.getElementById('sliderbtnbmi').style.top=document.getElementById('bmislider').offsetTop - ((document.getElementById('sliderbtnbmi').offsetHeight - document.getElementById('bmislider').offsetHeight) / 2)+'px';
  var groesse=0;
  var gewicht=0;
  var bmiwert=0;
  groesse=undodezimaltrenner(document.getElementById('groessefield').value);
  gewicht=undodezimaltrenner(document.getElementById('gewichtfield').value);
  bmiwert=undodezimaltrenner(document.getElementById('bmifield').value);
  // groesse
  if (bmi.measure==0){
    groesse=groesse-bmi.size.range[0];
    if (groesse>=0 && groesse<=(bmi.size.range[1]-bmi.size.range[0])) {
      abstand=sliderwidth/(bmi.size.range[1]-bmi.size.range[0]);
      ypos=(sliderstart+sliderwidth)-(abstand*(groesse));
      ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtngroesse').style.top=ypos+'px';
      if (dragslider!=document.getElementById('sliderbtngroesse')) { // wird nicht gezogen -> normalfarben herstellen
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[1]+')';
      };
    } else {
      if (groesse<0) {
        ypos=sliderstart+sliderwidth;
        ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
        document.getElementById('sliderbtngroesse').style.top=ypos+'px';
        // outrange-farben
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[3]+')';
      } else {
        ypos=sliderstart;
        ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
        document.getElementById('sliderbtngroesse').style.top=xpos+'px';
        // outrange-farben
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[3]+')';
      };
    };
  } else {
    groesse=groesse-inchonly(bmi.size.range[0])*2.54;
    if (parseInt(groesse)>=0 && parseInt(groesse)<=(inchonly(bmi.size.range[1])*2.54-inchonly(bmi.size.range[0])*2.54)) {
      abstand=sliderwidth/(inchonly(bmi.size.range[1])*2.54-inchonly(bmi.size.range[0])*2.54);
      ypos=(sliderstart+sliderwidth)-(abstand*(groesse));
      ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtngroesse').style.top=ypos+'px';
      if (dragslider!=document.getElementById('sliderbtngroesse')) { // wird nicht gezogen -> normalfarben herstellen
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[1]+')';
      };
    } else {
      if (groesse<0) {
        ypos=sliderstart+sliderwidth;
        ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
        document.getElementById('sliderbtngroesse').style.top=ypos+'px';
        // outrange-farben
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[3]+')';
      } else {
        ypos=sliderstart;
        ypos=ypos-(document.getElementById('sliderbtngroesse').offsetHeight / 2); // halbe eigene Breite abziehen
        document.getElementById('sliderbtngroesse').style.top=ypos+'px';
        // outrange-farben
        document.getElementById('sliderbtngroesse').style.backgroundImage='url('+bmi.size.slider[3]+')';
      };
    };
  };
  // gewicht
  gewicht=gewicht-bmi.weight.range[0];
  if (gewicht>=0 && gewicht<=(bmi.weight.range[1]-bmi.weight.range[0])) {
    abstand=sliderwidth/(bmi.weight.range[1]-bmi.weight.range[0]);
    ypos=(sliderstart+sliderwidth)-(abstand*(gewicht));
    ypos=ypos-(document.getElementById('sliderbtngewicht').offsetHeight / 2); // halbe eigene Höhe abziehen
    document.getElementById('sliderbtngewicht').style.top=ypos+'px';
    if (dragslider!=document.getElementById('sliderbtngewicht')) { // wird nicht gezogen -> normalfarben herstellen
      document.getElementById('sliderbtngewicht').style.backgroundImage='url('+bmi.weight.slider[1]+')';
    };
  } else {
    if (gewicht<0) {
      ypos=sliderstart+sliderwidth;
      ypos=ypos-(document.getElementById('sliderbtngewicht').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtngewicht').style.top=ypos+'px';
      // outrange-farben
      document.getElementById('sliderbtngewicht').style.backgroundImage='url('+bmi.weight.slider[3]+')';
    } else {
      ypos=sliderstart;
      ypos=ypos-(document.getElementById('sliderbtngewicht').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtngewicht').style.top=ypos+'px';
      // outrange-farben
      document.getElementById('sliderbtngewicht').style.backgroundImage='url('+bmi.weight.slider[3]+')';
    };
  };
  // bmi
  bmiwert=bmiwert-bmi.bmi.range[0];
  if (bmiwert>=0 && bmiwert<=(bmi.bmi.range[1]-bmi.bmi.range[0])) {
    abstand=sliderwidth/(bmi.bmi.range[1]-bmi.bmi.range[0]);
    ypos=(sliderstart+sliderwidth)-(abstand*(bmiwert));
    ypos=ypos-(document.getElementById('sliderbtnbmi').offsetHeight / 2); // halbe eigene Breite abziehen
    document.getElementById('sliderbtnbmi').style.top=ypos+'px';
    if (dragslider!=document.getElementById('sliderbtnbmi')) { // wird nicht gezogen -> normalfarben herstellen
      document.getElementById('sliderbtnbmi').style.backgroundImage='url('+bmi.bmi.slider[1]+')';
    };
  } else {
    if (bmiwert<0) {
      ypos=sliderstart+sliderwidth;
      ypos=ypos-(document.getElementById('sliderbtnbmi').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtnbmi').style.top=ypos+'px';
      // outrange-farben
      document.getElementById('sliderbtnbmi').style.backgroundImage='url('+bmi.bmi.slider[3]+')';
    } else {
      ypos=sliderstart;
      ypos=ypos-(document.getElementById('sliderbtnbmi').offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('sliderbtnbmi').style.top=ypos+'px';
      // outrange-farben
      document.getElementById('sliderbtnbmi').style.backgroundImage='url('+bmi.bmi.slider[3]+')';
    };
  };

  // Renderimg
  RenderImg();
};
var LastImageName='';
var ActImageName='';
function RenderImg(){
	var bmiwert=0;
  var c="";
  bmiwert=undodezimaltrenner(document.getElementById('bmifield').value);
  bmiwert=runden(bmiwert,0)
  if(bmiwert<18||bmiwert>35){
    if(document.getElementById('renderimg')){
      document.getElementById('renderimg').style.MozOpacity=0.3;
      document.getElementById('renderimg').style.opacity=0.3;
      document.getElementById('renderimg').style.filter="Alpha(opacity=30)";
      document.getElementById('norendertext').style.display="block";

    };
  } else {
      document.getElementById('renderimg').style.MozOpacity=1;
      document.getElementById('renderimg').style.opacity=1;
      document.getElementById('renderimg').style.filter="";
      document.getElementById('norendertext').style.display="none";
  };
  if(bmiwert<18){bmiwert=18};
  if(bmiwert>35){bmiwert=35};

  var cImg='';
  if(document.getElementById('rendermale').checked){cImg='m'}else{cImg='w'};
  cImg+=bmiwert;
  if(document.getElementById('renderfat').checked){
  	cImg+='f'
  }else{
    if(document.getElementById('rendermuscle').checked){
    	cImg+='m'
    }else{
  	  cImg+='n'
  	}
  };
  if(document.getElementById('rendernude')==null||document.getElementById('rendernude').checked!=true)cImg+='c';
  cImg+='.png'

  ActImageName=cImg;
  if(LastImageName!=cImg){
    if(bmiwert>=18&&bmiwert<=35){
      document.getElementById('renderimg').src='http://cdn.bmi-club.com/images/render/'+cImg;
    }
  }
}

function paintslider() {
  // Sliderrille und Beschriftung positionieren
  var sliderwidth=330;
  var sliderstart=55;
  var ypos=0;
  var abstand=0;
  var textabstand=10;
  var n=1;
  // größe
  n=0;
  if (bmi.measure==0){
    while ((bmi.size.range[0]+(n*bmi.size.range[2]))<=(bmi.size.range[1])) {
      abstand=(sliderwidth/((bmi.size.range[1]-bmi.size.range[0])/bmi.size.range[2]));
      ypos=(sliderstart+sliderwidth)-(abstand*n);
      ypos=ypos-(document.getElementById('s'+n).offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('s'+n).style.top=ypos+'px';
      document.getElementById('s'+n).style.left=document.getElementById('groesseslider').offsetLeft+document.getElementById('groesseslider').offsetWidth+textabstand+'px';
      n++;
    };
  } else {
    while ((inchonly(bmi.size.range[0])+(n*inchonly(bmi.size.range[2])))<=(inchonly(bmi.size.range[1]))) {
      abstand=(sliderwidth/((inchonly(bmi.size.range[1])-inchonly(bmi.size.range[0]))/inchonly(bmi.size.range[2])));
      ypos=(sliderstart+sliderwidth)-(abstand*n);
      ypos=ypos-(document.getElementById('s'+n).offsetHeight / 2); // halbe eigene Breite abziehen
      document.getElementById('s'+n).style.top=ypos+'px';
      document.getElementById('s'+n).style.left=document.getElementById('groesseslider').offsetLeft+document.getElementById('groesseslider').offsetWidth+textabstand+'px';
      n++;
    };
  };
  // gewicht
  n=0;
  while ((bmi.weight.range[0]+(n*bmi.weight.range[2]))<=(bmi.weight.range[1])) {
    abstand=(sliderwidth/((bmi.weight.range[1]-bmi.weight.range[0])/bmi.weight.range[2]));
    ypos=(sliderstart+sliderwidth)-(abstand*n);
    ypos=ypos-(document.getElementById('g'+n).offsetHeight / 2); // halbe eigene Breite abziehen
    document.getElementById('g'+n).style.top=ypos+'px';
    document.getElementById('g'+n).style.left=document.getElementById('gewichtslider').offsetLeft+document.getElementById('gewichtslider').offsetWidth+textabstand+'px';
    n++;
  };
  // bmi
  n=0;
  while ((bmi.bmi.range[0]+(n*bmi.bmi.range[2]))<=(bmi.bmi.range[1])) {
    abstand=(sliderwidth/((bmi.bmi.range[1]-bmi.bmi.range[0])/bmi.bmi.range[2]));
    ypos=(sliderstart+sliderwidth)-(abstand*n);
    ypos=ypos-(document.getElementById('b'+n).offsetHeight / 2); // halbe eigene Breite abziehen
    document.getElementById('b'+n).style.top=ypos+'px';
    document.getElementById('b'+n).style.left=document.getElementById('bmislider').offsetLeft+document.getElementById('bmislider').offsetWidth+textabstand+'px';
    n++;
  };
  posslider();
};

function groessechanged(){
  var groesse=0;
  var groesse4bmi=0;
  var gewicht=0;
  var gewicht4bmi=0;
  var bmiwert=0;
  groesse=undodezimaltrenner(document.getElementById('groessefield').value);
  gewicht=undodezimaltrenner(document.getElementById('gewichtfield').value);
  if (isNaN(groesse)) {groesse=bmi.size.range[3];};
//  if (groesse<=bmi.size.range[0]) {groesse=bmi.size.range[0];};
//  if (groesse>=bmi.size.range[1]) {groesse=bmi.size.range[1];};
  //  bmi=document.getElementById('bmifield').value.replace(',','.');
  groesse4bmi=groesse;
  gewicht4bmi=gewicht;
  if (bmi.measure==1) {
    groesse4bmi=(groesse*1+1.27);
    groesse4bmi=parseInt(groesse4bmi/2.54);
    groesse4bmi=groesse4bmi*2.54;
    gewicht4bmi=gewicht*0.453592370;
  };
  bmiwert=gewicht4bmi/((groesse4bmi/100)*(groesse4bmi/100));

  groesse=nachkomma(runden(groesse,1),1);
  gewicht=nachkomma(runden(gewicht,1),1);
  bmiwert=nachkomma(runden(bmiwert,1),1);
  document.getElementById('groessefield').value=groesse;
  document.getElementById('gewichtfield').value=gewicht;
  document.getElementById('bmifield').value=bmiwert;
  document.getElementById('groessefield').value=dodezimaltrenner(document.getElementById('groessefield').value);
  document.getElementById('gewichtfield').value=dodezimaltrenner(document.getElementById('gewichtfield').value);
  document.getElementById('bmifield').value=dodezimaltrenner(document.getElementById('bmifield').value);
  if (bmi.measure==1){
    groesse=(groesse*1+1.27);
    document.getElementById('feetfield').value=parseInt((groesse/2.54)/12);
    document.getElementById('inchfield').value=parseInt((groesse/2.54)%12);
  };
  posslider();
};
function feetinchchanged(){
  var groesse='';
  if (isNaN(document.getElementById('feetfield').value)) {document.getElementById('feetfield').value=getfeet(bmi.size.range[3])};
  if (isNaN(document.getElementById('inchfield').value)) {document.getElementById('inchfield').value=0;};
  if (document.getElementById('inchfield').value>=12) {document.getElementById('inchfield').value=11;};
  groesse=(document.getElementById('feetfield').value*2.54*12+document.getElementById('inchfield').value*2.54);
  document.getElementById('groessefield').value=groesse;
  document.getElementById('groessefield').value=dodezimaltrenner(document.getElementById('groessefield').value);
  groessechanged();
};

function gewichtchanged(){
  var groesse=0;
  var gewicht=0;
  var bmiwert=0;
  var gewicht4bmi=0;
  groesse=undodezimaltrenner(document.getElementById('groessefield').value);
  gewicht=undodezimaltrenner(document.getElementById('gewichtfield').value);
  if (isNaN(gewicht)) {gewicht=bmi.weight.range[3];};
//  if (gewicht<=bmi.weight.range[0]) {gewicht=bmi.weight.range[0];};
//  if (gewicht>=bmi.weight.range[1]) {gewicht=bmi.weight.range[1];};
  //  bmi=document.getElementById('bmifield').value.replace(',','.');
  gewicht4bmi=gewicht;
  if (bmi.measure==1) {
    gewicht4bmi=gewicht*0.453592370;
  };
  bmiwert=gewicht4bmi/((groesse/100)*(groesse/100));

  groesse=nachkomma(runden(groesse,1),1);
  gewicht=nachkomma(runden(gewicht,1),1);
  bmiwert=nachkomma(runden(bmiwert,1),1);
  document.getElementById('groessefield').value=groesse;
  document.getElementById('gewichtfield').value=gewicht;
  document.getElementById('bmifield').value=bmiwert;
  document.getElementById('groessefield').value=dodezimaltrenner(document.getElementById('groessefield').value);
  document.getElementById('gewichtfield').value=dodezimaltrenner(document.getElementById('gewichtfield').value);
  document.getElementById('bmifield').value=dodezimaltrenner(document.getElementById('bmifield').value);
  posslider();
};

function bmichanged(){
  var groesse=0;
  var gewicht=0;
  var bmiwert=0;
  groesse=undodezimaltrenner(document.getElementById('groessefield').value);
  //gewicht=document.getElementById('gewichtfield').value.replace(',','.');
  bmiwert=undodezimaltrenner(document.getElementById('bmifield').value);
  if (isNaN(bmiwert)) {bmiwert=bmi.bmi.range[3];};
  gewicht=bmiwert*(groesse/100)*(groesse/100)
  if (bmi.measure==1) {
    gewicht=gewicht/0.453592370;
  };

  groesse=nachkomma(runden(groesse,1),1);
  gewicht=nachkomma(runden(gewicht,1),1);
  bmiwert=nachkomma(runden(bmiwert,1),1);
  document.getElementById('groessefield').value=groesse;
  document.getElementById('gewichtfield').value=gewicht;
  document.getElementById('bmifield').value=bmiwert;
  document.getElementById('groessefield').value=dodezimaltrenner(document.getElementById('groessefield').value);
  document.getElementById('gewichtfield').value=dodezimaltrenner(document.getElementById('gewichtfield').value);
  document.getElementById('bmifield').value=dodezimaltrenner(document.getElementById('bmifield').value);
  posslider();
};

var dragslider = null;
// Mausposition
var posx = 0;
var posy = 0;
var dragx = 0;
var dragy = 0;

function dragstart(element) {
  dragslider = element;
  dragx = posx - dragslider.offsetLeft;
  dragy = posy - dragslider.offsetTop;
  if (dragslider==document.getElementById('sliderbtngroesse')){
    dragslider.style.backgroundImage='url('+bmi.size.slider[2]+')';
  };
  if (dragslider==document.getElementById('sliderbtngewicht')){
    dragslider.style.backgroundImage='url('+bmi.weight.slider[2]+')';
  };
  if (dragslider==document.getElementById('sliderbtnbmi')){
    dragslider.style.backgroundImage='url('+bmi.bmi.slider[2]+')';
  };
};

function dragstop() {
  if (dragslider==document.getElementById('sliderbtngroesse')) {
    dragslider.style.backgroundImage='url('+bmi.size.slider[1]+')';
  };
  if (dragslider==document.getElementById('sliderbtngewicht')) {
    dragslider.style.backgroundImage='url('+bmi.weight.slider[1]+')';
  };
  if (dragslider==document.getElementById('sliderbtnbmi')) {
    dragslider.style.backgroundImage='url('+bmi.bmi.slider[1]+')';
  };
  dragslider=null;
};

function drag(ereignis) {
  var newy=0;
  var sliderwidth=330;
  var sliderstart=55;
  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if(dragslider != null) {
    sliderstart=sliderstart - dragslider.offsetHeight / 2; // halbe eigene Breite abziehen
    newy=(posy - dragy);
    if (newy<sliderstart) {newy=sliderstart};
    if (newy>sliderstart+sliderwidth) {newy=sliderstart+sliderwidth};
    dragslider.style.top = newy ;
    if (dragslider==document.getElementById('sliderbtngroesse')) {
      if (bmi.measure==0){
        newy=newy-sliderstart;
        newy=newy/sliderwidth*(bmi.size.range[1]-bmi.size.range[0]);
        newy=bmi.size.range[1]-newy;
        document.getElementById('groessefield').value=runden(newy,1);
        groessechanged();
      } else {
        newy=newy-sliderstart;
        newy=newy/sliderwidth*(inchonly(bmi.size.range[1])*2.54-inchonly(bmi.size.range[0])*2.54);
        newy=inchonly(bmi.size.range[1])*2.54-newy;
        document.getElementById('groessefield').value=runden(newy,1);
        groessechanged();
      };
      // Sicherheitshalber nochmal Farben setzen, falls bei Start Outrange ist das nötig
      dragslider.style.backgroundImage='url('+bmi.size.slider[2]+')';
    };
    if (dragslider==document.getElementById('sliderbtngewicht')) {
      newy=newy-sliderstart;
      newy=newy/sliderwidth*(bmi.weight.range[1]-bmi.weight.range[0]);
      newy=bmi.weight.range[1]-newy;
      document.getElementById('gewichtfield').value=runden(newy,1);
      gewichtchanged();
      // Sicherheitshalber nochmal Farben setzen, falls bei Start Outrange ist das nötig
      dragslider.style.backgroundImage='url('+bmi.weight.slider[2]+')';
    };
    if (dragslider==document.getElementById('sliderbtnbmi')) {
      newy=newy-sliderstart;
      newy=newy/sliderwidth*(bmi.bmi.range[1]-bmi.bmi.range[0]);
      newy=bmi.bmi.range[1]-newy;
      document.getElementById('bmifield').value=runden(newy,2);
      bmichanged();
      // Sicherheitshalber nochmal Farben setzen, falls bei Start Outrange ist das nötig
      dragslider.style.backgroundImage='url('+bmi.bmi.slider[2]+')';
    };
  };
};

function findPosX(obj) {
// Liefert die X Position des angegebenen Objektes in Pixel
// Dabei werden auch Scrollbalken berücksichtigt
  var curleft = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curleft += obj.offsetLeft;
      if (obj.scrollLeft) {
        curleft -= obj.scrollLeft;
      }
      obj = obj.offsetParent;
    }
  } else if (obj.x) {
    curleft += obj.x;
  }
  return curleft;
};

function findPosY(obj) {
// Liefert die Y Position des angegebenen Objektes in Pixel
// Dabei werden auch Scrollbalken berücksichtigt
  var curtop = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curtop += obj.offsetTop;
      if (obj.scrollTop) {
        curtop -= obj.scrollTop;
      };
      obj = obj.offsetParent;
    }
  } else if (obj.y) {
    curtop += obj.y;
  }
  return curtop;
};

function sliderclick(element){
  var newy=0;
  var sliderwidth=330;
  var sliderstart=55;
  if(element != null) {
    newy=posy - findPosY(element);
    if (element==document.getElementById('groesseslider')) {
      document.getElementById('sliderbtngroesse').style.top = newy +'px';
      if (bmi.measure==0){
        newy=newy/sliderwidth*(bmi.size.range[1]-bmi.size.range[0]);
        newy=bmi.size.range[1]-newy;
      } else {
        newy=newy/sliderwidth*(inchonly(bmi.size.range[1])*2.54-inchonly(bmi.size.range[0])*2.54);
        newy=inchonly(bmi.size.range[1])*2.54-newy;
      };
      document.getElementById('groessefield').value=runden(newy,1);
      groessechanged();
    };
    if (element==document.getElementById('gewichtslider')) {
      newy=newy/sliderwidth*(bmi.weight.range[1]-bmi.weight.range[0]);
      newy=bmi.weight.range[1]-newy;
      document.getElementById('gewichtfield').value=runden(newy,1);
      gewichtchanged();
    };
    if (element==document.getElementById('bmislider')) {
      newy=newy/sliderwidth*(bmi.bmi.range[1]-bmi.bmi.range[0]);
      newy=bmi.bmi.range[1]-newy;
      document.getElementById('bmifield').value=runden(newy,2);
      bmichanged();
    };
  };
};

function GenElements() {
  // Erzeugt div container, beschriftungen, felder usw.

  var c='';
  var n1,n2,n3;
  if(document.getElementById('bmicalc')){
    // Schon da
  }else{
    if(bmi.small!=1){n1=486}else{n1=350}
    c+='<div id="bmicalc" style="font-family:'+bmi.font+';font-size:12px;height:468px;width:'+n1+'px;position:relative;border:0;background: url('+bmi.bgimage+') no-repeat; padding:0; line-height:180%;" onselectstart="return false" ondragstart="return false" onmousedown="return false">';
  }
  // Titel
  if(bmi.small!=1){n1=486}else{n1=350}
  c+='<div style="position:absolute;top:2px;left:0px;width:'+n1+'px;text-align:center;font-weight:bold;font-size:13px;color:'+bmi.color[0]+';">'+bmi.title+'</div>';
  // Felder
  if(bmi.small!=1){n1=13;n2=83;n3=153;}else{n1=03;n2=73;n3=143;};
  if (bmi.measure==0){
    c+='<div id="groesseinput" style="text-align:center;position:absolute;top:400px;left:'+n1+'px;width:60px;height:30px;"><input onmousedown="this.focus();" onblur="groessechanged();" id="groessefield" type="text" align="right" name="groesse" size="5" style="font-family:'+bmi.font+';width: 60px;padding:0;margin:0;text-align:center; color:'+bmi.size.field[0]+'; border: 1px solid '+bmi.size.field[2]+'; background: '+bmi.size.field[1]+';" value="'+bmi.size.range[3]+'" /><br /><span style="color:'+bmi.size.textcolor[0]+';font-family:'+bmi.font+';font-size:13px;">'+bmi.size.text[0]+'</span></div>';
  } else {
    c+='<div id="groesseinput" style="text-align:center;position:absolute;top:400px;left:'+n1+'px;width:60px;height:30px;line-height:19px;">';
    c+='<input onblur="groessechanged();" id="groessefield" type="hidden" align="right" name="groesse" size="5" value="'+(getfeet(bmi.size.range[3])*2.54*12+getinch(bmi.size.range[3])*2.54)+'" />';
    c+='<input onblur="feetinchchanged();" id="feetfield" type="text" align="right" name="feet" size="1" style="font-family:'+bmi.font+';width: 21px;padding:0;margin:0;text-align:center; color:'+bmi.size.field[0]+'; margin:0; border: 1px solid '+bmi.size.field[2]+'; background: '+bmi.size.field[1]+';" value="'+getfeet(bmi.size.range[3])+'" />'+"' ";
    c+='<input onblur="feetinchchanged();" id="inchfield" type="text" align="right" name="inch" size="3" style="font-family:'+bmi.font+';width: 28px;padding:0;margin:0;text-align:center; color:'+bmi.size.field[0]+'; margin:0; border: 1px solid '+bmi.size.field[2]+'; background: '+bmi.size.field[1]+';" value="'+getinch(bmi.size.range[3])+'" />';
    c+='<br /><span style="color:'+bmi.size.textcolor[0]+';font-family:'+bmi.font+';font-size:13px;">'+bmi.size.text[0]+'</span></div>';
  };
  c+='<div id="gewichtinput" style="text-align:center;position:absolute;top:400px;left:'+n2+'px;width:60px;height:30px;"><input onmousedown="this.focus();" onblur="gewichtchanged();" id="gewichtfield" type="text" align="right" name="gewicht" size="5" style="font-family:'+bmi.font+';width: 60px;padding:0;margin:0;text-align:center; color:'+bmi.weight.field[0]+'; border: 1px solid '+bmi.weight.field[2]+'; background: '+bmi.weight.field[1]+';" value="'+bmi.weight.range[3]+'" /><br /><span style="color:'+bmi.weight.textcolor[0]+';font-family:'+bmi.font+';font-size:13px;">'+bmi.weight.text[0]+'</span></div>';
  c+='<div id="bmiinput" style="text-align:center;position:absolute;top:400px;left:'+n3+'px;width:60px;height:30px"><input onmousedown="this.focus();" onblur="bmichanged();" id="bmifield" type="text" align="right" name="bmi" size="5" style="font-family:'+bmi.font+';width: 60px;padding:0;margin:0;text-align:center; color:'+bmi.bmi.field[0]+'; border: 1px solid '+bmi.bmi.field[2]+'; background: '+bmi.bmi.field[1]+';" value="'+bmi.bmi.range[3]+'" /><br /><span style="color:'+bmi.bmi.textcolor[0]+';font-family:'+bmi.font+';font-size:13px;">'+bmi.bmi.text[0]+'</span></div>';
  // Slider
  if(bmi.small!=1){n1=40;n2=110;n3=180;}else{n1=30;n2=95;n3=160;}
  c+='<div id="groesseslider" onmousedown="sliderclick(this);" style="width:14px;height:340px;padding:0;margin:0;background: url('+bmi.size.slider[0]+') no-repeat;position:absolute;top:50px;left:'+n1+'px;" onselectstart="return false" ondragstart="return false"></div>';
  c+='<div id="gewichtslider" onmousedown="sliderclick(this);" style="width:14px;height:340px;padding:0px;margin:0;background: url('+bmi.weight.slider[0]+') no-repeat;position:absolute;top:50px;left:'+n2+'px;" onselectstart="return false" ondragstart="return false"></div>';
  c+='<div id="bmislider" onmousedown="sliderclick(this);" style="width:14px;height:340px;padding:0;margin:0;background: url('+bmi.bmi.slider[0]+') no-repeat;position:absolute;top:50px;left:'+n3+'px;" onselectstart="return false" ondragstart="return false"></div>';
  // Sliderbutton
  if(bmi.small!=1){n1=31;n2=101;n3=171;}else{n1=21;n2=86;n3=151;}
  c+='<div id="sliderbtngroesse" style="position:absolute;width:32px;height:32px;border:0; background: url('+bmi.size.slider[1]+') no-repeat;top:30px;left:'+n1+'px;" onmousedown="dragstart(this);"></div>';
  c+='<div id="sliderbtngewicht" style="position:absolute;width:32px;height:32px;border:0; background: url('+bmi.weight.slider[1]+') no-repeat;top:30px;left:'+n2+'px;" onmousedown="dragstart(this);"></div>';
  c+='<div id="sliderbtnbmi" style="position:absolute;width:32px;height:32px;border:0; background: url('+bmi.bmi.slider[1]+') no-repeat;top:30px;left:'+n3+'px;" onmousedown="dragstart(this);"></div>';
  // Render
  if(bmi.small!=1){n1=200}else{n1=130}
  c+='<div id="render" style="position:absolute;top:30px;left:'+n1+'px;width:288px;height:360px;border:0;" onselectstart="return false" ondragstart="return false"><img id="renderimg" src="" border="0" width="288" height="360" style="background:none;border:none;box-shadow:none;"><div id="norendertext" style="position:absolute;display:none;top:90px;left:90px;width:100px;font-size:13px;font-weight:bold;text-align:center;color:'+bmi.textcolor[2]+';">'+bmi.rendertext[5]+'</div></div>';
  if(bmi.small!=1){n1=270;n2=294;n3=340;n4=364;}else{n1=205;n2=229;n3=270;n4=294;}
  if(bmi.prude==1){
    c+='<input onclick="RenderImg();" onchange="RenderImg();" type="radio" id="rendermale" name="rendersex" style="position:absolute;top:380px;left:'+n1+'px;">';
    c+='<label onclick="RenderImg();" for="rendermale" style="position:absolute;top:378px;left:'+n2+'px;font-size:13px;color:'+bmi.textcolor[0]+';">'+bmi.rendertext[0]+'</label>';
    c+='<input checked onclick="RenderImg();" onchange="RenderImg();" type="radio" id="renderfemale" name="rendersex" style="position:absolute;top:400px;left:'+n1+'px;">';
    c+='<label onclick="RenderImg();" for="renderfemale" style="position:absolute;top:398px;left:'+n2+'px;font-size:13px;color:'+bmi.textcolor[0]+';">'+bmi.rendertext[1]+'</label>';
  }else{
    c+='<input onclick="RenderImg();" onchange="RenderImg();" type="radio" id="rendermale" name="rendersex" style="position:absolute;top:370px;left:'+n1+'px;">';
    c+='<label onclick="RenderImg();" for="rendermale" style="position:absolute;top:368px;left:'+n2+'px;font-size:13px;color:'+bmi.textcolor[0]+';">'+bmi.rendertext[0]+'</label>';
    c+='<input checked onclick="RenderImg();" onchange="RenderImg();" type="radio" id="renderfemale" name="rendersex" style="position:absolute;top:390px;left:'+n1+'px;">';
    c+='<label onclick="RenderImg();" for="renderfemale" style="position:absolute;top:388px;left:'+n2+'px;font-size:13px;color:'+bmi.textcolor[0]+';">'+bmi.rendertext[1]+'</label>';
    c+='<input onclick="RenderImg();" onchange="RenderImg();" type="checkbox" id="rendernude" style="position:absolute;top:410px;left:'+n1+'px;">';
    c+='<label onclick="RenderImg();" for="rendernude" style="position:absolute;top:408px;left:'+n2+'px;font-size:13px;color:'+bmi.textcolor[0]+';">'+bmi.rendertext[6]+'</label>';
  }
  c+='<input onclick="RenderImg();" onchange="RenderImg();" type="radio" id="renderfat" name="renderfnm" style="position:absolute;top:370px;left:'+n3+'px;">';
  c+='<label onclick="RenderImg();" for="renderfat" style="position:absolute;top:368px;left:'+n4+'px;font-size:13px;color:'+bmi.textcolor[1]+';">'+bmi.rendertext[2]+'</label>';
  c+='<input checked onclick="RenderImg();" onchange="RenderImg();" type="radio" id="rendernormal" name="renderfnm" style="position:absolute;top:390px;left:'+n3+'px;">';
  c+='<label onclick="RenderImg();" for="rendernormal" style="position:absolute;top:388px;left:'+n4+'px;font-size:13px;color:'+bmi.textcolor[1]+';">'+bmi.rendertext[3]+'</label>';
  c+='<input onclick="RenderImg();" onchange="RenderImg();" type="radio" id="rendermuscle" name="renderfnm" style="position:absolute;top:410px;left:'+n3+'px;">';
  c+='<label onclick="RenderImg();" for="rendermuscle" style="position:absolute;top:408px;left:'+n4+'px;font-size:13px;color:'+bmi.textcolor[1]+';">'+bmi.rendertext[4]+'</label>';
  // Beschriftung
  if (bmi.measure==0){
    var n=0;
    while ((bmi.size.range[0]+(n*bmi.size.range[2]))<=(bmi.size.range[1])) {
      c+='<div style="font-family:'+bmi.font+';font-size:10px;position:absolute;color:'+bmi.size.textcolor[1]+';" id="s'+n+'" onselectstart="return false" ondragstart="return false">'+(bmi.size.range[0]+(n*bmi.size.range[2]))+'</div>';
      n++;
    };
  }else{
    var n=0; // n sind gesamt-inch, also inkl. feet*12
    while (inchonly(bmi.size.range[0])+(n*inchonly(bmi.size.range[2]))<=(inchonly(bmi.size.range[1]))) {
      c+='<div style="font-family:'+bmi.font+';font-size:10px;position:absolute;color:'+bmi.size.textcolor[1]+';" id="s'+n+'" onselectstart="return false" ondragstart="return false">'+getfeetinchfrominchonly(inchonly(bmi.size.range[0])+(n*inchonly(bmi.size.range[2])))+'</div>';
      n++;
    };
  };
  var n=0;
  while ((bmi.weight.range[0]+(n*bmi.weight.range[2]))<=(bmi.weight.range[1])) {
    c+='<div style="font-family:'+bmi.font+';font-size:10px;position:absolute;color:'+bmi.weight.textcolor[1]+';" id="g'+n+'" onselectstart="return false" ondragstart="return false">'+(bmi.weight.range[0]+(n*bmi.weight.range[2]))+'</div>';
    n++;
  };
  var n=0;
  while ((bmi.bmi.range[0]+(n*bmi.bmi.range[2]))<=(bmi.bmi.range[1])) {
    c+='<div style="font-family:'+bmi.font+';font-size:10px;position:absolute;color:'+bmi.bmi.textcolor[1]+';" id="b'+n+'" onselectstart="return false" ondragstart="return false">'+(bmi.bmi.range[0]+(n*bmi.bmi.range[2]))+'</div>';
    n++;
  };
  // end of div
  if(document.getElementById('bmicalc')){
    // Schon da
    document.getElementById('bmicalc').innerHTML=c;
    document.getElementById('bmicalc').style.backgroundImage='url('+bmi.bgimage+')';
  }else{
    c+='</div>';
    document.write(c);


    c=window.location.href
    //if((document.getElementById('bmiinfo')!=null&&(c.indexOf('.bmi-club.de/')>=0||c.indexOf('.bmi-club.com/')>=0))||(c.indexOf('.bmi-club.de/')<0&&c.indexOf('.bmi-club.com/')<0)){
    if(document.getElementById('bmiinfo')!=null){
      // bmilink formatieren
      document.getElementById('bmilink').style.color=bmi.color[1];
      document.getElementById('bmilink').style.fontFamily=bmi.font;
      document.getElementById('bmilink').style.fontSize='9px';
      document.getElementById('bmilink2').style.color=bmi.color[1];
      document.getElementById('bmilink2').style.fontFamily=bmi.font;
      document.getElementById('bmilink2').style.fontSize='9px';
      document.getElementById('bmiinfo').style.color=bmi.color[1];
      document.getElementById('bmiinfo').style.fontFamily=bmi.font;
//      document.getElementById('bmiinfo2').style.color=bmi.color[1];
//      document.getElementById('bmiinfo2').style.fontFamily=bmi.font;
      // bmiinfo node in div verschieben
      var DIV;
      if(document.getElementById('bmilink')){
        DIV=document.getElementById('bmilink');
        DIV.parentNode.removeChild(DIV);
        document.getElementById('bmicalc').appendChild(DIV);
      }
      if(document.getElementById('bmilink2')){
        DIV=document.getElementById('bmilink2');
        DIV.parentNode.removeChild(DIV);
        document.getElementById('bmicalc').appendChild(DIV);
      }
      // divs mit links in container div verlegen
      if(document.getElementById('bmilink')){
        document.getElementById('bmilink').style.position='absolute';
        document.getElementById('bmilink').style.bottom='1px';
        document.getElementById('bmilink').style.right='10px';
        document.getElementById('bmilink').style.display='block';
      }
      if(document.getElementById('bmilink2')){
        document.getElementById('bmilink2').style.position='absolute';
        document.getElementById('bmilink2').style.bottom='1px';
        document.getElementById('bmilink2').style.left='10px';
        document.getElementById('bmilink2').style.display='block';
      }

      var Element;
      // Text nicht nötig, wenn Rechner aktiviert
      Element=document.getElementById('bmiinfo');
      if (Element!=null) Element.parentNode.removeChild(Element);
    }
  }
  gewichtchanged(); // BMI richtig berechnen
};

function BMICalc() {
  GenElements();
  window.onresize=paintslider;
  document.onmousemove = drag;
  document.onmouseup = dragstop;
  window.setTimeout('paintslider()', 1000); // 1 Sekunde
};

BMICalc();

