
var ieVer=/*@cc_on function() { switch( @_jscript_version ){ case 1.0: return 3; case 3.0: return 4; case 5.0: return 5; case 5.1: return 5; case 5.5: return 5.5; case 5.6: return 6; case 5.7: return 7; } }() || @*/0;

/* ==================================================================================================
	PARÁMETRO DONDE SE ALMACENA LA RUTA DE LA RAÍZ DE LA PÁGINA WEB
================================================================================================== */
var webRootPath = "https://www.prodelesa.es/pages/" ; //............................... <-- parámetro a modificar en cada web

/* ==================================================================================================
	PRECARGA LA ANIMACIÓN DEL MENSAJE DE ESPERA

	NOTA: La precarga se realiza para el caso en el que se quiera mostrar el mensaje de espera justo
	antes de redireccionar a otra página. Si no se precarga la imagen, esta puede no aparecer debido
	a que no da suficientemente tiempo a ser cargar antes de comenzar a cargar la página a donde se
	va a dirigir.
================================================================================================== */
var waitingAnimationImage = new Image();
waitingAnimationImage.src = webRootPath + "WaitingMessage/images/loading.gif";

/* ==================================================================================================
	PARÁMETROS PARA INIZIALIZACIÓN POR DEFECTO

	NOTA:	se utilizan para inicializar los parámetros del mensaje de espera en el el procedimiento 
			<addWaitingMessageToAllLinks() > y < goToHref() >
================================================================================================== */
//.......................................................... <-- parámetros a modificar opcionalmente
var OPACITY            = 25; // opacidad o transparencia de la capa del fondo
var MESSAGE            = ( getLanguage() == "es" ? "Cargando . . ." : "Loading . . ." ); // mensaje de espera a mostrar en español y en el resto de idiomas
var WIDTH_DIV_MESSAGE  = "20%"; // largo en %
var HEIGHT_DIV_MESSAGE = "8%"; // ancho en %
var DELAY              = 0; // tiempo en milisegundos desde que se muestra el mensaje hasta que desaparece

/* ================================================================ < addWaitingMessageToAllLinks() >
	Procedimiento que recoge la colección de etiquetas 'a' (enlaces), y les añade la función que
	muestra el mensaje de espera al evento onClick.

	NOTA: utilizar sólo en caso de querer añadir el mensaje de espera a todos los enlaces.
================================================================================================== */

function addWaitingMessageToAllLinks()
{
	var array = document.getElementsByTagName( 'a' );

	for ( var i = 0 ; i < array.length ; i ++ )
	{
		if ( array[ i ].id != "noMessage" )
		{
			if ( array[ i ].addEventListener ) //............................................ W3C DOM
				array[ i ].addEventListener( "click", showMessage, false );
			else //........................................................................... IE DOM
				array[ i ].attachEvent( "onclick", showMessage );
		}
	}

	function showMessage(){ showWaitingMessage( OPACITY, MESSAGE, WIDTH_DIV_MESSAGE, HEIGHT_DIV_MESSAGE, DELAY ); }
}

/* =================================================================================== < goToHref() >
	Procedimiento que muestra el mensaje de espra y redirecciona a la página que se indique.

	NOTA: utilizar en caso de querer añadir el mensaje de espera a un enlace concreto.
================================================================================================== */
function goToHref( location )
{
	showWaitingMessage( OPACITY, MESSAGE, WIDTH_DIV_MESSAGE, HEIGHT_DIV_MESSAGE, DELAY );
	window.location = location;
}

/* ========================================================================= < showWaitingMessage() >
	Parámetros:
		opacity:			opacidad o transparencia de la capa del fondo.
		message:			mensaje de espera a mostrar.
		divMessageWidth:	largo del cajetín donde va el mensaje de espera.
		divMessageHeight:	ancho del cajetín donde va el mensaje de espera.
		delay:				tiempo en milisegundos durante los cuales se mostrará el mensaje de espera.
							0 = indefinidamente (utilizado en caso de redireccionar a otra página), ya
							que al cargar otra página el mensaje lógicamente desaparece. De esta forma
							el mensaje se mantiene hasta que la siguiente página se cargue completamente.

	Procedimiento que muestra un mensaje de espera.
================================================================================================== */
function showWaitingMessage( opacity, message, divMessageWidth, divMessageHeight, delay )
{
	document.body.appendChild( createDivBackground( opacity ) );
	document.body.appendChild( createDivMessage( message, divMessageWidth, divMessageHeight ) );

	//..................................... introduce animación precargada a la izquierda del mensaje
	document.getElementById( "waitingAnimationImage" ).appendChild( waitingAnimationImage );

//alert( document.getElementById( "waitingMessage" ) );
	if ( delay > 0 ) setTimeout( "hideWaitingMessage()", delay );
}

