var obj_container_teampics, container_teampics_width, obj_teampics, teampics_width, teampics_scroller;
var loading_images=0;
var images = new Array();

var oldonload = window.onload;
window.onload = function () {
	var imgsource = document.getElementById('imgsource');
	var imgdiv = document.getElementById('imgdiv');
	if(imgsource) {
		var categories = imgsource.getElementsByTagName('ul');
		var bobhtml = "";
		for(i=0; i<categories.length; i++) {
			bobhtml += '<div id="category_' + i + '">';
			var cattitle = categories[i].parentNode.getElementsByTagName('span')[0].innerHTML;
			var imgs = categories[i].getElementsByTagName('a');
			for(a=0; a<imgs.length; a++) {
				bobhtml += '<img src="' + imgs[a].href + '" alt="" />';
			}
			images.push(cattitle);
			bobhtml += "</div>";
		}
		imgdiv.innerHTML = bobhtml;
		var newimgs = imgdiv.getElementsByTagName('img');
		for(i=0; i<newimgs.length; i++) {
			newimgs[i].onload = function() {
				loading_images--;
				if(loading_images <= 0) {
					showCategory(Math.floor(Math.random()*images.length));
				}
				this.onload = function() { };
			}
			loading_images++;
		}
	}

	if(oldonload)
		oldonload();
}

var currentcat = -1;
var changing = 0;
var catinterval;
function showCategory(cat) {
	if(changing == 0) {
		var oldcategory = document.getElementById('category_' + currentcat);
		if(oldcategory) {
			if(navigator.appVersion.indexOf('MSIE') == -1) {
				fader({
					obj: oldcategory,		// bar is the variable of the object you want to fade, e. g. bar = document.getElementById('bar')
					inorout: 'out',		// either fade 'in' or fade 'out'
					maxopacity: 1,		// when fading in, this is the maximum opacity; when fading out, this is the starting opacity
					alphastep: 0.1,		// the higher this value the faster the fading animation appears
					oncomplete: function() {
						// do something when the animation is complete
					}
				});
			}
			else {
				oldcategory.style.display = 'none';
			}
		}

		if(cat != undefined) {
			currentcat += cat;
		}
		else {
			currentcat++;
		}

		if(currentcat >= images.length) {
			currentcat = 0;
		}
		else if(currentcat < 0) {
			currentcat = images.length-1;
		}

		var newcategory = document.getElementById('category_' + currentcat);
		newcategory.style.display = 'block';
		if(navigator.appVersion.indexOf('MSIE') == -1) {
			opacity(newcategory, 0);
			fader({
				obj: newcategory,		// bar is the variable of the object you want to fade, e. g. bar = document.getElementById('bar')
				inorout: 'in',		// either fade 'in' or fade 'out'
				maxopacity: 1,		// when fading in, this is the maximum opacity; when fading out, this is the starting opacity
				alphastep: 0.1,		// the higher this value the faster the fading animation appears
				oncomplete: function() {
					changing = 0;
				}
			});

			changing = 1;
		}
		var cattitle = document.getElementById('imgnav').getElementsByTagName('h2')[0];
		cattitle.innerHTML = images[currentcat];
		moveItBob('category_' + currentcat, 1);

		if(catinterval) {
			clearInterval(catinterval);
		}
		//catinterval = setInterval("showCategory(1)", 30000); 
	}
}

/* I like to move it, move it */
var bobinterval;
function moveItBob(itemid, speed) {
	var runningnews = document.getElementById(itemid);
	runningnews.style.overflow = 'hidden';
	if(runningnews.duplicatedHTML != 1) {
		runningnews.walked = 0;
		runningnews.originalSizeforBobmoving = 0-runningnews.offsetWidth;
		var newsize = 0;
		var originalhtml = runningnews.innerHTML;
		var security_count = 0;
		while(Math.abs(newsize) < document.body.offsetWidth && security_count < 10) {
			newsize += runningnews.originalSizeforBobmoving;
			runningnews.innerHTML += originalhtml;
			security_count++;
		}
		runningnews.duplicatedHTML = 1;
	}
	if(bobinterval) {
		clearInterval(bobinterval);
	}
	bobinterval = setInterval('moveItAgainBob("' + itemid + '", ' + speed + ')', speed);
}

function moveItAgainBob(itemid, speed) {
	var runningnews = document.getElementById(itemid);
	runningnews.style.marginLeft = runningnews.walked + 'px';
	runningnews.walked -= 0.8;
	if(runningnews.walked < runningnews.originalSizeforBobmoving) {
		runningnews.walked = 1;
	}
}

/* set opacity of any object */
function opacity(obj, value) {
	obj.style.opacity = value;
	obj.style.filter = 'alpha(opacity=' + value*100 + ')';
}

/* fader functions */
var faderQueue = new Array();
var faderInterval;
function fader(options) {
	var obj = options.obj;
	var inout = options.inorout;
	var maxopacity = options.maxopacity;
	var alphastep = options.alphastep;
	var oncomplete = options.oncomplete;

	obj.oncomplete = oncomplete;
	obj.alphastep = alphastep;
	obj.maxopacity = maxopacity;
	if(!obj.currentopacity) {
		if(inout == 'in') {
			obj.currentopacity = 0;
			opacity(obj, 0);
		}
		else {
			obj.currentopacity = maxopacity;
			opacity(obj, maxopacity);
		}
	}
	obj.fade = inout;
	obj.style.display = 'block';

	faderQueue.push(obj);
	if(!faderInterval) {
		faderInterval = window.setInterval('darthFader()', 20);
	}
}

function darthFader() {
	if(faderQueue.length > 0) {
		for(i=0; i<faderQueue.length; i++) {
			var obj = faderQueue[i];

			if(obj.fade == 'in') {
				obj.currentopacity += obj.alphastep;
				opacity(obj, obj.currentopacity);

				if(obj.currentopacity >= obj.maxopacity) {
					if(obj.oncomplete) {
						obj.oncomplete(obj);
					}
					faderQueue.splice(i, 1); // remove object from queue
				}
			}
			else {
				obj.currentopacity -= obj.alphastep;
				opacity(obj, obj.currentopacity);

				if(obj.currentopacity <= 0 ) {
					obj.style.display = 'none';
					if(obj.oncomplete) {
						obj.oncomplete(obj);
					}
					faderQueue.splice(i, 1); // remove object from queue
				}
			}
		}

		if(faderQueue.length <= 0) {
			window.clearInterval(faderInterval);
			faderInterval = undefined;
		}
	}
}

