// mami.js

// open the help window
function help(anchor) {
    window.open('help.html#' + anchor, 'help', 'toolbar=no,width=500,height=400,scrollbars=yes,resizable=yes,status=yes');
}
var clearedFields = [];
function clearVal(eltId) {
    if(clearedFields[eltId]) {
        return;
    }
    clearedFields[eltId] = true;
    document.getElementById(eltId).value = '';
}
function validateForm(singleCat) {
    var mirVal = false;
    var targVal = false;
    if(!singleCat || singleCat == 'mir')
        mirVal = validateMirs();
    if(mirVal && (!singleCat || singleCat == 'target'))
        targVal = validateTargs();
    mir_targ = document.getElementById('mir-target-pairs');
    if((!singleCat && mirVal == 'NO INPUT' && targVal == 'NO INPUT' && !mir_targ.value) || (singleCat == 'mir' && mirVal == 'NO INPUT') || (singleCat == 'target' && targVal == 'NO INPUT')) {
        alert('Please enter a query.');        
        return false;
    } else {
        return ((mirVal && targVal) || (singleCat == 'mir' && mirVal) || (singleCat == 'target' && targVal));
    }
}

// can return true (success), false (no good), or NO INPUT (ok in some cases)
function validateMirs() {
    var mir_box = document.getElementById('mir_box').value;
    var mir_file = document.getElementById('mir_file').value;
    var mir_loc = document.getElementById('mir_gl_chr').value;
    if(mir_loc == 'Num') {
        mir_loc = false;
    }
    var mir_start = document.getElementById('mir_gl_start').value.replace(/,/g, '');
    var mir_end   = document.getElementById('mir_gl_end').value.replace(/,/g, '');
    if((mir_box && mir_file) || (mir_box && mir_loc) || (mir_file && mir_loc)) {
        alert('Please choose a single input method for the miRs.');
        return false;
    }
    if(mir_loc && parseInt(mir_start) >= parseInt(mir_end)) {
        alert('miR start position must be less than end position.');
        return false;
    }
    if(!(mir_box || mir_file || mir_loc)) {
        return 'NO INPUT';
    }
    return true;
}
function validateTargs() {
    var tg_box = document.getElementById('tg_box').value;
    var tg_file = document.getElementById('tg_file').value;
    var tg_loc = document.getElementById('targ_gl_chr').value;
    if(tg_loc == 'Num') {
        tg_loc = false;
    }
    var tg_start = document.getElementById('targ_gl_start').value.replace(/,/g, '');
    var tg_end   = document.getElementById('targ_gl_end').value.replace(/,/g, '');

    if(tg_loc && parseInt(tg_start) >= parseInt(tg_end)) {
        alert('Target start position must be less than end position.');
        return false;
    }
    if((tg_box && tg_file) || (tg_box && tg_loc) || (tg_file && tg_loc)) {
        alert('Please choose a single input method for targets.');
        return false;
    }
    if(!(tg_box || tg_file || tg_loc)) {
        return 'NO INPUT';
    }
    return true;
}