function setSegment(ind) {
	var strANY='\
		<select size="4" name="Segment" >\
		<option value="any">any</option>\
		<option value="1"  >1 (PB1/PB2)</option>\
		<option value="2"  >2 (PB2/PB1)</option>\
		<option value="3"  >3 (PA/P3)</option>\
		<option value="4"  >4 (HA/HE)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA/MP)</option>\
		<option value="7"  >7 (MP/NS)</option>\
		<option value="8"  >8 (NS)</option>\
		</select>\
  ';

	var strA='\
		<select size="4" name="Segment" >\
		<option value="any">any</option>\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (PA)</option>\
		<option value="4"  >4 (HA)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA)</option>\
		<option value="7"  >7 (MP)</option>\
		<option value="8"  >8 (NS)</option>\
		</select>\
  ';

	var strB='\
		<select size="4" name="Segment" >\
		<option value="any">any</option>\
		<option value="1"  >1 (PB1)</option>\
		<option value="2"  >2 (PB2)</option>\
		<option value="3"  >3 (PA)</option>\
		<option value="4"  >4 (HA)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA)</option>\
		<option value="7"  >7 (MP)</option>\
		<option value="8"  >8 (NS)</option>\
		</select>\
  ';

	var strC='\
		<select size="4" name="Segment" >\
		<option value="any">any</option>\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (P3)</option>\
		<option value="4"  >4 (HE)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (MP)</option>\
		<option value="7"  >7 (NS)</option>\
		</select>\
  ';

	save=document.form.Segment.selectedIndex;

	//alert(ind);
	if(ind==0)
		str=strANY;
	else if(ind==1)
		str=strA;
	else if(ind==2)
		str=strB;
	else if(ind==3)
		str=strC;

	document.getElementById('Segment').innerHTML=str;
	if(ind==3 && save>7) save=7;
    else if(ind != 3 && save > 8) save = 8;
	document.form.Segment.selectedIndex=save;
}

function setSegmentTree(ind) {
	var strA='\
		<select size="4" name="Segment" >\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (PA)</option>\
		<option value="4"  >4 (HA)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA)</option>\
		<option value="7"  >7 (MP)</option>\
		<option value="8"  >8 (NS)</option>\
		</select>\
  ';

	var strB='\
		<select size="4" name="Segment" >\
		<option value="1"  >1 (PB1)</option>\
		<option value="2"  >2 (PB2)</option>\
		<option value="3"  >3 (PA)</option>\
		<option value="4"  >4 (HA)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA)</option>\
		<option value="7"  >7 (MP)</option>\
		<option value="8"  >8 (NS)</option>\
		</select>\
  ';

	var strC='\
		<select size="4" name="Segment" >\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (P3)</option>\
		<option value="4"  >4 (HE)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (MP)</option>\
		<option value="7"  >7 (NS)</option>\
		</select>\
  ';

	save=document.form.Segment.selectedIndex;

	//alert(ind);
	//alert(save);

	if(ind==0)
		str=strA;
	else if(ind==1)
		str=strB;
	else if(ind==2)
		str=strC;

	document.getElementById('Segment').innerHTML=str;
	if(ind==2 && save>7) save=6;
    else if(ind != 2 && save > 8) save = 7;
	document.form.Segment.selectedIndex=save;
}

