var indices=new Array();
var n,r;
var a=new Array();
var fact;
var elements;
    var nFact, rFact, total, t, str, indices;


function check(){
    var system=document.myForm.sys;
    var number=document.myForm.comb;
    elements=new Array();


   for(var p=0,q=0;p<number.length; p++){
     if(number[p].checked){        elements[q++]=(number[p].value);     }
     }

   for(var p=0,q=0;p<system.length; p++){
      if(system[p].checked){        r=(system[p].value);     }
     }

    if(!r){ alert("Please select a system");  return false; }


    n=elements.length;
    if(n<r){  alert("Too few numbers!");  return false; }
    else{
      nFact=getFactorial2(n, r, n-r);
      rFact=getFactorial(r);
      total=(nFact/rFact);
       a.length=r;
       indices=a;
      var tmp_array=new Array(total);

       reset();

          var OpenWindow=window.open("", "", "toolbar=yes,directories=yes,location=no,status=yes,menubar=yes,resizable=no,scrollbars=yes,width=600,height=400,screenX=100,screenY=75,left=100,top=75"); 
           OpenWindow.document.write("<html>");
           OpenWindow.document.write("<TITLE>Result Window</TITLE>"); 
           OpenWindow.document.write("<BODY BGCOLOR='00ffff'>");
           OpenWindow.document.write("<CENTER>"); 
           OpenWindow.document.write("<font size=+1>Total </font>"+"<font size=+1>"+total+"</font>"+"<font size=+1> Combinations</font><p>");
           OpenWindow.document.write("<a href='' onClick='self.close()'>Close this window</a><p>");
          OpenWindow.document.write("<table>");
           OpenWindow.document.write("<tr><td width=20%>&nbsp;</td>");
           OpenWindow.document.write("<td width=60% align=left>");
           str="";
           for(var m=0;m<r;m++){
               str=str+elements[indices[m]];
                     if(m!=r-1){          str=str+"-";        }
             }
      t=0;
       tmp_array[t++]=str;



   while(total>1){
     indices=getNext();
     var str="";
     for(var i=0; i<indices.length; i++){
       str=str+elements[indices[i]];
       if(i!=indices.length-1){
         str=str+"-";
        }
      }
     tmp_array[t++]=str;
    }

   for(var y=0; y<tmp_array.length; y++){
      OpenWindow.document.write("<br>");
      OpenWindow.document.write(tmp_array[y]);
      
     }

   OpenWindow.document.write("</td");
   OpenWindow.document.write("<td width=20%>&nbsp;</td></tr>");
   OpenWindow.document.write("</table>");
   OpenWindow.document.write("<P><center><HR WIDTH='60%'></center><P>"); 
   OpenWindow.document.write("<a href='' onClick='self.close()'>Close this window</a><p>");
   OpenWindow.document.write("</CENTER>");
   OpenWindow.document.write("</HTML>"); 
   elements=new Array(0);
   
 
 }
}



function reset()
{
 for(var i=0; i<a.length; i++){
   a[i]=i;
  
 }
}
function getFactorial(n){
 fact=1;
 for(i=n; i>1; i--){
  fact=fact*i;
 }
 return fact;
}

function getFactorial2(n,  r, d){
  fact=1;
  for(i=n; i>d; i--){
    fact=fact*i;
  }
  return fact;
}

function getNext()
{
 var i=r-1;
 while(a[i]==n-r+i){
    i--;
   }
  a[i]=a[i]+1;
  for(var j=i+1; j<r; j++){
    a[j]=a[i]+j-i;
  }
  total--;
  return a;
}
