



		/* ------------------------------------------------------------------------------------------
		 */
		var blinker = null;
		var blinkst = 0;
		var blinkcl = new Array('#C40000', '#FFC4C4');

		function blinkIt() {
			var prc;

			if ((prc = getObj('percentage')) != null)
				prc.style.color = blinkcl[blinkst];

			blinkst = (blinkst + 1) & 1;
		}

		function percentColor(loaded, located) {
			var clr, bar, prc;

			if ((clr = getObj('percentclr')) != null) {
			if ((bar = getObj('percentbar')) != null) {
			if ((prc = getObj('percentage')) != null) {
				var percent = (100 * loaded) / located;
				var saturat = (Math.min(100 - percent, percent)) * 1.96;

				prc.innerHTML  = Math.ceil( 100 - percent        ) + '%&nbsp;to&nbsp;load';
				bar.style.left = Math.ceil((      percent) * -1.5) + 'px';

				color = 'rgb(' + Math.ceil((196 * (located - loaded)) / located + saturat) + ', '
							   + Math.ceil((196 * (          loaded)) / located + saturat) + ', 0)';

				clr.style.backgroundColor = color;
				prc.style.color           = color;
				blinkcl[0]                = color;

				if (percent == 100)
					bar.style.display = 'none';
			}}}
		}

		/* ------------------------------------------------------------------------------------------
		 */
		function loadingClass(id, path, size, onload) {
			this.id		= id;

			this.path	= path;
			this.size	= size;

			this.loaded = false;
			this.onload	= onload;
		}

		var prelist = new Array();
		var presort = new Array();
		var preposi = -1;
		var prenum  = 0;
		var presize = 0;
		var preload = 0;
		var stopped = true;

		function preloadAdd(id, path, size, onload) {
			if (parent != self)
				parent.preloadAdd(id, path, size, onload);
			else
				prelist.push(new loadingClass(id, path, size, onload));
		}

		function preloadNext() {
			if (!stopped) {
				if (preposi >= 0) {
					var pcl = prelist[presort[preposi]];
					var pim = null;

					/* remove from overall size to load */
					preload += pcl.size;
					/* mark as loaded */
					pcl.loaded = true;

					/* there is no id to load into, so it's really pre-load */
					if ((pcl.id == null) || ((pim = getObj(pcl.id)) == null))
						pim = pcl.preimag;

					/* we kill the load */
					pim.onload = null;
					pim.src = pcl.path;

					/* and there is also an event to call */
					if (pcl.onload != null)
						pcl.onload(pim != null ? pim.id : pcl.path);
				}

				percentColor(preload, presize);

				if (++preposi < presort.length) {
					var pcl = prelist[presort[preposi]];
					var pim = null;

					/* there is no id to load into, so it's really pre-load */
					if ((pcl.id == null) || ((pim = getObj(pcl.id)) == null))
						pim = pcl.preimag = new Image();

					/* we do a load */
					pim.onload = preloadNext;
					pim.src = pcl.path;

//					if (pim.complete)
//						preloadNext();
				}
				else
					killTimer(TIMER_FREQUENCY, blinkIt);
			}
		}

		function preloadList() {
			if (parent != self)
				parent.preloadList();
			else {
				stopped = true;
				presort = new Array();
				preposi = -1;
				prenum  = 0;
				presize = 0;
				preload = 0;

				/* insert only unloaded images into the process-list */
				for (var key in prelist) {
					if (prelist[key].loaded == false) {
						presort[prenum] = key;

						prenum  += 1;
						presize += prelist[key].size;
					}
				}

				registerTimer(TIMER_FREQUENCY, 125, blinkIt);

				stopped = false;

				preloadNext();
			}

			/* scripted function, return false for not to be repeated */
			return false;
		}

		registerScript(window, SCRIPT_ONLOAD, SCRIPT_PARM_ONETIME, preloadList);

