/*****************************************************************************/
/*****************************************************************************/
/*                                                                           */
/*   Copyright (C), informationpartners                                      */
/*   All Rights Reserved.                                                    */
/*                                                                           */
/*****************************************************************************/


var indexcontent = '';
var indexposX = "650px";
var indexposY = "110px";


/*****************************************************************************/
function submitit(formname) {
      var formnode = document.getElementById(formname);
    formnode.submit();
    //var params = Form.serialize($(formname));
    //document.location = 'dbxml?' + params;
}


/*****************************************************************************/
function resetform(formname) {
    var allInputNodes = document.getElementsByClassName("SF");
    var actid = '';
    for (i = 0; i < allInputNodes.length; i++) {
        allInputNodes[i].value = ""; //
    }

    allInputNodes = document.getElementsByClassName("operator");
    actid = '';

    if ((allInputNodes.length > 0)) {
        for (i = 0; i < allInputNodes.length; i++) {
            allInputNodes[i].value = "AND";

        }
    }
}


/*****************************************************************************/
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !== false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }


}


/*****************************************************************************/
function submitRDirSRCHform(formname, additionalparameter, additionalvalue, additionalparam2, valuefromfield, service, collection) {
    var formnode = document.getElementById(formname);
    var hiddeninput,
    hiddeninput2,
    hiddeninput3,
    hiddeninput4;

    if (additionalparameter !== '') {
        hiddeninput = document.createElement("input");
        hiddeninput.value = additionalvalue; //'Expertensuche'; //additionalparameter;
        hiddeninput.name = additionalparameter; //'REDIREQMASK';
        hiddeninput.id = additionalparameter; //'REDIREQMASK';
        hiddeninput.type = 'hidden';
        formnode.appendChild(hiddeninput);
    }

    var params = Form.serialize($(formname));
    var addvalue2 = "";
    if (additionalparam2 !== '') {

        var re = new RegExp('NRITEMSPAGE=([0-9]+)');
        var m = re.exec(params);
        if (m === null) {
            addvalue2 = '';
        } else {
            addvalue2 = m[1];
        }
        hiddeninput2 = document.createElement("input");
        hiddeninput2.value = addvalue2;
        hiddeninput2.name = additionalparam2;
        hiddeninput2.id = additionalparam2;
        hiddeninput2.type = 'hidden';
        formnode.appendChild(hiddeninput2);
    }

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service !== '')) {
        sService = service;
    }
    if ((collection) && (collection !== '')) {
        sCollection = collection;
    }

    if ((sService !== '') && (sCollection !== '')) {
        hiddeninput3 = document.createElement("input");
        hiddeninput3.value = sService;
        hiddeninput3.name = 'MFIPSERVICE';
        hiddeninput3.id = 'MFIPSERVICE';
        hiddeninput3.type = 'hidden';
        formnode.appendChild(hiddeninput3);
        hiddeninput4 = document.createElement("input");
        hiddeninput4.value = sCollection;
        hiddeninput4.name = 'MFIPCOLLECTION';
        hiddeninput4.id = 'MFIPCOLLECTION';
        hiddeninput4.type = 'hidden';
        formnode.appendChild(hiddeninput4);

        formnode.SERVICE.value = sService;
        formnode.COLLECTION.value = sCollection;
    }

    params = Form.serialize($(formname));
    formnode.submit();
    if (additionalparameter !== '') {
        formnode.removeChild(hiddeninput);
    }
    if (additionalparam2 !== '') {
        formnode.removeChild(hiddeninput2);
    }
    if ((sService !== '') && (sCollection !== '')) {
        formnode.removeChild(hiddeninput3);
        formnode.removeChild(hiddeninput4);
    }
}


