/* =================================================== * jquery-sortable.js v0.9.13 * http://johnny.github.com/jquery-sortable/ * =================================================== * Copyright (c) 2012 Jonas von Andrian * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ========================================================== */ !function ( $, window, pluginName, undefined){ var containerDefaults = { // If true, items can be dragged from this container drag: true, // If true, items can be droped onto this container drop: true, // Exclude items from being draggable, if the // selector matches the item exclude: "", // If true, search for nested containers within an item.If you nest containers, // either the original selector with which you call the plugin must only match the top containers, // or you need to specify a group (see the bootstrap nav example) nested: true, // If true, the items are assumed to be arranged vertically vertical: true }, // end container defaults groupDefaults = { // This is executed after the placeholder has been moved. // $closestItemOrContainer contains the closest item, the placeholder // has been put at or the closest empty Container, the placeholder has // been appended to. afterMove: function ($placeholder, container, $closestItemOrContainer) { }, // The exact css path between the container and its items, e.g. "> tbody" containerPath: "", // The css selector of the containers containerSelector: "ol, ul", // Distance the mouse has to travel to start dragging distance: 0, // Time in milliseconds after mousedown until dragging should start. // This option can be used to prevent unwanted drags when clicking on an element. delay: 0, // The css selector of the drag handle handle: "", // The exact css path between the item and its subcontainers. // It should only match the immediate items of a container. // No item of a subcontainer should be matched. E.g. for ol>div>li the itemPath is "> div" itemPath: "", // The css selector of the items itemSelector: "li", // The class given to "body" while an item is being dragged bodyClass: "dragging", // The class giving to an item while being dragged draggedClass: "dragged", // Check if the dragged item may be inside the container. // Use with care, since the search for a valid container entails a depth first search // and may be quite expensive. isValidTarget: function ($item, container) { return true }, // Executed before onDrop if placeholder is detached. // This happens if pullPlaceholder is set to false and the drop occurs outside a container. onCancel: function ($item, container, _super, event) { }, // Executed at the beginning of a mouse move event. // The Placeholder has not been moved yet. onDrag: function ($item, position, _super, event) { $item.css(position) }, // Called after the drag has been started, // that is the mouse button is being held down and // the mouse is moving. // The container is the closest initialized container. // Therefore it might not be the container, that actually contains the item. onDragStart: function ($item, container, _super, event) { $item.css({ height: $item.outerHeight(), width: $item.outerWidth() }) $item.addClass(container.group.options.draggedClass) $("body").addClass(container.group.options.bodyClass) }, // Called when the mouse button is being released onDrop: function ($item, container, _super, event) { $item.removeClass(container.group.options.draggedClass).removeAttr("style") $("body").removeClass(container.group.options.bodyClass) }, // Called on mousedown. If falsy value is returned, the dragging will not start. // Ignore if element clicked is input, select or textarea onMousedown: function ($item, _super, event) { if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) { event.preventDefault() return true } }, // The class of the placeholder (must match placeholder option markup) placeholderClass: "placeholder", // Template for the placeholder. Can be any valid jQuery input // e.g. a string, a DOM element. // The placeholder must have the class "placeholder" placeholder: '
  • ', // If true, the position of the placeholder is calculated on every mousemove. // If false, it is only calculated when the mouse is above a container. pullPlaceholder: true, // Specifies serialization of the container group. // The pair $parent/$children is either container/items or item/subcontainers. serialize: function ($parent, $children, parentIsContainer) { var result = $.extend({}, $parent.data()) if(parentIsContainer) return [$children] else if ($children[0]){ result.children = $children } delete result.subContainers delete result.sortable return result }, // Set tolerance while dragging. Positive values decrease sensitivity, // negative values increase it. tolerance: 0 }, // end group defaults containerGroups = {}, groupCounter = 0, emptyBox = { left: 0, top: 0, bottom: 0, right:0 }, eventNames = { start: "touchstart.sortable mousedown.sortable", drop: "touchend.sortable touchcancel.sortable mouseup.sortable", drag: "touchmove.sortable mousemove.sortable", scroll: "scroll.sortable" }, subContainerKey = "subContainers" /* * a is Array [left, right, top, bottom] * b is array [left, top] */ function d(a,b) { var x = Math.max(0, a[0] - b[0], b[0] - a[1]), y = Math.max(0, a[2] - b[1], b[1] - a[3]) return x+y; } function setDimensions(array, dimensions, tolerance, useOffset) { var i = array.length, offsetMethod = useOffset ? "offset" : "position" tolerance = tolerance || 0 while(i--){ var el = array[i].el ? array[i].el : $(array[i]), // use fitting method pos = el[offsetMethod]() pos.left += parseInt(el.css('margin-left'), 10) pos.top += parseInt(el.css('margin-top'),10) dimensions[i] = [ pos.left - tolerance, pos.left + el.outerWidth() + tolerance, pos.top - tolerance, pos.top + el.outerHeight() + tolerance ] } } function getRelativePosition(pointer, element) { var offset = element.offset() return { left: pointer.left - offset.left, top: pointer.top - offset.top } } function sortByDistanceDesc(dimensions, pointer, lastPointer) { pointer = [pointer.left, pointer.top] lastPointer = lastPointer && [lastPointer.left, lastPointer.top] var dim, i = dimensions.length, distances = [] while(i--){ dim = dimensions[i] distances[i] = [i,d(dim,pointer), lastPointer && d(dim, lastPointer)] } distances = distances.sort(function (a,b) { return b[1] - a[1] || b[2] - a[2] || b[0] - a[0] }) // last entry is the closest return distances } function ContainerGroup(options) { this.options = $.extend({}, groupDefaults, options) this.containers = [] if(!this.options.rootGroup){ this.scrollProxy = $.proxy(this.scroll, this) this.dragProxy = $.proxy(this.drag, this) this.dropProxy = $.proxy(this.drop, this) this.placeholder = $(this.options.placeholder) if(!options.isValidTarget) this.options.isValidTarget = undefined } } ContainerGroup.get = function (options) { if(!containerGroups[options.group]) { if(options.group === undefined) options.group = groupCounter ++ containerGroups[options.group] = new ContainerGroup(options) } return containerGroups[options.group] } ContainerGroup.prototype = { dragInit: function (e, itemContainer) { this.$document = $(itemContainer.el[0].ownerDocument) // get item to drag var closestItem = $(e.target).closest(this.options.itemSelector); // using the length of this item, prevents the plugin from being started if there is no handle being clicked on. // this may also be helpful in instantiating multidrag. if (closestItem.length) { this.item = closestItem; this.itemContainer = itemContainer; if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) { return; } this.setPointer(e); this.toggleListeners('on'); this.setupDelayTimer(); this.dragInitDone = true; } }, drag: function (e) { if(!this.dragging){ if(!this.distanceMet(e) || !this.delayMet) return this.options.onDragStart(this.item, this.itemContainer, groupDefaults.onDragStart, e) this.item.before(this.placeholder) this.dragging = true } this.setPointer(e) // place item under the cursor this.options.onDrag(this.item, getRelativePosition(this.pointer, this.item.offsetParent()), groupDefaults.onDrag, e) var p = this.getPointer(e), box = this.sameResultBox, t = this.options.tolerance if(!box || box.top - t > p.top || box.bottom + t < p.top || box.left - t > p.left || box.right + t < p.left) if(!this.searchValidTarget()){ this.placeholder.detach() this.lastAppendedItem = undefined } }, drop: function (e) { this.toggleListeners('off') this.dragInitDone = false if(this.dragging){ // processing Drop, check if placeholder is detached if(this.placeholder.closest("html")[0]){ this.placeholder.before(this.item).detach() } else { this.options.onCancel(this.item, this.itemContainer, groupDefaults.onCancel, e) } this.options.onDrop(this.item, this.getContainer(this.item), groupDefaults.onDrop, e) // cleanup this.clearDimensions() this.clearOffsetParent() this.lastAppendedItem = this.sameResultBox = undefined this.dragging = false } }, searchValidTarget: function (pointer, lastPointer) { if(!pointer){ pointer = this.relativePointer || this.pointer lastPointer = this.lastRelativePointer || this.lastPointer } var distances = sortByDistanceDesc(this.getContainerDimensions(), pointer, lastPointer), i = distances.length while(i--){ var index = distances[i][0], distance = distances[i][1] if(!distance || this.options.pullPlaceholder){ var container = this.containers[index] if(!container.disabled){ if(!this.$getOffsetParent()){ var offsetParent = container.getItemOffsetParent() pointer = getRelativePosition(pointer, offsetParent) lastPointer = getRelativePosition(lastPointer, offsetParent) } if(container.searchValidTarget(pointer, lastPointer)) return true } } } if(this.sameResultBox) this.sameResultBox = undefined }, movePlaceholder: function (container, item, method, sameResultBox) { var lastAppendedItem = this.lastAppendedItem if(!sameResultBox && lastAppendedItem && lastAppendedItem[0] === item[0]) return; item[method](this.placeholder) this.lastAppendedItem = item this.sameResultBox = sameResultBox this.options.afterMove(this.placeholder, container, item) }, getContainerDimensions: function () { if(!this.containerDimensions) setDimensions(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent()) return this.containerDimensions }, getContainer: function (element) { return element.closest(this.options.containerSelector).data(pluginName) }, $getOffsetParent: function () { if(this.offsetParent === undefined){ var i = this.containers.length - 1, offsetParent = this.containers[i].getItemOffsetParent() if(!this.options.rootGroup){ while(i--){ if(offsetParent[0] != this.containers[i].getItemOffsetParent()[0]){ // If every container has the same offset parent, // use position() which is relative to this parent, // otherwise use offset() // compare #setDimensions offsetParent = false break; } } } this.offsetParent = offsetParent } return this.offsetParent }, setPointer: function (e) { var pointer = this.getPointer(e) if(this.$getOffsetParent()){ var relativePointer = getRelativePosition(pointer, this.$getOffsetParent()) this.lastRelativePointer = this.relativePointer this.relativePointer = relativePointer } this.lastPointer = this.pointer this.pointer = pointer }, distanceMet: function (e) { var currentPointer = this.getPointer(e) return (Math.max( Math.abs(this.pointer.left - currentPointer.left), Math.abs(this.pointer.top - currentPointer.top) ) >= this.options.distance) }, getPointer: function(e) { var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0] return { left: e.pageX || o.pageX, top: e.pageY || o.pageY } }, setupDelayTimer: function () { var that = this this.delayMet = !this.options.delay // init delay timer if needed if (!this.delayMet) { clearTimeout(this._mouseDelayTimer); this._mouseDelayTimer = setTimeout(function() { that.delayMet = true }, this.options.delay) } }, scroll: function (e) { this.clearDimensions() this.clearOffsetParent() // TODO is this needed? }, toggleListeners: function (method) { var that = this, events = ['drag','drop','scroll'] $.each(events,function (i,event) { that.$document[method](eventNames[event], that[event + 'Proxy']) }) }, clearOffsetParent: function () { this.offsetParent = undefined }, // Recursively clear container and item dimensions clearDimensions: function () { this.traverse(function(object){ object._clearDimensions() }) }, traverse: function(callback) { callback(this) var i = this.containers.length while(i--){ this.containers[i].traverse(callback) } }, _clearDimensions: function(){ this.containerDimensions = undefined }, _destroy: function () { containerGroups[this.options.group] = undefined } } function Container(element, options) { this.el = element this.options = $.extend( {}, containerDefaults, options) this.group = ContainerGroup.get(this.options) this.rootGroup = this.options.rootGroup || this.group this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector var itemPath = this.rootGroup.options.itemPath this.target = itemPath ? this.el.find(itemPath) : this.el this.target.on(eventNames.start, this.handle, $.proxy(this.dragInit, this)) if(this.options.drop) this.group.containers.push(this) } Container.prototype = { dragInit: function (e) { var rootGroup = this.rootGroup if( !this.disabled && !rootGroup.dragInitDone && this.options.drag && this.isValidDrag(e)) { rootGroup.dragInit(e, this) } }, isValidDrag: function(e) { return e.which == 1 || e.type == "touchstart" && e.originalEvent.touches.length == 1 }, searchValidTarget: function (pointer, lastPointer) { var distances = sortByDistanceDesc(this.getItemDimensions(), pointer, lastPointer), i = distances.length, rootGroup = this.rootGroup, validTarget = !rootGroup.options.isValidTarget || rootGroup.options.isValidTarget(rootGroup.item, this) if(!i && validTarget){ rootGroup.movePlaceholder(this, this.target, "append") return true } else while(i--){ var index = distances[i][0], distance = distances[i][1] if(!distance && this.hasChildGroup(index)){ var found = this.getContainerGroup(index).searchValidTarget(pointer, lastPointer) if(found) return true } else if(validTarget){ this.movePlaceholder(index, pointer) return true } } }, movePlaceholder: function (index, pointer) { var item = $(this.items[index]), dim = this.itemDimensions[index], method = "after", width = item.outerWidth(), height = item.outerHeight(), offset = item.offset(), sameResultBox = { left: offset.left, right: offset.left + width, top: offset.top, bottom: offset.top + height } if(this.options.vertical){ var yCenter = (dim[2] + dim[3]) / 2, inUpperHalf = pointer.top <= yCenter if(inUpperHalf){ method = "before" sameResultBox.bottom -= height / 2 } else sameResultBox.top += height / 2 } else { var xCenter = (dim[0] + dim[1]) / 2, inLeftHalf = pointer.left <= xCenter if(inLeftHalf){ method = "before" sameResultBox.right -= width / 2 } else sameResultBox.left += width / 2 } if(this.hasChildGroup(index)) sameResultBox = emptyBox this.rootGroup.movePlaceholder(this, item, method, sameResultBox) }, getItemDimensions: function () { if(!this.itemDimensions){ this.items = this.$getChildren(this.el, "item").filter( ":not(." + this.group.options.placeholderClass + ", ." + this.group.options.draggedClass + ")" ).get() setDimensions(this.items, this.itemDimensions = [], this.options.tolerance) } return this.itemDimensions }, getItemOffsetParent: function () { var offsetParent, el = this.el // Since el might be empty we have to check el itself and // can not do something like el.children().first().offsetParent() if(el.css("position") === "relative" || el.css("position") === "absolute" || el.css("position") === "fixed") offsetParent = el else offsetParent = el.offsetParent() return offsetParent }, hasChildGroup: function (index) { return this.options.nested && this.getContainerGroup(index) }, getContainerGroup: function (index) { var childGroup = $.data(this.items[index], subContainerKey) if( childGroup === undefined){ var childContainers = this.$getChildren(this.items[index], "container") childGroup = false if(childContainers[0]){ var options = $.extend({}, this.options, { rootGroup: this.rootGroup, group: groupCounter ++ }) childGroup = childContainers[pluginName](options).data(pluginName).group } $.data(this.items[index], subContainerKey, childGroup) } return childGroup }, $getChildren: function (parent, type) { var options = this.rootGroup.options, path = options[type + "Path"], selector = options[type + "Selector"] parent = $(parent) if(path) parent = parent.find(path) return parent.children(selector) }, _serialize: function (parent, isContainer) { var that = this, childType = isContainer ? "item" : "container", children = this.$getChildren(parent, childType).not(this.options.exclude).map(function () { return that._serialize($(this), !isContainer) }).get() return this.rootGroup.options.serialize(parent, children, isContainer) }, traverse: function(callback) { $.each(this.items || [], function(item){ var group = $.data(this, subContainerKey) if(group) group.traverse(callback) }); callback(this) }, _clearDimensions: function () { this.itemDimensions = undefined }, _destroy: function() { var that = this; this.target.off(eventNames.start, this.handle); this.el.removeData(pluginName) if(this.options.drop) this.group.containers = $.grep(this.group.containers, function(val){ return val != that }) $.each(this.items || [], function(){ $.removeData(this, subContainerKey) }) } } var API = { enable: function() { this.traverse(function(object){ object.disabled = false }) }, disable: function (){ this.traverse(function(object){ object.disabled = true }) }, serialize: function () { return this._serialize(this.el, true) }, refresh: function() { this.traverse(function(object){ object._clearDimensions() }) }, destroy: function () { this.traverse(function(object){ object._destroy(); }) } } $.extend(Container.prototype, API) /** * jQuery API * * Parameters are * either options on init * or a method name followed by arguments to pass to the method */ $.fn[pluginName] = function(methodOrOptions) { var args = Array.prototype.slice.call(arguments, 1) return this.map(function(){ var $t = $(this), object = $t.data(pluginName) if(object && API[methodOrOptions]) return API[methodOrOptions].apply(object, args) || this else if(!object && (methodOrOptions === undefined || typeof methodOrOptions === "object")) $t.data(pluginName, new Container($t, methodOrOptions)) return this }); }; }(jQuery, window, 'sortable'); الاقامة الدائمة في المانيا للأطفال وأهم شروطها
    advertisement

    الاقامة الدائمة في المانيا للأطفال وأهم شروطها

    الاقامة الدائمة في المانيا للأطفال وأهم شروطها

    الاقامة الدائمة في المانيا للاطفال، إن منح تصريح الإقامة الدائمة للأطفال في ألمانيا يتمتع بعدة مزايا خاصة، حيث يمكن أن تمنح هذه الإقامات بشكل مخالف للوائح العامة، حيث تفترض السلطات أن هؤلاء الأطفال قد ولدوا واندمجوا في المجتمع الألماني بشكل تام، وهذا يمنحهم الحق في الحصول عليها. تابع القراءة للتعرف على الاقامة الدائمة في ألمانيا للأطفال وأهم شروطها.
    الاقامة الدائمة في المانيا للأطفال وأهم شروطها
    الاقامة الدائمة في المانيا للأطفال وأهم شروطها

    الاقامة الدائمة في المانيا للاطفال فوق 16 عامًا

    يمكن للطفل أن يأخذ تصريح الاقامة الدائمة في ألمانيا بمجرد بلوغه عمر 16 عامًا، في حال كان حاصلاً على تصريح إقامه سابق مدته خمس سنوات، ويجب أن يكون قد صدر هذا التصريح بهدف لم الشمل، ويمكن أيضاً الحصول على اقامة دائمة عن طريق الولادة في المانيا وفق المادة 34 من قانون الإقامة الدائمة.
    وفي هذه الحالة يطلب منه وثائق تدل على دوامه في المدارس طيلة السنوات الخمس دون انقطاع، وجواز سفر ذو صلاحية سارية.

    إقامه الأطفال فوق عمر 18 في إلمانيا بشكل دائم

    يحق للأشخاص الأجانب الذين لم يحصلوا على إقامه مدتها 5 سنوات، أن يحصلوا بمجرد وصولهم لسن 16 عامًا على إقامة دائمة في إلمانيا وذلك وفق بعض الشروط المحددة:
    • أن تزيد أعمار المتقدمين عن 18 عام.
    • أن يكون حاصلاً على تصريح للإقامة لمدة خمس سنوات.
    • لديه ما يكفي من المهارات اللغوية.
    • قادر على تأمين المعيشة لنفسه أو يتابع التدريب المهني.
    ويمكن أن يتم التنازل عن بعض المتطلبات إذا لم يستطع الأجنبي من ذوي الإعاقة الجسدية أو النفسية أن يستوفيها.

    الاقامة الدائمة في ألمانيا للاطفال المولودين فيها

    يولد العديد من الأطفال في ألمانية لوالدين يحملان الجنسية، أو مقيمين فيها بشكل مؤقت ويحصل  المولود على الإقامة إذا حقق ما يلي:
    • أن يولد في ولاية من الولايات الألمانية.
    • أحد والديه على الأقل يحمل تصريح إقامة ساري الصلاحية.
    • يحصل المولود في ألمانيا على الجنسية الألمانية في حال كان لأبوين أجنبيين  ووالديه مقيمين في المانيا إقامة دائمة لفترة ثماني سنوات.
    • لا يجبر أهل  المولود في المانيا بتقديم طلبات لجوء للحصول على الإقامة الدائمة حتى لو كان أحد الابوين لاجئاً فيها.

     هل يحصل الأهل على إقامه دائمة بمجرد امتلاك الطفل لها

    عندما يحصل الطفل على تصريح للإقامة الدائمة من أحد الوالدين، فإن الطرف الثاني أيضاً يحصل عليها لكن هناك بعض المزايا التي يجب أن يتحلى بها الوالد مثل:
    • الاعتراف بالأبوة والتوقيع على إعلان الحضانة الوالدية المشتركة.
    • قبول الأب لطفله بيولوجياً مع رعاية وتأمين جميع مستلزماته ونفقاته، وتقديم الاثباتات على ذلك مثل شهادة ميلاده وهويته الشخصية.
    •  الطفل اللاجيء يمكنه أن يعطي والديه حقوق الإقامه وذلك وفق قانون لم شمل الأسرة.
    • يمكن الحصول على إقامة بسبب حظر الترحيل، وتعني صعوبة ترحيل الأسرة وعدم القدرة على الهجرة والعيش في بلدهم الأصلي.
    • يمكن الحصول على موافقة لم شمل الأسرة للوالدين الذين تجاوزا سن 18 عام، وللأشقاء الذين أعمارهم تحت السن القانونية وهي تمنح لهم عدة مزايا مثل حق السفر مع حرية التنقل أو العمل ضمن أرض  هذا البلد.

    أسباب رفض الإقامة في ألمانيا للاطفال

    قد يتم رفض طلب الأطفال التقدم للحصول على الاقامة الدائمة في إلمانيا للاطفال لعدة أسباب، وهي موجودة في الجزء 35 من قانون الإقامة، ومن أهم الأسباب التي تؤدي لهذا الرفض نذكر:
    • سلوك شخصي غير جيد، وللأسف فإن هذا المعيار يتيح للموظفين التحكم بمنح الإقامات بشكل كبير.
    • لدى الطفل سجل جنائي مريب أو محكوم عليه.
    • ليس لديه تأمين لكسب الرزق وغير قادر على كسب العيش.
    وفي حالة وجود أسباب للرفض يجب أن يكون تقييمها بشكل فردي، ويتم ترحيلها من البلد على هذا الأساس.

    أنواع الإقامه في دولة ألمانيا للأسرة

    تبدأ الإقامة في ألمانيا بشكل مؤقت، ومع مرور الوقت تصبح دائمة وذلك تبعاً للحالة التي تتواجد فيها الأسرة، وتختلف مدة الحصول على الإقامة الدائمة تبعاً للطريقة التي أتى بها الفرد إلى هذه الدولة ومن أنواع الإقامات:
    1. إقامه العمل: ويحصل عليها المهاجرين القادمين للدراسة والذين حصلوا على عمل، وقاموا بتحويل إقامه الدراسة إلى اقامة عمل وهنا في هذه الحالة يمكنك البقاء في ألمانيا لمدة عام ونصف، ثم تحصل على إقامة دائمة بشكل سريع وبعدها الجنسية.
    2. إقامه الٍّلجوء: وفيها يتقدم اللاجيء بطلب اللجوء ويحصل على إقامة لمدة ثلاث سنوات فقط، ويمكنه خلالها أن يقدم الطلب للم شمل الأسرة، وقد يحصل على حماية جزئية ولكن يتم ترحيله عندما يتحسن الوضع في بلده.
    3. إقامه لم الشّمل: وهي نوع من الإقامات الذي يسمح بجلب أطفال وذوي المقيمين إلى المانيا، بعد تقديم إثباتات السكن وتأمين متطلبات العيش.
    4. إقامة الدراسة: ويحصل طالب العلم على هذا النوع من الإقامات ويمكن أن يبقى مدة سنة ونصف بعد انتهاء الدراسة، وتحويل هذه الإقامة إلى إقامة عمل.
    5. إقامه الزواج: وذلك في حال الزواج من مواطن ألماني  يحصل الزوج أو الزوجة فوراً على اقامة دائمة، وتتميز بالسرعة والسهولة، لكن يشترط أن لا يكون الزواج بهدف المنفعة وإلا فإنه يتم ترحيل الشخص إلى بلده الاصلي.

    أوقات الإقامة للاطفال التي يتم أخذها في الاعتبار

    يجب على المتقدم لطلب لتصريح الإقامة الدائمة في ألمانيا للاطفال أن يكون حاصل على إقامة مؤقتة لمدة 5  سنوات على الاقل، ومع ذلك لا يمكن الاعتماد عليها بشكل حقيقي لاستلام تصريح الإقامة الدائمة، ويمكن تمديد فترات الاقامة وفق شروط في الحالات التالية:
    • الإقامة السابقة وفق تأشيرة صالحة قبل الحصول على التصريح بالإقامة.
    • الأثر الوهمي في حال تم طلب التمديد.
    • فترات تصريح الإقامة بموجب قانون الإقامة.

    الفرق بين الإقامة والتجنيس للأطفال

    إصدار تصريح الإقامة الدائمة niederlassungserlaubnis هو تصريح بالعيش، لكن هناك مبدأ أساسي للحصول على الجنسيه في ألمانية وهو حق الدم أو مبدأ النسب، حيث يعتبر القانون الطفل المولود في ألمانيا لأب أو أم ألمانية ألمانياً منذ الولادة، وإذا كان أحد الوالدين يحمل جنسيتين فإن طفله يحصل عليهما بشكل تلقائي دون فقدان أي حق من حقوقه.
    فالولادة في هذا البلد تمنح طفلك عدة ميزات أهمها الحصول على جنسية  البلد، فقط في حال كان أحد الأبوين حاملاً لهذه الجنسية، حتى لو كان أحد والديه لاجئاً لكن بشرط أن يكون مر على بقائه ثمانية أعوام وقت ولادة الطفل.
    وبعد عام 2000 أصبح كل طفل يولد في المانية يحصل على جنسيتها، حتى لو لم يكن أحد الوالدان ألمانياً، لكن في هذه الحالة يمنع الحصول على الجنسية المزدوجة، وعند بلوغ الطفل الواحد والعشرين من العمر يختار بين بقاء جنسيته الألمانيه والتنازل عن الجنسيات الأخرى، أو التنازل عن جنسيته الألمانية لصالح الجنسيات الأخرى وهو ما يطلق عليه مصطلح النموذج التخييري.
    في الختام وبعد الحديث عن الاقامة الدائمة في المانيا للأطفال وأهم 5 أنواع لها، يمكن القول أن الحصول على تصريح إقامة دائمة في المانيا يعد بمثابة حجر الأساس الذي يرتكز عليه عملك ووظيفتك وحتى الدراسة في هذا البلد، حيث يمنحك هذا التصريح الحق في العيش بأمان وحرية دون أي قيود مفروضة على الأشخاص اللاجئين أو المقيمين فيها بصورة مؤقتة.

    اترك تعليقاً

    لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

    زر الذهاب إلى الأعلى