var g_BlockQueryChangeEvents = false;
var g_SearchFields = new Array();
var g_AdvancedSearch = false;

function gsdlGetQueryField(elem, index) {
    if (typeof(index) == 'undefined' || index == -1)
        return elem;
    return elem[index];
}

function SearchField(name, index, type, defaultValue) {
    this.name = name;
    this.index = index;
    this.type = type;
    this.defaultValue = defaultValue;

    this.update = function() {
        var value = gsdlGetValue(gsdlGetArrayElement(this.name));
        if (this.type == 'fqv')
            gsdlInitValue(gsdlGetQueryField(document.QueryForm.fqv, this.index), value);
        else if (this.type == 'fqf')
        {
            var reg = new RegExp('\\|\\|', 'g');
            value = value.replace(reg, ':');
            gsdlInitValue(gsdlGetQueryField(document.QueryForm.fqf, this.index), value);
        }
        else
            alert("Invalid type: " + this.type);
    }

    this.init = function() {
        var value = '';
        if (this.type == 'fqv')
            value = gsdlGetValue(gsdlGetQueryField(document.QueryForm.fqv, this.index));
        else if (this.type == 'fqf')
        {
            value = gsdlGetValue(gsdlGetQueryField(document.QueryForm.fqf, this.index));
            var reg = new RegExp(':', 'g');
            value = value.replace(reg, '||');
        }
        else
            alert("Invalid type: " + this.type);
        gsdlInitValue(gsdlGetArrayElement(this.name), value);
    }

    this.reset = function() {
        var controls = gsdlGetArrayElement(this.name);
        for(var i = 0; i < controls.length; ++i) {
            controls[i].checked = ((controls[i].value == this.defaultValue) ? true : false);
        }
    }
}

function mggInsertOperator(value) {
    if (document.QueryForm.allOperators.checked)
        if (document.QueryForm.fqv[fqvtextidx].value) {
            document.QueryForm.fqv[fqvtextidx].value = document.QueryForm.fqv[fqvtextidx].value + ' ' + value + ' ';
        } else {
            document.QueryForm.fqv[fqvtextidx].value = value + ' ';
        }
    document.QueryForm.fqv[0].focus();
}

function updateBoolean(fromBtn) {
    for(var i = 0; i < 4; ++i) {
        var objSub = eval('document.QueryForm.bool' + i);
        objSub.disabled = !fromBtn.checked;
    }

    gsdlPrefUpdateArg('bo', fromBtn.checked ? 1 : 0);
}

function showNearBox() {
    if (!cgiarg.prx)
    {
        mggInsertOperator('NEAR' + cgiarg.pr);
        return;
    }
    document.ProxyForm.proxy.value = cgiarg.pr;
    PositionBox('near');
}

function updateProxy(value) {
    if (value <= 0)
        value = '';
    var proxy = 'NEAR' + value;
    HideDescriptionBox('description');
    mggInsertOperator(proxy);
    gsdlPrefUpdateArg('pr', value);
}


function ToggleProxy() {
    var status = cgiarg.prx;
    gsdlPrefUpdateArg('prx', Math.abs(status - 1));
}

function isGoodNumericKey(evt) {

    //var charCode = (evt.charCode) ? evt.charCode : event.keyCode
    var charCode = evt.keyCode ? evt.keyCode : evt.charCode ? evt.charCode : evt.which;

    if ((charCode >= 48 && charCode <= 57) || charCode == 37 || charCode == 39 || charCode == 8 || charCode == 46) { // numeric
        return true;
    } else {
        return false;
    }
}

function GetProxyVal() {
    return cgiarg.pr;
}

function searchKeyword() {
    var keywords = gsdlGetValue(document.QueryForm.countries);
    if (keywords.length > 0) {
        var strURL = gsdlQueryURL;
        var queryOptions = '?g=Doc&amp;t=0&amp;r=1';
        strURL += queryOptions + '&amp;fqf=TI&amp;fqv=,,' + gsdl.escape(format(keywords)) + '&amp;fqc=and,and&amp;fqk=0,0,1&amp;fqs=0,0,0';
        gsdl_goto(strURL);
    }
}

