var IE = false;
if(navigator.appName == "Microsoft Internet Explorer") IE = true;

function getById(_id) {

        return document.getElementById(_id);

}

function posX(_element) {

        var x = _element.offsetLeft;
        var element = _element;

        while(element.offsetParent) {
                element = element.offsetParent;
                x += element.offsetLeft;
        }

        return x;

}

function posY(_element) {

        var y = _element.offsetTop;
        var element = _element;
        var bodyOffset = 0;

        while(element.offsetParent) {

                element = element.offsetParent;
                y += element.offsetTop;
        }

        return y;

}

function delegate(_object, _method) {

        return function(_e) {
                return _method.call(_object, _e);
        }

}

function checkDate(_nDay, _nMonth, _nYear) {
        _nDay = Math.round(_nDay);
        _nMonth = Math.round(_nMonth);
        _nYear = Math.round(_nYear);
        var aLengths = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        if(_nDay <= aLengths[_nMonth] || (_nMonth == 1 && _nDay == 29 && _nYear % 4 == 0)) {
                return true;
        } else {
                return false;
        }
}

// Saving user settings via AJAX

function saveUserSetting(_setting, _value) {

        var request = new AjaxRequest(pathPrefix + "/Ajax/sysSaveUserSetting" + firstSeperator + "setting=" + _setting + "&value=" + _value + sid2);
        request.doRequest();

}


// Shows or hides a specific element

function showHide(_id) {
        if(getById(_id) == null)
                return false;

        if(getById(_id).style.display == "")
                getById(_id).style.display = "none";
        else
                getById(_id).style.display = "";

        return false;
}


// Send KeepAlive package

function sendKeepAlive(_acp) {

        var request = new AjaxRequest(pathPrefix + "/Ajax/sysKeepAlive" + (_acp ? firstSeperator + "acp=true" : ""));
        request.doRequest();

        keepAliveTimeout = window.setTimeout("sendKeepAlive(" + (_acp ? "true" : "false") + ")", 300000);

}


// For DEBUG 2 only

function addLangVar(_code, _var, _element) {

        var div = document.createElement("div");
        div.id = "lang_" + _code + _var;
        div.style.padding = "10px";
        div.style.backgroundColor = "red";
        div.style.position = "absolute";
        div.style.top = posY(_element) + "px";
        div.style.left = posX(_element) + "px";
        div.innerHTML = "<form onsubmit='return addLangVar2(\"" + _code + "\", \"" + _var + "\", this.elements[0].value)'><textarea rows=5 cols=50></textarea><br><input type=submit><input type=button value=close onclick=this.offsetParent.style.display='none'></form>";

        document.body.appendChild(div);

        div.childNodes[0].elements[0].focus();

}

function addLangVar2(_code, _var, _value) {

        getById("lang_" + _code + _var).style.display = "none";
        if(getById("lang_" + _code + "_" + _var) != null)
                getById("lang_" + _code + "_" + _var).innerHTML = _value;

        var request = new AjaxRequest(pathPrefix + "/Ajax/lngAddVar", false, true);
        request.setPostvars("code=" + _code + "&var=" + _var + "&value=" + _value);
        request.doRequest();

        return false;

}

// Toggle for lots of checkboxes
function toggleEventHandler(_formId, _elementNames, _sender) {

        var checkBoxes = getById(_formId).elements[_elementNames];
        var checked = 0;
        var count = 0;

        if(!checkBoxes)
                return;

        if(checkBoxes.type == "checkbox")
                count = 1;
        else
                count = checkBoxes.length;

        if(count == 1) {
                if(_sender.id != "ALL")
                        getById('ALL').checked = checkBoxes.checked;
                else
                        checkBoxes.checked = _sender.checked;
                return true;
        }

        for(var i = 0; i < count; i++) {
                if(checkBoxes[i].checked)
                        checked++;
        }

        if(_sender.id != 'ALL') {
                if(checked == 0)
                        getById('ALL').checked = false;
                if(checked == count)
                        getById('ALL').checked = true;
        }

        if(_sender) {
                if(_sender.id == "ALL") {
                        for(var i = 0; i < count; i++)
                                checkBoxes[i].checked = _sender.checked;
                }
                else
                        if(!_sender.checked)
                                getById('ALL').checked = false;
        }

        return true;

}

