function CheckPos() {
    var l = document.search.pos.length;
    if (document.search.position.checked == false) {
        for (i = 0; i < l; i++) {
            document.search.pos[i].checked = false;
        }
    } else {
        flag = 0;
        for (i = 0; i < l; i++) {
            if (document.search.pos[i].checked == false) {
                flag += 1;
            }
        }
        if (flag == l) {
            for (i = 0; i < l; i++) {
                if (document.search.pos[i].value == 'N') {
                    document.search.pos[i].checked = true;
                }
            }
        }
    }
}

function SetPos() {
    if (document.search.position.checked == false) {
        document.search.position.checked = true;
    }
}

function CheckType() {
    var l = document.search.type.length;
    if (document.search.AStype.checked == false) {
        for (i = 0; i < l; i++) {
            document.search.type[i].checked = false;
        }
    } else {
        flag = 0;
        for (i = 0; i < l; i++) {
            if (document.search.type[i].checked == false) {
                flag += 1;
            }
        }
        if (flag == l) {
            for (i = 0; i < l; i++) {
                if (document.search.type[i].value == 'INDEL') {
                    document.search.type[i].checked = true;
                }
            }
        }
    }
}
 
function SetType() {
    if (document.search.AStype.checked == false) {
        document.search.AStype.checked = true;
    }
}

function CheckCore() {
    if (document.search.core.checked == true) {
        if (document.search.structure.checked == false) {
            document.search.structure.checked = true;
        }
        for (i = 0; i < document.search.str.length; i++) {
            if (document.search.str[i].value == 'yes') {
                document.search.str[i].checked = true;
            }
        }
    } else if (document.search.core.checked == false) {
        CheckFunction();
    }
}
    
function ClearCore() {
    document.search.core.checked = false;
}

function CheckFunction() {
    flag1 = 0;
    if (document.search.subunit.checked == true) {
        flag1 += 1;
    }
    if (document.search.nucleic.checked == true) {
        flag1 += 1;
    }
    if (document.search.hetero.checked == true) {
        flag1 += 1;
    }

    if (flag1 > 0) {
        if (document.search.structure.checked == false) {
            document.search.structure.checked = true;
        }
        for (i = 0; i < document.search.str.length; i++) {
            if (document.search.str[i].value == 'yes') {
                document.search.str[i].checked = true;
            }
        }
        if (flag1 == 1) {
            l = document.search.select.length;
            flag2 = 0;
            for (i = 0; i < l; i++) {
                if (document.search.select[i].checked == false) {
                    flag2 += 1;
                }
            }
            if (flag2 != l) {
                for (i = 0; i < l; i++) {
                    document.search.select[i].checked = false;
                }
            }
        } else if (flag1 > 1) {
            l = document.search.select.length;
            flag2 = 0;
            for (i = 0; i < l; i++) {
                if (document.search.select[i].checked == false) {
                    flag2 += 1;
                }
            }
            if (flag2 == l) {
                for (i = 0; i < l; i++) {
                    if (document.search.select[i].value == 'and') {
                        document.search.select[i].checked = true;
                    }
                }
            }
        }
    } else if (flag1 == 0) {
        flag = 0;
        if (document.search.core.checked == true) {
            flag += 1;
        }
        if (flag == 0) {
            document.search.structure.checked = false;
            for (i = 0; i < document.search.str.length; i++) {
                document.search.str[i].checked = false;
            }
            ClearCore();
        }
    }
}

function CheckFunction2() {
    document.search.subunit.checked = false;
    document.search.nucleic.checked = false;
    document.search.hetero.checked = false;
    if (document.search.structure.checked == false) {
        document.search.structure.checked = true;
    }

    for (i = 0; i < document.search.str.length; i++) {
        if (document.search.str[i].value == 'yes' &&
            document.search.str[i].checked == false)
        {
            document.search.str[i].checked = true;
        }
    }
}

