function createOverlay_new(data, position, top, left)
{
	if(position == undefined)
	{
		position = "fixed";
	}

	var body_dom = document.getElementsByTagName('body')[0];
	
	/** Creating an overlay **/		
	var overlay_div = document.createElement('div');
	overlay_div.id = 'overlay_div';
	
	/** A few styles **/
	overlay_div.style.position = 'absolute';
	if(browser != 'ie')
	{		
		overlay_div.style.position = position;
	}
	overlay_div.style.zIndex = "999999";
	
	/** Now we append it to the body **/
	body_dom.appendChild(overlay_div);
	
	/** Inserting the data **/
	if(data != undefined)
	{
		overlay_div.innerHTML = data;	
	}
	
	if(top != undefined && left != undefined)
	{
		if(top == "center")
		{
			centerObject_new("top");
		}
		else
		{
			overlay_div.style.top = top+"px";	
		}
		
		if(left == "center")
		{
			centerObject_new("left");
		}
		else
		{
			overlay_div.style.left = left+"px";
		}
	}
	else
	{
		/** Starting the onresize function **/
		if(browser != 'ie')
		{
			window.onresize = function(){centerObject_new();};
		}
		centerObject_new();		
	}
	
	if(position == "fixed" && browser == 'ie')
	{
		window.onscroll = function(){ieFixed_new('overlay_div', top, left)};
		window.onresize = function(){ieFixed_new('overlay_div', top, left)};
	}
}

function ieFixed_new(obj, top, left)
{
	if(obj != undefined)
	{
		var obj = getElement(obj);
	}
	else
	{
		obj = getElement('overlay_div');
	}
	
	if(obj)
	{
		/** Updating window dimensions **/
		updateWindowDimensions_new();	
		
		if(top == undefined || top == "center")
		{
			centerObject_new("top");
		}
		else
		{
			obj.style.top = (window_scroll_y_new+top)+"px";
		}
		
		if(left == undefined || left == "center")
		{
			centerObject_new("left");
		}
		else
		{
			obj.style.left = (window_scroll_x_new+left)+"px";
		}
	}
}

function centerObject_new(type, obj)
{
	if(obj != undefined)
	{
		var obj = getElement(obj);
	}
	else
	{
		var obj = getElement('overlay_div');	
	}
	
	
	/** Updating window dimensions **/
	updateWindowDimensions_new();
			
	/** Getting objects dimensions **/
	var width = obj.offsetWidth;
	var height = obj.offsetHeight;		
		
	if(type != undefined && type == "top")
	{		
		obj.style.top 	= (window_scroll_y_new)+(window_height_new/2)-(height/2)+"px";
	}
	else if(type != undefined && type == "left")
	{
		obj.style.left 	= (window_scroll_x_new)+(window_width_new/2)-(width/2)+"px";
	}
	else
	{
		obj.style.top 	= (window_scroll_y_new)+(window_height_new/2)-(height/2)+"px";
		obj.style.left 	= (window_scroll_x_new)+(window_width_new/2)-(width/2)+"px";			
	}
	
	if(parseInt(obj.style.top) < 0)
	{
		obj.style.top = '0px';
	}
	if(parseInt(obj.style.left) < 0)
	{
		obj.style.left = '0px';
	}
}

