function delete_child_domain($oldchilddomain, $assocdom, $childDN, $domDN, $delmodus)
{
    global $ds, $suffix, $domprefix, $domsuffix, $ldapError;
    #print_r($domDN); echo "<br>";
    # dcDNold
    $dcDNold = "ou=DNS," . $suffix;
    $dcold_array = explode('.', $oldchilddomain);
    $dcold_array = array_reverse($dcold_array);
    foreach ($dcold_array as $dc) {
        $dcDNold = "dc=" . $dc . "," . $dcDNold;
    }
    #print_r($dcDNold); echo "<br>";
    # dcDNnew = domDN
    if ($delmodus == "integrate") {
        # associatedNames zu neuem dc-Knoten hinzufügen
        $assocnames = get_dc_data($dcDNold, array("associatedname"));
        # funkt nicht bei uni-freiburg.de
        # echo "<br>"; print_r($assocnames); echo "<br>";
        if (count($assocnames['associatedname']) > 1) {
            foreach ($assocnames['associatedname'] as $aname) {
                #print_r($aname); echo "<br>";
                $entryAN['associatedname'][] = $aname;
            }
        } else {
            $entryAN['associatedname'] = $assocnames['associatedname'];
            $assocname = $assocnames['associatedname'];
            $assocnames['associatedname'] = array($assocname);
        }
        #print_r($entryAN); echo "<br>";
        $resultAN = ldap_mod_add($ds, $domDN, $entryAN);
        if ($resultAN) {
            # DNS Einträge verschieben und an neue Domain anpassen
            $zone_entries = get_zone_entries($dcDNold, array("dn", "relativedomainname"));
            #echo "<br>"; print_r($zone_entries); echo "<br>";
            if (count($zone_entries) >= 1) {
                foreach ($zone_entries as $ze) {
                    #print_r($ze['relativedomainname']); echo "<br>";
                    #print_r($domDN); echo "<br>";
                    move_subtree($ze['dn'], "relativedomainname=" . $ze['relativedomainname'] . "," . $domDN);
                    $entryZE['zonename'] = $assocdom;
                    print_r($entryZE);
                    echo "<br>";
                    $resultZE = ldap_mod_replace($ds, "relativedomainname=" . $ze['relativedomainname'] . "," . $domDN, $entryZE);
                }
            }
            # Rollenmembers kopieren für jeden associatedName (ohne Duplikate zu generieren)
            $newdom_roles = get_roles_dns($domDN);
            #print_r($newdom_roles); echo "<br>";
            if (count($newdom_roles['MainAdmin']) != 0) {
                $newmainadmins = $newdom_roles['MainAdmin'];
            } else {
                $newmainadmins = array();
            }
            if (count($newdom_roles['HostAdmin']) != 0) {
                $newhostadmins = $newdom_roles['HostAdmin'];
            } else {
                $newhostadmins = array();
            }
            if (count($newdom_roles['ZoneAdmin']) != 0) {
                $newzoneadmins = $newdom_roles['ZoneAdmin'];
            } else {
                $newzoneadmins = array();
            }
            #print_r($newmainadmins); echo "<br>";
            #print_r($newhostadmins); echo "<br>";
            #print_r($newzoneadmins); echo "<br><br>";
            foreach ($assocnames['associatedname'] as $aname) {
                #echo "_________________________________________<br>";
                #print_r($aname); echo "<br>";
                $roles = get_roles($aname);
                #print_r($roles); echo "<br>";
                $mainadmins = $roles['MainAdmin'];
                #print_r($mainadmins); echo "<br>";
                #print_r($newmainadmins); echo "<br>";
                $mainadmins = array_diff($mainadmins, $newmainadmins);
                $mainadmins = array_merge($newmainadmins, $mainadmins);
                #print_r($mainadmins); echo "<br>";
                if (count($mainadmins) > 1) {
                    for ($i = 0; $i < count($mainadmins); $i++) {
                        $entryRoleMain['member'][$i] = $mainadmins[$i];
                    }
                } else {
                    $entryRoleMain['member'] = $mainadmins[0];
                }
                #print_r($entryRoleMain); echo "<br><br>";
                $resultMA = ldap_mod_replace($ds, "cn=MainAdmin,cn=roles," . $domDN, $entryRoleMain);
                if (count($roles['HostAdmin']) != 0) {
                    $hostadmins = $roles['HostAdmin'];
                    #print_r($hostadmins); echo "<br>";
                    #print_r($newhostadmins); echo "<br>";
                    $hostadmins = array_diff($hostadmins, $newhostadmins);
                    $hostadmins = array_merge($newhostadmins, $hostadmins);
                    #print_r($hostadmins); echo "<br>";
                    if (count($hostadmins) > 1) {
                        for ($i = 0; $i < count($hostadmins); $i++) {
                            $entryRoleHost['member'][$i] = $hostadmins[$i];
                        }
                    } else {
                        $entryRoleHost['member'] = $hostadmins[0];
                    }
                    #print_r($entryRoleHost); echo "<br><br>";
                    $resultHA = ldap_mod_replace($ds, "cn=HostAdmin,cn=roles," . $domDN, $entryRoleHost);
                }
                if (count($roles['ZoneAdmin']) != 0) {
                    $zoneadmins = $roles['ZoneAdmin'];
                    #print_r($zoneadmins); echo "<br>";
                    #print_r($newzoneadmins); echo "<br>";
                    $zoneadmins = array_diff($zoneadmins, $newzoneadmins);
                    $zoneadmins = array_merge($newzoneadmins, $zoneadmins);
                    #print_r($zoneadmins); echo "<br>";
                    if (count($zoneadmins) > 1) {
                        for ($i = 0; $i < count($zoneadmins); $i++) {
                            $entryRoleZone['member'][$i] = $zoneadmins[$i];
                        }
                    } else {
                        $entryRoleZone['member'] = $zoneadmins[0];
                    }
                    #print_r($entryRoleZone); echo "<br><br>";
                    $resultZA = ldap_mod_replace($ds, "cn=ZoneAdmin,cn=roles," . $domDN, $entryRoleZone);
                }
                # associatedDomain anpassen in allen AUs von $assocnames (alt)
                $entryAD['associateddomain'] = $assocdom;
                #print_r($entryAD); echo "<br>";
                $resultAD = ldap_mod_replace($ds, $aname, $entryAD);
                #echo "_________________________________________<br>";
            }
            # Falls alter dc-Knoten noch Subdomains, d.h. dc-Teilbäume hat, diese verschieben mit
            # rekursivem Anpassen aller Einträge
            $dcchilds = get_dc_childs($dcDNold, array("dn", "dc"));
            #echo "<br><br>"; print_r($dcchilds); echo "<br>";
            if (count($dcchilds) != 0) {
                foreach ($dcchilds as $dcc) {
                    print_r($dcc['dn']);
                    echo " >> ";
                    print_r("dc=" . $dcc['dc'] . "," . $domDN);
                    echo "<br>";
                    if (move_subtree($dcc['dn'], "dc=" . $dcc['dc'] . "," . $domDN)) {
                        $newdom = $dcc['dc'] . "." . $assocdom;
                        #print_r($newdom); echo "<br><br>";
                        dive_into_dctree_adapt("dc=" . $dcc['dc'] . "," . $domDN, $newdom);
                    }
                }
            }
            # alten dc-Knoten entfernen
            dive_into_tree_del($dcDNold, "");
            # fixme: fehlt noch löschen der INCLUDE-Direktive in der parentdomain
        } else {
            return 0;
        }
    }
    if ($delmodus == "complete") {
        # if (dive_into_tree_del($dcDNold,"")){
        $delentry['objectclass'] = "domainrelatedobject";
        $delentry['associateddomain'] = $oldchilddomain . "." . $domsuffix;
        print_r($delentry);
        echo "<br>";
        # 	$delresult = ldap_mod_del($ds,$childDN,$delentry);
        #    if ($delresult){
        # 		$mesg = "Domain komplett gel&ouml;scht<br>";
        # 	}else{$mesg = "Fehler! ldap_mod_del<br>";}
        # }else{$mesg = "Fehler! dive_into_tree_del<br>";}
    }
    # return $mesg;
}
function get_dc_childs_rdn($baseDN)
{
    global $ds, $suffix, $ldapError;
    $childs = get_dc_childs($baseDN, array("dn"));
    # print_r($childs); echo "<br><br>";
    $childs_rdn = array();
    foreach ($childs as $item) {
        $exp = explode(',', $item['dn']);
        $rdn = $exp[0];
        $childs_rdn[] = $rdn;
    }
    # print_r($childs_rdn);
    return $childs_rdn;
}