var x,x0,dragx,w;
var y,y0,dragy,h;
var flag = ""; // n s e w nw sw ne se
var rulers = ["n", "s", "e", "w", "nw", "sw", "ne", "se"];
var darkness = ["top", "bottom", "left", "right"];
var shiftlock;

document.onkeydown = function(e) {
	if(window.event){
		e = window.event;
		if(e.shiftKey){
                	shiftlock = true;
        	}
	}
	else if(e.which){
        	if(e.shiftKey || ((e.modifiers & Event.SHIFT_MASK) == Event.SHIFT_MASK)){
                	shiftlock = true;
        	}
	}
}

document.onkeyup = function(e) {
	shiftlock = false;

}

document.onmousedown = function(e) {
//	alert('shift=' + shiftlock);

}




//detect brouser
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
		|| this.searchVersion(navigator.appVersion)
		|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
				return data[i].identity;
			}
			else if (dataProp)
			return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
	{
		string: navigator.vendor,
		subString: "Apple",
		identity: "Safari"
	},
	{
		prop: window.opera,
		identity: "Opera"
	},
	{
		string: navigator.vendor,
		subString: "iCab",
		identity: "iCab"
	},
	{
		string: navigator.vendor,
		subString: "KDE",
		identity: "Konqueror"
	},
	{
		string: navigator.userAgent,
		subString: "Firefox",
		identity: "Firefox"
	},
	{	// for newer Netscapes (6+)
		string: navigator.userAgent,
		subString: "Netscape",
		identity: "Netscape"
	},
	{
		string: navigator.userAgent,
		subString: "MSIE",
		identity: "Explorer",
		versionSearch: "MSIE"
	},
	{
		string: navigator.userAgent,
		subString: "Gecko",
		identity: "Mozilla",
		versionSearch: "rv"
	},
	{ 	// for older Netscapes (4-)
		string: navigator.userAgent,
		subString: "Mozilla",
		identity: "Netscape",
		versionSearch: "Mozilla"
	}
	],
	dataOS : [
	{
		string: navigator.platform,
		subString: "Win",
		identity: "Windows"
	},
	{
		string: navigator.platform,
		subString: "Mac",
		identity: "Mac"
	},
	{
		string: navigator.platform,
		subString: "Linux",
		identity: "Linux"
	}
	]

};
BrowserDetect.init();
//init/////////////////////////////////////////
function init_pic()
{
	window.document.getElementById('select_pic').src;
}

function initSelect()
{
	createRulers();
	createDarkness();
	if (BrowserDetect.browser == "Explorer") {
		var select_div = document.getElementById("sel");
		select_div.style.backgroundColor = 'black';
		select_div.style.opacity = 0;
		select_div.style.fontSize = 0;
		select_div.style.filter = 'alpha(opacity=0)';
	}

	//createSelect();
}

function img_load()
{
	var o_loading = window.document.getElementById('pic_dark');
	var o_pic = window.document.getElementById('select_pic');
	var o_div = window.document.getElementById('pic_sel');
	o_loading.style.display = 'none';
	
	x1 = o_pic.left;
	y1 = o_pic.top;
	x2 = o_pic.left + o_pic.width;
	y2 = o_pic.top + o_pic.height;
	
	o_div.style.clip = "rect("+x1+","+y1+","+x2+","+y2+")";
	
	coords_zero();
}
//////////////////////////////////////////init
//Darkness////////////////////////////////////
function createDarkness()
{
	var parent = document.getElementById('pic_sel');
	for (var i=0; i<darkness.length; i++) {
		var darkElement = document.createElement("div");
		darkElement.id = darkness[i];
		if (BrowserDetect.browser != "Opera") {
			darkElement.style.backgroundColor = 'black';
			darkElement.style.opacity = 0.2;
			darkElement.style.fontSize = 0;
			darkElement.style.filter = 'alpha(opacity=20)';
		}
		darkElement.style.zIndex=100;
		darkElement.style.position = "absolute";
		darkElement.style.display = "none";
		darkElement.onmouseup = stopSelecting;
		darkElement.onmousedown = startSelecting;
		parent.appendChild(darkElement);
	}
}

function hideDarkness()
{
	for (var i=0; i<darkness.length; i++) {
		darkElement = document.getElementById(darkness[i]);
		if (darkElement) {
			darkElement.style.display = "none";
		}
	}
}

