window.movieReady = false;
document.observe('dom:loaded', function(){
	Element.addMethods(Position);
	getLoader();
});

function getLoader(loader){	
	if(!loader){
		var loader = new Image();
		loader.src = '/images/ajax-loader-clear.gif';
		getLoader(loader);
	} else if(!loader.complete)	getLoader.delay(.2, loader);
	else showLoader(loader);	
}

function showLoader(loader){
	var loader = $(loader).writeAttribute('id', 'ajaxLoader');
	var overlay = new Element('div', {
		id: "shade"
	}).setOpacity(.7);
	
	var skip;
	if($(document.body).hasClassName('frontdoor')){
		skip = new Element('div', {id: 'skipMovie'});
		var site, aTag, list = new Element('ul');
		['team', 'unityalert', 'aquis'].each(function(s){			
			aTag = new Element('a',{
				href: 'http://'+s+'.aquiscommunications.com'
			}).update(s);
			site = new Element('li').insert(aTag);
			list.insert(site);
		});
		skip.insert(list);		
	} else { 
		skip = new Element('a', {
			id: 'skipMovie',
			href: '/about.html'
		}).update('Skip');		
	}
	$$('body').first().insert(overlay).insert(loader).insert(skip);
	loader.center();
	skip.center().setStyle({bottom: '5px', top: 'auto'});
	
	removeLoader();
}

function removeLoader(){
	if(!window.movieReady) return removeLoader.delay(.3);
	$$('div#shade', 'img#ajaxLoader', '#skipMovie').invoke('fade', {
		duration: 2
	});	
}

function movieLoaded(){
	window.movieReady = true;
}

/**
 * Methods for extending Prototype
 */
var Position = {
	/**
	 * Centers an element against the parent or body
	 * parent should be display: relative
	 */
	center: function(elem, parent){
		
		var elem = $(elem);
		var parent;
		var dims = elem.getDimensions();	
		var scroll = document.viewport.getScrollOffsets();
		var bgDims;
		
		if(parent){
			bgDims = $(parent).getDimensions();
		} else {
			bgDims = document.viewport.getDimensions();
		} 

		var t = parseInt( ( ( ( bgDims.height ) - dims.height) / 2 ), 10);
		var l = parseInt( ( ( ( bgDims.width ) - dims.width) / 2 ), 10 );

		elem.setStyle({
			position: 'absolute',
			top:  t + scroll.top + 'px',
			left: l + scroll.left + 'px'
		});
		return elem;
	}
};

