 function ModalControl(id, top, left){
 	var DivHeight = $("#film_" + id).css('height').replace("px", "");
 	var DivHeight = (DivHeight * 1); // force js to treat this as an int
	var DivWidth = $("#film_" + id).css('width').replace("px", "");
	var DivWidth = (DivWidth * 1);
	var ModalWidth = $(".modal-outer").css('width').replace("px", "");
	var ModalWidth = (ModalWidth * 1);
	var ShortsDivHeight = (($("#shortlistbar").css('height')) ? $("#shortlistbar").css('height').replace("px", "") : 0);
	var ShortsDivHeight = (ShortsDivHeight * 1); 
	var DocHeight = $(document).height();
	var ModalHeight = $(".modal-outer").css("height").replace("px", "");
	var ModalHeight = (ModalHeight * 1);
	var DivOffSetTop = top;
	var DivOffSetLeft = left;
	var DivRight = DivOffSetLeft + DivWidth;
	var ModalRight = DivOffSetLeft + ModalWidth;
	var DivPos = (DivOffSetTop + DivHeight);
	var ModalPos = (DivPos + ModalHeight);
	var WindHghtWithShrts = (DocHeight - 64); // 64 is the height of the shorts bar div
	
	if (ModalPos >= WindHghtWithShrts) {
		DivPos = (DivOffSetTop - ModalHeight);
		$(".arrow").attr("class", "arrow left-bottom");
	}
	else {
		DivPos = (DivOffSetTop + DivHeight);
		$(".arrow").attr("class", "arrow left-top");
	}

	$(".modal_" + id).css("top", DivPos).css("left", DivOffSetLeft).show("fast");
	
	$().mousemove(function(e){
		var x = e.pageX;
		var y = e.pageY;
		
		if (ModalPos >= WindHghtWithShrts) {
			if ((y < DivOffSetTop - ModalHeight) || (y > DivOffSetTop + DivHeight) || (x < DivOffSetLeft) || (x > DivRight && y > DivOffSetTop)) {
				$(".modal_" + id).hide("fast");
			}
			
			if ((y < DivOffSetTop) && (x > ModalRight)) {
				$(".modal_" + id).hide("fast");
			}
			
		}
		else {
			if ((y < DivOffSetTop) || (y > ModalPos) || (x < DivOffSetLeft) || (x > DivRight && y < DivPos)) {
				$(".modal_" + id).hide("fast");
			}
			
			if ((y > DivPos) && (x > ModalRight)) {
				$(".modal_" + id).hide("fast");
			}
		}
		return;
	});
}