// JavaScript Document<script language="JavaScript">

<!--

        var SireIndex=0;var QueenIndex=0;var SireFeno='Brown';var QueenFeno='Brown';

        MainColorArray=new Array(12);
                MainColorArray[0]='Brown';
                MainColorArray[1]='Blue';
                MainColorArray[2]='Choc';
                MainColorArray[3]='Lilac';
                MainColorArray[4]='Red';
                MainColorArray[5]='Red(choc)';
                MainColorArray[6]='Cream';
                MainColorArray[7]='Cream(lilac)';
                MainColorArray[8]='Brown tortie';
                MainColorArray[9]='Blue tortie';
                MainColorArray[10]='Choc tortie';
                MainColorArray[11]='Lilac tortie';

        LitterIndexArray=new Array(65);
                LitterIndexArray[64]=0;

        function SetBox(Index,NrOne,NrTwo,NrThree,NrFour,NrFive,NrSix,box){
                if (Index==NrOne)box.checked=true;
                if (Index==NrTwo)box.checked=true;
                if (Index==NrThree)box.checked=true;
                if (Index==NrFour)box.checked=true;
                if (Index==NrFive)box.checked=true; 
                if (Index==NrSix)box.checked=true;}

        function MakeGen(Index,BlueBox,ChocBox){
                MakeGenArray=new Array(12);
                        MakeGenArray[0]=0;
                        MakeGenArray[1]=3;
                        MakeGenArray[2]=12;
                        MakeGenArray[3]=15;
                        MakeGenArray[4]=48;
                        MakeGenArray[5]=60;
                        MakeGenArray[6]=51;
                        MakeGenArray[7]=63;
                        MakeGenArray[8]=16;
                        MakeGenArray[9]=19;
                        MakeGenArray[10]=28;
                        MakeGenArray[11]=31;

         var GenNumber=0;
 
        GenNumber=GenNumber|MakeGenArray[Index];
                if (BlueBox.checked==true)GenNumber=GenNumber|1;
                if (ChocBox.checked==true)GenNumber=GenNumber|4;
                return GenNumber;}

        function FatherColor(){
                SireIndex=document.ColorTable.sire.selectedIndex;
                SireFeno=MainColorArray[SireIndex];
                SetBox(SireIndex,1,3,6,7,9,11,document.ColorTable.SCarryBlue);
                SetBox(SireIndex,2,3,5,7,10,11,document.ColorTable.SCarryChoc);}

        function MotherColor(){
                QueenIndex=document.ColorTable.queen.selectedIndex;
                QueenFeno=MainColorArray[QueenIndex];
                SetBox(QueenIndex,1,3,6,7,9,11,document.ColorTable.QCarryBlue);
                SetBox(QueenIndex,2,3,5,7,10,11,document.ColorTable.QCarryChoc);}

        function MakeParentArray(ParentGen,ParentGenArray){
                var i;
                for (i=0; i<6; i++){ParentGenArray[i]=ParentGen%2;ParentGen>>>=1;}
                return ParentGenArray}

        function MakeGenString(ParentGenArray){
                HelpArray=new Array(12);
                        HelpArray[0]='D';
                        HelpArray[1]='D';
                        HelpArray[2]='B';
                        HelpArray[3]='B';
                        HelpArray[4]='o';
                        HelpArray[5]='o';
                        HelpArray[6]='d';
                        HelpArray[7]='d';
                        HelpArray[8]='b';
                        HelpArray[9]='b';
                        HelpArray[10]='O';
                        HelpArray[11]='O';
                var i;var HelpString='';var HlpStr='';
                for (i=5; i>-1; i--){
                        if(ParentGenArray[i]==1)HelpString+=HelpArray[i+6];
                        else HelpString+=HelpArray[i];}
                return HelpString;}
 
        function MakeLitterTable(SArray,QArray){
                LitterGenArray=new Array(384);
                HA=new Array(24);
                        HA[0]=0; HA[1]=2; HA[2]=4; HA[3]=0; HA[4]=2; HA[5]=5; HA[6]=0; HA[7]=3; HA[8]=4; HA[9]=0; HA[10]=3; HA[11]=5; HA[12]=1; HA[13]=2; HA[14]=4; HA[15]=1; HA[16]=2; HA[17]=5; HA[18]=1; HA[19]=3; HA[20]=4; HA[21]=1; HA[22]=3; HA[23]=5;
                var p=0;var q=0;var r=0;var x=0;var y=0;var z=0;var i=0;varj=0;var a=0;var b=0;var c=0;var e=0;var v=0;
                for(i=0;i<64;i++)LitterIndexArray[i]=0;
                for(i=0;i<8;i++){x=HA[q];y=HA[q+1];z=HA[q+2];q+=3;r=0;
                        for(j=0;j<8;j++){a=HA[r];b=HA[r+1];c=HA[r+2];r+=3;
                                LitterGenArray[p]=SArray[x];
                                LitterGenArray[p+1]=QArray[a];
                                LitterGenArray[p+2]=SArray[y];
                                LitterGenArray[p+3]=QArray[b];
                                LitterGenArray[p+4]=SArray[z];
                                LitterGenArray[p+5]=QArray[c];
                                e=0;v=1; 
                                for(t=p;t<p+6;t+=2){
                                        if(LitterGenArray[t]<LitterGenArray[t+1]){
                                                u=LitterGenArray[t];
                                                LitterGenArray[t]=LitterGenArray[t+1];
                                                LitterGenArray[t+1]=u;}
                                        if(LitterGenArray[t]==1)e+=v;
                                                v*=2;
                                        if(LitterGenArray[t+1]==1)e+=v;
                                                v*=2;}
                                p+=6;
                                LitterIndexArray[e]+=1;}}}

        function MainPartString(One,Two,Three,Four,Five,Six,MC){
                var HelpString=''; var e=0;

                e+=LitterIndexArray[One];
                e+=LitterIndexArray[Two];
                e+=LitterIndexArray[Three];
                e+=LitterIndexArray[Four];
                e+=LitterIndexArray[Five];
                e+=LitterIndexArray[Six];
                if(e>0)HelpString=e/.64+'% '+MainColorArray[MC]+', ';
                return HelpString}

        function MainPartStringExtra(One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Eleven,Twelve){
        var e=0;
        e+=LitterIndexArray[One];
        e+=LitterIndexArray[Two];
        e+=LitterIndexArray[Three];
        e+=LitterIndexArray[Four];
        e+=LitterIndexArray[Five];
        e+=LitterIndexArray[Six];
        e+=LitterIndexArray[Seven];
        e+=LitterIndexArray[Eight];
        e+=LitterIndexArray[Nine];
        e+=LitterIndexArray[Ten];
        e+=LitterIndexArray[Eleven];
        e+=LitterIndexArray[Twelve];
        return e}

        function MakeLitterMainString(){
        var MainString='\nLITTER\n';var Number=0;var RedCnt=0;var CreamCnt=0;
        if((QueenIndex<4&&SireIndex<4)||((QueenIndex>3&&QueenIndex<8)&&(SireIndex>3&&SireIndex<8))){
                MainString+=MainPartString(0,1,4,5,64,64,0);
                MainString+=MainPartString(3,7,64,64,64,64,1);
                MainString+=MainPartString(12,13,64,64,64,64,2);
                MainString+=MainPartString(15,64,64,64,64,64,3);
                MainString+=MainPartString(48,49,52,53,60,61,4);
                MainString+=MainPartString(51,55,63,64,64,64,6);}
        else{
                MainString+='FEMALES: ';
                MainString+=MainPartString(0,1,4,5,64,64,0);
                MainString+=MainPartString(3,7,64,64,64,64,1);
                MainString+=MainPartString(12,13,64,64,64,64,2);
                MainString+=MainPartString(15,64,64,64,64,64,3);
                MainString+=MainPartString(16,17,20,21,64,64,8);
                MainString+=MainPartString(19,23,64,64,64,64,9);
                MainString+=MainPartString(28,29,64,64,64,64,10);
                MainString+=MainPartString(31,64,64,64,64,64,11);
                MainString+=MainPartString(48,49,52,53,60,61,4);
                MainString+=MainPartString(51,55,63,64,64,64,6);
                MainString+='\n  MALES: '; 
                if(SireIndex>3&&QueenIndex<4){
                        MainString+=MainPartString(16,17,20,21,64,64,0);
                        MainString+=MainPartString(19,23,64,64,64,64,1);
                        MainString+=MainPartString(28,29,64,64,64,64,2);
                        MainString+=MainPartString(31,64,64,64,64,64,3);}
                else{
                        Number=MainPartStringExtra(0,1,4,5,16,17,20,21,48,49,52,53);
                        if(Number!=0){
                                if(QueenIndex>3&&QueenIndex<8)RedCnt=Number/.64;
                                else{RedCnt=Number/1.28;MainString+=Number/1.28+'% '+MainColorArray[0]+', ';}}
                        Number=MainPartStringExtra(3,7,19,23,51,55,64,64,64,64,64,64);
                        if(Number!=0){
                                if(QueenIndex>3&&QueenIndex<8)CreamCnt=Number/.64;
                                else{CreamCnt=Number/1.28;MainString+=Number/1.28+'% '+MainColorArray[1]+', ';}}
                        Number=MainPartStringExtra(12,13,28,29,60,61,64,64,64,64,64,64);
                        if(Number!=0){
                                if(QueenIndex>3&&QueenIndex<8)RedCnt+=Number/.64;
                                else{RedCnt+=Number/1.28;MainString+=Number/1.28+'% '+MainColorArray[2]+', ';}}
                        Number=MainPartStringExtra(15,31,63,64,64,64,64,64,64,64,64,64);
                        if(Number!=0){
                                if(QueenIndex>3&&QueenIndex<8)CreamCnt+=Number/.64;
                                else{CreamCnt+=Number/1.28;MainString+=Number/1.28+'% '+MainColorArray[3]+', ';}}
                        if(RedCnt!=0)MainString+=RedCnt+'% '+MainColorArray[4]+', ';
                        if(CreamCnt!=0)MainString+=CreamCnt+'% '+MainColorArray[6]+', ';}}
                return MainString}

        function calc(){
                var SireGen=0;var QueenGen=0;
                var SireGenString='';var QueenGenString='';var KittenGenString='';var LitterGenString='';
                SireGenArray=new Array(6);QueenGenArray=new Array(6);KittenGenArray=new Array(6);
                SireIndex=document.ColorTable.sire.selectedIndex;
                SetBox(SireIndex,1,3,6,7,9,11,document.ColorTable.SCarryBlue);
                SetBox(SireIndex,2,3,5,7,10,11,document.ColorTable.SCarryChoc);
                SireGen=MakeGen(SireIndex,document.ColorTable.SCarryBlue,document.ColorTable.SCarryChoc);
                QueenIndex=document.ColorTable.queen.selectedIndex;
                SetBox(QueenIndex,1,3,6,7,9,11,document.ColorTable.QCarryBlue);
                SetBox(QueenIndex,2,3,5,7,10,11,document.ColorTable.QCarryChoc);
                QueenGen=MakeGen(QueenIndex,document.ColorTable.QCarryBlue,document.ColorTable.QCarryChoc);
                SireFeno=MainColorArray[SireIndex];
                SireGenArray=MakeParentArray(SireGen,SireGenArray);
                SireGenString=MakeGenString(SireGenArray);
                QueenGenArray=MakeParentArray(QueenGen,QueenGenArray);
                QueenGenString=MakeGenString(QueenGenArray);
                SireString='  SIRE: '+SireFeno+'\tgenotype='+SireGenString+'\n';
                QueenString=' QUEEN: '+QueenFeno+'\tgenotype='+QueenGenString+'\n';
                MakeLitterTable(SireGenArray,QueenGenArray);
                LitterMainColorString=MakeLitterMainString();
                LitterMainColorString+='\n\ngenotypes:\n';
                for(i=0;i<63;i++){
                        j=LitterIndexArray[i];
                        if(j!=0){
                                KittenGenArray=MakeParentArray(i,KittenGenArray);
                                KittenGenString=MakeGenString(KittenGenArray);
                                LitterGenString+=j/.64+'% '+KittenGenString+', ';}}
                document.ColorTable.Results.value=SireString+QueenString+LitterMainColorString+LitterGenString;}
//-->