/*****************************************************************************/
function submitSRCHform(formname, additionalparameter, valuefromfield, service, collection) {
    var formnode = document.getElementById(formname);
    var hiddeninput,
    hiddeninput1,
    hiddeninput2,
    hiddeninput3,
    hiddeninput4;

    var params = Form.serialize($(formname));
    var additionalvalue = "";

    if (additionalparameter !== '') {

        var re = new RegExp('NRITEMSPAGE=([0-9]+)');
        var m = re.exec(params);
        if (m === null) {
            additionalvalue = '';
        } else {
            additionalvalue = m[1];
        }

        hiddeninput = document.createElement("input");
        hiddeninput.value = additionalvalue;
        hiddeninput.name = additionalparameter;
        hiddeninput.id = additionalparameter;
        hiddeninput.type = 'hidden';
        formnode.appendChild(hiddeninput);
    }

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service !== '')) {
        sService = service;
    }
    if ((collection) && (collection !== '')) {
        sCollection = collection;
    }

    if ((sService !== '') && (sCollection !== '')) {
        hiddeninput3 = document.createElement("input");
        hiddeninput3.value = sService;
        hiddeninput3.name = 'MFIPSERVICE';
        hiddeninput3.id = 'MFIPSERVICE';
        hiddeninput3.type = 'hidden';
        formnode.appendChild(hiddeninput3);
        hiddeninput4 = document.createElement("input");
        hiddeninput4.value = sCollection;
        hiddeninput4.name = 'MFIPCOLLECTION';
        hiddeninput4.id = 'MFIPCOLLECTION';
        hiddeninput4.type = 'hidden';
        formnode.appendChild(hiddeninput4);

        formnode.SERVICE.value = sService;
        formnode.COLLECTION.value = sCollection;
    }

    params = Form.serialize($(formname));

    formnode.submit();

    if (additionalparameter !== '') {
        formnode.removeChild(hiddeninput);
    }
    if ((sService !== '') && (sCollection !== '')) {
        formnode.removeChild(hiddeninput3);
        formnode.removeChild(hiddeninput4);
    }
}


/*****************************************************************************/
function submitform(formname, additionalparameter, additionalvalue) {
    var hiddeninput;
    var formnode = document.getElementById(formname);
    var checkRes = true;

    if (additionalparameter === 'CONFIRM') {
        checkRes = confirm(additionalvalue);
    }

    if (checkRes === false) {
        return false;
    } else {
        if (additionalparameter !== '') {
            hiddeninput = document.createElement("input");
            hiddeninput.value = additionalvalue;
            hiddeninput.name = additionalparameter;
            hiddeninput.id = additionalparameter;
            hiddeninput.type = 'hidden';
            formnode.appendChild(hiddeninput);
            if (additionalparameter === 'LANGUAGE') {
                var _iKill = 1000 * 60 * 60 * 24 * 7;
                var _iDate = new Date();
                var _iTime = new Date(_iDate.getTime() + _iKill);
                document.cookie = "P2=LANGUAGE; expires=" + _iTime.toGMTString() + ";";
                document.cookie = "P3=" + additionalvalue + "; expires=" + _iTime.toGMTString() + ";";
            }
        }

        var params = Form.serialize($(formname));

        formnode.submit();

        if (additionalparameter !== '') {
            formnode.removeChild(hiddeninput);
        }
    }
}


/*****************************************************************************/
function delDocument(accode, language, sid, recid, service, collection, additionalvalue) {
    var checkRes = confirm(additionalvalue);

    if (checkRes === true) {
        var pars = 'SERVICE=' + service + '&FUNCTION=REMOVE' + '&COLLECTION=' + collection + '&LANGUAGE=' + language + '&SID=' + sid + '&RECID=' + recid;
        pars = pars.concat('&nocache=', (new Date()).getTime(), ".", Math.random() * 1234567);

        var result = 0;
        var nodeid1 = 'd' + accode;
        var nodeid2 = 'x' + accode;
        var delnode1 = document.getElementById(nodeid1);
        var delnode2 = document.getElementById(nodeid2);
        new Ajax.Request("dbxml", { method: 'get', parameters: pars, onSuccess: function(resp) { delnode1.style.display = 'none'; delnode2.style.display = 'block'; closeme(accode); result = 1; }, onFailure: function(resp) { alert("Unknown error deleting document."); } });
    }
}


/*****************************************************************************/
function deleteallClass(removeclass) {
    var allfullnodes = document.getElementsByClassName(removeclass);
    for (i = 0; i < allfullnodes.length; i++) {
        allfullnodes[i].innerHTML = '';
    }
}


/*****************************************************************************/
function hideallClass(removeclass) {
    var allfullnodes = document.getElementsByClassName(removeclass);
    for (i = 0; i < allfullnodes.length; i++) {
        allfullnodes[i].className = 'fullhidden';
    }
}


/*****************************************************************************/
function shortlist() {
    setnewClass('listextra', 'listextrahidden');
    SetClassById('langeListe', '');
    SetClassById('kurzeListe', 'current');
}


/*****************************************************************************/
function longlist() {
    setnewClass('listextrahidden', 'listextra');
    SetClassById('langeListe', 'current');
    SetClassById('kurzeListe', '');
}


/*****************************************************************************/
function setnewClass(oldclassname, newclassname) {
    var allfullnodes = document.getElementsByClassName(oldclassname);
    var actid = '';
    for (i = 0; i < allfullnodes.length; i++) {
        allfullnodes[i].className = newclassname;
    }
}


