/**
	JavaScript
	============================================================
	This script comes with no warranty.
	It may be used, copied and modified
	for your own purposes as you like.

	Manfred Sorgo
	http://www.sorgo.de
	============================================================
	TASKS
	- <PROD>_<NN>.<EXT> image files are releavant
	- they refer to pr_<PROD>.html files

	- shuffle presentation images
	- change target of link (anchor) also

	given by php 
	- list of cat numbers
	- target file

	auto detection
	- images and anchors

	details
	- image contents by random from given list
	- avoid double images

	interface	
	img ids ip0 ... ipn
	a   ids ap0 ... apn
**/

//	============================================================
//	USER DEFINED DATA
//	PLEASE KEEP UPDATED

var sbs = ['Produktionen', 'In Arbeit', 'Dominofilm'];
var tls = [];
	tls['schule_df'] = [0, 'Schule der Freundschaft'];
	tls['ddr_wwd'] = [0, 'DDR - was war das?'];
	tls['odra'] = [0, 'Entweder Odra'];
	tls['gt_land'] = [0, 'Geteiltes Land'];
	tls['fas'] = [0, 'Hinter den Fassaden'];
	tls['josef_kaiser'] = [1, '1000 und 1 Platz'];
	tls['pforta'] = [1, 'Tradition und Elite'];
	tls['bfo'] = [0, 'BFO 2008'];
	tls['moamba'] = [0, 'Plan M'];
	tls['schwitters'] = [1, 'Bundeskanzler 2053 - so machen wir\'s.'];
	tls['domino'] = [2, 'Das Unternehmen'];
	tls['inarbeit'] = [1, 'Übersicht'];
	tls['produktionen'] = [0, 'Übersicht'];
	tls['impressum'] = [2, 'Impressum'];

var fl_image = 'images/fwd_bw.gif';
//	var fl_image = 'images/fwd.jpg';
//	var fl_image = 'images/ffwd.gif';

//	============================================================



var
//	list of images
	ilist,
//	the elements: image, anchor, text container
	itv,
	atv,
	psb, ptl,
//	original href and title of anchor / area
	ohr,
	otl,
//	the text container
	tx = ['', ''],
//	title mode:
//	some browsers (Opera) do not refresh covered text containers properly
	ttm = false,
//	random list positions
	rlist = [],
//	current random list position
	cr = 0,
//	current interaction level indicator
	cl = 0,
//	currently flimmern indicator
	fli = false,
//	autoplay delyas in mili seconds
//	begin of display 
	tb = 2000,
//	min and max time of image display
	tmi = 1000,
	tma = 10000,
//	duration of flimmern
	tf = 500,
//	text load sign
	ts = '_'
;

//	------------------------------------------------------------
//	browserr check (no proper display refresh)
//	------------------------------------------------------------
{
//	bad browsers
	var bbs = ['opera'];
	var cbr = navigator.appName.toLowerCase();
	for (var n in bbs) if (bbs[n] == cbr) ttm = true;
}

//	------------------------------------------------------------
//	program calls
//	------------------------------------------------------------
//	set image list
function setlist(a)
{
	ilist = a;
//	scan situation after window completed
	window.setTimeout('scan()', 0);
}

//	set title only mode
function sttm()
{
	ttm = true;
}
//	title of an image / anchor
function title(c)
{
	var t = tls[c];
	tx = (t ? [ sbs[t[0]], t[1] ] : ['', '']);
//	if (!t) return '?';
//	return sbs[t[0]] + ' : ' + t[1];
	return (t ? tx.join(' : ') : '?');
}


//	scan existing images and anchors
function scan()
{
	itv = document.getElementById('itv');
	atv = document.getElementById('atv');
	psb = document.getElementById('psb');
	ptl = document.getElementById('ptl');
	if (itv && atv) {
		ohr = atv.href;
		otl = atv.title;
		window.setTimeout('flimmern(0)', tb);
	}
}

//	the shuffle to shuffle function
function shuffle(nl)
{
	if (nl < cl) return;
//	one shuffle
	one_shuffle();
//	next call:
	window.setTimeout('flimmern(' + nl + ')', rndtm());
}

//	one shuffle
function one_shuffle(s)
{
	fli = false;
//	create new random list
	if (!cr) rndlist(rlist, ilist.length);

//	set image and link destination
	var c =  ilist[rlist[cr]];
	itv.src = 'frames/' + c;
	p = c.search(/\./);
	atv.href = 'pr_' + c.substring(0, p - 3) + '.html';

//	
	c = title(c.substring(0, p - 3));
	if (!ttm) c = '';
	atv.alt = atv.title = c;
	if (s) stxt();

//	increase random position
	++cr;	
	cr %= ilist.length;
}

function flimmern(nl)
{
	if (nl < cl) return;
	fli = true;
	itv.src = fl_image;
	atv.href = ohr;
	atv.title = otl;
	atv.alt = otl;
//	atv.blur();
	ntxt();
	window.setTimeout('shuffle(' + nl + ')', tf);	
}

function stxt()
{
	if (ttm) return;
	if (psb && ptl) {
		psb.innerHTML = ts;
		window.setTimeout('mtxt()', 500);
	}
}

function ntxt()
{
	tx = ['', ''];
	mtxt();
}

function mtxt()
{
	if (ttm) return;
	if (psb && ptl) {
		psb.innerHTML = tx[0];
		ptl.innerHTML = tx[1];
	}
}


//	HOVER FUNCTIONS

//	pause image shuffle
function pause()
{
	++cl;
	if (fli) one_shuffle(1);
	else stxt();
}

function goon()
{
	window.setTimeout('flimmern(' + cl + ')', 10);
}

//	image display random time
function rndtm()
{
	return Math.floor(tmi + Math.random() * (tma - tmi));
}

//	copy from standards: create a random list
function rndlist(a, s, x)
{
	if (!x) x = s;
	var u = (x >= s);
	var d = [];
	for (var i = 0; i < s; ++i)  {
		var j = a[i];
		var n = Math.floor(Math.random() * x);
		for (var k = x; (k--) && (d[n] || (n == j));) n = (n + 1) % x;
		a[i] = n;
		d[n] = u;
	}
}