function appendKeyword() {
    var myText = gsdlGetValue(document.QueryForm.kw);

    if (document.QueryForm.fqv[fqvtextidx].value) {
        document.QueryForm.fqv[fqvtextidx].value = document.QueryForm.fqv[fqvtextidx].value + ' "' + myText + '"';
    } else {
        document.QueryForm.fqv[fqvtextidx].value = '"' + myText + '"';
    }
}

function initQuickSearch() {
    var frm = gsdlGetElement('QuickQueryForm');
    if (frm != null && typeof(frm.quicktext) != 'undefined') {
        var field, j, i;
        var fqvs = typeof(argfqv) != 'undefined' ? argfqv.split(',') : [];
        var fqfs = typeof(argfqf) != 'undefined' ? argfqf.split(',') : [];
        frm.quicktext.value = '';
        for (j = frm.quicksrcbtn.length - 1; j > -1; --j) {
            field = frm.quicksrcbtn[j].value;
            for(i  = 0; i < fqfs.length && i < fqvs.length; ++i) {
                if (field == fqfs[i] && fqvs[i].length > 0) {
                    frm.quicksrcbtn[j].checked = true;
                    frm.quicktext.value = fqvs[i];
                    break;
                }
            }
        }
    }
}

function submitQuickSearch() {
    var frmQuickQuery = gsdlGetElement('QuickQueryForm');
    if (frmQuickQuery == null || typeof(frmQuickQuery.quicktext) == 'undefined') return false;
    var strText = format(gsdlGetValue(frmQuickQuery.quicktext).gsdl_clean());
    if (strText.length == 0) {
        return false;
    }
    var frmQueryPost = gsdlGetElement('QueryPostForm');
    if (frmQueryPost == null) return false;
    g_gsdlPreferenceState.SetFormArgs(frmQueryPost);

    var i, idx, fqf = '', fqv = '', fqk = '', fqs = '', fqc = '';
    for (i = 0, idx = 0; i < frmQuickQuery.quicksrcbtn.length; ++i) {
        if (frmQuickQuery.quicksrcbtn[i].checked) {
            idx = 1;
            break;
        }
    }
    if (idx == 0) frmQuickQuery.quicksrcbtn[0].checked = true;
    for (i = 0; i < frmQuickQuery.quicksrcbtn.length; ++i) {
        if (i > 0) {
            fqf += ',';
            fqv += ',';
            fqk += ',';
            fqs += ',';
            fqc += ',';
        }
        fqf += frmQuickQuery.quicksrcbtn[i].value;
        if (frmQuickQuery.quicksrcbtn[i].checked) {
            fqv += strText;
        }
        fqk += cgiarg.k;
        fqs += cgiarg.s;
        fqc += 'or';
    }

    frmQueryPost.fqf.value = fqf;
    frmQueryPost.fqv.value = fqv;
    frmQueryPost.fqk.value = fqk;
    frmQueryPost.fqs.value = fqs;
    frmQueryPost.fqc.value = fqc;
    frmQueryPost.g.value = 'Doc';
    var date = new Date();
    frmQueryPost.qu.value = '' + gsdlNewQueryUniqueId();
    frmQueryPost.uq.value = '' + date.getTime();
    frmQueryPost.submit();

    return false;
}

function getsearchargs () {
    var args = '';
    args += '&amp;fqa=0&amp;fqv=' + argfqv + '&amp;fqf=' + argfqf;
    args += '&amp;fqk=' + argfqk + '&amp;fqs=' + argfqs + '&amp;fqc=' + argfqc + '&amp;adv=0';

    return args;
}