/*****************************************************************************/
function SetClassById(elementid, newclass) {
    var listnode = document.getElementById(elementid);
    if (listnode != null) {
        listnode.className = newclass;
    }
}


/*****************************************************************************/
function closeme(accode) {
    var allfullnodes = document.getElementsByClassName('full');
    var actid = '';
    for (i = 0; i < allfullnodes.length; i++) {
        accode = allfullnodes[i].id;
        Effect.toggle(accode, 'appear');
    }

    accode = "l" + accode;
    SetClassById(accode, 'listextra');
}


/*****************************************************************************/
function showfull(accode, highlight, language, sid, service, collection) {
    document.body.style.cursor = "wait";
    hideallClass('full');
    setnewClass('listextrahidden', 'listextra');

    displaynode = document.getElementById(accode);

    if (displaynode.className != "fullhidden") { //neu holen

        displaynode.className = 'full';

        displaynode.innerHTML = '<h1>....</h1><p align="center"><br/><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';

        var sService = 'IPRETRIEVAL';
        var sCollection = 'PERINORM';
        if ((service) && (service != '')) {
            sService = service;
        }
        if ((collection) && (collection != '')) {
            sCollection = collection;
        }

        var url = 'dbxml';
        var pars = 'SERVICE=' + sService + '&COLLECTION=' + sCollection + '&FUNCTION=BOOLQUERY&FORMAT=FULL&SFAC=' + accode + '&HLINFO=' + highlight + '&LANGUAGE=' + language + '&SID=' + sid;

        var myAjax = new Ajax.Updater(accode, url, { method: 'get', parameters: pars });

        accode = "l" + accode;
        Ldisplaynode = document.getElementById(accode);

        Ldisplaynode.className = 'listextrahidden';
        
        insertTooltips();
    } else {
        displaynode.className = 'full'; //nicht neu holen, nur wieder einblenden
        Effect.toggle(accode, 'appear');
        accode = "l" + accode;
        SetClassById(accode, 'listextra');
    }

    document.body.style.cursor = "default";
}


/*****************************************************************************/
function showindex(fieldname, indexname, language, sid, service, collection) {
    var nodeid = 'indexliste';

    nodeid.className = 'IDX';
    new Effect.BlindDown(nodeid, {
        duration: 0.3
    });


    var nodeid = 'indexbox';

    document.getElementById(nodeid).innerHTML = '<p style="text-align:center"><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';

    var url = 'dbxml';
    indexcontent = document.getElementById('SF' + fieldname).value;
    indexcontent = indexcontent.replace(new RegExp('"', "g"), ''); //Remove Anführungszeichen

    if (indexcontent == '') {
        indexcontent = 'A';
    }

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if (service) {
        sService = service;
    }
    if (collection) {
        sCollection = collection;
    }

    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=ILOOK_' + fieldname + '&COLLECTION=' + sCollection + '&FIELD=' + indexname + '&VALUE=' + encodeURI(indexcontent) + '&LANGUAGE=' + language + '&SID=' + sid + '&PAGE=1&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars, onComplete: blinddownindexliste });

    document.getElementById("indexliste").className = 'IDX';
}


/*****************************************************************************/
function showindex1(searchfield, format, indexname, language, sid, service, collection) {
    var nodeid = 'indexliste';

    nodeid.className = 'IDX';
    new Effect.BlindDown(nodeid, {
        duration: 0.3
    });


    var nodeid = 'indexbox';

    document.getElementById(nodeid).innerHTML = '<p style="text-align:center"><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';

    var url = 'dbxml';
    indexcontent = document.getElementById(searchfield).value;

    if (indexcontent == '') {
        indexcontent = 'A';
    }

    indexcontent = indexcontent.replace(new RegExp('"', "g"), ''); //Remove Anführungszeichen

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if (service) {
        sService = service;
    }
    if (collection) {
        sCollection = collection;
    }

    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=' + format + '&COLLECTION=' + sCollection + '&FIELD=' + indexname + '&LANGUAGE=' + language + '&SID=' + sid + '&VALUE=' + encodeURI(indexcontent) + '&PAGE=1&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars });

    document.getElementById("indexliste").className = 'IDX';
}


/*****************************************************************************/
function blinddownindexliste() {
    var nodeid = 'indexbox';
}


/*****************************************************************************/
function insertIdxToSF(searchfield, newcontent) {
    if (document.getElementById(searchfield).value == "") {
        document.getElementById(searchfield).value = '"' + newcontent + '"';
    } else {
        var oldcontent = document.getElementById(searchfield).value;
        document.getElementById(searchfield).value = oldcontent + ', "' + newcontent + '"';
    }
    closeindex();
}


