/**
 * @author rgaumond
 */
var theBody = document.getElementsByTagName("body")[0];

function reposition()
{
	
	placeVeil();
	placePrompt()
}

function centerElementOnScreen(el)
{
	if(IE)
		el_height=el.offsetHeight;
	else
		el_height=el.clientHeight;
	if(IE)
		el_width=el.offsetWidth;
	else
		el_width=el.clientWidth;

	el.style.top=document.viewport.getScrollOffsets().top+
			((document.viewport.getHeight()/2)-(el_height/2))+"px";
	
	el.style.left=document.viewport.getScrollOffsets().left+
			((document.viewport.getWidth()/2)-(el_width/2))+"px";
}

function getElementPosition(elID){
		var offsetTrail = document.getElementById(elID);
		var offsetLeft = 0;
		var offsetTop = 0;
		while (offsetTrail){
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	return {left:offsetLeft,top:offsetTop};
}



function center_div(elementID) {
     try{
		var centerLeft = (theBody.clientWidth - elementID.getWidth()) / 2;
		
        var centerTop = theBody.scrollTop + ((theBody.clientHeight - elementID.getHeight()) / 2);
		elementID.style.left=centerLeft+"px";
		elementID.style.top=centerTop+"px";
	}catch(e){alert("error in function center_div(positionner.js). Error:"+e.message)}
}

function center_element_in_div(child, container) {
     try{
		var centerLeft = (container.clientWidth - child.clientWidth) / 2;
        var centerTop = container.scrollTop + ((container.clientHeight - child.clientHeight) / 2);
		child.style.left=centerLeft+"px";
		child.style.top=centerTop+"px";
	}catch(e){alert("error in function center_element_in_div(positionner.js). Error:"+e.message)}
}

function center_div_horizontally(elementID)
{
		var centerLeft = (theBody.clientWidth - elementID.clientWidth) / 2;
		elementID.style.left=centerLeft+"px";
}		

function center_div_vertically_in_div(child, container)
{
	try{
		var childHeight=child.clientHeight;		
		var centerTop = container.scrollTop + ((container.clientHeight - childHeight) / 2);
  		child.style.top=centerTop+"px";
	}catch(e){alert("error in function center_div(positionner.js). Error:"+e.message)}
}		

function center_div_horizontally_in_div(child, container)
{
	try{
		var centerLeft = (container.clientWidth - child.clientWidth) / 2;
  		child.style.left=centerLeft+"px";
	}catch(e){alert("error in function center_div(positionner.js). Error:"+e.message)}
}

function scroll_to_element(el)
{
	var el_top = Element.cumulativeOffset(the_element).top;
	var el_height = the_element.getHeight();
	
	theBody.scrollTop = el_top
	-(document.viewport.getDimensions().height/2)
	-(el_height/2);
}

function center_element_in_viewport(the_element)
{
	try{

		if(the_element!=null)
		{
			Element.absolutize(the_element);
			
			var target_top = theBody.scrollTop + (document.viewport.getDimensions().height / 2) -
			(the_element.getHeight() / 2);
			if(target_top>0)
				the_element.style.top = target_top;
			else
				the_element.style.top = 0;
			var target_left = theBody.scrollLeft + (document.viewport.getDimensions().width / 2) -
			(the_element.getWidth() / 2);
			if(target_left>0)
				the_element.style.left = target_left;
			else
				the_element.style.left = 0;
			
		}
	}catch(e){alert("error in function center_element_in_viewport(positionner.js). Error:"+e.message)}
}

function in_viewport(el)
{
	try{
		return (Element.viewportOffset(el).top>0
		&&Element.viewportOffset(el).top<(document.viewport.getDimensions().height-el.getHeight()));
	}catch(e){alert("error in function in_viewport(positionner.js). Error:"+e.message)}
}

function center_in_viewport(el)
{
	theBody.scrollTop = Element.cumulativeOffset(el).top-(document.viewport.getDimensions().height/2);
}



/*

function center_sig_on_screen()
{
	currentTop = 99999;
	Blocks.get(currentDocumentID, "online").each(function(sig){
		if(!sig.accepted&&currentTop>Element.cumulativeOffset(sig.htmlApprovalBlock)){
			currentTop = Element.cumulativeOffset(sig.htmlApprovalBlock);
			
		}
	});
	if(currentTop<99999)
	theBody.scrollTop = Element.cumulativeOffset(the_element).top
	-(document.viewport.getDimensions().height/2);
}
*/
var centered_elements = new Array();

function center_items_in_viewport()
{
	centered_elements.each(function(el){
		center_element_in_viewport(el);
	});
}

function getViewPort()
{
	var viewportwidth;
 	var viewportheight;
	if (typeof window.innerWidth != 'undefined')
	{
		viewportwidth = window.innerWidth;
		viewportheight = window.innerHeight;
	}
 	else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 	{
       viewportwidth = document.documentElement.clientWidth;
       viewportheight = document.documentElement.clientHeight;
 	}
	else//
	{
	   viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
	   viewportheight = document.getElementsByTagName('body')[0].clientHeight;
	}

	this.height = viewportheight;
	this.width = viewportwidth;
	
	return this;
}