function globalSetSegment(show_any) {
	/*
    if(document.getElementById('showN').checked) {//nucleotide
        if(!show_any) setSegmentTree(document.form.tax_id.selectedIndex);
        else setSegment(document.form.tax_id.selectedIndex);
        return;
    }//protein
    */
    ind = document.form.tax_id.selectedIndex;
    var strt = '<select size="4" name="Segment">';
    if(show_any) {
        strt += '<option value="any">any</option>';
    } else {
        ++ind;
    }     
    /*
    if(ind == 1) {// Infl. A
        strt += '\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (PB1-F2)</option>\
		<option value="4"  >4 (PA)</option>\
		<option value="5"  >5 (HA)</option>\
		<option value="6"  >6 (NP)</option>\
		<option value="7"  >7 (NA)</option>\
		<option value="8"  >8 (M1)</option>\
		<option value="9"  >9 (M2)</option>\
		<option value="10"  >10 (NS1)</option>\
		<option value="11"  >11 (NS2)</option>'
    } else if(ind == 2) {//Infl B
        strt += '\
		<option value="1"  >1 (PB1)</option>\
		<option value="2"  >2 (PB2)</option>\
		<option value="3"  >3 (PA)</option>\
		<option value="4"  >4 (HA)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (NA)</option>\
		<option value="7"  >7 (NB)</option>\
		<option value="8"  >8 (M1)</option>\
		<option value="9"  >9 (BM2)</option>\
		<option value="10"  >10 (NS1)</option>\
		<option value="11"  >11 (NS2)</option>'
    } else if(ind == 3) {//Infl C
        strt += '\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (P3)</option>\
		<option value="4"  >4 (HE)</option>\
		<option value="5"  >5 (NP)</option>\
		<option value="6"  >6 (M1)</option>\
		<option value="7"  >7 (CM2)</option>\
		<option value="8"  >8 (NS1)</option>\
		<option value="9"  >9 (NS2)</option>'
    } else {//ANY
        strt += '\
		<option value="1"  >1 (PB2)</option>\
		<option value="2"  >2 (PB1)</option>\
		<option value="3"  >3 (PB1-F2)</option>\
		<option value="4"  >4 (PA)</option>\
		<option value="6"  >5 (P3)</option>\
		<option value="6"  >6 (HA)</option>\
		<option value="7"  >7 (HE)</option>\
		<option value="8"  >8 (NP)</option>\
		<option value="9"  >9 (NA)</option>\
		<option value="10"  >10 (NB)</option>\
		<option value="11"  >11 (M1)</option>\
		<option value="12"  >12 (M2)</option>\
		<option value="13"  >13 (BM2)</option>\
		<option value="14"  >14 (CM2)</option>\
		<option value="15"  >15 (NS1)</option>\
		<option value="16"  >16 (NS2)</option>'
    }
    */
    if(ind == 1) {// Infl. A
        strt += '\
		<option value="1"  >PB2</option>\
		<option value="2"  >PB1</option>\
		<option value="3"  >PB1-F2</option>\
		<option value="4"  >PA</option>\
		<option value="5"  >HA</option>\
		<option value="6"  >NP</option>\
		<option value="7"  >NA</option>\
		<option value="8"  >M1</option>\
		<option value="9"  >M2</option>\
		<option value="10"  >NS1</option>\
		<option value="11"  >NS2</option>'
    } else if(ind == 2) {//Infl B
        strt += '\
		<option value="1"  >PB1</option>\
		<option value="2"  >PB2</option>\
		<option value="3"  >PA</option>\
		<option value="4"  >HA</option>\
		<option value="5"  >NP</option>\
		<option value="6"  >NA</option>\
		<option value="7"  >NB</option>\
		<option value="8"  >M1</option>\
		<option value="9"  >BM2</option>\
		<option value="10"  >NS1</option>\
		<option value="11"  >NS2</option>'
    } else if(ind == 3) {//Infl C
        strt += '\
		<option value="1"  >PB2</option>\
		<option value="2"  >PB1</option>\
		<option value="3"  >P3</option>\
		<option value="4"  >HE</option>\
		<option value="5"  >NP</option>\
		<option value="6"  >M1</option>\
		<option value="7"  >CM2</option>\
		<option value="8"  >NS1</option>\
		<option value="9"  >NS2</option>'
    } else {//ANY
        strt += '\
		<option value="1"  >PB2</option>\
		<option value="2"  >PB1</option>\
		<option value="3"  >PB1-F2</option>\
		<option value="4"  >PA</option>\
		<option value="6"  >P3</option>\
		<option value="6"  >HA</option>\
		<option value="7"  >HE</option>\
		<option value="8"  >NP</option>\
		<option value="9"  >NA</option>\
		<option value="10"  >NB</option>\
		<option value="11"  >M1</option>\
		<option value="12"  >M2</option>\
		<option value="13"  >BM2</option>\
		<option value="14"  >CM2</option>\
		<option value="15"  >NS1</option>\
		<option value="16"  >NS2</option>'
    }
    strt += '</select>';
	save=document.form.Segment.selectedIndex;
    document.getElementById('Segment').innerHTML=strt;
    if(ind == 3 && save > 8) save = 0;
    else if(ind != 3 && save > 11) save = 11;
    if(save > 10 && !show_any) save = 10;
    document.form.Segment.selectedIndex=save;
}

function AllMultipleSpecies(box,name,is_nuc)
{
	var fl=1;
	var ABC=0;
	var save=new Array(16);
	var segment=0;

	var ind=0;
	while(typeof document.form[ind] != "undefined" ) {
	 	if(document.form[ind].name == name) {
			if(document.form[ind].checked==false) {
				fl=0;
            }
			if(document.form[ind].checked==true) {
				if(document.form[ind].value=='197911') ABC=ABC | 4;
				if(document.form[ind].value=='197912') ABC=ABC | 2;
				if(document.form[ind].value=='197913') ABC=ABC | 1;
            }
		}
        
	 	if(document.form[ind].name == 'Segment') {
			if(document.form[ind].checked==true)
				save[segment]=1;
			else
				save[segment]=0;
            segment++;
		}

	ind++;
	}

	if(fl)
		document.form[box].checked=true;
	else
		document.form[box].checked=false;

	SetupSegments(ABC, is_nuc);
}