function drawDarkness()
{
	var pic_pos = document.getElementById("select_pic");
	//top
	var darkElement = document.getElementById("top");
	if (darkElement) {
		darkElement.style.top = 0 + "px";
		darkElement.style.left = x + "px";
		darkElement.style.width = (w+1) + "px";
		darkElement.style.height = y + "px";
		if (y == 0) {
			darkElement.style.display = "none";
		} else {
			darkElement.style.display = "block";
		}
	}

	//bottom
	var darkElement = document.getElementById("bottom");
	if (darkElement) {
		darkElement.style.top = (y+h+1) + "px";
		darkElement.style.left = x + "px";
		darkElement.style.width = (w+1) + "px";
		darkElement.style.height = (pic_pos.height - (y + h)) + "px";
		if ((pic_pos.height - (y + h)) == 0) {
			darkElement.style.display = "none";
		} else {
			darkElement.style.display = "block";
		}
	}
	//left
	var darkElement = document.getElementById("left");
	if (darkElement) {
		darkElement.style.top = 0 + "px";
		darkElement.style.left = 0 + "px";
		darkElement.style.width = x + "px";
		darkElement.style.height = pic_pos.height + "px";
		darkElement.style.display = "block";
	}
	//right
	var darkElement = document.getElementById("right");
	if (darkElement) {
		darkElement.style.top = 0 + "px";
		darkElement.style.left = (x + w + 1) + "px";
		darkElement.style.width = (pic_pos.width - (x + w)) + "px";
		darkElement.style.height = pic_pos.height + "px";
		darkElement.style.display = "block";
	}
}
/////////////////////////////////////Darkness
//Selection/////////////////////////////////
function createSelect()
{
	var parent = document.getElementById('pic_sel');
	var select_div = document.createElement("div");
	select_div.id = "sel";

	if (BrowserDetect.browser == "Explorer") {
		darkElement.style.backgroundColor = 'black';
		darkElement.style.opacity = 0;
		darkElement.style.fontSize = 0;
		darkElement.style.filter = 'alpha(opacity=0)';
	}
	select_div.style.position = "absolute";
	select_div.style.cursor = "move";
	select_div.style.position = "absolute";
	select_div.style.display = "none";
	parent.appendChild(select_div);
}

function drawSelectArea()
{
	var selectArea = document.getElementById("sel");
	if (selectArea) {
		selectArea.style.top = y + "px";
		selectArea.style.left = x + "px";
		selectArea.style.width = w + "px";
		selectArea.style.height = h + "px";
		selectArea.style.display = "block";
	}
}

function redrawSelect()
{
	drawRulers();
	drawDarkness();
	drawSelectArea();
}

function coords_zero()
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');
	var layer = window.document.getElementById('sel');
	var show_sel = window.document.getElementById('show_sel');
	hideRulers();
	hideDarkness();
	x = y = w = h = 0;
	show_sel.innerHTML = w+"x"+h;
	coord_x.value = coord_y.value = width.value = height.value = 0;
	layer.style.display = 'none';
}

function selectAll()
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');
	var layer = window.document.getElementById('sel');
	var pic = window.document.getElementById('select_pic');
	
	var show_sel = window.document.getElementById('show_sel');
	
	x = y = 0;
	w = pic.width;
	h = pic.height;
	coord_x.value = coord_y.value = 0
	width.value = w
	height.value = h;
	
	show_sel.innerHTML = w+"x"+h;
	
	layer.style.display = 'block';
	redrawSelect();
}

function startSelecting(e)
{
	coords_zero();

	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');

	var layer = window.document.getElementById('sel');

	var oPosition = get_event_position1(e);
	var pic = window.document.getElementById('select_pic');
	var pic_pos = get_object_position(pic);
	if(pic_pos && layer.style.display == "none") {
		if (BrowserDetect.browser == "Explorer") {
			x = (oPosition.x-pic_pos.x);
			y = (oPosition.y-pic_pos.y);
		} else if (BrowserDetect.browser == "Safari") {
			x = (oPosition.x-pic_pos.x-10);
			y = (oPosition.y-pic_pos.y-10);
		} else {
			x = (oPosition.x-pic_pos.x);
			y = (oPosition.y-pic_pos.y);
		}

		w = 0;
		h = 0;
		x0 = x;
		y0 = y;
		layer.style.top = y + 'px';
		layer.style.left = x + 'px';
		layer.style.width = w + 'px';
		layer.style.height = h + 'px';
		layer.style.display = 'block';
		
		hideRulers();
		document.onmousemove = mouseSelection;
		document.onmouseup = function(){
			stopSelecting();
	//		setHistoryText(TEXT_NEW_SELECTION,"INFO");			
		}
//		document.onmousedown = startSelecting;

	}
//	else{
//		coords_zero();
//		document.onclick = startSelecting;
//	}
	return false;
}

