/**
 * requires:
 * 		seam/resource/remoting/resource/remote.js
 * 		Prototype.js, or other JS-library with basic set of extended built-in classes
 */

/** 
 * @namespace Seam Extends
 */
if (typeof(seam_extends) == 'undefined') {
	var seam_extends = {};
}


seam_extends.changeLoadingMessage = function decorateSeamLoadingMessage(pos) {
	
	/**
	 * The loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.loadingMessage = "Please wait...";
	
	/**
	 * Shows the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.displayLoadingMessage = function()
	{
	  if (!Seam.Remoting.loadingMsgDiv)
	  {
	    Seam.Remoting.loadingMsgDiv = document.createElement('div');
	    var msgDiv = Seam.Remoting.loadingMsgDiv;
	    msgDiv.setAttribute('id', 'loadingMsg');
	
	    msgDiv.style.position = "absolute";
	    msgDiv.style.top = pos.top - 30 + "px";
	    msgDiv.style.left = pos.left + 10 + "px";
	    msgDiv.style.background = "#FFFFCC";
	    msgDiv.style.color = "black";
	    msgDiv.style.fontFamily = "Verdana,Helvetica,Arial";
	    msgDiv.style.fontSize = "small";
	    msgDiv.style.padding = "2px";
	    msgDiv.style.border = "1px solid black";
	
	    document.body.appendChild(msgDiv);
	
	    var text = document.createTextNode(Seam.Remoting.loadingMessage);
	    msgDiv.appendChild(text);
	    var img = document.createElement('img');
	    img.src = contextPath + "/img/ajax_waiting.gif";
	    msgDiv.appendChild(img);
	  }
	  else
	  {
	    Seam.Remoting.loadingMsgDiv.innerHTML = Seam.Remoting.loadingMessage;
	    Seam.Remoting.loadingMsgDiv.style.visibility = 'visible';
	  }
	}
	
	/**
	 * Hides the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.hideLoadingMessage = function()
	{
	  if (Seam.Remoting.loadingMsgDiv)
	    Seam.Remoting.loadingMsgDiv.style.visibility = 'hidden';
	}
}

/*
 * for 'map' page
 */
seam_extends.changeLoadingCoverDiv = function decorateSeamLoadingCoverDiv() {
	
	/**
	 * The loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.loadingMessage = "";
	
	/**
	 * Shows the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.displayLoadingMessage = function()
	{
	 	$("map_cover").show();
	}
	
	/**
	 * Hides the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.hideLoadingMessage = function()
	{
	 	$("map_cover").hide();
	}
}

/*
 * for 'map' page
 */
seam_extends.changeLoadingEmptyDiv = function decorateSeamLoadingEmptyDiv() {
	
	/**
	 * The loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.loadingMessage = "";
	
	/**
	 * Shows the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.displayLoadingMessage = function()
	{
	}
	
	/**
	 * Hides the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.hideLoadingMessage = function()
	{
	}
}

/*
 * Override seam displayed div
 */
seam_extends.overrideLoadingAJAXDiv = function overrideLoadingAJAXDiv(show, hide) {
	
	if (!Seam) {
		return;
	}
	
	/**
	 * Shows the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.displayLoadingMessage = show;
	
	/**
	 * Hides the loading message.
	 * 
	 * @Override
	 */
	Seam.Remoting.hideLoadingMessage = hide;
}