///////////////////////////
// config
var ajax_loader_output = "ajax_loader";
var ajax_loader_output_w = 20;
var ajax_loader_output_h = 20;
var ajax_loader_img_filename = "/mods_generic/ajax/ajax_loader.png";
var	ajax_loader_mouse_offset_x = 15;
var	ajax_loader_mouse_offset_y = 15;
var ajax_loader_timer_speed = 50;

var ajax_mouse_loader_sequence_total = 10;
var ajax_mouse_loader_sequence_curr = 1;
///////////////////////////
// global vars
var ajax_mouse_loader_obj = null;
var ajax_mouse_loader_img = null;
var ajax_mouse_loader_timer = null;

///////////////////////////

function ajax_loader_init()
	{
	ajax_mouse_loader_obj = document.getElementById(ajax_loader_output);
	ajax_mouse_loader_obj.style.position = "absolute";
	ajax_mouse_loader_obj.style.zIndex = 15000;
	ajax_mouse_loader_obj.style.width = ajax_loader_output_w + "px";
	ajax_mouse_loader_obj.style.height = ajax_loader_output_h + "px";
	ajax_mouse_loader_obj.style.left = "-" + ajax_loader_output_w + "px";
	ajax_mouse_loader_obj.style.top = "-" + ajax_loader_output_h + "px";
	ajax_mouse_loader_obj.style.overflow = "hidden";
	ajax_mouse_loader_obj.style.visibility = "hidden";
	
	//image
	ajax_mouse_loader_img = new Image();
	ajax_mouse_loader_img.src = ajax_loader_img_filename;
	ajax_mouse_loader_img.style.position = "absolute";
	ajax_mouse_loader_img.style.top = "0px";
	
	ajax_mouse_loader_obj.appendChild(ajax_mouse_loader_img);
	}

function ajax_loader_attach()
	{//add listeners
	addListener(document,'mousemove',ajax_loader_mousemove);
	addListener(window,'scroll',ajax_loader_mousemove);

	ajax_loader_mousemove();
	ajax_mouse_loader_obj.style.visibility = "visible";
	
	//start sequence
	ajax_loader_sequence_loop();
	}

function ajax_loader_detach()
	{ajax_mouse_loader_obj.style.visibility = "hidden";
	
	//clear timer
	clearTimeout(ajax_mouse_loader_timer);
	
	//remove listeners
	removeListener(document,'mousemove',ajax_loader_mousemove);
	removeListener(window,'scroll',ajax_loader_mousemove);
	
	ajax_mouse_loader_obj.style.left = "-" + ajax_loader_output_w + "px";
	ajax_mouse_loader_obj.style.top = "-" + ajax_loader_output_h + "px";
	}

function ajax_loader_mousemove()
	{var new_x = MousePosX + Scroll_X + ajax_loader_mouse_offset_x;
	var new_y = MousePosY + Scroll_Y + ajax_loader_mouse_offset_y;
	
	if ((new_x + ajax_loader_output_w) > (BrowserW + Scroll_X - 20))
		{new_x = BrowserW - ajax_loader_output_w - 20 + Scroll_X;}
	
	ajax_mouse_loader_obj.style.left = new_x + "px";
	ajax_mouse_loader_obj.style.top = new_y + "px";
	}

function ajax_loader_sequence_loop()
	{	
	var new_y = (ajax_mouse_loader_sequence_curr - 1) * ajax_loader_output_h;
	ajax_mouse_loader_img.style.top = "-" + new_y + "px";
	
	ajax_mouse_loader_sequence_curr++;
	if (ajax_mouse_loader_sequence_curr > ajax_mouse_loader_sequence_total)
		{ajax_mouse_loader_sequence_curr = 1;}
	
	//clear timer
	clearTimeout(ajax_mouse_loader_timer);
	
	ajax_mouse_loader_timer = setTimeout("ajax_loader_sequence_loop();",ajax_loader_timer_speed);
	}