/* ======================================================================== < createDivBackground() >
	Parámetros:
		opacity: opacidad o transparencia de la capa.

	Función que crea la capa del fondo transparente y la devuelve.
================================================================================================== */
function createDivBackground( opacity )
{
	var divBackground = document.createElement( "div" );

	divBackground.setAttribute( "id", "waitingMessageBackground" );

	divBackground.style.position         = "absolute";

	//..................................................................... largo y ancho maximizados
	divBackground.style.width            = "100%";
	if ( ieVer > 0 && ieVer < 7 ) //...................... IE 6, al darle valor "100%" no se maximiza
		divBackground.style.height       = document.body.clientHeight + "px";
	else //................................................ IE 7 y Firefox se maximizan correctamente
		divBackground.style.height       = "100%";

	divBackground.style.left             = getScroll( 'x' ) + "px";
	divBackground.style.top              = getScroll( 'y' ) + "px";

	divBackground.style.backgroundColor  = "#64B1FF";

	//........................................................................ OPACIDAD-TRANSPARENCIA
	if ( document.all ) //........................................................................ IE
		divBackground.style.filter       = "alpha( opacity = " + opacity + " )";
	else //........................................................................ OTROS NAVEGADORES
	{
		divBackground.style.opacity      = opacity / 100; // Safari 1.2, posterior Firefox y Mozilla, CSS3
		divBackground.style.MozOpacity   = opacity / 100; // ........... anteriores Mozilla y Firefox
		divBackground.style.KHTMLOpacity = opacity / 100; // ....... Safari anterior a 1.2, Konqueror
	}

	return divBackground;
}

/* =========================================================================== < createDivMessage() >
	Parámetros:
		message:	mensaje a mostrar.
		width:		largo de la capa.
		height:		ancho del la capa.

	Función que crea la capa del mensaje de espera.
================================================================================================== */
function createDivMessage( message, width, height )
{
	var divMessage = document.createElement( "div" );

	divMessage.setAttribute( "id", "waitingMessage" );

	divMessage.style.position        = "absolute";

	//................................ largo y ancho automáticos según valores en % de witdh y height
	divMessage.style.width           = ( ( ( window.screen.width  * parseInt( width,  10 ) ) / 100 ) ) + "px";
	divMessage.style.height          = ( ( ( window.screen.height * parseInt( height, 10 ) ) / 100 ) ) + "px";

	//............................................................... centra etiqueta en el navegador
	var barCorrectionHeight = ( ( 10.5 * window.screen.height ) / 100 ); // ancho aproximado de la barra del navegador

	divMessage.style.left            = ( ( ( window.screen.width  - parseInt( divMessage.style.width,  10 ) ) / 2 ) + getScroll( 'x' ) ) + "px";
	divMessage.style.top             = ( ( ( window.screen.height - parseInt( divMessage.style.height, 10 ) ) / 2 ) + getScroll( 'y' ) - barCorrectionHeight ) + "px"; //barCorrectionHeight es la correción del ancho de la barra del explorador
	//...............................................................................................

	divMessage.style.border          = "solid 4px #FFFFFF"; //.............................. ASPECTO
	divMessage.style.backgroundColor = "#ECF5FF";
	divMessage.style.fontFamily      = "Arial";
	divMessage.style.fontSize        = "100%";
	divMessage.style.color           = "#46A3FF";
	divMessage.style.fontWeight      = "bold";
	divMessage.style.textAlign       = "center";
	divMessage.style.verticalAlign   = "middle";

	//........................................................................... animación y mensaje
	divMessage.innerHTML             = "<table border=\"0\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr><td id=\"waitingAnimationImage\" align=\"center\" valign=\"middle\"></td><td align=\"center\" valign=\"middle\">" + message + "</td></tr></table>";

	return divMessage;
}

/* ========================================================================= < hideWaitingMessage() >
	Función que elimina el mensaje de espera eliminando las capas.
================================================================================================== */
function hideWaitingMessage()
{
	document.body.removeChild( document.getElementById( "waitingMessage" ) ); //..... elimina mensaje
	document.body.removeChild( document.getElementById( "waitingMessageBackground" ) ); // elimina fondo transparente
}

/* ================================================================================== < getScroll() >
	Parámetros:
		scrollType: tipo de escroll, X (horizontal) ó Y (vertical).

	Función que devuelve la posición actual del scroll horizontal o vertical.
================================================================================================== */
function getScroll( scrollType )
{
	if ( scrollType.toLowerCase() == 'x' )
	{
		if( window.pageXOffset )
			return window.pageXOffset;
		else
			return Math.max( document.body.scrollLeft, document.documentElement.scrollLeft );
	}

	if ( scrollType.toLowerCase() == 'y' )
	{
		if( window.pageYOffset )
			return window.pageYOffset;
		else
			return Math.max( document.body.scrollTop, document.documentElement.scrollTop );
	}
}

/* ================================================================================ < getLanguage() >
	Función que devuelve el idioma del explorador.
================================================================================================== */
function getLanguage()
{
	if ( navigator.language )
		return navigator.language.substring( 0 , navigator.language.indexOf( '-' ) );//...... W3C DOM
	else
		return navigator.userLanguage; //..................................................... IE DOM
}

//===================================================================================================