function getqueryargs () {
    return '&amp;fqa=1' + '&amp;q=' + argq + '&amp;fqv=' + argfqv + '&amp;fqf=' + argfqf
    + '&amp;fqk=' + argfqk + '&amp;fqs=' + argfqs + '&amp;fqc=' + argfqc;
}

function getstdargs() {
    var value = '';
    stdarg = '';
    if (cgiarg.h != '') {
        value = gsdlGetValue(document.QueryForm.h);
        if (value != cgiarg.h) {
            if (stdarg.length > 0) stdarg += '&amp;';
            stdarg += 'h=' + value;
        }
    }
    if (havegselection) {
        strText = 'Doc';
        if (stdarg.length > 0) stdarg += '&amp;';
        stdarg += 'g=' + strText;
    }

    if (typeof(document.QueryForm.j) != 'undefined' && document.QueryForm.j != null)
    {
        value = gsdlGetValue(document.QueryForm.j);
        if (value != cgiarg.j) {
            if (stdarg.length > 0) stdarg += '&amp;';
            stdarg += '&amp;j=' + value;
        }
    }

    if (typeof(document.QueryForm.t) != 'undefined' && document.QueryForm.t != null)
    {
        value = gsdlGetValue(document.QueryForm.t);
        if (value != cgiarg.t) {
            if (stdarg.length > 0) stdarg += '&amp;';
            stdarg += '&amp;t=' + value;
        }
    }

    if (typeof(document.QueryForm.s) != 'undefined' && document.QueryForm.s != null)
    {
        value = gsdlGetValue(document.QueryForm.s);
        if (value == '1') value = '0';
        else value = '1';
        if (stdarg.length > 0) stdarg += '&amp;';
        stdarg += '&amp;s=' + value;
    }
    if (stdarg.length > 0) stdarg += '&amp;';
    stdarg += 'hs=0&amp;qe=1';
    g_gsdlPreferenceState.argr = '1';
    var prefArgs = g_gsdlPreferenceState.GetArgs();
    if (prefArgs.length > 0) {
        stdarg += '&amp;' + prefArgs;
    }
    return stdarg;
}

function query_initialize() {
    var i;
    g_SearchFields.push(new SearchField('subj', 7, 'fqv'));

    if (document.QueryForm.fqf != null)
        initfqf();
    if (document.QueryForm.t != null)
        gsdlInitValue(document.QueryForm.t, cgiarg.t);
    if (document.QueryForm.fqv != null) {
        for (i = 0; i < document.QueryForm.fqv.length; ++i) {
            gsdlInitValue(document.QueryForm.fqv[i], '');
        }
        initfqv();
    }
    for (i = 0; i < g_SearchFields.length; ++i) {
        g_SearchFields[i].reset();
        g_SearchFields[i].init();
    }
    if (allChecked()) {
        document.QueryForm.checkall.checked = true;
    }
    g_BlockQueryChangeEvents = false;
    //initfqs();
    //initfqk();
    initfqc();
    return true;
}

// fqf - the field selection box
function initfqf() {
    var i;
    var fqf = argfqf.split(',');
    for (i = 0; i < fqf.length; ++i) {
        if (fqf[i] != '') {
            gsdlInitValue(document.QueryForm.fqf[i], fqf[i]);
        }
    }
    updatefqf();
}

function inittxti() {
    var fqf = argfqf.split(',');
    if (fqf.length > fqvtextidx) {
        gsdlInitValue(document.QueryForm.txti, fqf[fqvtextidx]);
    } else {
        gsdlInitValue(document.QueryForm.txti, document.QueryForm.fqf[fqvtextidx]);
    }
}

function updatetxti() {
    gsdlInitValue(document.QueryForm.fqf[fqvtextidx], gsdlGetValue(document.QueryForm.txti));
    updatefqf();
}

function updatefqf() {
    var i;
    argfqf = '';
    argfqf += gsdlGetValue(document.QueryForm.fqf[0]);
    for (i = 1; i < document.QueryForm.fqf.length; ++i) {
        argfqf += ',' + gsdlGetValue(document.QueryForm.fqf[i]);
    }
}