function stopSelecting()
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');
	if (w == 0 || h == 0) {
		ajaxHistoryText();
		coords_zero();
		setHistoryText(TEXT_DESELECT,"INFO");
	}
	else{
		ajaxHistoryText();
		setHistoryText(TEXT_NEW_SELECTION,"INFO");

	}

	coord_x.value = x;
	coord_y.value = y;
	width.value = w;
	height.value = h;

	document.onmousemove = function() {return false;};

//	var pic_div = document.getElementById('select_pic');
//	pic_div.onmousedown = function(){
//		var inside = window.document.getElementById('sel');
//		inside.onmousedown = function(e) {
 //               	var layer = window.document.getElementById('sel');
  //              	var oPosition = get_event_position1(e);
   //             	dragx = oPosition.x;
    //            	dragy = oPosition.y;
     //           	document.onmousemove = dragSelection;
//			alert('inside');
//		};
//		alert('outside');
//	}

	var layer = window.document.getElementById('sel');

	layer.ondblclick = function(e) {
		crop();
		return false;
	}

	layer.onmousedown = function(e) {
		var layer = window.document.getElementById('sel');
		var oPosition = get_event_position1(e);
		dragx = oPosition.x;
		dragy = oPosition.y;
		document.onmousemove = dragSelection;

	};
	document.onmouseup = function(e) {
		document.onmousemove = function() {return false;};
	}

}

function dragSelection(e)
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');

	var pic = window.document.getElementById('select_pic');
	var layer = window.document.getElementById('sel');

	var pic_pos = get_object_position(pic);
	var oPosition = get_event_position1(e);
	var layer_pos = get_object_position(layer);

	dx = dragx - oPosition.x;
	dy = dragy - oPosition.y;

	dragx = oPosition.x;
	dragy = oPosition.y;

	new_x = x - dx;
	new_y = y - dy;

	if ((new_x+w) < pic.width && new_x >= 0) {
		x = new_x;
	}
	if ((new_y+h) < pic.height && new_y >= 0) {
		y = new_y;
	}
	layer.style.left = x + 'px';
	layer.style.top = y + 'px';
	redrawSelect();
	coord_x.value = x;
	coord_y.value = y;
}

function mouseSelection(e)
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');
	var show_sel = window.document.getElementById('show_sel');

	var oPosition = get_event_position1(e);
	var pic = window.document.getElementById('select_pic');
	var pic_pos = get_object_position(pic);
	if(pic_pos) {
		var layer = window.document.getElementById('sel');
		new_y = oPosition.y - pic_pos.y;
		new_x = oPosition.x - pic_pos.x;
		if (new_x < x0 && new_y < y0) {
			if (new_x < 0) {
				w = x0;
				x = 0;
			} else {
				w = x0 - new_x;
				x = x0 - w;
			}
			if (new_y < 0) {
				h = y0;
				y = 0;
			} else {
				h = y0 - new_y;
				y = y0 - h;
			}
		} else if (new_x < x0) {
			if (new_x < 0) {
				w = x0;
				x = 0;
			} else {
				w = x0 - new_x;
				x = x0 - w;
			}
			h = new_y - y0;
			y = y0;
		} else if (new_y < y0) {
			if (new_y < 0) {
				h = y0;
				y = 0;
			} else {
				h = y0 - new_y;
				y = y0 - h;
			}
			w = new_x - x0;
			x = x0;
		} else {
			h = new_y - y0;
			w = new_x - x0;
			y = y0;
			x = x0;
		}

		if ((x+w) >= pic.width) {
			w = pic.width - x;
		}
		if ((y+h) >= pic.height) {
			h = pic.height - y;
		}
		layer.style.top = y + 'px';
		layer.style.left = x + 'px';
		layer.style.width = w + 'px';
		layer.style.height = h + 'px';
		redrawSelect();
		coord_x.value = x;
		coord_y.value = y;
		width.value = w;
		height.value = h;
		
		show_sel.innerHTML = w+"x"+h;
	}

}

