// Advanced Ajax Request with Lightbox indicator
// Copyright 2008 DMT Media
// Requires Mootools v1.11

// Containers for manipulation
var ajax_content_area = '';
var ajax_lightbox_area = '';
var highlight_area = '';

// Progress indicator image dimensions
var progress_w = 32;
var progress_h = 32;

// If container is tall (can't see centered progress img)
var height_max = 200; // max box height from top
var offset_amt = 100; // offset from top if over max

//Hide Elements
function hide(id) {
	$(id).setStyle('display','none');
};
			   

// AJAX request function
function ajax(url, ajax_content_area, ajax_lightbox_area, highlight_area) {
	
// Resize lightbox remotely
function window_resize() {
  resize(ajax_lightbox_area);
};
window.onresize = window_resize;
// Resize lightbox
function resize(){
var dims = $(ajax_lightbox_area).getCoordinates();
	$('lightbox').setStyle('top', dims.top);
	$('lightbox').setStyle('left', dims.left);
	$('lightbox').setStyle('width', dims.width);
	$('lightbox').setStyle('height', dims.height);
	if (dims.height > height_max) {
	var prog_y = dims.top+offset_amt;
	}else{
	var prog_y = (dims.top+dims.height/2)-(progress_h/2);
	}
	var prog_x = (dims.left+dims.width/2)-(progress_w/2);
	$('ajax_progress').setStyle('left', prog_x);
	$('ajax_progress').setStyle('top', prog_y);
};

//AJAX request method
new Ajax(url, {method: 'get',update: $(ajax_content_area),evalScripts: true, 
	onRequest: function() {
		resize(ajax_lightbox_area);
		$('ajax_progress').effect('opacity',{duration:350, fps:30}).start(0,1);
		$('lightbox').effect('opacity',{duration:250, fps:30}).start(0,.75);
}, 
	onComplete: function() {
		resize(ajax_lightbox_area);
		$('ajax_progress').effect('opacity',{duration:100, fps:30}).start(1,0);
		$('lightbox').effect('opacity',{duration:100, fps:30}).start(.75,0);
		if (highlight_area){
			//Highlight Box
			var current_color = $(highlight_area).getStyle('border-top-color');
			$(highlight_area).effect('border-color', {duration: 800,transition: Fx.Transitions.Quad.easeOut}).start('#006699',current_color);
		}else{
			// Do nothing
		}
}, 
	onFailure:function() {
		$('ajax_progress').effect('opacity',{duration:250, fps:30}).start(1,0);
		$('lightbox').effect('opacity').set(0);
		$(ajax_content_area).setHTML('<div id="alert_fail">Loading Failed!</div>');
		if (highlight_area){
			//Highlight Box
			var current_color = $(highlight_area).getStyle('border-top-color');
			$(highlight_area).effect('border-color', {duration: 800,transition: Fx.Transitions.Quad.easeOut}).start('#fff', '#990000');
		}else{
			// Do nothing
		}
}
	}).request();
};

window.addEvent('domready',function() {
	$('ajax_progress').setStyle('display','block');
	$('lightbox').setStyle('display','block');							
	$('ajax_progress').effect('opacity').set(0);
	$('lightbox').effect('opacity').set(0);
	
});