function clearfqf() {
    var i;
    for (i = 0; i < document.QueryForm.fqf.length; ++i) {
        var z = i;
        if (i >= document.QueryForm.fqf[i].options.length) z = z - document.QueryForm.fqf[i].options.length;
        document.QueryForm.fqf[i].options[z].selected = true;
    }
    updatefqf();
}

// fqc - the boolean operator selection box
function initfqc() {
    var i,j;
    fqc = argfqc.split(',');
    if (cgiarg.fqn == 2 || typeof(document.QueryForm.fqc[0]) == 'undefined') { // there will only be one fqc element
        gsdlInitValue(document.QueryForm.fqc, fqc[0]);
    }
    else {
        for (i = 0; i < fqc.length; ++i) {
            gsdlInitValue(document.QueryForm.fqc[i], fqc[i]);
        }
    }
    updatefqc();

}

function updatefqc() {
    var i;
    argfqc = '';
    if (cgiarg.fqn == 2 || typeof(document.QueryForm.fqc[0]) == 'undefined') {
        argfqc += gsdlGetValue(document.QueryForm.fqc);
    }
    else {
        argfqc += gsdlGetValue(document.QueryForm.fqc[0]);
        for (i = 1; i < document.QueryForm.fqc.length; ++i) {
            argfqc += ',' + gsdlGetValue(document.QueryForm.fqc[i]);
        }
    }
}


function clearfqc() {
    var i;
    if (cgiarg.fqn == 2) {
        document.QueryForm.fqc.options[0].selected = true;
    }
    else {
        for (i = 0; i < document.QueryForm.fqc.length; ++i) {
            document.QueryForm.fqc[i].options[0].selected = true;
        }
    }
    updatefqc();
}

// fqv - the query word/phrase text box
function initfqv() {
    var i;
    var fqv= argfqv.split(',');
    for (i=0; i < fqv.length; i++) {
        if (i == fqvtextidx) {
            var ligatureReg = new RegExp(String.fromCharCode(7527) + '(AND|OR|NOT|NEAR[0-9]*)' + String.fromCharCode(7527), 'g');
            gsdlInitValue(document.QueryForm.fqv[i], fqv[i].replace(ligatureReg, '$1'));
        } else {
            gsdlInitValue(document.QueryForm.fqv[i], fqv[i]);
        }
    }
    updatefqv();
}

function updatefqv2() {
    var i;
    argfqv = '';
    for (i = 0; i < document.QueryForm.fqv.length; ++i) {
        if (i > 0) argfqv += ',';
        if (i == fqvtextidx && document.QueryForm.allOperators.checked)
        {
            var ligatureReg = new RegExp('\\b(AND|OR|NOT|NEAR[0-9]*)\\b', 'g');
            var qtext = gsdlGetValue(document.QueryForm.fqv[i]).gsdl_clean();
            qtext = qtext.replace(ligatureReg, String.fromCharCode(7527) + '$1' + String.fromCharCode(7527));
            argfqv += gsdl.escape(format(qtext));
        }
        else
        {
            argfqv +=  gsdl.escape(format(gsdlGetValue(document.QueryForm.fqv[i]).gsdl_clean()));
        }
    }
}

function updatefqv() {
    var i;
    argfqv = '';
    argfqv += gsdl.escape(format(gsdlGetValue(document.QueryForm.fqv[0]).gsdl_clean()));
    for (i = 1; i < document.QueryForm.fqv.length; ++i) {
        argfqv += ',';
        argfqv +=  gsdl.escape(format(gsdlGetValue(document.QueryForm.fqv[i]).gsdl_clean()));
    }
}

function clearfqv() {
    var i;
    for (i = 0; i < document.QueryForm.fqv.length; ++i) {
        document.QueryForm.fqv[i].value = '';
    }
    updatefqv();
}