function setPos(e)
{
	var show_pos = window.document.getElementById('show_pos');
	var oPosition = get_event_position1(e);
	var pic_sel = window.document.getElementById('pic_sel');
	var pic_pos = get_object_position(pic_sel);
	pos_y = oPosition.y - pic_pos.y;
	pos_x = oPosition.x - pic_pos.x;
	show_pos.innerHTML = pos_x+","+pos_y;
	pic_sel.onmouseout = setPosNull;
}

function setPosNull()
{
	var pic_div = document.getElementById('pic_sel');
	show_pos.innerHTML = "-,-";
	pic_div.onmousemove = setPos;
}

function resizeSelect(e)
{
	var coord_x = window.document.getElementById('coord_x');
	var coord_y = window.document.getElementById('coord_y');
	var width = window.document.getElementById('width');
	var height = window.document.getElementById('height');
	var show_sel = window.document.getElementById('show_sel');
	var oPosition = get_event_position1(e);
	var pic = window.document.getElementById('select_pic');
	var pic_pos = get_object_position(pic);
	var ruler = document.getElementById("n");
	if(pic_pos) {
		var layer = window.document.getElementById('sel');
		new_y = oPosition.y - pic_pos.y;
		new_x = oPosition.x - pic_pos.x;
		if (flag == "n") {
			if (new_y >= 0) {
				dy = new_y - y;
				h = h - dy;
				y = y + dy;
			}
		} else if (flag == "s") {
			dy = h - new_y;
			h = h - y - dy;

		} else if (flag == "e") {

			dx = w - new_x;
			w = w - x - dx;

		} else if (flag == "w") {
			if (new_x >= 0) {
				dx = new_x - x;
				w = w - dx;
				x = x + dx;
			}
		} else if (flag == "ne") {

			if(shiftlock){
                                if (new_y >= 0) {
	                                dy = new_y - y;
                                        h = h - dy;
					y = y + dy;
                                }

				w = h;

//				alert('x='+x+'  y='+y+'  new_x='+new_x+'  new_y='+new_y+'  w='+w+'  h='+h);

			}
			else{
	                        if (new_y >= 0) {
        	                        dy = new_y - y;
					h = h - dy;
                        	        y = y + dy;
                       		}
                       		dx = w - new_x;
		        	w = w - x - dx;
			}

		} else if (flag == "se") {

/* NICH */

			if(shiftlock){
	                        dx = w - new_x;
                        	w = w - x - dx;

	                        dy = h - new_x;
        	                h = h - x - dy;
			}
			else {
				dx = w - new_x;
				w = w - x - dx;

				dy = h - new_y;
				h = h - y - dy;
			}

			/*
			dx = w - new_x;
			dy = h - new_y;
			old_w = w;
			old_h = h;

			w = w - x - dx;
			h = old_h/old_w*w;
			*/
		} else if (flag == "nw") {

			if(shiftlock){
	                        if (new_y >= 0) {
        	                        dy = new_y - y;
                	                h = h - dy;
                        	        y = y + dy;
                        	}

				x = x - (h - w);
				w=h;

			}
			else{
				if (new_y >= 0) {
					dy = new_y - y;
					h = h - dy;
					y = y + dy;
				}
				if (new_x >= 0) {
					dx = new_x - x;
					w = w - dx;
					x = x + dx;
				}
			}
		} else if (flag == "sw") {
			if(shiftlock){
//	                        dy = h - new_y;
//        	                h = h - y - dy;
                	        if (new_x > 0) {
                        	        dx = new_x - x;
                                	w = w - dx;
					x = x + dx;
                        	}
				h = w;
			}
			else{
				dy = h - new_y;
				h = h - y - dy;
				if (new_x > 0) {
					dx = new_x - x;
					w = w - dx;
					x = x + dx;
				}
			}
		}

		if ((x+w) > pic.width) {
			w = pic.width - x;
		}
		if ((y+h) > pic.height) {
			h = pic.height - y;
		}
		if ((h >= 0) && (w >= 0)) {
			layer.style.top = y + 'px';
			layer.style.left = x + 'px';
			layer.style.width = w + 'px';
			layer.style.height = h + 'px';
			redrawSelect();
			coord_x.value = x;
			coord_y.value = y;
			width.value = w;
			height.value = h;
			
			show_sel.innerHTML = w+"x"+h;
		}
	}
}
////////////////////////////////////////Selection
//Rulers//////////////////////////////////////////
function hideRulers()
{
	for (var i=0; i<rulers.length; i++) {
		ruler = document.getElementById(rulers[i]);
		if (ruler) {
			ruler.style.display = "none";
		}
	}
}

