function trail(t){
var n=t.value
while (true) if (n.substring(0,1)=="0") n=n.substring(1, n.length); else break;
if (n=="") n=0;
t.value=n;
}
var f;
var d;
var number;
var num;
var a;

function complete(){
  if (f.length==0) return number+" ist eine Primzahl!";
  var text="Keine Primzahl. "+number+" = ";
  var x=new Array();
  x[0]=f[0]
  var y=new Array();
  y[0]=1;
  for (var i=1; i<f.length; i++) {
    if (f[i]==x[x.length-1]) y[y.length-1]++;
    else {
      x[x.length]=f[i];
      y[y.length]=1;
    }
  }
    if (num==x[x.length-1]) y[y.length-1]++;
    else {
      x[x.length]=num;
      y[y.length]=1;
      }

    if (y[0]==1) text+=x[0];
    else text+=x[0]+"<sup>"+y[0]+"</sup>";

  for (var i=1; i<x.length; i++){
    if (y[i]==1) text+=" x "+x[i];
    else text+=" x "+x[i]+"<sup>"+y[i]+"</sup>";
  }
  return text;
}

function work(){
if (num%d==0) {
  num=num/d;
  f[f.length]=d;
  document.getElementById("output").innerHTML=complete();
  }
else {if (d==2) d++; else d+=2;}
if (d*d>num) {
  document.getElementById("output").innerHTML=complete();
  document.getElementById("v0").innerHTML="100";
  document.getElementById("bar2").style.width=100;
	a=setTimeout("document.getElementById('bar0').style.display='none';document.getElementById('bar3').style.display='inline';", 1000);
	}
else if (((d-1)/2)%501==0) {
  a=setTimeout("work()", 1);
  document.getElementById("v0").innerHTML=Math.round((d*100)/Math.sqrt(num));
  document.getElementById("v1").innerHTML=Math.round((d*100)/Math.sqrt(num));
  document.getElementById("bar2").style.width=(d*100)/Math.sqrt(num)
  document.getElementById("bar0").style.display="block";
  document.getElementById("bar3").style.display="none";
  }
else work();
}

function factorise(n){
  clearTimeout(a);
  f=new Array();
  d=2;
  num=n;
  number=n;
  if (n==1) document.getElementById("output").innerHTML="1 ist keine Primzahl, obwohl sie keine Faktoren hat."
  else if (n==2) document.getElementById("output").innerHTML="2 ist die einzige gerade Primzahl.";
  else if (n>2 && parseInt(n)==n) {
    document.getElementById("output").innerHTML="Noch keine Faktoren von "+number+" gefunden...";
    work();
  }
  else document.getElementById("output").innerHTML="Ungueltige Eigabe - Invalid entry.";
}
