function docalc() {
   var count=0;
   var sum = 0;
   while(document.getElementById("nPercent-"+count)){
      var val = document.getElementById("nSystem-"+count).value;
      val = val.replace(/[^0-9]/g,"");   //TODO fix this regex
      document.getElementById("nSystem-"+count).value = val;
      if( val != "" ) {
          sum += parseInt(document.getElementById("nSystem-"+count).value);
      }
      count++;
    }
    while(count) {
      var val = document.getElementById("nSystem-"+(count-1)).value;
      document.getElementById("nPercent-"+(count-1)).innerHTML = "";
      if( val != "" ) {
          var percent = (parseInt(val)*100/sum);
          var is100 = percent>=100;
          var is0   = percent==0;
          percent = (" "+(percent+0.5)).replace(/\..*/,"");
          if( val != "" && val != "0" && percent.replace(/ /g,"")=="0") percent = "&lt;1";
          if( !is100 && percent == " 100") percent = " 99";
          if( !is0 ) {
              document.getElementById("nPercent-"+(count-1)).innerHTML = percent+"%"
              document.getElementById("percentSystem-"+(count-1)).value = percent.replace("&lt;","<")+"%";
          }
      }
      count--;
    }
}
