var opacityObject = new Array();
var logoObject = new Array();
var activeOpacityObject = new Array();
var activeLogoObject = new Array();
var globalTime = 0;
var looptime = 20;
var doLoop = false;

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

var W3CDOM = (document.createElement && document.getElementsByTagName);
function fileselected(file) {
	document.getElementById('fakefile').value = file.value;
}

function ajaxpage(url, containerid)
{
	changeOpac(0, containerid);
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
		return false
	page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}
	try{
	if (bustcachevar) //if bust caching of external page
	bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
	page_request.open('GET', url+bustcacheparameter, true)
	page_request.send(null)
	}
	catch (e) {}
}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		document.getElementById(containerid).innerHTML=page_request.responseText;
		addObject('opacity', containerid, 0, 100, 500, 600, '');
	}
}

function showIndexText(){
	addObject('opacity', 'index-text', 0, 100, 2000, 2000, '');
	addObject('opacity', 'index-text', 100, 50, 1000, 1000, '');
}

function fadeBackground(src, standing, description, imgwidth, imgheight){
	//addObject('opacity', 'fader', 0, 100, 700, 500);
	//addObject('opacity', 'portfolio', 0, 100, 1200, 0);
	additional = new Array(src, standing, description, imgwidth, imgheight);
	addObject('changeImage', '', 0, 0, 0, 0, additional);
}

function fadeBackgroundVideo(){
	addObject('opacity', 'fader', 0, 100, 700, 500);
	addObject('opacity', 'videothumbs', 0, 100, 1200, 0);
}

function showNames(id) {

	element =  document.getElementById(id);

	for(i=0; i<sections.length; i++)
		document.getElementById(sections[i]).style.display='none';

	element.style.display='block';
    //changeOpac(0, id);
    //addObject('object', id, 0, 100, 1000, 0, '');
}

function changeImage(additional){
	
	changeOpac(0, 'imageholder');

	var src = additional[0];
	var standing = additional[1];
	var description = additional[2];
	var imgwidth = additional[3];
	var imgheight = additional[4];
	
	var holder = document.getElementById('imageholder');
	var text = document.getElementById('imagetext');
	
	holder.innerHTML='';
	holder.style.display='none';
	
	var img = document.createElement('img');
	img.src = src;
	img.id = 'headimage';
	img.width = imgwidth;
	img.style.marginTop = (484-imgheight)/2+'px';
	holder.appendChild(img);
	
	var textholder = document.createElement('div');
	textholder.id = 'textholder';
	
	var text = document.createElement('p');
	text.id = 'imagetext';
	
	textholder.appendChild(text);
	
	holder.appendChild(textholder);
	
    text.innerHTML = description;

	holder.style.display='block';
	
    activeOpacityObject = new Array();
	addObject('opacity', 'imageholder', 0, 100, 500, 100, '');
}

function reset(element){

	document.getElementById(element).style.display='none';
	document.getElementById(element).style.height = 0+'px';
}

function mainLoop() {
	globalTime += looptime;
	var doOpacity = false;
	if(activeOpacityObject.length==0 && opacityObject.length>0) {
		doLoop = true;
		activeOpacityObject = opacityObject.shift();
		activeOpacityObject[4] = globalTime+activeOpacityObject[6];
	}
	else if(activeOpacityObject.length>0) {
		doLoop = true;
		if(activeOpacityObject[7]=='changeImage')
			changeImage(activeOpacityObject[8]);
		else
			doOpacity = true;
	}
	if(activeLogoObject.length==0 && logoObject.length>0) {
		doLoop = true;
		activeLogoObject = logoObject.shift();
		activeLogoObject[4] = globalTime+activeLogoObject[6];
	}
	else if(activeLogoObject.length>0) {
		doLoop = true;
		doOpacity = true;
	}
	if(opacity)
		opacity();
	if(doLoop)
		setTimeout('mainLoop()', looptime);
}

function isset(varname){
  return(typeof(window[varname])!='undefined');
}

function opacity() {
	//document.getElementById('fader').innerHTML += globalTime+' ';
	if(activeOpacityObject.length>0) {
		if(globalTime > activeOpacityObject[4]) {
			if(activeOpacityObject[1] < activeOpacityObject[2]) {
				opacChange = Math.round((activeOpacityObject[2] - activeOpacityObject[1])/(activeOpacityObject[3]/looptime));
				activeOpacityObject[5] += opacChange;
				if(activeOpacityObject[5]>=activeOpacityObject[2]) {
					activeOpacityObject[5] = activeOpacityObject[2];
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject = new Array();
				}
				else {
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject[4] += looptime;
				}
			}
			else if(activeOpacityObject[1] > activeOpacityObject[2]) {
				opacChange = Math.round((activeOpacityObject[1] - activeOpacityObject[2])/(activeOpacityObject[3]/looptime));
				activeOpacityObject[5] -= opacChange;
				if(activeOpacityObject[5]<=activeOpacityObject[2]) {
					activeOpacityObject[5] = activeOpacityObject[2];
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject = new Array();
				}
				else {
					changeOpac(activeOpacityObject[5], activeOpacityObject[0]);
					activeOpacityObject[4] += looptime;
				}
			}
		}
	}
	if(activeLogoObject.length>0) {
		if(globalTime > activeLogoObject[4]) {
			if(activeLogoObject[1] < activeLogoObject[2]) {
				opacChange = Math.round((activeLogoObject[2] - activeLogoObject[1])/(activeLogoObject[3]/looptime));
				activeLogoObject[5] += opacChange;
				if(activeLogoObject[5]>activeLogoObject[2]) {
					activeLogoObject[5] = activeLogoObject[2];
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject = new Array();
				}
				else {
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject[4] += looptime;
				}
			}
			else if(activeLogoObject[1] > activeLogoObject[2]) {
				opacChange = Math.round((activeLogoObject[1] - activeLogoObject[2])/(activeLogoObject[3]/looptime));
				activeLogoObject[5] -= opacChange;
				if(activeLogoObject[5]<activeLogoObject[2]) {
					activeLogoObject[5] = activeLogoObject[2];
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject = new Array();
				}
				else {
					changeOpac(activeLogoObject[5], activeLogoObject[0]);
					activeLogoObject[4] += looptime;
				}
			}
		}
	}
}

function changeOpac(opacity, id) {
	try{
	    object = document.getElementById(id).style;
	
	    object.opacity = (opacity / 100);
	    object.MozOpacity = (opacity / 100);
	    object.KhtmlOpacity = (opacity / 100);
	    object.filter = "alpha(opacity=" + opacity + ")";
	}catch(e){}
}

function addObject(type, id, start, end, millisec, timeout, additional) {
	object = new Array();
	object[0] = id;
	object[1] = start;
	object[2] = end;
	object[3] = millisec;
	object[4] = 0;
	object[5] = start;
	object[6] = timeout;
	object[7] = type;
	object[8] = additional;
	if(type=='logo') {
		logoObject.push(object);
	}
	else
		opacityObject.push(object);
	if(!doLoop) {
		doLoop = true;
		setTimeout('mainLoop()', looptime);
	}
}