All pastes #738400 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-16 08:44 UTC
rendered paste body
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd">



<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">


<head><title></title>

<script language=javascript type='text/javascript'>


function update_mouse_pos(event)
{

	var x = parseInt(mouseX(event));// - 10;
	var y = parseInt(mouseY(event));// - 50;

	document.getElementById('y2').value = x + "," + y;




}


function draw_rectangle(w,h,x,y)
{
	var bg = "";
	var bCol = "red";

	var rect = document.createElement("div");
	var style = rect.style;
	style.width = w +"px";
	style.height = h +"px";
	style.left = x +"px";
	style.top = y +"px";
	style.backgroundColor = bg;
	style.borderColor = bCol;
	// fixed
	style.position = "absolute";
	style.borderStyle = "solid"
	style.borderWidth = 2;
	return rect;
}


function load_image()
{
	document.getElementById('image_div').innerHTML = '';
	document.getElementById('image_div').innerHTML = "<img style='position: absolute; left: 10px; top: 50px' border='0' src='" + document.getElementById('image_file').value + "'>";
}


function mouseX(evt)
{
	if (evt.pageX)
		return evt.pageX;
	else if (evt.clientX)
   		return evt.clientX + (document.documentElement.scrollLeft ?
   			document.documentElement.scrollLeft :
   				document.body.scrollLeft);
	else
		return null;
}

function mouseY(evt)
{
	if (evt.pageY)
		return evt.pageY;
	else if (evt.clientY)
   		return evt.clientY + (document.documentElement.scrollTop ?
   			document.documentElement.scrollTop :
   				document.body.scrollTop);
	else
		return null;
}



//returns an array where x, y, width and height are in consecutive elements (respectively)
function calc_rect_params(x1, y1, x2, y2)
{
	var rect_params = new Array(4);

	/*
	element:
	0 = x
	1 = y
	2 = width
	3 = height
	*/

	if (x2 > x1 &&  y2 < y1)
	{
		rect_params[0] = x1;
		rect_params[1] = y2;
		rect_params[2] = parseInt(x2) - parseInt(x1);
		rect_params[3] = parseInt(y1) - parseInt(y2);
		document.getElementById('test_results').innerHTML = "if statment 1<br>";

	}
	else if (x2 < x1 && y2 < y1)
	{
		rect_params[0] = x2;
		rect_params[1] = y2;
		rect_params[2] = parseInt(x1) - parseInt(x2);
		rect_params[3] = parseInt(y1) - parseInt(y2);
		document.getElementById('test_results').innerHTML = "if statment 2<br>";
	}
	else if (x2 < x1 && y2 > y1)
	{
		rect_params[0] = x2;
		rect_params[1] = y1;
		rect_params[2] = parseInt(x1) - parseInt(x2);
		rect_params[3] = parseInt(y2) - parseInt(y1);
		document.getElementById('test_results').innerHTML = "if statment 3<br>";
	}
	else if (x2 > x1 && y2 > y1)
	{
		rect_params[0] = x1;
		rect_params[1] = y1;
		rect_params[2] = parseInt(x2) - parseInt(x1);
		rect_params[3] = parseInt(y2) - parseInt(y1);
		document.getElementById('test_results').innerHTML = "if statment 4<br>";
	}


	document.getElementById('test_results').innerHTML += "x1: " + x1 + "<br>";
	document.getElementById('test_results').innerHTML += "y1: " + y1 + "<br>";
	document.getElementById('test_results').innerHTML += "x2: " + x2 + "<br>";
	document.getElementById('test_results').innerHTML += "y2: " + y2 + "<br>";
	document.getElementById('test_results').innerHTML += "height: " + rect_params[3] + "<br>";
	document.getElementById('test_results').innerHTML += "width: " + rect_params[2] + "<br>";





	return rect_params;

}


function process_click(x, y)
{
	if (document.getElementById('x1').value == '' && document.getElementById('y1').value == '')
	{
		document.getElementById('x1').value = x;
		document.getElementById('y1').value = y;
	}
	else
	{
		document.getElementById('x2').value = x;
		document.getElementById('y2').value = y;

		var rect_params = new Array(4);

		rect_params = calc_rect_params(document.getElementById('x1').value,
										document.getElementById('y1').value,
										 document.getElementById('x2').value,
										  document.getElementById('y2').value);


		document.getElementById('x1').value = '';
		document.getElementById('y1').value = '';
		document.getElementById('x2').value = '';
		document.getElementById('y2').value = '';


		document.getElementById('image_div').appendChild(draw_rectangle(rect_params[2], rect_params[3], rect_params[0], rect_params[1]));

	}

}

</script>


</head>

<body>

<input type=file name='image_file' onChange="load_image();">

<input type=text name='x1'>
<input type=text name='y1'>
<input type=text name='x2'>
<input type=text name='y2'> 10px, 50px



<div id="image_div" onClick='javascript: process_click(mouseX(event), mouseY(event));' onMouseMove = 'javascript: update_mouse_pos(event);'>

</div>


<div id="test_results" style='position: absolute; left: 800px; top: 100px'>

</div>



</body>

</html>