/**/
var activeMenu;
var hints;
window.menuInitialized = false;
addLoadFunction("yl_init();");

function setMailAddress(){
	var address = 'post@ylab.nl';
	var items = getElementsByClass('email');
	for(var i=0; i<items.length; i++){
		items[i].innerHTML = '<a href="mailto:' + address + '">' + address + '</a>';
	}
}

function yl_init(){
	fadeOutBlog();
	setMailAddress()

	/*prepare menu and header*/
	var hoverImages = new Array();
	var items = $('menu').getElementsByTagName('a');

	hints = getHints();
	activeMenu = items[0];
	for(var i=0; i<items.length; i++){
		items[i].isActive = yl_menuIsActive;
		items[i].onmouseover = yl_showHint;
		items[i].imageUrl = '/images/teaser-' + items[i].id + '.jpg';
		if(items[i].isActive()){
			activeMenu = items[i];
		}
		else{
			items[i].onmouseout = yl_hideHint;
			hoverImages[i] = items[i].imageUrl;
		}
	}
	window.menuInitialized = true;
	activeMenu.onmouseover();

	/*prepare folding*/
	var items = getElementsByClass('more', $('column-right'), 'div');
	for(var i=0; i<items.length; i++){
		wrapIn.apply(items[i]);
		items[i].style.overflow = 'hidden';
		items[i].style.height = '0px';
		items[i].direction = -1;
		items[i].a = $('a-'+items[i].id.substring(5));
		items[i].inView = inView;
	}

	var items = getElementsByClass('showmore', $('column-container'), 'a');
	for(var i=0; i<items.length; i++){
		items[i].onclick = yl_showMore;
		var id = 'more-' + items[i].hash.substring(1);
		items[i].slave = $(id);
	}

	/*preload images for header*/
	preLoadImages(hoverImages);

	var divLangs = $('languages');
	if(divLangs){
		var divs = ['intro-nl', 'intro-en', 'intro-de'];
		var lbls = divLangs.getElementsByTagName('label');
		if(lbls && lbls.length){
			for(var i = 0; i<lbls.length; i++){
				lbls[i].onclick = function(){
					for(var j = 0; j<divs.length; j++){
						$(divs[j]).style.display = (divs[j]==this.htmlFor) ? 'block' : 'none';
						this.style.color = (divs[j]==this.htmlFor) ? '#000' : '#105baf';
					}
					for(var j = 0; j<lbls.length; j++){
						$(lbls[j]).style.color = (divs[j]==this.htmlFor) ? '#105baf' : '#af5b10';
					}
				}
			}
		}
	}
}

function wrapIn(){
	var divTopA = '<div class="divTop"><a href="#';
	var divTopB = '" class="showmore showmbtn"><img src="images/btn-close.gif" alt="Sluiten" /></a></div>';
	var divBot = '<div class="divBot"></div>';
	this.innerHTML = divTopA + this.id.substring(5) + divTopB + this.innerHTML + divBot;
}

function preLoadImages(hoverImages){
	if (hoverImages.length==0){return;}
	for (var i=0; i<hoverImages.length; i++){
		(new Image()).src = hoverImages[i];
	}
}

function yl_showHint(){
	if(!window.menuInitialized){return;}
	window.clearTimeout(activeMenu.timeout);
	var objImg = $('teaser-img');
	var objTxt = $('teaser-txt');
	if(!objImg || !objTxt || !activeMenu){return;}

	var fading = (this != activeMenu);
	if(fading){
		Element.setOpacity(objImg, 0);
		objImg.parentNode.style.backgroundImage = objImg.style.backgroundImage;
	}
	objImg.style.backgroundImage = 'url(' + this.imageUrl + ')';
	objTxt.innerHTML = hints[this.id];
	if(fading){
		Effect.Appear(objImg, {duration:1, from:0.0, to:1.0});
	}
}
function yl_hideHint(){
	if(!window.menuInitialized || !activeMenu){return;}
	activeMenu.timeout = window.setTimeout('activeMenu.onmouseover();', 1000);
}

function yl_menuIsActive(){
	var c = this.className.split(' ');
	if(c && c.length){
		for(var i=0; i< c.length; i++){
			if(c[i]=='active'){
				return true;
			}
		}
	}
	return false;
}

function yl_showMore(){
	//stop running animation
	window.clearTimeout(this.slave.timeout);
	//turn direction, 1: open, -1 close
	this.slave.direction *= -1;
	//hide text handle
	if(this.slave.a){
		this.slave.a.style.visibility = this.slave.direction == 1 ? 'hidden' : 'visible';
	}

	//load content
	var items = this.slave.getElementsByTagName('a');
	for(var i=0; i<items.length; i++){
		if(items[i].className=="expand"){
			addPostLoadResource(this.slave.id+'c', items[i].href, false);
			goPostLoadResources();
			//return false;
		}
	}


	//scroll into view
	if(this.slave.direction == 1){
		this.slave.inView();
	}
	//start animation
	slideOpen(this.slave);
	//cancle click on hyperlink
	return false;
}

function slideOpen(obj){
	//calculate new height
	var newY = obj.offsetHeight + (obj.direction * obj.scrollHeight / 10);
	//verify min and max value
	newY = Math.min(newY, obj.scrollHeight);
	newY = Math.max(newY, 0);
	obj.style.height = (newY) + 'px';
	//repeat if needed
	var repeat = obj.direction > 0 ? obj.offsetHeight < obj.scrollHeight : obj.offsetHeight > 0;
	if(repeat){
		var code = function(){slideOpen(obj)};
		obj.timeout = window.setTimeout(code, 10);
	}
	else{
		if(obj.direction == -1){
			obj.inView();
		}
	}
}

function rgb(r,g,b){
	return {r:r, g:g, b:b}
}

function fadeOutBlog(){
	var i, con = $('blog'), nSteps = 12;
	var black = rgb(0,0,0);
	var blueD = rgb(0x3a,0x6e,0xa5);
	var blueL = rgb(0x81,0xab,0xd3);
	var brown = rgb(175,91,16);
	var blueG = rgb(0x8c,0xa7,0xc1);
	var colorS = black;
	var colorE = blueG;

	if(con){
		for(i=0; i< con.childNodes.length; i++){
			n = con.childNodes[i];
			if(n.nodeType == 1){
				if(n.className == 'newprops' && colorS.r < colorE.r){
					colorS.r += (colorE.r/nSteps);
					colorS.g += (colorE.g/nSteps);
					colorS.b += (colorE.b/nSteps);
				}
				n.style.color = 'rgb('+Math.floor(colorS.r)+','+Math.floor(colorS.g)+','+Math.floor(colorS.b)+')';
			}
		}
	}
}