/*****************************************************************************/
function insertIdxWToSF(searchfield, newcontent) {
    if (document.getElementById(searchfield).value == "") {
        document.getElementById(searchfield).value = newcontent;
    } else {
        var oldcontent = document.getElementById(searchfield).value;
        document.getElementById(searchfield).value = oldcontent + ', ' + newcontent;
    }
    closeindex();
}


/*****************************************************************************/
function closeindex() {
    var nodeid = 'indexliste';

    new Effect.BlindUp(nodeid, {
        duration: .3
    });
    indexposX = document.getElementById(nodeid).style.left;
    indexposY = document.getElementById(nodeid).style.top;
    var nodeid = 'indexbox';
    document.getElementById(nodeid).innerHTML = '<p style="text-align:center"><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';
}


/*****************************************************************************/
function nextindexpage(fieldname, content, pagenr, language, sid, service, collection) { //parameter content wird nicht verwendet
    var nodeid = 'indexbox';

    if (content == '#z#') { //mit xsl wird der Wert falsch zurückgegeben
        pagenr--;
    }
    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }

    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=ILOOK_' + fieldname + '&COLLECTION=' + sCollection + '&FIELD=' + fieldname + '&VALUE=' + encodeURI(indexcontent) + '&LANGUAGE=' + language + '&SID=' + sid + '&PAGE=' + pagenr + '&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars });
}


/*****************************************************************************/
function nextIDXpage(format, indexname, content, pagenr, language, sid, service, collection) { //parameter content wird nicht verwendet
    var nodeid = 'indexbox';


    if (content == '#z#') { //mit xsl wird der Wert falsch zurückgegeben
        pagenr--;
    }
    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }

    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=' + format + '&COLLECTION=' + sCollection + '&FIELD=' + indexname + '&VALUE=' + encodeURI(indexcontent) + '&LANGUAGE=' + language + '&SID=' + sid + '&PAGE=' + pagenr + '&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars });
}


/*****************************************************************************/
function updateindex(indexname, language, sid, service, collection) {
    indexcontent = document.getElementById('idxval').value; //global
    var pagenr = 1;
    var nodeid = 'indexbox';
    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }
    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=ILOOK_' + indexname + '&COLLECTION=' + sCollection + '&FIELD=' + indexname + '&VALUE=' + encodeURI(indexcontent) + '&LANGUAGE=' + language + '&SID=' + sid + '&PAGE=1&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars });
}


/*****************************************************************************/
function updateIDX(format, indexname, language, sid, service, collection) {

    indexcontent = document.getElementById('idxval').value; //global

    var pagenr = 1;
    var nodeid = 'indexbox';
    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }
    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&FUNCTION=INDEXLOOKUP&FORMAT=' + format + '&COLLECTION=' + sCollection + '&FIELD=' + indexname + '&VALUE=' + encodeURI(indexcontent) + '&LANGUAGE=' + language + '&SID=' + sid + '&PAGE=1&NRITEMSPAGE=20';

    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars });
}


/*****************************************************************************/
function refreshidx() {
    var nodediv = document.getElementById('indexliste');
    var nodetitelleiste = document.getElementById('dragidx');
    IDX.refresh(nodediv, nodetitelleiste);
}


/*****************************************************************************/
function inserthelp(helpfilename) {
    var nodeid = 'helpcontent';
    var url = helpfilename;
    var pars = '';
    var myAjax = new Ajax.Updater(nodeid, url, {
        method: 'get',
        parameters: pars
    });
}


/*****************************************************************************/
function showuploadfile(accode) {
    var nodeid = 'addpdfform_' + accode;
    displaynode = document.getElementById(nodeid);
    if (displaynode.style.display == "none") {
        displaynode.style.display = "block";
    } else {
        displaynode.style.display = "none";
    }
}


/*****************************************************************************/
function mouse_pos(e) {
    if (!e) e = window.event;
    var body = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement : window.document.body || null;

    var mouse = {
        left: 0,
        top: 0
    };
    mouse.left = e.pageX ? e.pageX : e.clientX + body.scrollLeft;
    mouse.top = e.pageY ? e.pageY : e.clientY + body.scrollTop;

    return mouse;
}


/*****************************************************************************/
function getMouseXY() {
    var mouse = {
        left: 0,
        top: 0
    };
    mouse.left = (document.all) ? window.event.x + document.body.scrollLeft : event.pageX;
    mouse.top = (document.all) ? window.event.y + document.body.scrollTop : event.pageY;

    return mouse;
}


