// Javascript: (c) Arndt Brόnner
// alle Rechte vorbehalten!
// Version: 22.11.2003

var bruchstrich="";
bruchstrich+=bruchstrich;bruchstrich+=bruchstrich;

function polydivtab(a,b,c,n,v)
{
	var t=new Array(),T=new Array(),V=new Array(),i,j,ii=0,k,tt="",m=new Array();
	for(k=0;k<=n;k++)m[k]=0;
	for(i=0;i<a.length;i++)
	{
		T[i]=new Array();V[i]=new Array();
		t=String(a[i]).replace(/ /g,"").replace(/\+/g,"|+").replace(/-/g,"|-").split("|");
		for(j=0;j<t.length;j++)
		{
			for(k=n;k>1;k--)
			{
				if(t[j].indexOf("^"+k)>0){T[i][k]=t[j];break;}
			}
			if(k==1){if(t[j].indexOf("x")==t[j].length-1)T[i][1]=t[j];else T[i][0]=t[j];}
		}
		for(k=n;k>=0;k--)
		{
			if(T[i][k]!=null)
			{
				if(T[i][k].charAt(0)=="-")V[i][k]=(n>k)?"  - ":" - ";
				else if(T[i][k].charAt(0)=="+")V[i][k]="  + ";
				else V[i][k]="";
				T[i][k]=T[i][k].replace(/[\+-]/,"");
				if((i<a.length-1)||(a[i]!="0"))m[k]=Math.max(m[k],(T[i][k]).length);
			}
			else {V[i][k]="   ";T[i][k]="";}
		}
	}
	tt="(";
	for(i=0;i<T.length;i++)
	{
		t[i]="";var nn=(1==0);
		for(j=n;j>=0;j--)
		{
			if(T[i][j]!="")
			{
				if(nn)t[i]+=V[i][j]+rbpd(T[i][j],m[j]);
				else  t[i]+=V[i][j]+T[i][j];
				nn=true;
			}
			else 
				t[i]+=((m[j]>0)?"    ":"")+rbpd("",m[j]);
		}
		if(i>0)while(t[i].charAt(0)==" ")t[i]=t[i].substring(1,t[i].length);
		tt+=rbpd(t[i],t[0].length);
		if(i==0)tt+=") : ("+b+")  =  "+c+"REST  ";
		tt+="\n ";
		if(i>0)while(bruchstrich.length<t[i-1].length)bruchstrich+=bruchstrich;
		if((i%2)==1)tt+=rbpd(bruchstrich.substr(0,t[i-1].length),t[0].length)+"\n ";
	}
	tt=tt.replace(/x/g,v).replace(/REST/,(a[a.length-1]=="0")?"":"   Rest  "+a[a.length-1]);
	return tt;
}
var leertasten="                                                                                                              ";

function rbpd(t,l)
{
	if(t==null)t="";
	//t=t.replace(/[\+-]/g,"");
	while(leertasten.length<t.length)leertasten+=leertasten;
	return leertasten.substr(0,l-t.length)+t;
}