function textCounter(_field, _counter, _max) {

        var length = _field.value.length

        if (length > _max)
                _field.value = _field.value.substring(0, _max);

        else {
                if(_max -length == 0)
                        _counter.style.fontWeight = "bold";
                else
                        _counter.style.fontWeight = "normal";

                _counter.innerHTML = _max - length;
        }
}


// Internal links

function showInternalLinkSelection(_input) {
        window.open(pathPrefix + "/DirectCall/wysInternalLinks" + firstSeperator + "targetInput=" + _input + sid2, "internalLinkSelection", "width=365, height=320");
}


// File selection

function showFileSelection(_input, _path) {
        window.open(pathPrefix + "/DirectCall/wysFileManager" + firstSeperator + "targetInput=" + _input + (_path == null ? "" : "&forcedDirectory=" + _path) + sid2, "internalLinkSelection", "width=640, height=465");
}


// Confirm message

function confirmMessage(_id) {

        var request = new AjaxRequest(pathPrefix + "/Ajax/sysConfirmMessage" + firstSeperator + "id=" + _id + sid2);
        request.doRequest();

        getById("message_" + _id).style.display = "none";

        if(getVisibleRows(getById("messagetable")) == 0)
                getById("messagebox").style.display = "none";

        return false;

}

function getVisibleRows(_table) {
        var count = 0;
        for(var i = 0; i < _table.rows.length; i++) {
                if(_table.rows[i].style.display != "none")
                        count++;
        }
        return count;
}

//Toggle for checkboxes to disable input fields

function toggleInput(_input) {

        if(getById(_input).disabled == true) getById(_input).disabled = false;
        else getById(_input).disabled = true;

}

// Debuging Function (Similar to print_r in PHP)
function print_r(input, _indent) {
        if(typeof(_indent) == 'string') {
                var indent = _indent + ' ';
                var paren_indent = _indent + ' ';
        } else {
                var indent = ' ';
                var paren_indent = '';
        }

        switch(typeof(input)) {
                case 'boolean':
                        var output = (input ? 'true' : 'false') + "\n";
                        break;

                case 'object':
                        if ( input===null ) {
                                var output = "null\n";
                                break;
                        }
                        var output = ((input.reverse) ? 'Array' : 'Object') + " (\n";

                        for(var i in input) {
                                output += indent + "[" + i + "] => " + print_r(input[i], indent);
                        }
                        output += paren_indent + ")\n";
                        break;

                case 'number':
                case 'string':
                default:
                var output = "" + input + "\n";
        }
        return output;
}


// This function executes all javascript found in string object
function evalJS(_content) {

        var container = document.createElement('div');
        container.innerHTML = _content;

        var code = "";

        for(var i = 0; i < container.getElementsByTagName('script').length; i++) {

                code += container.getElementsByTagName('script')[i].innerHTML;

        }

        eval(code);

        delete container;
}

function in_array(_needle, _haystack) {

        var count = _needle.length;

        for(var i = 0; i < count; i++) {

                if(_needle == _haystack[i])
                        return true;
        }

        return false;
}

function getNextSibling(_element) {

        if(IE)
                return _element.nextSibling;
        else
                return _element.nextSibling.nextSibling;

}

function scrollToTop() {

        $('html, body').animate({
                scrollTop: 0
        }, 1000);

        return false;
}
//da-FORMMAKER

function chkFormular()
{
if(document.DAFORM.Name.value == "")  {
alert("Bitte tragen Sie Ihren Namen ein!");
document.DAFORM.Name.focus();
return false;
}

if(document.DAFORM.Email.value == "")  {
alert("Bitte tragen Sie Ihre Mailadresse ein!");
document.DAFORM.Email.focus();
return false;
}

if(document.DAFORM.Bemerkungen.value == "")  {
alert("Bitte teilen Sie mir Ihren Anfrage Grund mit!");
document.DAFORM.Bemerkungen.focus();
return false;
}

 return(true); }