// fqs - the stemming checkboxes
function initfqs() {
    var i;
    fqs = argfqs.split(',');
    for (i = 0; i < fqs.length; ++i) {
        gsdlInitValue(document.QueryForm.fqs[i], fqs[i]);
    }
    updatefqs();
}

function update_exactmatch(field_idx) {
    var sValue = gsdlGetValue(document.QueryForm.s);
    if (sValue == '1') sValue = '0';
    else sValue = '1';
    gsdlInitValue(document.QueryForm.fqs[field_idx], sValue);
    updatefqs();
}

function updatefqs() {
    argfqs = '';
    argfqs += gsdlGetValue(document.QueryForm.fqs[0]);
    var i;
    for (i = 1; i < document.QueryForm.fqs.length; ++i) {
        argfqs += ',' + gsdlGetValue(document.QueryForm.fqs[i]);
    }
}


function clearfqs() {
    var i;
    for (i = 0; i < document.QueryForm.fqs.length; ++i) {
        document.QueryForm.fqs[i].checked = false;
    }
    updatefqs();
}

// kqk - the casefolding checkboxes
function initfqk() {
    var i;
    fqk = argfqk.split(',');
    for (i = 0; i < fqk.length; ++i) {
        gsdlInitValue(document.QueryForm.fqk[i], fqk[i]);
    }
    updatefqk();
}


function updatefqk() {
    argfqk = '';
    argfqk += gsdlGetValue(document.QueryForm.fqk[0]);
    var i;
    for (i = 1; i < document.QueryForm.fqk.length; ++i) {
        argfqk += ',' + gsdlGetValue(document.QueryForm.fqk[i]);
    }
}

function clearfqk() {
    var i;
    for (i = 0; i < document.QueryForm.fqk.length; ++i) {
        document.QueryForm.fqk[i].checked = false;
    }
    updatefqk();
}

// q - the advanced query box
function initq() {
    updateq();
}

function updateq() {
    argq = '';
    argq += gsdl.escape(document.QueryForm.q.value);
}

function clearq() {
    document.QueryForm.q.value = '';
}

// convert commas and spaces to plus
function format(string) {
    var str = '' + string;
    var out = '', flag = 0;
    var j;
    for (j = 0; j < str.length; j++) {
        if (str.charAt(j) == ' ' || str.charAt(j) == ',') {
            if (flag == 0) {
                out += ' ';
                flag = 1;
            }
        }
        else {
            out += str.charAt(j);
            flag = 0;
        }
    }
    return out.trim();
}
function submitSearch() {
    for (var i = 0; i < g_SearchFields.length; ++i)
        g_SearchFields[i].update();
    updatefqv();
    updatefqf();
    updatefqs();
    updatefqk();
    updatefqc();
    beginSearch();
    return false;
}

function beginSearch() {
    argfqv = argfqv.rtrim(',');
    if (argfqv.length > 0) {
        var qu = gsdlNewQueryUniqueId();
        doBackgroundQuery(gsdlQueryURL + '?qu=' + qu + '&amp;' + getstdargs() + advformargs + getsearchargs());
    }
    return false;
}

function runQuery() {
    gsdl_goto(gsdlQueryURL + '?' + getstdargs() + advformargs + getqueryargs());
}

function clearForm() {
    clearfqf();
    clearfqv();

    if (cgiarg.b == '1') {
        clearfqk();
        clearfqs();
        clearfqc();
    }
}

function clearFilters() {
    var i;
    argfqv = '';
    argfqv += gsdl.escape(format(gsdlGetValue(document.QueryForm.fqv[0])));
    for (i = 1; i < document.QueryForm.fqv.length; ++i) {
        argfqv += ",";
        if (i == 1) {
            argfqv +=  gsdl.escape(format(gsdlGetValue(document.QueryForm.fqv[i])));
        }
    }
    updatetxti();
    updatefqf();
    updatefqs();
    updatefqk();
    updatefqc();
    beginSearch();
    return false;
}

