document.observe("dom:loaded", function() {
  
	$$('a:not(.static)').each(function(elm) {
		Event.observe($(elm),'click',function(evnt) {
			Event.stop(evnt);
			if($(elm).href) $('login-form').action = $(elm).href;
			showLogin();
		});
	});
	
	Event.observe('close-login','click',function(e) {
		Event.stop(e);
		new Effect.Fade('overlay',{duration:.1,queue:'end'});
		new Effect.Fade('account-window',{duration:.1,queue:'front'});
	});
  
});

function showLogin() {
	setOverlayHeight();
	$('account-window').setStyle({'top':document.viewport.getScrollOffsets().top+'px'});
	new Effect.Appear('overlay',{to:.85,duration:.25});
	new Effect.Appear('account-window',{to:1,duration:.25});
}

function setOverlayHeight() {
	$('overlay').setStyle({'height':getPageSize().height+'px'});
}

function getPageSize() {
        
     var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		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
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			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 = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	return {width:pageWidth,height:pageHeight};
}
