function GetAll(result, count, minval, maxval, operator, curr, depth, t, repeatsleft, prev)
{
var i, n;
if(repeatsleft<0)
  return;
//if(count==2)
  //repeatsleft=0;
if(count==depth)
{
if(curr==result) document.myForm.myText.value = t+'\n'+document.myForm.myText.value;
return;
}
for(i=maxval;i>=minval;i--)
{
	if(!document.myForm.numbers[i-1].checked)
		continue;
	if(depth==0)
		n = i;
	else
	{
		n = curr;
		if(operator=='+')
		{
			n = n + i;
			if(n>result)
			continue;
		}
		else
		if(operator=='-')
		{
			n = n-i;
			if(n<result)
			continue;
		}
		else
		if(operator=='*')
		{
			n = n*i;
			if(n>result)
			continue;
		}
		else
		if(operator=='/')
		if(n%i == 0)
		{
			n = n/i;
			if(n<result)
			continue;
		}
		else
			continue;
		else alert('invalid operator');
			
	}
	
	GetAll(result, count, minval, i-((repeatsleft>0)?0:1), operator, n, depth+1, (t=='')?i:(t+operator+i), repeatsleft-((i==prev)?1:0), i);
}
}

function GetChecked(x)
{
var j;
for(j=0;j<x.length;j++)
if(x[j].checked)
return x[j].value;
}
function DoCalc()
{
	var operator = GetChecked(document.myForm.operator);
	if(operator=='no op')
	{
		CalcOperator('*');
		CalcOperator('/');
		CalcOperator('-');
		CalcOperator('+');
	}
	else
	{
		CalcOperator(operator);
	}
}
function CalcOperator(operator)
{
document.myForm.myText.value = '---------\n\n'+document.myForm.myText.value;
GetAll(document.myForm.text1.value, GetChecked(document.myForm.cellz)-1+1, 1, 9, operator, 0, 0, '', GetChecked(document.myForm.repeats),-1);
document.myForm.myText.value = document.myForm.text1.value+operator+' =====\n'+document.myForm.myText.value;
}

