function standardPop(id, class1, class2, title, move, noclose) {
	var base = dPopup(id, class1);
	if(noclose) {
		base.noclose = true;
	} else {
		base.noclose = false;
	}
	base.bar = dPopBar(base, class2, title);
	if(!base.noclose) {
		base.bar.xbutt.onclick = function() {
			$('#'+id).remove();
			enablePage(id);
		}
	}
	if(move) {
		base.bar.style.cursor = "move";
	}
	base.dragMe = dragMe;
	function dragMe(event) {
		// elem is de id van het element in kwestie
		// handle is de id van de, wel, handle
		if(move) {
			minusX = 0;
			minusY = 0;
			selectStop();
			var corrX = getMouseX(event) - findPosX(base.bar);
			var corrY = getMouseY(event) - findPosY(base);
			moveWin(corrX, corrY, minusX);
			document.onmouseup = function(event) {
				selectStart();
				document.onmouseup = function() {
					// pfew
				}
			}
		}
		function moveWin(corrX, corrY, minusX) {
			var tempX = 0;
			var tempY = 0;
			var ie = document.all?true:false;
			document.onmousemove = moveIt;
			function moveIt(e) {
				if (ie) {
					tempX = event.clientX + document.body.scrollLeft;
					tempY = event.clientY + document.body.scrollTop;
				} else {
					tempX = e.pageX;
					tempY = e.pageY;
				}  
				tempX = (tempX < 0)?0:tempX;
				tempY = (tempY < 0)?0:tempY;
				var newX = ((tempX - corrX) - minusX);
				var newY = ((tempY - corrY) - minusY);
				base.style.left = newX + 'px';
				base.style.top = newY + 'px';
			}
		}
	}
	return base;
}

function thanxIeTeam(event, id) { // don't ask
	var thispop = document.getElementById(id);
	thispop.dragMe(event);
}

function dPopup(id, classname) {

	// build container div
	var box = document.createElement("div");
	document.body.appendChild(box);
	box.style.display = "none";
	box.style.position = "absolute";
	box.style.width = "400px";
	box.style.zIndex = 8;
	box.id = id;
	box.className = classname;

	// build table
	
	box.btable = document.createElement("table");
	box.appendChild(box.btable);
	box.btable.className = classname + "_table";
	box.tbod = document.createElement("tbody");
	box.btable.appendChild(box.tbod);

	box.topr = document.createElement("tr");
	box.tbod.appendChild(box.topr);

	box.td_lb = document.createElement("td");
	box.topr.appendChild(box.td_lb);
	box.td_lb.className = classname + "_lb";

	box.td_b = document.createElement("td");
	box.topr.appendChild(box.td_b);
	box.td_b.className = classname + "_b";

	box.td_rb = document.createElement("td");
	box.topr.appendChild(box.td_rb);
	box.td_rb.className = classname + "_rb";

	box.midr = document.createElement("tr");
	box.tbod.appendChild(box.midr);

	box.td_l = document.createElement("td");
	box.midr.appendChild(box.td_l);
	box.td_l.className = classname + "_l";

	box.td_content = document.createElement("td");
	box.midr.appendChild(box.td_content);
	box.td_content.className = classname + "_content";
	box.td_content.style.verticalAlign = "top";

	box.td_r = document.createElement("td");
	box.midr.appendChild(box.td_r);
	box.td_r.className = classname + "_r";

	box.botr = document.createElement("tr");
	box.tbod.appendChild(box.botr);

	box.td_lo = document.createElement("td");
	box.botr.appendChild(box.td_lo);
	box.td_lo.className = classname + "_lo";

	box.td_o = document.createElement("td");
	box.botr.appendChild(box.td_o);
	box.td_o.className = classname + "_o";

	box.td_ro = document.createElement("td");
	box.botr.appendChild(box.td_ro);
	box.td_ro.className = classname + "_ro";

	// content div

	box.cdiv = document.createElement("div");
	box.td_content.appendChild(box.cdiv);

	// methods

	box.fill = fill;
	box.show = show;
	box.setWidth = setWidth;
	box.setHeight = setHeight;
	box.setTop = setTop;
	box.setLeft = setLeft;
	box.centerX = centerX;
	box.centerY = centerY;
	box.center = center;
	box.destroy = destroy;
	box.setTitle = setTitle;

	function fill(fcontent) {
		box.cdiv.innerHTML = fcontent;
	}

	function show() {
		box.style.display = "block";
	}

	function setWidth(width) {
		box.style.width = width + "px";
	}

	function setHeight(height) {
		box.style.height = height + "px";
	}

	function setTop(top) {
		box.style.top = top + "px";
	}

	function setLeft(left) {
		box.style.left = left + "px";
	}

	function setTitle(title) {
		box.bar.tdiv.innerHTML = title;
	}

	function center() {
		centerX();
		centerY();
	}

	function centerX() {
		var cw = (getWindowWidth() / 2);
		var bw = (box.offsetWidth / 2);
		box.style.left = (cw - bw) + "px";
	}
	function centerY() {
		var ch = (getWindowHeight() / 2);
		var bh = (box.offsetHeight / 2);
		var Btop = getScrollY() + (ch - bh);
		if(Btop < 0) {
			box.style.top = "0px";
		} else {
			box.style.top = Btop + "px";
		}
	}

	function destroy() {
		box.parentNode.removeChild(box);
	}

	if(classname == 'adpopbase_r') {
		box.td_o.innerHTML = '<div style="padding-bottom: 1px; text-align: center; color: black; font-family: verdana, sans-serif; font-size: 12px; font-style: italic;">zpiderz.com</div>';
	}

	return box;
}