var g_HttpBackgroundQueryRequest = null;
function onBackgroundQueryResponse() {
    if (g_HttpBackgroundQueryRequest.readyState == 4) {
        if (g_HttpBackgroundQueryRequest.status == 200) {
            var oWorkPanel = gsdlGetElement('BackgroundQueryPanel');
            oWorkPanel.innerHTML = g_HttpBackgroundQueryRequest.responseText;
            gsdlGetElement('QueryMessages').innerHTML = gsdlGetElement('BackgroundQueryMessages').innerHTML;
            gsdlGetElement('QueryResultsList').innerHTML = gsdlGetElement('BackgroundQueryResultsList').innerHTML;
            gsdlGetElement('QueryNavigation').innerHTML = gsdlGetElement('BackgroundQueryNavigation').innerHTML;
            var strVars = '' + (gsdlGetElement('BackgroundQueryVars').innerText || gsdlGetElement('BackgroundQueryVars').textContent);
            oWorkPanel.innerHTML = '';
            eval(strVars);
            onBackgroundQueryDone(gsdlGetElement('QueryMessages').innerHTML.length > 0, false);
        } else {
            onBackgroundQueryError();
        }
    } else {
		// should we handle an error here???
	}
}

function onBackgroundQueryDone(bHasQuery, bError) {
    // will be called to recheck all variabiles and states

    g_gsdlPreferenceState.Initialize();
    initQuickSearch();
    query_initialize();
    gsdlGetElement('QueryResultsPanel').style.display = (bHasQuery ? 'block' : 'none');
    //showAdvancedQueryForm(!bHasQuery || bError);
    showBackgroundLoading(false);
    if (bHasQuery) {
        var topObj = gsdlGetElement('topOfList');
        if (topObj != null && typeof(topObj.scrollIntoView) != 'undefined') {
            topObj.scrollIntoView(true);
        }
    }
	//var clearFormBtn = gsdlGetElement('clearFormBtn');
	//clearFormBtn.className = 'clearmenu' + (bHasQuery ? '' : 'inactiv');
	//clearFormBtn.disabled = !bHasQuery;
	//clearFormBtn.src = httpCollectionImage + '/' + (cgiarg.l == 'en' ? '' : cgiarg.l) + '/clear' + (bHasQuery ? '' : 'inactiv') + '.gif';
}

function onBackgroundQueryError() {
    queryHaveResults = 0;
    gsdlGetElement('QueryMessages').innerHTML = 'Error executing background query! Try again later.';
    gsdlGetElement('QueryResultsList').innerHTML = '';
    gsdlGetElement('QueryNavigation').innerHTML = '';
    onBackgroundQueryDone(true, true);
}

function doBackgroundQuery(strURL) {
    g_HttpBackgroundQueryRequest = gsdlGetHttpRequest();
    if (g_HttpBackgroundQueryRequest == null) {
        gsdl_goto(strURL + '#topOfList');
        return false;
    }
    g_aRegisteredLayerHide.Hide();
    showBackgroundLoading(true);
    var ampReg = new RegExp('&amp;', 'g');
    // remove the anchor
    var nPos = strURL.indexOf('#');
    if (nPos > 0)
        strURL = strURL.substring(0, nPos);
    var strVars = '';
    nPos = strURL.indexOf('?');
    if (nPos > 0) {
        strVars = strURL.substring(nPos + 1).replace(ampReg, '&') + '&qajax=1';
        strURL = strURL.substring(0, nPos);
    }
    g_HttpBackgroundQueryRequest.open('POST', strURL, true);
    g_HttpBackgroundQueryRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    g_HttpBackgroundQueryRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    g_HttpBackgroundQueryRequest.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
    g_HttpBackgroundQueryRequest.onreadystatechange = onBackgroundQueryResponse;
    g_HttpBackgroundQueryRequest.send(strVars);
    gsdlSetCookie('qe', '1');
    return true;
}