var window_height_new = 0;
var window_width_new = 0;
var window_scroll_y_new = 0;
var window_scroll_x_new = 0;
function updateWindowDimensions_new()
{	
	if(browser == "ie")
	{
		/** Scroll Y **/
		if(document.documentElement && document.documentElement.scrollTop != 0)
		{
			window_scroll_y_new = document.documentElement.scrollTop;
		}
		else
		{
			window_scroll_y_new = document.body.scrollTop;
		}
		
		/** Scroll X **/
		if(document.documentElement && document.documentElement.scrollLeft != 0)
		{
			window_scroll_x_new = document.documentElement.scrollLeft;
		}
		else
		{
			window_scroll_x_new = document.body.scrollLeft;
		}
		
		/** Height **/
		if(document.documentElement && document.documentElement.clientHeight != 0)
		{
			window_height_new = document.documentElement.clientHeight;
		}
		else
		{
			window_height_new = document.body.clientHeight;
		}

		/** Width **/
		if(document.documentElement && document.documentElement.clientWidth != 0)
		{
			window_width_new = document.documentElement.clientWidth;
		}
		else
		{
			window_width_new = document.body.clientWidth;
		}	
	}
	else
	{
		window_scroll_y_new = window.pageYOffset;
		window_scroll_x_new = window.pageXOffset;
		window_width_new 	= window.innerWidth;
		window_height_new 	= window.innerHeight;		
	}
}

var document_total_height_new = "";
var document_total_width_new = "";

function setDocumentHeightAndWidth()
{
	var body = document.body, html = document.documentElement;
	
	document_total_height_new = Math.max( body.scrollHeight, body.offsetHeight,  html.clientHeight, html.scrollHeight, html.offsetHeight );
	document_total_width_new = Math.max( body.scrollWidth, body.offsetWidth,  html.clientWidth, html.scrollWidth, html.offsetWidth );
}

function createOverlayAtObject(obj, data, offset_x, offset_y)
{
	var obj = getElement(obj);
	var body_dom = document.getElementsByTagName('body')[0];
	
	if(!is_numeric(offset_x))
	{
		offset_x = 0;
	}
	if(!is_numeric(offset_y))
	{
		offset_y = 0;
	}
	
	/** Creating an overlay **/		
	var overlay_div = document.createElement('div');
	overlay_div.id = 'overlay_div_at_object';
	
	/** Positioning the overlay **/
	var obj_positions = getPositionOfObject(obj).split(";");
	
	overlay_div.style.position = "absolute";
	overlay_div.style.left = (obj_positions[0]*1+offset_x)+"px";
	overlay_div.style.top = (obj_positions[1]*1+offset_y)+"px";
	overlay_div.style.zIndex = "999999";
	
	/** Now we append it to the body **/
	body_dom.appendChild(overlay_div);
	
	/** Inserting the data **/
	if(data != undefined)
	{
		overlay_div.innerHTML = data;	
	}
}

var mouseX = "";
var mouseY = "";
function setMouseXY(e) 
{
  if (browser == "ie") { // grab the x-y pos.s if browser is IE
    mouseX = event.clientX + document.body.scrollLeft;
    mouseY = event.clientY + document.body.scrollTop;
  } else {  // grab the x-y pos.s if browser is NS
    mouseX = e.pageX;
    mouseY = e.pageY;
  }  
  // catch possible negative values in NS4
  if (mouseX < 0){mouseX = 0;}
  if (mouseY < 0){mouseY = 0;}
}

function addCloseButtonToOverlay(id, onclose_function, top, right, innerhtml)
{
	if(getElement(id))
	{
		if(onclose_function == undefined)
		{
			onclose_function = function(){
				closeOverlay(true);
			};
		}
		
		if(top == undefined)
		{
			top = -10;
		}
		
		if(right == undefined)
		{
			right = -10;
		}
	
		if(innerhtml == undefined)
		{
			innerhtml = '<img src="images/ajax/close.png">';
		}	
		
		
		var overlay_obj 			= getElement(id);
		var close_button 			= document.createElement('div');
		
		close_button.onclick 		= function(){onclose_function()};
		close_button.style.position = 'absolute';
		close_button.style.top 		= top+'px';
		close_button.style.right 	= right+'px';
		close_button.style.cursor 	= 'pointer';
		close_button.innerHTML 		= innerhtml;
		
		overlay_obj.appendChild(close_button);
		
		/** Checking if we need to adjust the overlay object a little to make room for our new object **/
		if(parseInt(overlay_obj.style.top)+top < 0)
		{
			overlay_obj.style.top = top*-1+'px';
		}		
	}
}
