function getObject(e) {
	var o = (typeof e == "string") ? document.getElementById(e) : e;
	return o;
	}

function getObjectX(e)  {
	var o = getObject(e);
	var r = 0;
	if (document.defaultView) {
		var a = document.defaultView;
		var b = a.getComputedStyle(o, "");
		r = b.getPropertyValue("left");
		}
	else if (o.currentStyle) {
		r = o.currentStyle.left;
		}
	else if (o.style) {
		r = o.style.left;
		}
	return parseInt(r);
	}

function getObjectY(e)  {
	var o = getObject(e);
	var r = 0;
	if (document.defaultView) {
		var a = document.defaultView;
		var b = a.getComputedStyle(o, "");
		r = b.getPropertyValue("top");
		}
	else if (o.currentStyle) {
		r = o.currentStyle.top;
		}
	else if (o.style) {
		r = o.style.top;
		}
	return parseInt(r);
	}

function getObjectWidth(e)  {
	var o = getObject(e);
	var r = 0;
	if (o.offsetWidth) {
		r = o.offsetWidth;
		}
	else if (o.clip && o.clip.width) {
		r = o.clip.width;
		}
	else if (o.style && o.style.pixelWidth) {
		r = o.style.pixelWidth;
		}
	return parseInt(r);
	}

function getObjectHeight(e)  {
	var o = getObject(e);
	var r = 0;
	if (o.offsetHeight) {
		r = o.offsetHeight;
		}
	else if (o.clip && o.clip.height) {
		r = o.clip.height;
		}
	else if (o.style && o.style.pixelHeight) {
		r = o.style.pixelHeight;
		}
	return parseInt(r);
	}

function getObjectStyle(e, i, c) {
	var o = getObject(e);
	var r = "";
	if (o.currentStyle) {
		r = o.currentStyle[i];
		}
	else if (window.getComputedStyle) {
		var a = window.getComputedStyle(o, "");
		r = a.getPropertyValue(c);
		}
	return r;
	}

function getInsideWindowWidth() {
	var r = 0;
	if (window.innerWidth) {
		r = window.innerWidth;
		}
	else if (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) {
		r = document.body.parentElement.clientWidth
		}
	else if (document.body && document.body.clientWidth) {
		r = document.body.clientWidth;
		}
	return parseInt(r);
	}

function getInsideWindowHeight() {
	var r = 0;
	if (window.innerHeight) {
		r = window.innerHeight;
		}
	else if (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) {
		r = document.body.parentElement.clientHeight
		}
	else if (document.body && document.body.clientHeight) {
		r = document.body.clientHeight;
		}
	return parseInt(r);
	}

function getObjectParent(e) {
	var o = getObject(e);
	return o.parentNode;
	}

function getObjectChildNodes(e) {
	var n = new Array();
	var a = getObject(e).childNodes;
	for (var i = 0; i < a.length; i++) {
		if (a[i].nodeType == 1) {
			n[n.length] = new Array(a[i], a[i].nodeName.toLowerCase(), a[i].id, a[i].className);
			if (a[i].childNodes.length > 0) {
				n = n.concat(getChildNodes(a[i]));
				}
			}
		}
	return n;
	}

function shiftObjectTo(e, x, y) {
	var o = getObject(e);
	var u = (typeof o.style.left == "string") ? "px" : 0 
	o.style.left = x + u;
	o.style.top = y + u;
	}

function shiftObjectBy(e, x, y) {
	var o = getObject(e);
	var u = (typeof o.style.left == "string") ? "px" : 0 
	o.style.left = getObjectX(o) + x + u;
	o.style.top = getObjectY(o) + x + u;
	}

function setObjectZ(e, z) {
	var o = getObject(e);
	o.style.zIndex = z;
	}

function setObjectWidth(e, w) {
	var o = getObject(e);
	o.style.width = w + "px";
	}

function setObjectHeight(e, h) {
	var o = getObject(e);
	o.style.height = h + "px";
	}

function setObjectBackground(e, c) {
	var o = getObject(e);
	o.style.backgroundColor = c;
	}

function showObject(e) {
	var o = getObject(e);
	o.style.visibility = "visible";
	}

