// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll()
{
	var yScroll;
	if (self.pageYOffset)
	{
		yScroll = self.pageYOffset;
	}
	else
		if(document.documentElement && document.documentElement.scrollTop)
		{// Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
		}
		else
			if(document.body)
			{// all other Explorers
				yScroll = document.body.scrollTop;
			}
	arrayPageScroll = new Array('',yScroll)
	return arrayPageScroll;
}

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize()
{
	var xScroll, yScroll;

  if(window.innerHeight && window.scrollMaxY)
  {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
  }
  else
  	if(document.body.scrollHeight > document.body.offsetHeight)
  	{ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		}
		else
		{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
	  }

	var windowWidth, windowHeight;
	if(self.innerHeight)
	{	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
  }
  else
	  if(document.documentElement && document.documentElement.clientHeight)
	  { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
	  }
	  else
	  	if (document.body)
	  	{ // other Explorers
				windowWidth = document.body.clientWidth;
				windowHeight = document.body.clientHeight;
		  }

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight)
		pageHeight = windowHeight;
	else
		pageHeight = yScroll;

  // for small pages with total width less then width of the viewport
  if (xScroll < windowWidth)
		pageWidth = windowWidth;
	else
		pageWidth = xScroll;
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) ;
	return arrayPageSize;
}


function showOverlay()
{
	var sizes = getPageSize();
	document.getElementById('overlay').style.height = sizes[1] + 'px';
	document.getElementById('overlay').style.display = 'block';
	scrollOffset = getPageScroll();
	document.getElementById('contact_list').style.top = ((sizes[3]-300)/2)+scrollOffset[1] + 'px';
	document.getElementById('contact_list').style.left = (sizes[2]-300)/2 + 'px';
	return true;
}

function showContactList(name_input, email_input)
{
	var contact_list_btn;
	hideSelectBoxes(document.getElementById('container'));
	document.getElementById('name_input').value = name_input;
	document.getElementById('email_input').value = email_input;
	return showOverlay();
}

function hideContactList()
{
	document.getElementById('overlay').style.display = 'none';
	showSelectBoxes(document.getElementById('container'));
}

function selectContactFromList(name, email)
{
	var input = document.getElementById('name_input').value;
	document.getElementById(input).value=name;
	input = document.getElementById('email_input').value;
	document.getElementById(input).value=email;
	if(document.getElementById('contacts_list_btn'))
	{
		document.getElementById('contact_name').readOnly = true;
		document.getElementById('contact_name').style.backgroundColor = '#ddd';
		document.getElementById('contacts_list_btn').style.display = 'none';
		document.getElementById('remove_contact_btn').style.display = 'inline';
	}
	hideContactList();
	return false;
}

function hideSelectBoxes(element)
{
	var childrenList = element.nodeList;
	selects = document.getElementsByTagName('select');
	for(i = 0; i< selects.length; i++)
		selects[i].style.display = 'none';
	objects = document.getElementsByTagName('object');
	for(i = 0; i< objects.length; i++)
		objects[i].style.display = 'none';
}

function showSelectBoxes(element)
{
	var childrenList = element.nodeList;
	selects = document.getElementsByTagName('select');
	for(i = 0; i< selects.length; i++)
		selects[i].style.display = 'inline';
	objects = document.getElementsByTagName('object');
	for(i = 0; i< objects.length; i++)
		objects[i].style.display = 'inline';
	
}