/*****************************************************************************/
function showuploadfile2(e, accode, btncancel, sid, btnbrowsepdf) {
    if (!e) e = window.event;

    var mouse = mouse_pos(e);
    x = mouse.left + 10;
    y = mouse.top + 10;

    var nodeid = 'pdfInput';
    displaynode = document.getElementById(nodeid);
    displaynode.style.left = String(x) + 'px';
    displaynode.style.top = String(y) + 'px';

    var formhtml = '<div id="addpdfform" class="pdfform"> <form name="uploadpdf" id="uploadpdf" method="post" action="dbxml" target="uploadresult" enctype="multipart/form-data"> <div class="fileinputs"> <p align="center"> <input name="SERVICE" value="FILESTORE" type="hidden" /> <input name="FILENAME" value="UNKNOWN" type="hidden" /> <input name="FUNCTION" value="STOREFILE" type="hidden" /> ' + btnbrowsepdf + ' (' + accode + ') <input name="FILECONTENT" class="file" value="" type="file"/> <input type="hidden" name="SID" value="' + sid + '"/></p> <p align="center"> <input type="submit" name="OK" id="OK" value="OK" onclick="javascript:uploadfile(\'pdfInput\', \'uploadpdf\',\'' + accode + '\',\'de\',\'' + sid + '\')" /> <input type="reset" name="Cancel" id="Cancel" value="' + btncancel + '" onclick="showuploadfile2(event, \'' + accode + '\');" /> </p> </div> </form> </div>';

    if (displaynode.style.display == "none") {
        displaynode.innerHTML = formhtml;
        displaynode.style.display = "block";
    } else {
        displaynode.style.display = "none";
        displaynode.innerHTML = "";
    }
}


/*****************************************************************************/
function extractFileExtension(filePath) {
    sret = filePath.substring(filePath.lastIndexOf('.') + 1, filePath.length);

    return sret;
}


/*****************************************************************************/
function uploadfile(nodeid, formname, accode, language, sid) {
    var displaynode = document.getElementById(nodeid);
    var uploadForm = document.getElementById(formname); //document.uploadpdf;
    var pars;

    displaynode.style.display = "none";

    uploadForm.FILENAME.value = accode + '.' + extractFileExtension(uploadForm.FILECONTENT.value);

    pars = Form.serialize($(formname));

    new Ajax.Request("dbxml", { method: 'get', parameters: pars, onSuccess: function(resp) { result = 1; }, onFailure: function(resp) { result = 0; } });

    insertpdflinks(language, sid);
}


/*****************************************************************************/
function hasUploadfile(accode, language, sid) {
    var filename = accode;
    var pars = 'SERVICE=FILESTORE&FUNCTION=EXISTSFILE&FILENAME=' + filename + '&SID=' + sid;
    pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
    var result = 0;
    var nodeid = 'delpdf_' + accode;
    var nodeidAdd = 'addpdf_' + accode;
    var delnode = document.getElementById(nodeid);
    var addnode = document.getElementById(nodeidAdd);
    new Ajax.Request("dbxml", {
        method: 'get',
        parameters: pars,
        onSuccess: function(resp) {
            var ndx = resp.responseText.search(/<FILEEXISTS>1/)
            if (ndx > 0) {
                result = 1;
                delnode.style.display = 'block';
                addnode.style.display = 'none';
            } else {
                result = 0;
                delnode.style.display = 'none';
                addnode.style.display = 'block';
            }
        },
        onFailure: function(resp) {
            result = 0;
        }
    });
    return result;
}

/*****************************************************************************/
function hasAlert(alertID, language, sid) {
    var pars = 'SERVICE=ALERT&FUNCTION=EXISTSALERT&SID=' + sid + '&ALERTID=' + alertID;
    pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
    var result = 0;
    var nodeIdShowAlert = 'showalert_' + alertID;
    var nodeIdAdd = 'addalert_' + alertID;
    var nodeIdRemove = 'removealert_' + alertID;
    
    var remAlert = document.getElementById(nodeIdRemove);
    var addAlert = document.getElementById(nodeIdAdd);
    var showAlert = document.getElementById(nodeIdShowAlert);
    
    new Ajax.Request("dbxml", {
        method: 'get',
        parameters: pars,
        onSuccess: function(resp) {
            var ndx = resp.responseText.search(/<ALERTEXISTS>1/)
            if (ndx > 0) {
                result = 1;
                showAlert.style.display = 'block';
                remAlert.style.display = 'inline';
                addAlert.style.display = 'none';
            } else {
                result = 0;
                showAlert.style.display = 'none';
                remAlert.style.display = 'none';
                addAlert.style.display = 'inline';
            }
        },
        onFailure: function(resp) {
            result = 0;
        }
    });
    return result;
}


