Event.observe(window, 'load',
	function()
	{		
		centerItems();
		attachFieldListeners();
	});

function getBrowserWidth()
{
	if (window.innerWidth)
		return window.innerWidth;
	else if (document.documentElement && document.documentElement.clientWidth != 0)
		return document.documentElement.clientWidth;
	else if (document.body)
		return document.body.clientWidth;		
	else
		return 0;
}

function centerItems()
{		
	var items = new Array('mainTable');
	var browserW = getBrowserWidth();
	var halfW = browserW/2;
	
	for(i = 0; i < items.length; i++)
	{
		var itemW = $(items[i]).width;
		//console.debug("New item width="+itemW);
		
		var pos = halfW - (itemW/2);	
		$(items[i]).style.float = 'left';
		$(items[i]).style.position = 'relative';		
		$(items[i]).style.left = pos + 'px';
		$(items[i]).style.width = itemW;
	}
}


function centerErrorBox()
{
	var dimContainer = $('fieldContainer').getDimensions();
	var dimElement = $('errorBox').getDimensions();
	var pos = (dimContainer.width/2) - (dimElement.width/2);
	$('errorBox').style.left = pos + 'px';
}	

function attachFieldListeners()
{
	inputs = $('registration').getInputs().each(function(s)
	{
		Event.observe($(s), 'focus', function(event){ var input = Event.element(event); toggleFieldSet(input.parentNode.id); input.focus(); });
	});
}


function toggleFieldSet(fs)
{
	
	$(fs).style.background = '#FFF7C0';
	
	$w('personal address profile admin').each(function(s)
	{
		//possible that 'admin' won't be there
		if ($(s))
		{
			if ($(s).id != fs)
				$(s).style.background = '#FAFAFA';
		}
	});
}

function doSubmit()
{
	var cid = $('cid').value;
	new Ajax.Request('/zf/student/validate/',
	{
		method: 'post',
		parameters: $('registration').serialize().toQueryParams(),
		onSuccess: function(transport)
		{			
			var errObj = transport.responseText.evalJSON();			
			// integrity check ok
			if (errObj.ERRNUM == 1000)
			{
				$('errorBox').style.border = "1px dashed green";
				$('errorBoxHeader').style.color = 'green';
				$('errorBox').style.background = "#ffffff url(/zf/public/images/good.gif) no-repeat 10px 10px";

				//update?
				if (cid != '')
				{
					$('errorBoxHeader').update('Profile update completed successfully.');
					$('errorDesc').update('Student profile details were successfully updated!');
					$('errorSubHeader').update('<a href="/zf/student/manager">Click here to go back to the Contact Manager</a>');
				}
				else //new registration
				{
					$('errorBoxHeader').update('Registration completed successfully.');
					$('errorDesc').update('New student registered successfully - welcome to dish!');				
				}
				
				$('errorSubHeader').show();
				$('errorBox').show();
				// prepare form for another entry
				$('registration').reset();
				$('registration').focusFirstElement();
			}
			else
			{
				$('errorBox').style.border = "1px dashed #df0000";
				$('errorBoxHeader').style.color = '#df0000';				
				$('errorBox').style.background = "#ffffff url(/zf/public/images/error.gif) no-repeat 10px 10px";
				$('errorBox').show();
				$('errorSubHeader').hide();
				$('errorDesc').update(errObj.ERRMSG);		
			}
			//make sure we're in viewport			
			setTimeout("window.scrollBy(0,-intoVP($('errorBox')))", 500);			
		}
	});
}

function intoVP()
{
	var yScroll;
	
	if (self.pageYOffset)
		yScroll = self.pageYOffset;
	else if (document.documentElement && document.documentElement.scrollTop)
        yScroll = document.documentElement.scrollTop; 
	else if (document.body)
        yScroll = document.body.scrollTop;

	return yScroll;
}