window.onload = init;


function init(){
	//setGetYear();
	loadHeadTitles();
}

function clearPic() {
	if (navigator.appName == 'Netscape' && nsWin && nsWin.location) {
		nsWin.close();
	}
}

function initPic() {
	if (navigator.appName == 'Netscape') {
	return;
	}
	return;
}

function showPic(nr) {
	var i = eval("i" + nr);
		document.images['mainpic'].src = i.src;
	return false;
}










function setGetYear(){
	var d = new Date();
	var setCurrYear = d.getFullYear();
	document.getElementById('copywrightYear').innerHTML = setCurrYear;
}

function loadHeadTitles(){
	var headTitles = document.getElementById('headTitle');
	if(headTitles){
		var headTitlesLi = headTitles.getElementsByTagName('a');
		if(headTitlesLi.length > 0){
			for(var i = 0; i < headTitlesLi.length; i++){
				if(i>= 0){
				//addEventSimple(headTitlesLi[i],'mouseover',changeColor);
				//addEventSimple(headTitlesLi[i],'mouseover',target);
				addEventSimple(headTitlesLi[i],'mouseover',changeTextOver);
				//addEventSimple(headTitlesLi[i],'mouseout',changeColor);
				addEventSimple(headTitlesLi[i],'mouseout',changeTextOut);
				}
			}
		}
	}
}

function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

function target(e){
	var target;
	if(!e){
		var e = window.event;
	}
	if(e.target){
		target = e.target;
	} 
	else if (e.srcElement){
		target = e.srcElement;
	}
	if(target.nodeType == 3){
		target = target.parentNode;
	}
	return target;
}
	



function changeBackground(){
	if(this.style.backgroundColor == ''){
		this.style.backgroundColor = '#f1f1f1';
	} else {
		this.style.backgroundColor = '';
	}
}

function changeColor(){
	if(this.style.color == ''){
		this.style.color = '#666';
	} else {
		this.style.color = '';
	}
}


function changeTextOut(e){
	elm = target(e);
	switch(elm.id){
		case 'ht1':
			elm.innerHTML = 'about<BR>us';
			break;
		case 'ht2':
			elm.innerHTML = 'design &<BR>other things';
			break;
		case 'ht3':
			elm.innerHTML = 'concept homes';
			break;
		case 'ht4':
			elm.innerHTML = 'collective<br>spaces';
			break;
		case 'ht5':
			elm.innerHTML = 'urban<br>concepts';
			break;
	}
}

function changeTextOver(e){
	elm = target(e);
	//alert(elm.id+', '+elm.innerHTML);
	
	
	switch(elm.id){
		case 'ht1':
			elm.innerHTML = 'power of<BR>smallness';
			break;
		case 'ht2':
			elm.innerHTML = 'fun meets<BR>function';
			break;
		case 'ht3':
				elm.innerHTML = 'built<br>around you';
			break;
		case 'ht4':
				elm.innerHTML = 'community<br/>design';
			break;
		case 'ht5':
				elm.innerHTML = 'loveable<br>cities';
			break;
	}
}


var AniStart;
var AniEnd;
var AniDuration = 330.0;
var AniChange;

function toggleAni(eid) {
	var element = document.getElementById(eid);
	
	
	AniEnd = parseInt(element.childNodes[0].offsetHeight)+(8);




	if(AniStart == '' || AniStart == null){
	AniStart = 0;	
	}
	
	AniChange = AniEnd - AniStart;
	
	
	
	if(element.AniState == null){
		if(element.style.height == null || element.style.height == AniStart+'px' || element.style.height == '') {
			element.AniState = -2;
				

			
		} else {
			element.AniState = 2;
		}

	}
	
	if(element.AniState == 1 || element.AniState == -1){
		element.AniState = element.AniState == 1 ? -1 : 1;
		element.AniTimeLeft = AniDuration - element.AniTimeLeft;
	} else{
		element.AniState = element.AniState == 2 ? -1 : 1;
		element.AniTimeLeft = AniDuration;
		setTimeout("animateHeight(" + new Date().getTime() + ",'" + eid + "')", 33);
	

	}  

}

function  animateHeight(lastTick, eid){  
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;

	var element = document.getElementById(eid);

	if(element.AniTimeLeft <= elapsedTicks){
		element.style.height = element.AniState == 1 ? AniEnd+'px' : AniStart+'px';
		element.AniState = element.AniState == 1 ? 2 : -2;
		return;
	}

	element.AniTimeLeft -= elapsedTicks;
	//var newValue = element.AniTimeLeft/AniDuration*AniEnd;

	var frame = element.AniTimeLeft;
	var newValue = easeInOutQuad(AniStart, AniChange, AniDuration, frame);

	if(element.AniState == 1){
		newValue = AniEnd - newValue;
	}

	element.style.height = newValue+'px';

	setTimeout("animateHeight(" + curTick + ",'" + eid + "')", 33);
}


//extra functies

function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function animation(anitype, elm, begin,end,duration,fps) {
	var change = end-begin;
	var interval = Math.ceil(1000/fps);
	var totalframes = Math.ceil(duration/interval);
	var step = Math.ceil(change/totalframes);
	for(i=1; i<=totalframes; i++) {
		(function() {
			var frame=i;
			function inner() {
/*				switch(anitype){
					case changeOpac:
						opacStep=easeInOutQuad(begin,change,totalframes,frame);
						setOpacity(elm, opacStep);
					break;
					case changeMove:
						opacStep=easeInOutQuad(begin,change,totalframes,frame);
					break;
					case changeScroll:
						var scrollSteps=easeInOutQuad(begin,change,totalframes,frame);
						var stepp = end+Math.ceil(scrollSteps);
						window.scrollTo(0,stepp);
					break;
					case changeWidth:
						var width = begin+(fixedStep*n);
						elm.style.width  = width+'px';
					break;
					case 'changeHeight':
						alert('ininin');
						//var steps=easeInOutQuad(begin,change,totalframes,frame);
            			//elm.style.height = steps +'px';
					break;
				}
*/
				if(anitype == 'scrollTo'){
					var steps=easeInOutQuad(begin,change,totalframes,frame);
					window.scrollTo(0, steps);
				}
			}
		timer = setTimeout(inner,interval*frame);
		})();
	}
}

function easeInOutQuad(begin,change,totalframes,frame) {
 if ((frame/=totalframes/2) < 1) return change/2*frame*frame + begin;
 return -change/2 * ((--frame)*(frame-2) - 1) + begin;
};


function easeQuad(begin,change,totalframes,frame) {
 return -(change*frame/totalframes)*(frame/totalframes)+begin;
}