function SetupSegments(ABC, is_nuc)
{
	var fl=1;
	var save=new Array(16);
	var segment=0;

	var ind;

    for(ind=0;ind<16;++ind) save[ind] = 0;

    ind = 0;

	while(typeof document.form[ind] != "undefined" ) {        
	 	if(document.form[ind].name == 'Segment') {
			if(document.form[ind].checked==true)
				save[segment]=1;
			else
				save[segment]=0;
            segment++;
		}

	ind++;
	}


	var num;
  var set;


 if(is_nuc) {

	var ANY=new Array(8);
	ANY[0]='(PB1/PB2)';
	ANY[1]='(PB2/PB1)';
	ANY[2]='(PA/P3)';
	ANY[3]='(HA/HE)';
	ANY[4]='(NP)';
	ANY[5]='(NA/MP)';
	ANY[6]='(MP/NS)';
	ANY[7]='(NS)';

	var A=new Array(8);
	A[0]='(PB2)';
	A[1]='(PB1)';
	A[2]='(PA)';
	A[3]='(HA)';
	A[4]='(NP)';
	A[5]='(NA)';
	A[6]='(MP)';
	A[7]='(NS)';

	var B=new Array(8);
	B[0]='(PB1)';
	B[1]='(PB2)';
	B[2]='(PA)';
	B[3]='(HA)';
	B[4]='(NP)';
	B[5]='(NA)';
	B[6]='(MP)';
	B[7]='(NS)';

	var C=new Array(7);
	C[0]='(PB2)';
	C[1]='(PB1)';
	C[2]='(P3)';
	C[3]='(HE)';
	C[4]='(NP)';
	C[5]='(MP)';
	C[6]='(NS)';

	var AB=new Array(8);
	AB[0]='(PB1/PB2)';
	AB[1]='(PB2/PB1)';
	AB[2]='(PA)';
	AB[3]='(HA)';
	AB[4]='(NP)';
	AB[5]='(NA)';
	AB[6]='(MP)';
	AB[7]='(NS)';

	var AC=new Array(8);
	AC[0]='(PB2)';
	AC[1]='(PB1)';
	AC[2]='(PA/P3)';
	AC[3]='(HA/HE)';
	AC[4]='(NP)';
	AC[5]='(NA/MP)';
	AC[6]='(MP/NS)';
	AC[7]='(NS)';

	var BC=new Array(8);
	BC[0]='(PB1/PB2)';
	BC[1]='(PB2/PB1)';
	BC[2]='(PA/P3)';
	BC[3]='(HA/HE)';
	BC[4]='(NP)';
	BC[5]='(NA/MP)';
	BC[6]='(MP/NS)';
	BC[7]='(NS)';

	num=8;
    set=ANY;

	if(ABC==0 || ABC==7) ;
	else if(ABC==4) set=A;
	else if(ABC==2) set=B;
	else if(ABC==1) { set=C; num=7; }
	else if(ABC==6) set=AB;
	else if(ABC==5) set=AC;
	else if(ABC==3) set=BC;

  }else {//protein
	if(ABC==4) {
        num = 11;
        set=new Array(num);
        set[0] = "PB2";
        set[1] = "PB1";
        set[2] = "PB1-F2";
        set[3] = "PA";
        set[4] = "HA";
        set[5] = "NP";
        set[6] = "NA";
        set[7] = "M1";
        set[8] = "M2";
        set[9] = "NS1";
        set[10] = "NS2";
    } else if(ABC==2) {
        num = 11;
        set=new Array(num);
        set[0] = "PB1";
        set[1] = "PB2";
        set[2] = "PA";
        set[3] = "HA";
        set[4] = "NP";
        set[5] = "NA";
        set[6] = "NB";
        set[7] = "M1";
        set[8] = "BM2";
        set[9] = "NS1";
        set[10] = "NS2";
    }
	else if(ABC==1) { 
        num = 9;
        set=new Array(num);
        set[0] = "PB2";
        set[1] = "PB1";
        set[2] = "P3";
        set[3] = "HE";
        set[4] = "NP";
        set[5] = "M1";
        set[6] = "CM2";
        set[7] = "NS1";
        set[8] = "NS2";
    } else {
        num = 16;
        set=new Array(num);
        set[0] = "PB2";
        set[1] = "PB1";
        set[2] = "PB1-F2";
        set[3] = "PA";
        set[4] = "P3";
        set[5] = "HA";
        set[6] = "HE";
        set[7] = "NP";
        set[8] = "NA";
        set[9] = "NB";
        set[10] = "M1";
        set[11] = "M2";
        set[12] = "BM2";
        set[13] = "CM2";
        set[14] = "NS1";
        set[15] = "NS2";
    }
 }

	fl=1;
	var str = '<table width="100%" border="0">';
	for(var i=0;i<num;i++) {
    if(save[i]==1) checked='checked';
		else {
			checked='';
			fl=0;
		}

		segment=i+1;
		str=str+'<tr bgcolor="#ffffff">\
			<td align="left"><input type="checkbox" name="Segment" value="'+segment+'" '+checked+
			' onClick=AllMultiple("tSegment","Segment")>';
        if(is_nuc) str += segment + ' ';
        str += set[i]+'</td></tr>';
	}
	str=str+'</table>';

	if(fl)
		document.form['tSegment'].checked=true;
	else
		document.form['tSegment'].checked=false;

	document.getElementById('ABCSegment').innerHTML=str;
}
