﻿function isUndefined(v) {
    var undef;
    return v===undef;
}

function rawPopup(url, target, features) {
    if (isUndefined(target)) {
        target = '_blank';
    }

    var newWindow = window.open(url, target, features);
    newWindow.focus();
    return newWindow;
}

function linkPopup(src, features) {
    return rawPopup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

/**
 * Alle Input-Element vom Typ Checkbox innerhalb
 * des identifizierten Containers mit dem ?bergebenen
 * Element (einer Checkbox) synchronisieren.
 */
function checkAllCheckboxes(containerId, syncElement)
{
    //alert("call: "+containerId);
    var containerElement = document.getElementById(containerId);
    if (containerElement == null) return;
    if (!containerElement.hasChildNodes()) return;

    var allChildren = containerElement.childNodes;
    var i;
    for (i = 0; i < allChildren.length; i++) {
    	var currentChild = allChildren[i];
        if (currentChild.nodeType != 1) continue; // Textknoten ignorieren
        
        if (currentChild.type != null &&
            currentChild.type.toLowerCase() == 'checkbox') {
            currentChild.checked = syncElement.checked;
        }
        
        if (currentChild.tagName != null && 
            currentChild.tagName.toLowerCase() == 'div') {
            //alert("descending to div with id: "+allChildren[i].id+", ");
            checkAllCheckboxes(currentChild.id, syncElement);
        }
    }
}

function disableUnkownTimeCheckbox() {
    if($("#zeit_unbekannt").attr("checked")) {
        $("#zeit_unbekannt").removeAttr("checked");
    }
    $("#zeit_unbekannt").attr("disabled", "disabled");
    if($("#zeit_von_stunde").val() == '00' && $("#zeit_von_minuten").val() == '00' && 
       $("#zeit_bis_stunde").val() == '00' && $("#zeit_bis_minuten").val() == '00') {
        $("#zeit_unbekannt").attr("disabled", "");
        $("#zeit_unbekannt").attr("checked", "checked");
    }
}

function enableUnkownTimeCheckbox() {
    if($("#zeit_unbekannt").attr("disabled")) {
        $("#zeit_unbekannt").attr("disabled", "");
    }

}

function disableUnkownDateCheckbox() {
    if($("#datum_unbekannt").attr("checked") === 'checked') {
        $("#datum_unbekannt").removeAttr("checked");
    }    
    $("#datum_unbekannt").attr("disabled", "disabled");
    var currentDate = new Date();
    var currentDay = currentDate.getDate();
    var currentYear = currentDate.getFullYear();
    var currentMonth = currentDate.getMonth() + 1;
    
    if($("#datum_von_tag").val() == currentDay && $("#datum_von_monat").val() == currentMonth && 
       $("#datum_von_jahr").val() == currentYear && $("#datum_bis_tag").val() == currentDay && 
       $("#datum_bis_monat").val() == currentMonth && 
       $("#datum_bis_jahr").val() == currentYear) {
        $("#datum_unbekannt").attr("disabled", "");
        $("#datum_unbekannt").attr("checked", "checked");
    } 
}

function enableUnkownDateCheckbox() {
    if($("#datum_unbekannt").attr("disabled")) {
        $("#datum_unbekannt").attr("disabled", "");
    }
}