function showBackgroundLoading(bShow) {
    // here we should show/hide loading layer....

    if (!bShow)
    {
        gsdlGetElement('LoadingResults').style.display = 'none';
        gsdlGetElement('LoadedResults').style.display = 'block';
        return;
    }
    //showAdvancedQueryForm(false);
    gsdlGetElement('LoadingResults').style.display = 'block';
    gsdlGetElement('LoadedResults').style.display = 'none';
    gsdlGetElement('QueryMessages').innerHTML = '';
    gsdlGetElement('QueryResultsList').innerHTML = '';
    gsdlGetElement('QueryNavigation').innerHTML = '';
    gsdlGetElement('QueryResultsPanel').style.display = 'block';
}

function gotoQueryPage(page) {
    g_gsdlPreferenceState.argr = '' + page;
    doBackgroundQuery(gsdlQueryURL + '?' + g_gsdlPreferenceState.GetArgs());
}

function queryClearForm() {
    var textCtrl = document.QuickQueryForm.quicktext;
    if (typeof(textCtrl) != 'undefined' || textCtrl != null)
        textCtrl.value = '';
    if (gsdlGetCookieBool('qe', false)) {
        clearForm1();
    }
    return false;
}

function showAdvancedQueryForm(bVisible)
{
    g_aRegisteredLayerHide.Hide();
    var queryAdvancedForm = gsdlGetElement('queryAdvancedForm');
    if (typeof(bVisible) == 'undefined' || bVisible == null) {
        if (typeof(queryAdvancedForm.style.display) != 'undefined' && queryAdvancedForm.style.display == 'none')
            bVisible = true;
        else
            bVisible = false;
    }
    queryAdvancedForm.style.display = (bVisible ? '' : 'none');
    gsdlGetElement('LinkQueryAdvancedForm').style.display = (bVisible ? 'none' : '');
    gsdlGetElement('AdvancedFormNumbering').style.display = (bVisible ? '' : 'none');
    return false;
}

function AbstractToggle()
{
    var abstractDiv = gsdlGetElement('Abstract');
    abstractDiv.style.height = (abstractDiv.style.height == '50px' ? 'auto' : '50px');
}

function allcheck() {
    var ischecked = document.QueryForm.checkall.checked;
    var idx = 1;

    while (true)
    {
        var sobj = eval('document.QueryForm.subj' + idx);
        if (sobj == null || sobj == 'undefined')
            break;
        sobj.checked = ischecked;
        ++idx;
    }
}

function onSectionClick(obj) {
    var ischecked = obj.checked;
    var idx = 1;

    if (!ischecked)
        document.QueryForm.checkall.checked = false;

    if (allChecked())
    {
        document.QueryForm.checkall.checked = true;
    }
}

function allChecked() {
    var idx = 1;
    while (true)
    {
        var sobj = eval('document.QueryForm.subj' + idx);
        if (sobj == null || sobj == 'undefined')
            break;
        if (sobj.checked == false)
            return false;
        ++idx;
    }
    return true;
}

function searchWords(strText) {
    strText = format(strText).gsdl_clean();
    if (strText.length == 0) {
        return false;
    }

    var frmQueryPost = gsdlGetElement('QueryPostForm');
    g_gsdlPreferenceState.SetFormArgs(frmQueryPost);

    frmQueryPost.fqf.value = 'TX,TI,KE,ORG,TA,DO,LA,SU';
    frmQueryPost.fqv.value = strText + ',' + strText + ',,,,,,';
    frmQueryPost.fqk.value = '0,0,0,0,0,0,0,0';
    frmQueryPost.fqs.value = '0,0,0,0,0,0,0,0';
    frmQueryPost.fqc.value = 'or,and,and,and,and,and';
    frmQueryPost.g.value = 'Doc';
    frmQueryPost.t.value = '0';
    var date = new Date();
    frmQueryPost.qu.value = '' + gsdlNewQueryUniqueId();
    frmQueryPost.uq.value = '' + date.getTime();
    frmQueryPost.submit();

    return false;
}