function hideObject(e) {
	var o = getObject(e);
	o.style.visibility = "hidden";
	}

function centerOnWindow(e) {
	var o = getObject(e);
	var sx = 0, sy = 0;
	if (document.body && typeof document.body.scrollTop != "undefined") {
		sx += document.body.scrollLeft;
		sy += document.body.scrollTop;
		if (document.body.parentNode && typeof document.body.parentNode.scrollTop != "undefined") {
			sx += document.body.parentNode.scrollLeft;
			sy += document.body.parentNode.scrollTop;
			}
		}
	else if (typeof window.pageXOffset != "undefined") {
		sx += window.pageXOffset;
		sy += window.pageYOffset;
		}
	var x = Math.round((getInsideWindowWidth()/2) - (getObjectWidth(o)/2)) + sx;
	var y = Math.round((getInsideWindowHeight()/2) - (getObjectHeight(o)/2)) + sy;
	shiftObjectTo(o, x, y);
	}

function arrangeObjects(a, b, c, d, e, f, g, h, l) {
	if ((typeof b == "undefined") || (typeof b != "number")) { b = 0; }
	if ((typeof c == "undefined") || (typeof c != "number") || (c <= 0)) { c = 99; }
	if ((typeof d == "undefined") || (typeof d != "number")) { d = 15; }
	if ((typeof e == "undefined") || (typeof e != "number")) { e = 25; }
	if ((typeof f == "undefined") || (typeof f != "number")) { f = 0; }
	if ((typeof g == "undefined") || (typeof g != "string") || (g.search(/^(?:top|middle|bottom)$/i) == -1)) { g = "top"; }
	if ((typeof h == "undefined") || (typeof h != "string") || (h.search(/^(?:left|centre|center|right)$/i) == -1)) { h = "centre"; }
	var m = getObjectWidth(a);
	setObjectHeight(a, 0);
	var n = new Array();
	var k = getObject(a).childNodes;
	var j = 0;
	for (var i = 0; i < k.length; i++) {
		if (k[i].nodeType == 1) {
			hideObject(k[i]);
			var w = getObjectWidth(k[i]);
			if ((w + f * 2) < m) {
				n[j] = [k[i], w, getObjectHeight(k[i]), 0, 0];
				j++;
				}
			}
		}
	if ((b <= 0) || (b > n.length)) {
		b = n.length;
		}
	var o = 0;
	var p = 0;
	var q = 0;
	var r = 1;
	var s = 0;
	var i = 0;
	var t;
	while (i < b) {
		n[i][3] = o;
		n[i][4] = s;
		o += n[i][1];
		p = Math.max(p, n[i][2]);
		if ((i < (b - 1))) {
			if ((o + n[i+1][1] + (f * (i - q + 1))) < m) {
				t = false;
				}
			else {
				t = true;
				}
			}
		else {
			t = true;
			}
		if (t) {
			s += p;
			setObjectHeight(a, s);
			var u = m - o;
			switch(h.toLowerCase()) {
				case "left" :
					var v = 0;
					var x = f;
					break;
				case "centre" :
				case "center" :
					var y = Math.floor(u / (i - q));
					if (y > e) {
						var v = Math.floor((u - e * (i - q)) / 2);
						var x = e;
						}
					else {
						var v = 0;
						var x = y;
						}
					break;
				case "right" :
					var v = u;
					var x = f;
					break;
				}
			for (var j = q; j <= i; j++) {
				n[j][3] += v + x * (j - q);
				switch (g.toLowerCase()) {
					case "bottom" :
						n[j][4] += p - n[j][2];
						break;
					case "middle" :
						n[j][4] += Math.floor((p - n[j][2]) / 2);
						break;
					case "top" :
					default :
						break;
					}
				showObject(n[j][0]);
				shiftObjectTo(n[j][0], n[j][3], n[j][4]);
				}
			if (r == c) {
				break;
				}
			else if (i == (b - 1)) {
				break;
				}
			else {
				q = ++i;
				o = 0;
				p = 0;
				r++;
				s += d;
				}
			}
		else {
			i++;
			}
		}
	}
