var ByRei_dynDiv = {
	info : {
		Name : "ByRei dynDiv",
		Version : "1.0 RC1",
		Author : "Markus Bordihn (http://markusbordihn.de)",
		Description : "Simple dynamic DIV's"
	},
	api : {
		drag : null,
		drop : null,
		elem : null,
		alter : null,
		obj : null
	},
	dropArea : [],
	config : {
		prefix : "dynDiv_",
		cookie : {
			expire : "2678400"
		},
		regExp : {
			px : /(\d+)px/,
			minmax : /dynDiv_minmaxDiv|dynDiv_moveParentDiv/
		}
	},
	cache : {
		obj : null,
		elem : null,
		modus : null,
		zIndex : null,
		width : null,
		height : null,
		pos : {
			left : null,
			top : null
		},
		init : {
			width : null,
			height : null,
			pos : {
				left : null,
				top : null
			},
			offset : null
		},
		last : {
			obj : null,
			elem : null,
			mouse : {
				left : null,
				top : null
			}
		},
		browser : {
			support : {
				page : false,
				client : false
			}
		},
		unloadHandler : null,
		ie : (window.detachEvent) ? true : false
	},
	limit : {
		min : {
			left : null,
			top : null,
			width : null,
			height : null
		},
		max : {
			left : null,
			top : null,
			width : null,
			height : null
		}
	},
	divList : [],
	get : {
		prefix : {
			value : function(a, b, c) {
				return ByRei_dynDiv.get.value(a,
						ByRei_dynDiv.config.prefix + b, c)
			}
		},
		value : function(a, b, c) {
			var i, result = '', il = a.length;
			if (a && b) {
				for (i = 0; i < il; i++) {
					if (c && a[i].indexOf(b) >= 0) {
						result = a[i].split(b)[1];
						break
					} else if (a[i] === b) {
						result = a[i];
						break
					}
				}
			}
			return result
		},
		pos : function(a) {
			if (a) {
				ByRei_dynDiv.cache.init = {
					width : a.clientWidth,
					height : a.clientHeight,
					pos : {
						left : ByRei_dynDiv.cache.pos.left,
						top : ByRei_dynDiv.cache.pos.top
					},
					offset : ByRei_dynDiv.get.offset.absolute(a)
				};
				ByRei_dynDiv.db(2, true);
				ByRei_dynDiv.db(4, ByRei_dynDiv.get.offset.relative(a).left);
				ByRei_dynDiv.db(5, ByRei_dynDiv.get.offset.relative(a).top)
			}
		},
		px : function(a) {
			var b = "";
			if (a) {
				if (a.match(ByRei_dynDiv.config.regExp.px)) {
					if (typeof a.match(ByRei_dynDiv.config.regExp.px)[1] !== 'undefined') {
						b = a.match(ByRei_dynDiv.config.regExp.px)[1]
					}
				}
			}
			return b
		},
		mouse : function(a) {
			if (a) {
				if (!ByRei_dynDiv.cache.browser.support.page
						&& !ByRei_dynDiv.cache.browser.support.client) {
					ByRei_dynDiv.cache.browser.support.page = (a.pageX || a.pageY) ? true
							: false;
					ByRei_dynDiv.cache.browser.support.client = (a.clientX || a.clientY) ? true
							: false
				}
				if (ByRei_dynDiv.cache.browser.support.page) {
					ByRei_dynDiv.cache.pos.left = a.pageX;
					ByRei_dynDiv.cache.pos.top = a.pageY
				} else if (ByRei_dynDiv.cache.browser.support.client) {
					ByRei_dynDiv.cache.pos.left = a.clientX
							+ document.body.scrollLeft
							+ document.documentElement.scrollLeft;
					ByRei_dynDiv.cache.pos.top = a.clientY
							+ document.body.scrollTop
							+ document.documentElement.scrollTop
				}
			}
		},
		offset : {
			absolute : function(a) {
				var b = 0, top = 0;
				if (a) {
					b = ByRei_dynDiv.get.offset.relative(a).left;
					top = ByRei_dynDiv.get.offset.relative(a).top;
					while (a.offsetParent) {
						b += ByRei_dynDiv.get.offset.relative(a.offsetParent).left;
						top += ByRei_dynDiv.get.offset.relative(a.offsetParent).top;
						a = a.offsetParent
					}
				}
				return {
					left : b,
					top : top
				}
			},
			relative : function(a) {
				var b = false;
				if (a) {
					var c = 0, borderTop = 0, marginLeft = ByRei_dynDiv.get
							.px(ByRei_dynDiv._style(a, 'marginLeft')), marginTop = ByRei_dynDiv.get
							.px(ByRei_dynDiv._style(a, 'marginTop')), left = ByRei_dynDiv.get
							.px(ByRei_dynDiv._style(a, 'left')), top = ByRei_dynDiv.get
							.px(ByRei_dynDiv._style(a, 'top')), offsetLeft = a.offsetLeft, offsetTop = a.offsetTop;
					if (left !== ""
							&& top !== ""
							&& (offsetLeft > left + marginLeft || offsetTop > top
									+ marginTop)) {
						c = ByRei_dynDiv.get.px(ByRei_dynDiv._style(
								a.parentNode, 'borderLeft'));
						borderTop = ByRei_dynDiv.get.px(ByRei_dynDiv._style(
								a.parentNode, 'borderTop'))
					}
					b = {
						left : (c > 0) ? offsetLeft - c : offsetLeft,
						top : (borderTop > 0) ? offsetTop - borderTop
								: offsetTop
					}
				}
				return b
			}
		},
		parent : function(a, b, c) {
			if (a) {
				for ( var i = 0; i < 5; i++) {
					if (b.test(a.className)) {
						if (c) {
							a = a.parentNode
						} else {
							break
						}
					} else {
						if (c) {
							break
						} else {
							a = a.parentNode
						}
					}
				}
				return a
			}
		},
		db : {
			id : function(a) {
				var i, result = {
					found : false,
					data : ""
				}, il = ByRei_dynDiv.divList.length;
				if (a) {
					for (i = 0; i < il; i++) {
						if (a === 'zIndex') {
							if (ByRei_dynDiv.divList[i][3] !== 'auto') {
								if (ByRei_dynDiv.divList[i][3] > result.data) {
									result.found = true;
									result.data = ByRei_dynDiv.divList[i][3]
								}
							}
						} else if (ByRei_dynDiv.divList[i][0] === a) {
							result.found = true;
							result.data = i;
							break
						}
					}
				}
				return result
			}
		},
		hit : function(a, b, c) {
			var d = false;
			if (a && b) {
				var e = {
					offset : ByRei_dynDiv.get.offset.absolute(a),
					width : a.clientWidth,
					height : a.clientHeight
				}, obj2 = {
					offset : ByRei_dynDiv.get.offset.absolute(b),
					width : b.clientWidth,
					height : b.clientHeight
				}, cache = {
					o1t_o1h : e.offset.top + e.height,
					o2t_o2h : obj2.offset.top + obj2.height,
					o1l_o1w : e.offset.left + e.width,
					o2l_o2w : obj2.offset.left + obj2.width
				};
				switch (c) {
				case "fit":
				case "center":
					if (((e.offset.left > obj2.offset.left && e.offset.left < cache.o2l_o2w) && ((e.offset.top > obj2.offset.top && e.offset.top < cache.o2t_o2h) || (cache.o1t_o1h > obj2.offset.top && cache.o1t_o1h < cache.o2t_o2h)))
							|| ((cache.o1l_o1w > obj2.offset.left && cache.o1l_o1w < cache.o2l_o2w) && ((e.offset.top > obj2.offset.top && e.offset.top < cache.o2t_o2h) || (cache.o1t_o1h > obj2.offset.top && cache.o1t_o1h < cache.o2t_o2h)))) {
						d = true
					}
					break;
				default:
					if ((e.offset.left > obj2.offset.left
							&& e.offset.left < cache.o2l_o2w && cache.o1l_o1w < cache.o2l_o2w)
							&& (e.offset.top > obj2.offset.top
									&& e.offset.top < cache.o2t_o2h && cache.o1t_o1h < cache.o2t_o2h)) {
						d = true
					}
					break
				}
			}
			return d
		}
	},
	on : {
		move : function(a) {
			if (ByRei_dynDiv.cache.obj) {
				ByRei_dynDiv.get.mouse(a);
				if (ByRei_dynDiv.get.db.id('zIndex').found) {
					ByRei_dynDiv._style(ByRei_dynDiv.cache.obj, 'zIndex',
							ByRei_dynDiv.get.db.id('zIndex').data + 1)
				}
				if (ByRei_dynDiv.cache.modus) {
					if (ByRei_dynDiv.api.alter) {
						ByRei_dynDiv.api.alter()
					}
					switch (ByRei_dynDiv.cache.modus) {
					case "br":
					case "tr":
					case "tl":
					case "bl":
						ByRei_dynDiv.resize();
						break;
					case "move":
					case "moveparent":
						ByRei_dynDiv.move();
						break;
					default:
						break
					}
				}
				if (ByRei_dynDiv.cache.ie) {
					a.returnValue = false
				}
			}
		},
		action : function() {
			if (!ByRei_dynDiv.cache.obj) {
				ByRei_dynDiv.set_eventListener(document, 'mousemove',
						ByRei_dynDiv.on.move);
				ByRei_dynDiv.set_eventListener(document, 'mouseup',
						ByRei_dynDiv.on.stop)
			}
		},
		stop : function() {
			if (ByRei_dynDiv.db(0)) {
				if (ByRei_dynDiv.db(6)) {
					var i, dropArea = {
						obj : false
					}, il = ByRei_dynDiv.dropArea.length;
					for (i = 0; i < il; i++) {
						if (ByRei_dynDiv.dropArea[i][1] === ByRei_dynDiv.db(6)) {
							if (ByRei_dynDiv.get.hit(ByRei_dynDiv.cache.obj,
									ByRei_dynDiv.dropArea[i][0], ByRei_dynDiv
											.db(7))) {
								dropArea.obj = ByRei_dynDiv.dropArea[i][0]
							}
						}
					}
					if (!dropArea.obj) {
						ByRei_dynDiv.set.left(ByRei_dynDiv.cache.obj,
								ByRei_dynDiv.db(4));
						ByRei_dynDiv.set.top(ByRei_dynDiv.cache.obj,
								ByRei_dynDiv.db(5))
					} else {
						dropArea.offset = ByRei_dynDiv.get.offset
								.absolute(dropArea.obj);
						switch (ByRei_dynDiv.db(7)) {
						case "fit":
							ByRei_dynDiv.set
									.left(
											ByRei_dynDiv.cache.obj,
											ByRei_dynDiv.db(4)
													+ (dropArea.offset.left - ByRei_dynDiv.cache.init.offset.left));
							ByRei_dynDiv.set
									.top(
											ByRei_dynDiv.cache.obj,
											ByRei_dynDiv.db(5)
													+ (dropArea.offset.top - ByRei_dynDiv.cache.init.offset.top));
							break;
						case "center":
							ByRei_dynDiv.set
									.left(
											ByRei_dynDiv.cache.obj,
											ByRei_dynDiv.db(4)
													+ (dropArea.offset.left - ByRei_dynDiv.cache.init.offset.left)
													+ ((dropArea.obj.clientWidth / 2) - (ByRei_dynDiv.cache.obj.clientWidth / 2)));
							ByRei_dynDiv.set
									.top(
											ByRei_dynDiv.cache.obj,
											ByRei_dynDiv.db(5)
													+ (dropArea.offset.top - ByRei_dynDiv.cache.init.offset.top)
													+ ((dropArea.obj.clientHeight / 2) - (ByRei_dynDiv.cache.obj.clientHeight / 2)));
							break
						}
						ByRei_dynDiv.db(8, true)
					}
				}
			}
			ByRei_dynDiv.db(2, false);
			ByRei_dynDiv.del_eventListener(document, 'mousemove',
					ByRei_dynDiv.on.move);
			ByRei_dynDiv.del_eventListener(document, 'mouseup',
					ByRei_dynDiv.on.stop);
			ByRei_dynDiv._style(ByRei_dynDiv.cache.obj, 'zIndex',
					ByRei_dynDiv.cache.zIndex);
			if (ByRei_dynDiv.cache.last.obj !== ByRei_dynDiv.cache.obj) {
				ByRei_dynDiv.cache.last.obj = ByRei_dynDiv.cache.obj
			}
			if (ByRei_dynDiv.cache.last.elem !== ByRei_dynDiv.cache.elem) {
				ByRei_dynDiv.cache.last.elem = ByRei_dynDiv.cache.elem
			}
			if (ByRei_dynDiv.db(9)) {
				ByRei_dynDiv.set.visible(true)
			}
			if (ByRei_dynDiv.db(10) === 'focus') {
				ByRei_dynDiv.set_eventListener(document, 'mousedown',
						ByRei_dynDiv.on.focus)
			}
			ByRei_dynDiv.db(4, ByRei_dynDiv.get.offset
					.relative(ByRei_dynDiv.cache.obj).left);
			ByRei_dynDiv.db(5, ByRei_dynDiv.get.offset
					.relative(ByRei_dynDiv.cache.obj).top);
			ByRei_dynDiv.db(13, ByRei_dynDiv.cache.obj.clientWidth);
			ByRei_dynDiv.db(14, ByRei_dynDiv.cache.obj.clientHeight);
			if (ByRei_dynDiv.api.drop) {
				ByRei_dynDiv.api.drop()
			}
			ByRei_dynDiv.limit.min.left = ByRei_dynDiv.limit.min.top = ByRei_dynDiv.limit.min.width = ByRei_dynDiv.limit.min.height = ByRei_dynDiv.limit.min.left = ByRei_dynDiv.limit.min.top = ByRei_dynDiv.limit.min.width = ByRei_dynDiv.limit.min.height = ByRei_dynDiv.cache.obj = ByRei_dynDiv.cache.modus = ByRei_dynDiv.cache.zIndex = ByRei_dynDiv.cache.elem = false
		},
		focus : function() {
			if (typeof ByRei_dynDiv.divList[ByRei_dynDiv.cache.last.elem] !== 'undefined') {
				if (ByRei_dynDiv.divList[ByRei_dynDiv.cache.last.elem][10] === 'focus') {
					ByRei_dynDiv.on.resize(ByRei_dynDiv.cache.last.obj, false)
				}
				ByRei_dynDiv.del_eventListener(document, 'mousedown',
						ByRei_dynDiv.on.focus)
			}
		},
		unload : function() {
			if (ByRei_dynDiv.divList) {
				ByRei_dynDiv.settings.save()
			}
		},
		minmax : function(a) {
			if (a) {
				var b = (a.target) ? a.target : a.srcElement, minmax_src = ByRei_dynDiv.get
						.parent(b, ByRei_dynDiv.config.regExp.minmax, 0), minmaxHeight = (ByRei_dynDiv.get.prefix
						.value(minmax_src.className.split(' '),
								"minmax_Height-", 1) || 20);
				b = ByRei_dynDiv.get.parent(b,
						ByRei_dynDiv.config.regExp.minmax, 1);
				ByRei_dynDiv._style(b, 'clip', (new RegExp(minmaxHeight
						+ "\\w+,?\\s?auto", "i").test(ByRei_dynDiv._style(b,
						'clip'))) ? 'rect(auto auto auto auto)'
						: 'rect(auto auto ' + (minmaxHeight) + 'px auto)')
			}
		},
		resize : function(a, b) {
			var i, evt_src = (a.target || a.srcElement) ? (a.target ? a.target
					: a.srcElement) : (a), classNames = evt_src.className
					.split(' '), resize_list = (ByRei_dynDiv.get.prefix.value(
					classNames, "moveParentDiv") && evt_src.parentNode) ? evt_src.parentNode
					.getElementsByTagName('div')
					: evt_src.getElementsByTagName('div'), il = resize_list.length;
			for (i = 0; i < il; i++) {
				if (ByRei_dynDiv.get.prefix.value(resize_list[i].className
						.split(' '), "resizeDiv_", 1)) {
					ByRei_dynDiv._style(resize_list[i], 'visibility',
							(b) ? 'visible' : 'hidden')
				}
			}
		}
	},
	init : {
		main : function() {
			var i = 0, div_list = document.getElementsByTagName('div'), il = div_list.length;
			for ( var a = 0; a < il; a++) {
				if (ByRei_dynDiv.get.prefix.value(div_list[a].className
						.split(' '), "", 1)) {
					if (ByRei_dynDiv.get.prefix.value(div_list[a].className
							.split(' '), "resizeDiv_", 1)
							&& ByRei_dynDiv.get.prefix
									.value(div_list[a].parentNode.className
											.split(' '), "move", 1) === '') {
						ByRei_dynDiv.add(div_list[a].parentNode, i++, 1)
					}
					ByRei_dynDiv.add(div_list[a], i++)
				}
			}
		},
		action : function(a, b) {
			if (a) {
				if (a.preventDefault) {
					a.preventDefault()
				}
				if (ByRei_dynDiv.cache.ie) {
					a.cancelBubble = true
				}
				if (a.stopPropagation) {
					a.stopPropagation()
				}
				var c = a.target ? a.target : a.srcElement;
				if (c.className.indexOf('dynDiv_minmaxDiv') === -1) {
					ByRei_dynDiv.get.mouse(a);
					ByRei_dynDiv.on.action();
					switch (b) {
					case "move":
						ByRei_dynDiv.cache.obj = ByRei_dynDiv.api.obj = ByRei_dynDiv.get
								.parent(c, /dynDiv_moveDiv/);
						break;
					case "moveparent":
						ByRei_dynDiv.cache.obj = ByRei_dynDiv.api.obj = ByRei_dynDiv.get
								.parent(c, /dynDiv_moveParentDiv/).parentNode;
						break;
					case "tl":
					case "tr":
					case "bl":
					case "br":
						ByRei_dynDiv.cache.obj = ByRei_dynDiv.api.obj = c.parentNode;
						break;
					default:
						ByRei_dynDiv.cache.obj = ByRei_dynDiv.api.obj = c;
						break
					}
					ByRei_dynDiv.cache.elem = ByRei_dynDiv.api.elem = ByRei_dynDiv.get.db
							.id(ByRei_dynDiv.cache.obj).data;
					ByRei_dynDiv.cache.zIndex = ByRei_dynDiv._style(
							ByRei_dynDiv.cache.obj, 'zIndex');
					ByRei_dynDiv.get.pos(ByRei_dynDiv.cache.obj);
					ByRei_dynDiv.cache.modus = b;
					if (ByRei_dynDiv.db(1) && ByRei_dynDiv.cache.obj) {
						var d = {
							offset : ByRei_dynDiv.get.offset
									.absolute(ByRei_dynDiv.cache.obj)
						}, limit = {
							offset : ByRei_dynDiv.get.offset
									.absolute(ByRei_dynDiv.db(1))
						};
						ByRei_dynDiv.limit.min.left = limit.offset.left
								- d.offset.left;
						ByRei_dynDiv.limit.max.left = (ByRei_dynDiv.db(1).clientWidth + limit.offset.left)
								- (ByRei_dynDiv.cache.obj.offsetWidth + d.offset.left);
						ByRei_dynDiv.limit.min.top = limit.offset.top
								- d.offset.top;
						ByRei_dynDiv.limit.max.top = (ByRei_dynDiv.db(1).clientHeight + limit.offset.top)
								- (ByRei_dynDiv.cache.obj.offsetHeight + d.offset.top)
					}
					if (ByRei_dynDiv.api.drag) {
						ByRei_dynDiv.api.drag()
					}
					switch (b) {
					case "move":
					case "moveparent":
						if (ByRei_dynDiv.db(9) === 'move'
								|| ByRei_dynDiv.db(9) === 'move_resize') {
							ByRei_dynDiv.set.visible(false)
						}
						break;
					case "tl":
					case "tr":
					case "bl":
					case "br":
						if (ByRei_dynDiv.db(9) === 'resize'
								|| ByRei_dynDiv.db(9) === 'move_resize') {
							ByRei_dynDiv.set.visible(false)
						}
						break
					}
					if (ByRei_dynDiv.cache.elem !== ByRei_dynDiv.cache.last.elem
							&& (ByRei_dynDiv.cache.last.elem || ByRei_dynDiv.cache.last.elem === 0)) {
						if (ByRei_dynDiv.divList[ByRei_dynDiv.cache.last.elem][10]) {
							ByRei_dynDiv.on.resize(ByRei_dynDiv.cache.last.obj,
									false)
						}
					}
					if (ByRei_dynDiv.db(10) === 'active'
							|| ByRei_dynDiv.db(10) === 'focus') {
						ByRei_dynDiv.on.resize(ByRei_dynDiv.cache.obj, true)
					}
				}
			}
		}
	},
	settings : {
		save : function() {
			if (ByRei_dynDiv.divList) {
				var i, il = ByRei_dynDiv.divList.length;
				for (i = 0; i < il; i++) {
					if (ByRei_dynDiv.divList[i][12] !== false
							&& ByRei_dynDiv.divList[i][0].id) {
						var a = '', top = '', width = '', height = '';
						switch (ByRei_dynDiv.divList[i][12]) {
						case "position":
							a = ByRei_dynDiv.divList[i][4];
							top = ByRei_dynDiv.divList[i][5];
							break;
						case "size":
							width = ByRei_dynDiv.divList[i][13];
							height = ByRei_dynDiv.divList[i][14];
							break;
						case "position_size":
							a = ByRei_dynDiv.divList[i][4];
							top = ByRei_dynDiv.divList[i][5];
							width = ByRei_dynDiv.divList[i][13];
							height = ByRei_dynDiv.divList[i][14];
							break
						}
						if ((Number(a) !== 'NaN' && Number(top) !== 'NaN')
								|| (width > 0 && height > 0)) {
							if (navigator.cookieEnabled) {
								var b = new Date();
								b
										.setSeconds((new Date()).setTime(b
												.getSeconds())
												+ Number(ByRei_dynDiv.config.cookie.expire));
								document.cookie = "ByRei_dynDiv_"
										+ ByRei_dynDiv.divList[i][0].id + "="
										+ a + '_' + top + '_' + width + '_'
										+ height + "; expires="
										+ b.toGMTString()
							}
						}
					}
				}
			}
		},
		load : function(a) {
			var b = false;
			if (navigator.cookieEnabled && a) {
				var c = document.cookie;
				if (/; /.test(c)) {
					c = c.split("; ")
				} else if (/, /.test(c)) {
					c = c.split(", ")
				}
				if (c) {
					var i, il = c.length;
					for (i = 0; i < il; i++) {
						if (c[i]) {
							if ((/ByRei_dynDiv/).test(c[i])) {
								var d = (/ByRei_dynDiv_(\w+)=(\d*)\_(\d*)\_(\d*)\_(\d*)/)
										.exec(c[i]);
								if (typeof d !== 'undefined' && d !== null) {
									if (typeof d[1] !== 'undefined') {
										if (d[1] === a) {
											b = {
												left : d[2],
												top : d[3],
												width : d[4],
												height : d[5]
											};
											break
										}
									}
								}
							}
						}
					}
				}
			}
			return b
		}
	},
	set : {
		visible : function(a) {
			var i, il = ByRei_dynDiv.divList.length;
			for (i = 0; i < il; i++) {
				if (ByRei_dynDiv.divList[i] !== ByRei_dynDiv.divList[ByRei_dynDiv.cache.elem]) {
					ByRei_dynDiv._style(ByRei_dynDiv.divList[i][0],
							'visibility', (a) ? 'visible' : 'hidden')
				}
			}
		},
		left : function(a, b) {
			ByRei_dynDiv._style(a, 'left', b + "px")
		},
		top : function(a, b) {
			ByRei_dynDiv._style(a, 'top', b + "px")
		},
		width : function(a, b) {
			ByRei_dynDiv._style(a, 'width', b + "px")
		},
		height : function(a, b) {
			ByRei_dynDiv._style(a, 'height', b + "px")
		}
	},
	resize : function() {
		if (ByRei_dynDiv.cache.obj && ByRei_dynDiv.cache.modus) {
			var a = 20, new_size_x = 0, new_size_y = 0, new_left = ByRei_dynDiv
					.db(4), new_top = ByRei_dynDiv.db(5), keepAspect = ByRei_dynDiv
					.db(11), reachLimit = false, mouse_diff_left = (ByRei_dynDiv.cache.pos.left
					- ByRei_dynDiv.cache.init.pos.left || 0), mouse_diff_top = (ByRei_dynDiv.cache.pos.top
					- ByRei_dynDiv.cache.init.pos.top || 0);
			if (keepAspect) {
				switch (ByRei_dynDiv.cache.modus) {
				case "br":
				case "tl":
					mouse_diff_left = mouse_diff_top * keepAspect;
					break;
				case "bl":
				case "tr":
					mouse_diff_left = mouse_diff_top * keepAspect * -1;
					break
				}
				if (ByRei_dynDiv.cache.last.mouse.left === ByRei_dynDiv.cache.pos.left
						|| ByRei_dynDiv.cache.last.mouse.top === ByRei_dynDiv.cache.pos.top) {
					reachLimit = true
				}
				ByRei_dynDiv.cache.last.mouse.left = ByRei_dynDiv.cache.pos.left;
				ByRei_dynDiv.cache.last.mouse.top = ByRei_dynDiv.cache.pos.top
			}
			switch (ByRei_dynDiv.cache.modus) {
			case "br":
			case "tr":
				new_size_x = ByRei_dynDiv.cache.init.width + mouse_diff_left;
				break;
			case "tl":
			case "bl":
				new_size_x = ByRei_dynDiv.cache.init.width - mouse_diff_left;
				break
			}
			switch (ByRei_dynDiv.cache.modus) {
			case "br":
			case "bl":
				new_size_y = ByRei_dynDiv.cache.init.height + mouse_diff_top;
				break;
			case "tr":
			case "tl":
				new_size_y = ByRei_dynDiv.cache.init.height - mouse_diff_top;
				break
			}
			switch (ByRei_dynDiv.cache.modus) {
			case "tl":
				new_top = ByRei_dynDiv.db(5) + mouse_diff_top;
				new_left = ByRei_dynDiv.db(4) + mouse_diff_left;
				break;
			case "tr":
				new_top = ByRei_dynDiv.db(5) + mouse_diff_top;
				break;
			case "bl":
				new_left = ByRei_dynDiv.db(4) + mouse_diff_left;
				break
			}
			if (ByRei_dynDiv.db(1)) {
				var b = ByRei_dynDiv.cache.pos.left
						- ByRei_dynDiv.cache.init.pos.left, pos_top = ByRei_dynDiv.cache.pos.top
						- ByRei_dynDiv.cache.init.pos.top;
				switch (ByRei_dynDiv.cache.modus) {
				case "tl":
				case "bl":
					if (b < ByRei_dynDiv.limit.min.left) {
						if (!keepAspect) {
							new_size_x = ByRei_dynDiv.cache.init.width
									- ByRei_dynDiv.limit.min.left;
							new_left = ByRei_dynDiv.db(4)
									+ ByRei_dynDiv.limit.min.left
						}
						reachLimit = true
					}
					break;
				case "tr":
				case "br":
					if (b > ByRei_dynDiv.limit.max.left) {
						if (!keepAspect) {
							new_size_x = ByRei_dynDiv.cache.init.width
									+ ByRei_dynDiv.limit.max.left
						}
						reachLimit = true
					}
					break
				}
				switch (ByRei_dynDiv.cache.modus) {
				case "tl":
				case "tr":
					if (pos_top < ByRei_dynDiv.limit.min.top) {
						if (!keepAspect) {
							new_size_y = ByRei_dynDiv.cache.init.height
									- ByRei_dynDiv.limit.min.top;
							new_top = ByRei_dynDiv.db(5)
									+ ByRei_dynDiv.limit.min.top
						}
						reachLimit = true
					}
					break;
				case "bl":
				case "br":
					if (pos_top > ByRei_dynDiv.limit.max.top) {
						if (!keepAspect) {
							new_size_y = ByRei_dynDiv.cache.init.height
									+ ByRei_dynDiv.limit.max.top
						}
						reachLimit = true
					}
					break
				}
			}
			if (keepAspect) {
				if (!reachLimit && new_size_x > a && new_size_y > a) {
					ByRei_dynDiv.set.width(ByRei_dynDiv.cache.obj, new_size_x);
					ByRei_dynDiv.set.height(ByRei_dynDiv.cache.obj, new_size_y);
					ByRei_dynDiv.set.left(ByRei_dynDiv.cache.obj, new_left);
					ByRei_dynDiv.set.top(ByRei_dynDiv.cache.obj, new_top)
				}
			} else {
				if (new_size_x > a) {
					ByRei_dynDiv.set.width(ByRei_dynDiv.cache.obj, new_size_x);
					ByRei_dynDiv.set.left(ByRei_dynDiv.cache.obj, new_left)
				}
				if (new_size_y > a) {
					ByRei_dynDiv.set.height(ByRei_dynDiv.cache.obj, new_size_y);
					ByRei_dynDiv.set.top(ByRei_dynDiv.cache.obj, new_top)
				}
			}
		}
	},
	move : function() {
		if (ByRei_dynDiv.cache.obj) {
			var a = ByRei_dynDiv.cache.pos.left
					- (ByRei_dynDiv.cache.init.pos.left - ByRei_dynDiv.db(4)), new_top = ByRei_dynDiv.cache.pos.top
					- (ByRei_dynDiv.cache.init.pos.top - ByRei_dynDiv.db(5));
			if (ByRei_dynDiv.db(1)) {
				var b = ByRei_dynDiv.cache.pos.left
						- ByRei_dynDiv.cache.init.pos.left, pos_y = ByRei_dynDiv.cache.pos.top
						- ByRei_dynDiv.cache.init.pos.top;
				if (b < ByRei_dynDiv.limit.min.left) {
					a = ByRei_dynDiv.db(4) + ByRei_dynDiv.limit.min.left
				} else if (b > ByRei_dynDiv.limit.max.left) {
					a = ByRei_dynDiv.db(4) + ByRei_dynDiv.limit.max.left
				}
				if (pos_y < ByRei_dynDiv.limit.min.top) {
					new_top = ByRei_dynDiv.db(5) + ByRei_dynDiv.limit.min.top
				} else if (pos_y > ByRei_dynDiv.limit.max.top) {
					new_top = ByRei_dynDiv.db(5) + ByRei_dynDiv.limit.max.top
				}
			}
			if (!isNaN(a)) {
				ByRei_dynDiv.set.left(ByRei_dynDiv.cache.obj, a)
			}
			if (!isNaN(new_top)) {
				ByRei_dynDiv.set.top(ByRei_dynDiv.cache.obj, new_top)
			}
		}
	},
	db : function(i, a) {
		var b = false;
		if (ByRei_dynDiv.cache.elem >= 0) {
			if (ByRei_dynDiv.divList[ByRei_dynDiv.cache.elem]) {
				if (typeof ByRei_dynDiv.divList[ByRei_dynDiv.cache.elem][i] !== 'undefined') {
					if (typeof a !== 'undefined') {
						ByRei_dynDiv.divList[ByRei_dynDiv.cache.elem][i] = a;
						b = true
					} else {
						b = ByRei_dynDiv.divList[ByRei_dynDiv.cache.elem][i]
					}
				}
			}
		}
		return b
	},
	add : function(b, i, c) {
		if (b) {
			var d = 'auto', classNames = b.className.split(' '), func_z_index = function(
					a, i) {
				return (ByRei_dynDiv._style(a, 'zIndex') || ByRei_dynDiv
						._style(a, 'zIndex', i))
			};
			if (ByRei_dynDiv.get.prefix.value(classNames, "", 1) || c) {
				var f = null, droplimiter = false, dropmode = false, hideaction = false, showresize = false, keepAspect = false, saveSettings = false, parent = b, modus = ByRei_dynDiv.get.prefix
						.value(classNames, "", 1), l_parent = parent.parentNode;
				if (modus) {
					switch (modus) {
					case "moveDiv":
						ByRei_dynDiv._style(parent, 'cursor', 'move');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'move')
								});
						d = func_z_index(parent, i);
						break;
					case "moveParentDiv":
						ByRei_dynDiv._style(parent, 'cursor', 'move');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'moveparent')
								});
						parent = parent.parentNode;
						d = func_z_index(parent, i);
						break;
					case "resizeDiv_tl":
						ByRei_dynDiv._style(parent, 'cursor', 'nw-resize');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'tl')
								});
						break;
					case "resizeDiv_tr":
						ByRei_dynDiv._style(parent, 'cursor', 'ne-resize');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'tr')
								});
						break;
					case "resizeDiv_bl":
						ByRei_dynDiv._style(parent, 'cursor', 'sw-resize');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'bl')
								});
						break;
					case "resizeDiv_br":
						ByRei_dynDiv._style(parent, 'cursor', 'se-resize');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.init.action(e, 'br')
								});
						break;
					case "minmaxDiv":
						ByRei_dynDiv._style(parent, 'cursor', 'pointer');
						ByRei_dynDiv.set_eventListener(parent, 'mousedown',
								function(e) {
									ByRei_dynDiv.on.minmax(e)
								});
						break;
					case "dropArea":
						ByRei_dynDiv.dropArea.push( [ parent, 'global' ]);
						break
					}
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "dropArea-", 1)) {
					ByRei_dynDiv.dropArea.push( [
							parent,
							ByRei_dynDiv.get.prefix.value(classNames,
									"dropArea-", 1) ])
				}
				while (l_parent) {
					if (l_parent.className) {
						if (ByRei_dynDiv.get.prefix.value(l_parent.className
								.split(' '), "setLimit")) {
							if (parent !== l_parent) {
								f = l_parent
							}
							break
						}
					}
					l_parent = l_parent.parentNode
				}
				if (!f) {
					if (ByRei_dynDiv.get.prefix.value(classNames, "bodyLimit")
							|| ByRei_dynDiv.get.prefix.value(
									parent.parentNode.className.split(' '),
									"bodyLimit")) {
						f = document.body
					}
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "dropLimit")) {
					droplimiter = 'global'
				} else if (ByRei_dynDiv.get.prefix.value(classNames,
						"dropLimit-", 1)) {
					droplimiter = ByRei_dynDiv.get.prefix.value(classNames,
							"dropLimit-", 1)
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "dropMode-", 1)) {
					dropmode = ByRei_dynDiv.get.prefix.value(classNames,
							"dropMode-", 1)
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "hideMove")
						&& ByRei_dynDiv.get.prefix.value(classNames,
								"hideResize")) {
					hideaction = 'move_resize'
				} else {
					if (ByRei_dynDiv.get.prefix.value(classNames, "hideMove")) {
						hideaction = 'move'
					} else if (ByRei_dynDiv.get.prefix.value(classNames,
							"hideResize")) {
						hideaction = 'resize'
					}
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "keepAspect")) {
					if (parent.clientWidth && parent.clientHeight) {
						keepAspect = Math.abs(parent.clientWidth
								/ parent.clientHeight)
					}
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "showResize-", 1)) {
					showresize = ByRei_dynDiv.get.prefix.value(classNames,
							"showResize-", 1);
					ByRei_dynDiv.on.resize(parent, false);
					if (showresize === 'dbclick') {
						ByRei_dynDiv.set_eventListener(parent, 'dblclick',
								function(e) {
									ByRei_dynDiv.on.resize(e, true)
								})
					}
				}
				switch (ByRei_dynDiv.get.prefix.value(classNames,
						"saveSettings-", 1)) {
				case "position":
					saveSettings = "position";
					break;
				case "size":
					saveSettings = "size";
					break;
				case "position_size":
					saveSettings = "position_size";
					break
				}
				if (saveSettings && !ByRei_dynDiv.cache.unloadHandler) {
					ByRei_dynDiv.cache.unloadHandler = ByRei_dynDiv
							.set_eventListener(window, 'unload',
									ByRei_dynDiv.on.unload)
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "loadSettings")) {
					var g = ByRei_dynDiv.settings.load(parent.id);
					if (g) {
						if (Number(g.left) !== 'NaN' && Number(g.top) !== 'NaN') {
							ByRei_dynDiv.set.left(parent, g.left);
							ByRei_dynDiv.set.top(parent, g.top)
						}
						if (g.width > 0 && g.height > 0) {
							ByRei_dynDiv.set.width(parent, g.width);
							ByRei_dynDiv.set.height(parent, g.height)
						}
					}
				}
				if (ByRei_dynDiv.get.prefix.value(classNames, "moveParentDiv")
						|| ByRei_dynDiv.get.prefix.value(classNames, "moveDiv")
						|| c) {
					if (!ByRei_dynDiv.get.db.id(parent).found) {
						ByRei_dynDiv.divList.push( [ parent, f, false, d,
								ByRei_dynDiv.get.offset.relative(parent).left,
								ByRei_dynDiv.get.offset.relative(parent).top,
								droplimiter, dropmode, false, hideaction,
								showresize, keepAspect, saveSettings,
								parent.clientWidth, parent.clientHeight ])
					}
				}
			}
		}
	},
	_style : function(a, b, c) {
		if (a && b) {
			if (a.style) {
				if (typeof a.style[b] !== 'undefined') {
					if (c) {
						try {
							return (a.style[b] = c)
						} catch (e) {
							return false
						}
					} else {
						return (a.style[b] === '') ? ((a.currentStyle) ? a.currentStyle[b]
								: ((window.getComputedStyle) ? window
										.getComputedStyle(a, '')
										.getPropertyValue(b) : false))
								: a.style[b]
					}
				}
			}
		}
	},
	del_eventListener : function(a, b, c) {
		if (a && b && c) {
			if (ByRei_dynDiv.cache.ie) {
				a.detachEvent("on" + b, c)
			} else {
				a.removeEventListener(b, c, false)
			}
		}
	},
	set_eventListener : function(a, b, c) {
		if (a && b && c) {
			if (ByRei_dynDiv.cache.ie) {
				return a.attachEvent("on" + b, c)
			} else {
				return a.addEventListener(b, c, false)
			}
		}
	}
};
ByRei_dynDiv.set_eventListener(window, 'load', ByRei_dynDiv.init.main);