framework.widget.floatingWindow = {
show:function(windowElementId, htmlElementId, windowPosition, windowWidth, windowHeight, hasClose, noBorder)
{
	var floatingWindowElement = document.getElementById(windowElementId);
	var htmlElement = document.getElementById(htmlElementId);
	var windowPos = framework.util.getElementPosition(htmlElementId);
	var windowLeft = windowPos[0];
	var windowTop = windowPos[1];
	if (windowPosition == framework.WidgetConstants.POSITION_BELOW)
	{
		windowTop = windowTop + htmlElement.offsetHeight; 
	}
	else if (windowPosition == framework.WidgetConstants.POSITION_ABOVE)
	{
		if (windowHeight != framework.WidgetConstants.AUTO_HEIGHT)
		{
			windowTop = windowTop - htmlElement.offsetHeight - windowHeight; 
		}
	}
	else if (windowPosition == framework.WidgetConstants.POSITION_LEFT)
	{
		windowLeft = windowLeft - windowWidth; 
	}
	else if (windowPosition == framework.WidgetConstants.POSITION_RIGHT)
	{
		windowLeft = windowLeft + htmlElement.offsetWidth + 5; 
	}
	else if (windowPosition == framework.WidgetConstants.POSITION_RIGHTUPWARD)
	{
		windowLeft = windowLeft + htmlElement.offsetWidth + 5; 
	}
	else if (windowPosition == framework.WidgetConstants.POSITION_BELOWRIGHTJUSTIFIED)
	{
		windowTop = windowTop + htmlElement.offsetHeight;
		windowLeft = windowLeft + htmlElement.offsetWidth - windowWidth;
	}
	floatingWindowElement.style.top = windowTop + "px";
	floatingWindowElement.style.left = windowLeft + "px";
	floatingWindowElement.style.width = windowWidth + "px";
	if (windowHeight != framework.WidgetConstants.AUTO_HEIGHT)
	{
		floatingWindowElement.style.height = windowHeight + "px";
	}
	var windowCloseElementId = windowElementId + "._headerClose" ;
	if (hasClose)
	{
		framework.util.showElement(windowCloseElementId);
		var closeElementId = windowElementId + "._headerClose";
		framework.eventmodel.addElementEvent(closeElementId, framework.EventType.CLICK, framework.widget.floatingWindow._closeEventHandler);
	}
	else
	{
		framework.util.hideElement(windowCloseElementId);
	}
	framework.util.showElement(windowElementId);
	if (windowPosition == framework.WidgetConstants.POSITION_ABOVE)
	{
		if (windowHeight == framework.WidgetConstants.AUTO_HEIGHT)
		{
			windowTop = windowTop - floatingWindowElement.offsetHeight; 
			floatingWindowElement.style.top = windowTop + "px";
		}
	}
	if (windowPosition == framework.WidgetConstants.POSITION_RIGHTUPWARD)
	{
		if (windowHeight == framework.WidgetConstants.AUTO_HEIGHT)
		{
			windowTop = windowTop - floatingWindowElement.offsetHeight; 
			windowTop = windowTop + htmlElement.offsetHeight;
			floatingWindowElement.style.top = windowTop + "px";
		}
	}
	if (framework.util.isType(noBorder, framework.DataType.BOOLEAN) && noBorder)
	{
		floatingWindowElement.style.border = "none";
	}
	return framework.Status.SUCCESS;
},
showAt:function(windowElementId, windowLeft, windowTop, windowWidth, windowHeight, hasClose)
{
	var windowElement = document.getElementById(windowElementId);
	windowElement.style.top = windowTop + "px";
	windowElement.style.left = windowLeft + "px";
	windowElement.style.width = windowWidth + "px";
	if (windowHeight != framework.WidgetConstants.AUTO_HEIGHT)
	{
		windowElement.style.height = windowHeight + "px";
	}
	var windowCloseElementId = windowElementId + "._headerClose" ;
	if (hasClose)
	{
		framework.util.showElement(windowCloseElementId);
		var closeElementId = windowElementId + "._headerClose";
		framework.eventmodel.addElementEvent(closeElementId, framework.EventType.CLICK, framework.widget.floatingWindow._closeEventHandler);
	}
	else
	{
		framework.util.hideElement(windowCloseElementId);
	}
	framework.util.showElement(windowElementId);
	return framework.Status.SUCCESS;
},
hide:function(windowElementId)
{
	framework.util.hideElement(windowElementId);
	framework.util.showSelects(windowElementId);
},
setHTML:function(windowElementId, titleText, innerHTMLText)
{
	var windowHeaderTitleElementId = windowElementId + "._headerTitle";
	document.getElementById(windowHeaderTitleElementId).innerHTML = titleText;
	var windowContentElementId = windowElementId + "._content";
	document.getElementById(windowContentElementId).innerHTML = innerHTMLText;
},
setHTMLContent:function(windowElementId, innerHTMLText)
{
	var windowContentElementId = windowElementId + "._content";
	document.getElementById(windowContentElementId).innerHTML = innerHTMLText;
},
hideSelects:function(floatingWindowId)
{
	var rect = {};
	var element = document.getElementById(floatingWindowId);
	var elementPosition = framework.util.getElementPosition(floatingWindowId);
	rect[0] = elementPosition[1];
	rect[2] = rect[0] + element.offsetHeight;
	rect[3] = elementPosition[0];
	rect[1] = rect[2] + element.offsetWidth;
	return framework.util.hideSelects(floatingWindowId, rect);
},
_closeEventHandler:function(event)
{
	var windowElementId = this.id.split("._headerClose")[0];
	framework.util.hideElement(windowElementId);
	event.stopPropagation();
	framework.util.showSelects(windowElementId);
},
createSimpleJSFloatingWindow:function(putModuleId, moduleId, headerText, closeText, hasTitle)
{
	var divElement = document.createElement('div');
	divElement.id = moduleId;
	divElement.className = "floatingWindow";
	divElement.type = "floatingWindow";
	if (hasTitle){
		var divHeader = document.createElement('div');
		divHeader.id = moduleId+"._header";
		divHeader.className = "floatingWindowHeader";
		var divHeaderTitle = document.createElement('div');
		divHeaderTitle.id = moduleId+"._headerTitle";
		divHeaderTitle.className = "floatingWindowHeaderTitle";
		divHeaderTitle.innerHTML = headerText;
		divHeader.appendChild(divHeaderTitle);
		var divHeaderClose = document.createElement('div');
		divHeaderClose.id = moduleId+"._headerClose";
		divHeaderClose.className = "floatingWindowHeaderClose";
		divHeaderClose.innerHTML = closeText;
		divHeader.appendChild(divHeaderClose);
		divElement.appendChild(divHeader);
	}
	var divContent = document.createElement('div');
	divContent.id = moduleId+"._content";
	divContent.className = "floatingWindowContent";
	divElement.appendChild(divContent);
	var element = document.getElementById(putModuleId);
	element.appendChild(divElement);
},
loaded:true
};

//Version 3.5
