var message;//;// = 'Please wait';
function show_loading(msg) 
{
  message = msg;
  // Create Loading div 
	var div = create_loading_div();
        
	// Set initial position				
	set_loading_position();

	// Attach event handler to onScroll to keep in position
	addEventHandler(window, 'scroll', set_loading_position);

	setInterval(moving_dots, 500);
	// TODO: the rest
	}

			function moving_dots() 
			{
				
				var div = document.getElementById('loading_message');
				if (div == null || div == '' || typeof(div) != 'object') { return false; }

				var html = div.innerHTML;

				// Add dot or start over?
				var num_dots = html.split('.').length-1;
				if (num_dots > 4) {
					div.innerHTML = message;
				} else {
					div.innerHTML = html + '.';
				}
			}

			function set_loading_position() {
				var div = document.getElementById('loading_message');
				if (div == null || div == '' || typeof(div) != 'object') { return false; }

				var scrollTop = f_scrollTop();
				var scrollLeft = f_scrollLeft();
				var clientWidth = f_clientWidth();

				// Calculate left position
				var left = clientWidth - div.offsetWidth;
				left = scrollLeft + left;
			
				// Set position
				div.style.position = 'absolute';
				//div.style.left = left + 'px';
				div.style.top = scrollTop + 'px';
				div.style.right = '0px';
			}

			function create_loading_div() {
				var div = document.createElement('DIV');
				div.id = 'loading_message';

				div.innerHTML = message;

				var wid = message.length *  8;
				var css = "width: " + wid + "px;";//250
				css += "height: 28px;";
				css += "padding-top: 6px;";
				css += "padding-botton: 5px;";
				css += "padding-left: 10px;";
				css += "padding-right: 10px;";
				css += "background-color: #EFEFEF;";
				css += "color: red;";
				css += "font-size: 9pt;";

				div.style.cssText = css;

				document.body.appendChild(div);

				return div;
			}

			function addEventHandler(oTarget, sEventType, fnHandler) {
			if (oTarget.addEventListener) {
				oTarget.addEventListener(sEventType, fnHandler, false);
			} else if (oTarget.attachEvent) {
				oTarget.attachEvent("on" + sEventType, fnHandler);
			} else {
				oTarget["on" + sEventType] = fnHandler;
			} };

			function f_clientWidth() {
				return f_filterResults (
					window.innerWidth ? window.innerWidth : 0,
					document.documentElement ? document.documentElement.clientWidth : 0,
					document.body ? document.body.clientWidth : 0
				);
			}

			function f_scrollLeft() {
				return f_filterResults (
					window.pageXOffset ? window.pageXOffset : 0,
					document.documentElement ? document.documentElement.scrollLeft : 0,
					document.body ? document.body.scrollLeft : 0
				);
			}

			function f_scrollTop() {
				return f_filterResults (
						window.pageYOffset ? window.pageYOffset : 0,
						document.documentElement ? document.documentElement.scrollTop : 0,
						document.body ? document.body.scrollTop : 0
				);
			}

			function f_filterResults(n_win, n_docel, n_body) {
				var n_result = n_win ? n_win : 0;
				if (n_docel && (!n_result || (n_result > n_docel)))
					n_result = n_docel;
				return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
			}


