// JavaScript Document


var globalTimer;

function preparePopUps(){
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	var elem = document.getElementsByTagName("div");
	if(elem){
		// loop through all webRevenez buttons
		for (var d=0; d<elem.length; d++) {
			if(elem[d].getAttribute("class") == "mini-bio" || (elem[d].attributes['class'] && elem[d].attributes['class'].value == "mini-bio")) {
				var buttons = elem[d].getElementsByTagName("a");
				buttons[0].onclick = function(){
					insertPopUp(this);
					return false;
				}
			}
		}
	}
}
var currentBio = ""
function insertPopUp(bio){
	currentBio = bio.parentNode.parentNode;
	var d = bio.parentNode.parentNode.getElementsByTagName("div");
	
	for (var dd=0; dd<d.length; dd++) {
		if(d[dd].getAttribute("class") == "full-bio" || (d[dd].attributes['class'] && d[dd].attributes['class'].value == "full-bio")) {
			var fb = d[dd];
		}
	}
	
	var elem = document.getElementById("bioholder");
	
	if(!document.getElementById("wrapper")){
		var wrapper = document.createElement("div");
		wrapper.setAttribute("id","wrapper");
		elem.parentNode.insertBefore(wrapper, elem);
	}else{
		var wrapper = document.getElementById("wrapper");	
	}

	// close button
	var closer = document.createElement("a");
	closer.setAttribute("href",window.location);
	closer.setAttribute("id","closer");
	var closer_text = document.createTextNode("CLOSE");
	closer.appendChild(closer_text);
	// line break
	var breaker = document.createElement("br");
	breaker.style.clear = "both";
	
	elem.appendChild(closer);
	elem.appendChild(fb);
	wrapper.appendChild(breaker);
		
	updateAttributes(wrapper);
	changeOpac(0, "wrapper");
	wrapper.style.display = "block";	
	opacity("wrapper", 0, 90, 1000);
	elem.style.display = "block";
	elem.style.visibility = "hidden";
	fb.style.display = "block";
	fb.style.visibility = "hidden";
	updatePosition(elem);
	elem.style.visibility = "visible";
	fb.style.visibility = "visible";
	
	closer.onclick = function(){
		opacity("wrapper", 90, 0, 1000);		
		elem.style.display = "none";
		currentBio.appendChild(fb);
		fb.style.display = "none";
		elem.removeChild(closer);
		wrapper.style.display = "none";	
		return false;
	}
	wrapper.onclick = function(){
		opacity("wrapper", 90, 0, 1000);		
		elem.style.display = "none";
		currentBio.appendChild(fb);
		fb.style.display = "none";
		elem.removeChild(closer);
		wrapper.style.display = "none";	
		return false;
	}
	window.onresize = function(){
		updateAttributes(wrapper); 
		updatePosition(elem);
		return false;
	}
	/*
	window.onmousewheel = function(){
		updateAttributes(wrapper); 
		updatePosition(elem);
	}
	window.onscroll = function(){
		updateAttributes(wrapper); 
		updatePosition(elem);
	}
	*/
	return false;
}

function updateAttributes(elem){
	var pageWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		pageWidth = window.innerWidth;
		pageHeight = window.innerHeight;
		if(document.body.clientWidth && document.body.clientWidth > pageWidth){
			pageWidth = document.body.clientWidth;
		}
		if(document.body.clientHeight && document.body.clientHeight > pageHeight){
			pageHeight = document.body.clientHeight;
		}
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		pageWidth = document.documentElement.clientWidth;
		pageHeight = document.documentElement.clientHeight;
		if(document.body.clientWidth && document.body.clientWidth > pageWidth){
			pageWidth = document.body.clientWidth;
		}
		if(document.body.clientHeight && document.body.clientHeight > pageHeight){
			pageHeight = document.body.clientHeight;
		}
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		pageWidth = document.body.clientWidth;
		pageHeight = document.body.clientHeight;
	}

	elem.style.width = pageWidth + "px";
	elem.style.height =  pageHeight + "px";
	return false;
}

function updatePosition(elem){
	// update iframe position (maintain centering horizontally and vertically in the browser window)
	var elemWidth = elem.clientWidth;
	var elemHeight = elem.clientHeight;
	
	if (window.innerHeight) {
		var winW = window.innerWidth;
		var winH = window.innerHeight;
	}else {		
		var winW = document.documentElement.clientWidth;
	 	var winH = document.documentElement.clientHeight;
	}
	
	if(window.pageYOffset){
		var newX = (window.pageXOffset + ((winW - elemWidth)/2));
		var newY = (window.pageYOffset + ((winH - elemHeight)/2));
	}else {
		var newX = (document.documentElement.scrollLeft + ((winW - elemWidth)/2));
		var newY = (document.documentElement.scrollTop + ((winH - elemHeight)/2));
	}
	
	var leftPos = Math.round(newX);
	var topPos = Math.round(newY);
	
	elem.style.left = leftPos+"px";
	elem.style.top = topPos+"px";
	
	return false;
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
		
    } else if(opacStart < opacEnd) {
       for(i = opacStart; i <= opacEnd; i++){
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
		   timer++;
		}
		
    }
	
	return false;
}

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
	
	return false;
} 

// on load event, get the button behaviors ready
addLoadEvent(preparePopUps);