/*****************************************************************************/
function delUploadfile(accode, language, sid, msg) {
    var filename = accode;
    var pars = 'SERVICE=FILESTORE&FUNCTION=DELETEFILE&FILENAME=' + filename + '&SID=' + sid;
    pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
    var result = 0;
    var nodeid = 'delpdf_' + accode;
    var nodeidAdd = 'addpdf_' + accode;
    var delnode = document.getElementById(nodeid);
    var addnode = document.getElementById(nodeidAdd);

    checkRes = confirm(msg);

    if (checkRes == true) {
        new Ajax.Request("dbxml", {
            method: 'get',
            parameters: pars,
            onSuccess: function(resp) {
                result = 1;
                delnode.style.display = 'none';
                addnode.style.display = 'block';
                insertpdflink(accode, language);
            },
            onFailure: function(resp) {
                result = 0;
            }
        });
    }
}


/*****************************************************************************/
function addAlert(formName, sid, language) {
    var pars;
   
    var formNode = document.getElementById(formName);
    pars = Form.serialize(formNode);

    pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
    var result = 0;

    new Ajax.Request("dbxml", {
        method: 'get',
        parameters: pars,
        onSuccess: function(resp) {
            result = 1;
            insertAlerts(language, sid);
        },
        onFailure: function(resp) {
            result = 0;
        }
    });
}


/*****************************************************************************/
function order(formName, sid, language) {
    var pars;
    var pars;
    var formNode = document.getElementById(formName);
   
    checkRes = confirm(formNode.ACCEPTORDER.value);

    if (checkRes == true) 
    {
      pars = Form.serialize(formNode);

      pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
      var result = 0;

      new Ajax.Request("dbxml", {
          method: 'get',
          parameters: pars,
          onSuccess: function(resp) {
              result = 1;
          },
          onFailure: function(resp) {
              result = 0;
          }
      });
    }
}

/*****************************************************************************/
function showOrderButton(accode, nodeid) 
{
    var orderNodeid = "order_" + accode;
    var imageNode;
    var orderNode;
    
    imageNode = document.getElementById(nodeid);
    
    if (imageNode != null)
    {
      if (!imageNode.hasChildNodes())
      {
        orderNode = document.getElementById(orderNodeid);
    
        if (orderNode != null)
        {
          orderNode.style.display = "inline";
        }
      }
    }
}

/*****************************************************************************/
function removeAlert(formName, sid, language) {
    var pars;
    var formNode = document.getElementById(formName);
   
    checkRes = confirm(formNode.ACCEPTREMOVE.value);

    if (checkRes == true) 
    {
      pars = Form.serialize(formNode);

      pars = pars.concat('&nocache=', (new Date).getTime(), ".", Math.random() * 1234567);
      var result = 0;

      new Ajax.Request("dbxml", {
          method: 'get',
          parameters: pars,
          onSuccess: function(resp) {
              result = 1;
              insertAlerts(language, sid);
          },
          onFailure: function(resp) {
              result = 0;
          }
      });
    }
}

/*****************************************************************************/
function removeAlertFromAlertList(formName) 
{
    var formNode = document.getElementById(formName);
    
    checkRes = confirm(formNode.ACCEPTREMOVE.value);

    if (checkRes == true) 
    {
        if (formNode != null)
          formNode.submit();
    }
}

/*****************************************************************************/
function showResultFromAlert(formName)
{
    var formNode = document.getElementById(formName);
    
    if (formNode != null)
      formNode.submit();
}

/*****************************************************************************/
function submitListAlerts() 
{
  var formNode = document.getElementById('alertList');
  
  if (formNode != null)
    formNode.submit();
}

/*****************************************************************************/
function submitProcessAlerts() 
{
  var formNode = document.getElementById('alertProcess');
  
  if (formNode != null)
    formNode.submit();
}