function CheckANDOR() {
    flag = 0;
    if (document.search.subunit.checked == true) {
        flag += 1;
    }
    if (document.search.nucleic.checked == true) {
        flag += 1;
    }
    if (document.search.hetero.checked == true) {
        flag += 1;
    }
    if (flag < 2) {
        for (i = 0; i < document.search.select.length; i++) {
            if (document.search.select[i].value == 'and' ||
                document.search.select[i].value == 'or')
            {
                document.search.select[i].checked = false;
            }
        }
    }
}

function ResetFunction() {
    flag1 = 0;
    flag2 = 0;
    if (document.search.subunit.checked == true) {
        flag1 += 1;
    }
    if (document.search.nucleic.checked == true) {
        flag1 += 1;
    }
    if (document.search.hetero.checked == true) {
        flag1 += 1;
    }

    var l = document.search.select.length;
    for (i = 0; i < l; i++) {
        if (document.search.select[i].checked == false) {
            flag2 += 1;
        }
    }
    if (flag1 > 1 && flag2 == l) {
        for (i = 0; i < l; i++) {
            if (document.search.select[i].value == 'and') {
                document.search.select[i].checked = true;
            }
        }
    }
}

function ClearFunction() {
    document.search.subunit.checked = false;
    document.search.nucleic.checked = false;
    document.search.hetero.checked = false;
    for (i = 0; i < document.search.select.length; i++) {
        document.search.select[i].checked = false;
    }
}

function SetStructure() {
    if (document.search.structure.checked == false) {
        document.search.structure.checked = true;
    }

    for (i = 0; i < document.search.str.length; i++) {
        if (document.search.str[i].value == 'yes' &&
            document.search.str[i].checked == true)
        {
            ResetFunction();
        } else if (document.search.str[i].value == 'no' &&
                   document.search.str[i].checked == true)
        {
            ClearCore();
            ClearFunction();
        }
    }
}

function CheckStructure() {
    var l = document.search.str.length;
    if (document.search.structure.checked == false) {
        for (i = 0; i < l; i++) {
            document.search.str[i].checked = false;
        }
        ClearCore();
        ClearFunction();
    } else {
        flag = 0;
        for (i = 0; i < l; i++) {
            if (document.search.str[i].checked == false) {
                flag += 1;
            }
        }
        if (flag == l) {
            for (i = 0; i < l; i++) {
                if (document.search.str[i].value == 'yes') {
                    document.search.str[i].checked = true;
                }
            }
            ResetFunction();
        } else {
            for (i = 0; i < l; i++) {
                if (document.search.str[i].value == 'yes' &&
                    document.search.str[i].checked == true)
                {
                    ResetFunction();
                } else if (document.search.str[i].value == 'no' &&
                    document.search.str[i].checked == true)
                {
                    ClearCore();
                    ClearFunction();
                }
            }
        }
    }
}
 
function ChangeOption(n) {
	var elem1 = document.getElementById("cons_option");
	var elem2 = document.getElementById("source_sp");
	switch (n) {
		case 0:
			elem1.style.display = "none";
			break;
		case 1:
			if (elem2.value == "sp") {
				elem1.style.display = "none";
			} else {
				elem1.style.display = "table-row";
			}
			break;
	}
}

function ChangeSp(n) {
	var elem1 = document.getElementById("search_mode");
	var elem2 = document.getElementById("search_op");
	var elem3 = document.getElementById("cons_option");
	switch (n) {
		case 0:
		case 1:
			if (elem1.value == "cluster") {
				elem2.style.display = "block";
				elem3.style.display = "none";
			} else if (elem1.value="region") {
				elem2.style.display = "block";
				elem3.style.display = "table-row";
			}
			break;
		case 2:
			elem2.style.display = "none";
			elem3.style.display = "none";
			break;
	}
}

function ChangeSpSeq(n) {
	var elem = document.getElementById("searchSeqOp");
	switch (n) {
		case 0:
		case 1:
			elem.style.display = "block";
			break;
		case 2:
			elem.style.display = "none";
			break;
	}
}

function ChangeSp3D(n) {
	var elem = document.getElementById("search3DOp");
	switch (n) {
		case 0:
		case 1:
			elem.style.display = "block";
			break;
		case 2:
			elem.style.display = "none";
			break;
	}
}

