var funcToRun = '';

function setDelayFunc(func) {
    funcToRun = func;
    window.setInterval('runDelayFunc()', 1000);
}

function runDelayFunc() {
    if (funcToRun != '') {
        try {
            eval(funcToRun);
        } catch(everything) {
            alert("Can't find function " + funcToRun + " or error in function");
        }
        funcToRun = "";
        window.clearInterval();
    }
}

// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
}

var current_url = "";
function onButtonClick(itemId) {
    if (itemId.indexOf("folder") == 0)return;
    //    alert(itemId);

    try {
        eval(itemId + "()");
    } catch(ex) {
        url = '/dsap/index.jsp?action=' + itemId + '&ajax=2';
        ajax_func(url);
    }
}
<!--MENU-->

function ajax_form_submit(formName, submit) {
    var s = window.location + "";
    var pos = s.indexOf('#');
    if (pos > 0)
        s = s.substr(0, s.lastIndexOf('#'));
    var url = s;

    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
//    alert(url);
    req.onreadystatechange = processRequest;
    req.open("POST", url, true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    var data = 'ajax=1&' + submit.name + '=1';

    frm = document.getElementById(formName);
    for (var i = 0; i < frm.elements.length; ++i) {
        form_field = frm.elements[i];
        //        alert(form_field.name+":"+form_field.type+":"+form_field.value);
        if (form_field.type == 'checkbox') {
            if (form_field.checked) {
                data += '&' + form_field.name + '=' + encodeURIComponent(form_field.value);
            }
        } else if (form_field.type == 'radio') {
            if (form_field.checked) {
                data += '&' + form_field.name + '=' + encodeURIComponent(form_field.value);
            }
        } else
            if (form_field.type != 'submit' && form_field.type != 'button') {
                data += '&' + form_field.name + '=' + encodeURIComponent(form_field.value);
            }
    }
//    alert(data);
    req.send(data);
    change_status_message();
    return false;
}

function ajax_form_reset(formName, submit) {
    var s = window.location + "";
    var pos = s.indexOf('#');
    if (pos > 0)
        s = s.substr(0, s.lastIndexOf('#'));
    var url = s;

    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    req.onreadystatechange = processRequest;
    req.open("POST", url, true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    var data = 'ajax=1&' + submit.name + '=1';
    frm = document.getElementById(formName);
    for (var i = 0; i < frm.elements.length; ++i) {
        form_field = frm.elements[i];
        if (form_field.name == 'action') {
            data = data + "&action=" + form_field.value;
        }
    }

    reset_form(formName);
    req.send(data);
    change_status_message();
    return false;
}

function reset_form(formName) {
    frm = document.getElementById(formName);
    for (var i = 0; i < frm.elements.length; ++i) {
        form_field = frm.elements[i];
        if (form_field.type != 'submit' && form_field.type != 'button' && form_field.type != 'checkbox' && form_field.type != 'radio') {
            if (form_field.name != 'action')
                form_field.value = '';
        }
    }
}

function ajax_link(link) {
    var s = window.location + "";
    var pos = s.indexOf('#');
    if (pos > 0)
        s = s.substr(0, s.lastIndexOf('#'));
    var pos = s.indexOf('?');
    symbol = "?";
    if (pos > 0)
        symbol = "&";

    var url = s + symbol + link;

    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = processRequest;
    req.open("GET", url, true);
    req.send(null);
    change_status_message();
    return false;
}

var handler_busy = 0;
var process_request_interval_id = 0;

function ajax_func(link) {
    if (handler_busy) {
        str = "ajax_func('" + link + "')";
        //        alert(str);
        process_request_interval_id = setTimeout(str, 200);
        return;
    }
    change_status_message();
    handler_busy = 1;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = processRequest;

    var pos = link.indexOf('?');
    var url = link;
    if (pos > 0){
        url = link.substr(0, link.indexOf('?'));
        link = link.substr(link.indexOf('?')+1); 
    }
//    var url = s;
    


    req.open("POST", url, true);
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    req.send(link);

    //    processRequest();
        return false;
}

function processRequest() {
    if (req.readyState == 4) {
        if (req.status == 200) {
            if (req.responseXML != null && req.responseXML.getElementsByTagName("action")[0] != null) {
                parseMessagesXml();
            } else {
                parseMessagesText();
            }
            /*
                        obj = document.getElementById('status1');
                        if (obj) {
                            obj.innerHTML = "";
                        }
            */
            obj = document.getElementById('processing_div');
            if (obj) {
                obj.style.visibility = "hidden";
            }
            obj = document.getElementById('processing_div_form');
            if (obj) {
                obj.style.visibility = "hidden";
            }
            handler_busy = 0;
            //            clearTimeout(process_request_interval_id);
        } else {
            /*
                        obj = document.getElementById('status1');
                        if (obj) {
                            obj.innerHTML = "Done";
                        }
            */
            obj = document.getElementById('processing_div');
            if (obj) {
                obj.style.visibility = "hidden";
            }
            obj = document.getElementById('processing_div_form');
            if (obj) {
                obj.style.visibility = "hidden";
            }
            if (req.status == 1001) {
                alert("SESSION EXPIRED. PLEASE LOGIN");
                window.location = "/wizard/overview.html";
            } else if (req.status == 1000) {
                alert("SESSION EXPIRED. PLEASE LOGIN");
                window.location = "/dsap/index.jsp";
            } else {
//                alert("ERROR ON SERVER SIDE:" + req.responseText);
            }
            handler_busy = 0;
        }
    }
}

function parseMessagesText() {
    response = req.responseText;
    pos = response.indexOf(':');
    tableName = trim(response.substring(0, pos));
    response = response.substring(pos + 1);
    obj = document.getElementById(tableName + "_div");
//        alert(trim(tableName) + "_div");
//        alert("obj:"+obj);
    obj.innerHTML = response;

    pos1 = response.indexOf("<script");

    while (pos1 > -1) {
        pos2 = response.indexOf("</script", pos1 + 1);
        if (pos1 > -1) {
            script = response.substring(pos1, pos2);
            _pos1 = script.indexOf(">");
            script = script.substring(_pos1 + 1);
            eval(script);
        }
        pos1 = response.indexOf("<script", pos1 + 1);
    }
    //    dhx_init_grids();

    //    init_components();
}

function parseMessagesXml() {
    var action = req.responseXML.getElementsByTagName("action")[0].childNodes[0].nodeValue;
    var func = req.responseXML.getElementsByTagName("func")[0].childNodes[0].nodeValue;
    if (action == 'close') {
        if (func != '' && func != 'empty') {
            var f = "window.opener.setDelayFunc('" + func + "')";
            eval(f);
        }
        window.close();
    } else if (action == 'execfunc') {
        var f = func + "(req);";
        eval(f);
    }
}

function change_status_message() {
    /*
        obj = document.getElementById('status1');
        if (obj) {
            obj.innerHTML = "<img src=\"/images/wait.gif\">Processing Request...";
        }
    */
    obj = document.getElementById('processing_div');
    if (obj) {
        obj.style.visibility = "visible";
    }
    obj = document.getElementById('processing_div_form');
    if (obj) {
        obj.style.visibility = "visible";
    }
}

function show_error(req) {
    error = req.responseXML.getElementsByTagName("error")[0].childNodes[0].nodeValue;
    alert(error);

    try {
        additionalfunc = req.responseXML.getElementsByTagName("additionalfunc")[0].childNodes[0].nodeValue;
        if (additionalfunc != '') {
            //run func
            eval(additionalfunc);
        }
    } catch(everything) {
    }

}

function set_fields(req) {
    fields = req.responseXML.getElementsByTagName("fields")[0].childNodes[0].nodeValue;
    fields = fields.split(",");
    for (i = 0; i < fields.length; i++) {
        try {
            id = fields[i];
            obj = document.getElementById(id);
            if (obj.tagName == 'DIV' || obj.tagName == 'TD' || obj.tagName == 'TH' || obj.tagName == 'LI') {
                var nodeValue = req.responseXML.getElementsByTagName(id)[0].childNodes[0].nodeValue;
                obj.innerHTML = nodeValue;
                pos1 = nodeValue.indexOf("<script");
//                alert("pos:"+pos1);
                while (pos1 > -1) {
                    pos2 = nodeValue.indexOf("</script", pos1 + 1);
                    if (pos1 > -1) {
                        script = nodeValue.substring(pos1, pos2);
                        _pos1 = script.indexOf(">");
                        script = script.substring(_pos1 + 1);
//                        alert(script);
                        eval(script);
                    }
                    pos1 = nodeValue.indexOf("<script", pos1 + 1);
                }

            } else {
                document.getElementById(fields[i]).value = req.responseXML.getElementsByTagName(id)[0].childNodes[0].nodeValue;
            }
        } catch(everything) {
            //            alert("error");
        }
    }
    try {
        additionalfunc = req.responseXML.getElementsByTagName("additionalfunc")[0].childNodes[0].nodeValue;
        if (additionalfunc != '') {
            //run func
            eval(additionalfunc);
        }
    } catch(everything) {
        //        alert("error");
    }

}