/*****************************************************************************/
function insertTooltips()
{
    var allfullnodes = document.getElementsByClassName('tooltip');
    var tipType = '';
    var tipID = '';
    var tipTitle = '';
    var tipTarget = '';
    var tipStemPos = '';
    var tipHookTargetPos = '';
    var tipHookTipPos = '';
    var tipDelay = '';
    var tipCloseButton = false;
    var tipPositions = new Array("topLeft", "topMiddle", "topRight", "rightTop", "rightMiddle", "rightBottom", "bottomRight", "bottomMiddle", "bottomLeft", "leftBottom", "leftMiddle", "leftTop");
    
    for (i = 0; i < allfullnodes.length; i++) 
    {
        tipType = allfullnodes[i].id.slice(0,1);
        tipDelay = allfullnodes[i].id.slice(1,2);

        if (tipType == "A")
        {
            tipID = allfullnodes[i].id.slice(2);
            new Tip(tipID, allfullnodes[i].innerHTML, {
              delay: tipDelay,
              hideOthers: true
            });
        }
        else
        if (tipType == "B" || tipType == "C")
        {
      //01 23 45 67 8901234567 8901234567 89
      //B2 00 00 09 erc_tip002 trg_tip002 Ein Titel
        tipStemPos = tipPositions[Number(allfullnodes[i].id.slice(2,4))];
        tipHookTargetPos = tipPositions[Number(allfullnodes[i].id.slice(4,6))];
        tipHookTipPos = tipPositions[Number(allfullnodes[i].id.slice(6,8))];
        tipID = allfullnodes[i].id.slice(8,18);
        tipTarget = allfullnodes[i].id.slice(18, 28);
        tipTitle = allfullnodes[i].id.slice(28);

        if (tipType == "C")
          tipCloseButton = true;

        new Tip(tipID, allfullnodes[i].innerHTML, {
          title: tipTitle,
          target: tipTarget,
          stem: tipStemPos,
          hook: { target: tipHookTargetPos, tip: tipHookTipPos },
          delay: tipDelay,
          hideOn: (tipCloseButton) ? { element: 'closeButton', event: 'click'} : 'mouseleave',
          hideOthers: true,
          closeButton: tipCloseButton
          })
        }
    }
    
    $$('.tip').each(function(element) {
    new Tip(element, element.title, {
      width: 'auto',
      hideOthers: true
      });
          element.title="";
          element.alt="";
      }
    );
}


/*****************************************************************************/
function insertAlerts(language, sid)
{
    var allfullnodes = document.getElementsByClassName('alert');
    var alertID = '';
    
    var test = -1;
    for (i = 0; i < allfullnodes.length; i++) {
        alertID = allfullnodes[i].id.slice(10);
        test = hasAlert(alertID, language, sid);
    }
}


/*****************************************************************************/
function insertpdflinks(language, sid) {
    initFileUploads();
    var allfullnodes = document.getElementsByClassName('pdf');
    var accode = '';
    var c1 = '';
    var c2 = '';
    for (i = 0; i < allfullnodes.length; i++) {
        accode = allfullnodes[i].id.slice(1);
        c1 = allfullnodes[i].getAttribute("c1");
        c2 = allfullnodes[i].getAttribute("c2");
        insertpdflink(accode, language, sid, c1, c2);
    }
    allfullnodes = document.getElementsByClassName('delpdf');
    accode = '';
    var test = -1;
    for (i = 0; i < allfullnodes.length; i++) {
        accode = allfullnodes[i].id.slice(7);
        test = hasUploadfile(accode, language, sid);
    }
}


/*****************************************************************************/
function insertpdflink(accode, language, sid, c1, c2) {
    var nodeid = 'p' + accode;
    var url = 'dbxml';
    var pars = 'SERVICE=PFTMDB&FUNCTION=GETDATA&docid=' + c1 + '&docdate=' + c2 + '&ac_code=' + accode + '&LANGUAGE=' + language + '&SID=' + sid + '&C1=' + c1 + '&nocache=';
    pars = pars.concat((new Date).getTime(), ".", Math.random() * 1234567);
    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars, asynchronous: false} );
    showOrderButton(accode, nodeid);
}


/*****************************************************************************/
function initFileUploads() {
    var fakeFileUpload = document.createElement('div');
    fakeFileUpload.className = 'fakefile';
    fakeFileUpload.appendChild(document.createElement('input'));
    var image = document.createElement('img');
    image.className = "browse";
    image.src = 'uimg/button_vor.gif';
    fakeFileUpload.appendChild(image);
    var x = document.getElementsByTagName('input');
    for (var i = 0; i < x.length; i++) {
        if (x[i].type != 'file') continue;
        if (x[i].parentNode.className != 'fileinputs') continue;
        x[i].className = 'file hidden';
        var clone = fakeFileUpload.cloneNode(true);
        x[i].parentNode.appendChild(clone);
        x[i].relatedElement = clone.getElementsByTagName('input')[0];
        x[i].onchange = x[i].onmouseout = function() {
            this.relatedElement.value = this.value;
        }
    }
}


