var resizey = 0;
var resizeoldhandler = false;
var resizeoldhandler2 = false;
var resizeminheight = 10;
var resizelements = new Array();
var current_offset = 0;


function returnfalse(){
	return false;
}


function beginresize(event, el, minheight){
	var i;
	var tmp;

	tmp = el.split(",");
	resizelements = new Array();

	for(i=0; i<tmp.length; i++) {
		resizelements[i] = document.getElementById(tmp[i]);
	}

	resizeminheight = minheight;
	if(resizeminheight < 0) resizeminheight = 0;

	if(typeof(event.pageY) != "undefined") resizey = event.pageY;
	else resizey = event.screenY;


	if(document.attachEvent){
		document.attachEvent("onmousemove", handleresize);
		document.attachEvent("onmouseup", endresize);
	}
	else if(document.addEventListener){
		document.addEventListener("mousemove", handleresize, false);
		document.addEventListener("mouseup", endresize, false);
	}
	else{
		resizeoldhandler = document.onmousemove;
		resizeoldhandler2 = document.onmouseup;
		document.onmousemove = "handleresize(event);";
		document.onmouseup = "endresize(event);";
	}

	// Prevent flickering selections
	document.onselectstart = returnfalse;
}


function endresize(event){

	resizelements = new Array();

	if(document.detachEvent){
		document.detachEvent("onmousemove", handleresize);
		document.detachEvent("onmouseup", endresize);
	}
	else if(document.removeEventListener){
		document.removeEventListener("mousemove", handleresize, false);
		document.removeEventListener("mouseup", endresize, false);
	}
	else{
		document.onmousemove = resizeoldhandler;
		document.onmouseup = resizeoldhandler2;
		if(resizeoldhandler2) resizeoldhandler2(event);
	}

	document.onselectstart = "";
}



function handleresize(event){

	var i;
	var y, h;
	var vdiff;
	var resizelement;
	var d;

	resizelement = resizelements[0];
	if(!resizelement) return;

	h = parseInt(resizelement.style.height);
	if(typeof(h) == "undefined") return;

	if(typeof(event.pageY) != "undefined") y = event.pageY;
	else y = event.screenY;

	vdiff = y - resizey;
	h += vdiff;
	if(h < resizeminheight){
		y += resizeminheight - h;
		vdiff += resizeminheight - h;
		h = resizeminheight;
	}
	else if(h > 600){
		y += 600 - h;
		vdiff += 600 - h;
		h = 600;
	}
	resizey = y;
	resizelement.style.height = h + 'px';

	for(i=1; i<resizelements.length;i++) {
		resizelement = resizelements[i];

		if(!resizelement) continue;

		h = parseInt(resizelement.style.height);
		if(typeof(h) == "undefined") continue;

		h += vdiff;
		if(h < 0) h = 0;
		else if(h > 600) h = 600;

		resizelement.style.height = h + 'px';
	}

	current_offset += vdiff;
	d = document.getElementById("dragbar_offset_field");
	if(d) d.value = current_offset;


	if(resizeoldhandler) resizeoldhandler(event);
}




function write_dragbar(elname, minheight){
	document.write("<div class=\"dragbar\" onmousedown=\"beginresize(event, '"+elname+"',"+minheight+");\" onmouseup=\"endresize(event)\";></div>");
}