var zgdbLoadIconPrepared = false;
var zgdbLoadIconTriggered = false;
var zgdbLoadIconCached = new Image();


function zgdbGetLoadIconConfig() {
	
	var tmp = new Object({
		'opacity'	:	'0.35',
		'id'		:	'zgdbLoadIcon',
		'left'		:	'63px',
		'top'		:	'279px',
		'src'		:	'typo3conf/ext/zin_gdb_conn/img/loader.gif',
		'target'	:	'zgdb_conn_main',
		'zIndex'	:	'50000'
	});
	
	try {
		if (zgdbLoadIconConfig) {
			for (var i in zgdbLoadIconConfig) {
				tmp[i] = zgdbLoadIconConfig[i];
			}
		}
	} catch(e) {}
	
	return tmp;
}



function zgdbTriggerLoadIcon() {
	
	if (zgdbLoadIconTriggered) {
		return;
	}
	zgdbLoadIconTriggered = true;
	tmp = zgdbGetLoadIconConfig();
	
	var parent = document.getElementById(tmp.target);
	var children = parent.childNodes;
	var child;

	for (var i = 0; i < children.length; i++) {
		child = children[i];
		if (!child.style) continue;
		child.style.opacity = tmp.opacity;
	}
	
	var el = document.createElement('img');
	
	el.src = tmp.src;
	//el.setAttribute('src', tmp.src);
	el.setAttribute('id', tmp.id);
	el.style.zIndex = tmp.zIndex;
	el.style.position = 'absolute';
	el.style.marginLeft = tmp.left;
	el.style.top = tmp.top;
	el.style.left = '50%';
	
	parent.appendChild(el);
}

// Initialize the load icon
function zgdbPrepareLoadIcon() {
	
	if (zgdbLoadIconPrepared) {
		return;
	}
	zgdbLoadIconPrepared = true;
	
	var bodyTags = document.getElementsByTagName('body');
	
	var config = zgdbGetLoadIconConfig();
	zgdbLoadIconCached.src = config.src;
	
	if(bodyTags[0]) {
		/*
		var onUnload = bodyTags[0].getAttribute('onunload');
		if (onUnload) {
			bodyTags[0].setAttribute('onunload', 'zgdbTriggerLoadIcon(); ' + onUnload);
		} else {
			bodyTags[0].setAttribute('onunload', 'zgdbTriggerLoadIcon()');
		}
		
		var onBeforeUnload = bodyTags[0].getAttribute('onbeforeunload');
		if (onBeforeUnload) {
			bodyTags[0].setAttribute('onbeforeunload', 'zgdbTriggerLoadIcon(); ' + onBeforeUnload);
		} else {
			bodyTags[0].setAttribute('onbeforeunload', 'zgdbTriggerLoadIcon()');
		}
		*/
		rzLib.setUnloadEvent(bodyTags[0], 'zgdbTriggerLoadIcon()');
	} else {
		alert('zgdb_loadIcon.js: no <body> tag found.');
	}
}

zgdbPrepareLoadIcon();