/*****************************************************************************/
function switch2fulldoc(accode) {
    Element.removeClassName("nlink-" + accode, 'box-current');
    Element.addClassName("nfull-" + accode, 'box-current');

    Element.hide("link_" + accode);
    Element.show("full_" + accode);
}


/*****************************************************************************/
function switch2linkdoc(accode) {
    Element.removeClassName('nlink-' + accode, 'box-disabled');

    Element.removeClassName('nfull-' + accode, 'box-current');
    Element.addClassName('nlink-' + accode, 'box-current');

    Element.hide('full_' + accode);
    Element.show('link_' + accode);
}


/*****************************************************************************/
function linkAC_org(accode, language, service, collection) {
    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }
    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&COLLECTION=' + sCollection + '&FUNCTION=BOOLQUERY' + '&LANGUAGE=' + language + '&FORMAT=FULLLINK&SFAC=' + accode;
    window.open(url + '?' + pars);
}


/*****************************************************************************/
function linkACx(accode, language, sid, service, collection) {
    accode = 'ac';
    var nodeid = 'link_' + accode;


    document.body.style.cursor = "wait";
    displaynode = document.getElementById(nodeid);

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }
    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&COLLECTION=' + sCollection + '&FUNCTION=BOOLQUERY' + '&LANGUAGE=' + language + '&SID=' + sid + '&FORMAT=FULLLINK&SFAC=' + accode;
    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars, onSuccess: switch2linkdoc(accode) });

    document.body.style.cursor = "default";
}


/*****************************************************************************/
function llinkac(actarget, accode, language, sid, service, collection) {
    var nodeid = 'link_' + actarget;

    document.body.style.cursor = "wait";
    displaynode = document.getElementById(nodeid);
    displaynode.innerHTML = '<h1>....</h1><p align="center"><br/><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';

    var sService = 'IPRETRIEVAL';
    var sCollection = 'PERINORM';
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }

    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&COLLECTION=' + sCollection + '&FUNCTION=BOOLQUERY' + '&LANGUAGE=' + language + '&SID=' + sid + '&FORMAT=FULLLINK&SFAC=' + accode;
    var myAjax = new Ajax.Updater(nodeid, url, {
        method: 'get',
        parameters: pars
    });

    document.body.style.cursor = "default";
}


/*****************************************************************************/
function linkac(actarget, accode, language, sid, service, collection) {
    var nodeid = 'link_' + actarget;


    document.body.style.cursor = "wait";
    displaynode = document.getElementById(nodeid);
    displaynode.innerHTML = '<h1>....</h1><p align="center"><br/><br/><br/><img src="uimg/loading.gif"/><br/><br/><br/></p>';

    var sService = 'IPRETRIEVAL';
    var sCollection = collection;
    if ((service) && (service != '')) {
        sService = service;
    }
    if ((collection) && (collection != '')) {
        sCollection = collection;
    }

    var url = 'dbxml';
    var pars = 'SERVICE=' + sService + '&COLLECTION=' + sCollection + '&FUNCTION=BOOLQUERY' + '&LANGUAGE=' + language + '&SID=' + sid + '&FORMAT=FULLLINK&SFAC=' + accode;
    var myAjax = new Ajax.Updater(nodeid, url, { method: 'get', parameters: pars, onSuccess: switch2linkdoc(actarget) });

    document.body.style.cursor = "default";
}


/*****************************************************************************/
function closeerror() {
    var nodeid = 'errorlayer';
    new Effect.BlindUp(nodeid, {
        duration: .3
    });
}

/*****************************************************************************/
function unselectSelectBox(name)
{
  var oNode;

  oNode=document.getElementById(name); 

  if (oNode != null)
    oNode.selectedIndex = -1;
}

/*****************************************************************************/
function unselectFieldset(name)
{
  var oNode, aElms, oFld, i;

  oNode=document.getElementById(name); 

  if (aElms=oNode.getElementsByTagName('input'))
  { 
    i = aElms.length;
    for (var n = 0; n < i; n++)
    {
      oFld = aElms[n];
      oFld.checked = false;
    }
  }
}

/*****************************************************************************/
function setFieldsetConditional(related, name)
{
  var oNode, aElms, i, checked;

  oNode=document.getElementById(related); 

  if (aElms=oNode.getElementsByTagName('input'))
  { 
    checked = false;
    i = aElms.length;
    for (var n = 0; n < i; n++)
    {
      oFld = aElms[n];
      
      if (oFld.type == 'checkbox')
          if (checked = oFld.checked)
            break;
    }
    
    if (checked)
      disableFieldset(name, true, false);
    else
      disableFieldset(name, false, false);
  }
}