function drawRulers()
{
	var ruler = document.getElementById("n");
	if (ruler) {
		ruler.style.top = (y) + "px";
		ruler.style.left = (x+w/2)-5 + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("s");
	if (ruler) {
		ruler.style.top = y+h-9 + "px";
		ruler.style.left = (x+w/2)-5 + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("e");
	if (ruler) {
		ruler.style.top = (y+h/2)-5 + "px";
		ruler.style.left = x+w-9 + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("w");
	if (ruler) {
		ruler.style.top = (y+h/2)-5 + "px";
		ruler.style.left = x + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("nw");
	if (ruler) {
		ruler.style.top = y + "px";
		ruler.style.left = x + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("sw");
	if (ruler) {
		ruler.style.top = y+h-9 + "px";
		ruler.style.left = x + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("ne");
	if (ruler) {
		ruler.style.top = y + "px";
		ruler.style.left = x+w-9 + "px";
		ruler.style.display = "block";
	}
	var ruler = document.getElementById("se");
	if (ruler) {
		ruler.style.top = y+h-9 + "px";
		ruler.style.left = x+w-9 + "px";
		ruler.style.display = "block";
	}
}

function createRulers()
{
	var parent = document.getElementById('pic_sel');
	var pic_pos = get_object_position(pic);

	var ruler = createRuler("n");
	ruler.onmousedown = function(e) {
		flag = "n";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove  = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("s");
	ruler.onmousedown = function(e) {
		flag = "s";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y - pic_pos.y;
		x0 = oPosition.x - pic_pos.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("e");
	ruler.onmousedown = function(e) {
		flag = "e";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y - pic_pos.y;
		x0 = oPosition.x - pic_pos.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("w");
	ruler.onmousedown = function(e) {
		flag = "w";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("nw");
	ruler.onmousedown = function(e) {
		flag = "nw";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("sw");
	ruler.onmousedown = function(e) {
		flag = "sw";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("ne");
	ruler.onmousedown = function(e) {
		flag = "ne";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);

	var ruler = createRuler("se");
	ruler.onmousedown = function(e) {
		flag = "se";
		var oPosition = get_event_position1(e);
		y0 = oPosition.y;
		x0 = oPosition.x;
		window.document.onmousemove = resizeSelect;
		parent.onmouseup = function() {window.document.onmousemove = function(e) {return false;};}
	};
	parent.appendChild(ruler);
}

function createRuler(id)
{
	var size_ruler = 10;
	var ruler = document.createElement("div");
	ruler.id = id;
	ruler.style.backgroundColor = 'red';
	ruler.style.position = "absolute";
	ruler.style.width = size_ruler + "px";
	ruler.style.height = size_ruler + "px";
	ruler.style.visibility="visible";
	ruler.style.overflow = "hidden";
	ruler.style.zIndex=0;
	ruler.style.display = "none";
	ruler.style.cursor = id+"-resize";
	return ruler;
}

//////////////////////////////////////////Rulers

function get_event_position1(e)
{
	var oPosition = {x:0, y:0};
	if (!e) {
		var e = window.event;
	}
	if (e.pageX || e.pageY) {
		oPosition.x = e.pageX;
		oPosition.y = e.pageY;
	} else if (e.clientX || e.clientY) {
		oPosition.x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		oPosition.y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return oPosition;
}

function get_object_position(obj)
{
	var oPosition = {x:0, y:0};
	if (obj == null)
	return oPosition;

	if (obj.offsetParent) {
		while (obj.offsetParent) {
			oPosition.x += obj.offsetLeft;
			oPosition.y += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		oPosition.x += obj.x;
		oPosition.y += obj.y;
	}

	return oPosition;
}