function dPopBar(base, classname, title) {

	// build container div
	var box = document.createElement("div");
	base.td_content.insertBefore(box, base.cdiv);
	box.className = classname;

	// build table
	
	box.btable = document.createElement("table");
	box.appendChild(box.btable);
	box.btable.className = classname + "_table";
	box.btable.style.width = "100%";
	box.tbod = document.createElement("tbody");
	box.btable.appendChild(box.tbod);

	box.topr = document.createElement("tr");
	box.tbod.appendChild(box.topr);

	box.td_lb = document.createElement("td");
	box.topr.appendChild(box.td_lb);
	box.td_lb.className = classname + "_lb";

	box.td_bl = document.createElement("td");
	box.topr.appendChild(box.td_bl);
	box.td_bl.className = classname + "_b";

	box.td_br = document.createElement("td");
	box.topr.appendChild(box.td_br);
	box.td_br.className = classname + "_b";

	box.td_rb = document.createElement("td");
	box.topr.appendChild(box.td_rb);
	box.td_rb.className = classname + "_rb";

	box.midr = document.createElement("tr");
	box.tbod.appendChild(box.midr);

	box.td_l = document.createElement("td");
	box.midr.appendChild(box.td_l);
	box.td_l.className = classname + "_l";

	box.td_title = document.createElement("td");
	box.midr.appendChild(box.td_title);
	box.td_title.className = classname + "_content";

	box.td_butts = document.createElement("td");
	box.midr.appendChild(box.td_butts);
	box.td_butts.className = classname + "_content";
	box.td_butts.style.width = "20px";
	box.td_butts.style.textAlign = "right";

	box.td_r = document.createElement("td");
	box.midr.appendChild(box.td_r);
	box.td_r.className = classname + "_r";

	box.botr = document.createElement("tr");
	box.tbod.appendChild(box.botr);

	box.td_lo = document.createElement("td");
	box.botr.appendChild(box.td_lo);
	box.td_lo.className = classname + "_lo";

	box.td_ol = document.createElement("td");
	box.botr.appendChild(box.td_ol);
	box.td_ol.className = classname + "_o";

	box.td_or = document.createElement("td");
	box.botr.appendChild(box.td_or);
	box.td_or.className = classname + "_o";

	box.td_ro = document.createElement("td");
	box.botr.appendChild(box.td_ro);
	box.td_ro.className = classname + "_ro";

	// title
	
	// bizarre code? you know what time it is:
	var itsietimeagain = '<div id="tspan_' + base.id + '" onmousedown="javascript: thanxIeTeam(event, \'' + base.id + '\');">';
	itsietimeagain += title;
	itsietimeagain += '</div>';
	box.td_title.innerHTML = itsietimeagain;
	box.tdiv = document.getElementById("tspan_" + base.id); // <- ^ :S
	
	if(!base.noclose) {
		box.xbutt = document.createElement("button");
		box.xbutt.id = base.id + '_close';
		box.td_butts.appendChild(box.xbutt);
		box.xbutt.innerHTML = "x";
		box.xbutt.style.fontSize = "10px";
		box.xbutt.style.fontWeight = "bold";
	}
	return box;
}
