// JavaScript Document

var globalTimer;

function prepareRevenez(){
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	
	var elem = document.getElementById("rev_btns");
	if(elem){
		// loop through all webRevenez buttons
		var buttons = elem.getElementsByTagName("a");
		for (var i=0; i<buttons.length; i++){
			if(buttons[i].getAttribute("class") == "wrbtn" || (buttons[i].attributes['class'] && buttons[i].attributes['class'].value == "wrbtn")){
			buttons[i].onclick = function(){
				// send which button to insert function
				var wr = document.getElementById("webrevenez");
				wr.innerHTML = "";
				insertRevenez(this);
				return false;
			}
			}
		}
	}
	var elem = document.getElementById("rev_additional");
	if(elem){
		// loop through all webRevenez buttons
		var buttons = elem.getElementsByTagName("a");
		for (var i=0; i<buttons.length; i++){
			buttons[i].onclick = function(){
				// send which button to insert function
				var wr = document.getElementById("webrevenez");
				wr.innerHTML = "";
				insertRevenez(this);
				return false;
			}
		}
	}
}

function insertRevenez(mylink){
		
	if(!document.getElementById) return false;
	if(!document.getElementById("webrevenez")) return false;

	var module = mylink.getAttribute("href");
	var elem = document.getElementById("webrevenez");
	
	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","wr_closer");
	var closer_text = document.createTextNode("CLOSE");
	closer.appendChild(closer_text);
	// line break
	var breaker = document.createElement("br");
	breaker.style.clear = "both";
			
	var player = document.createElement("iframe");
	player.setAttribute("src", module);
	player.setAttribute("scrolling", "no");
	player.setAttribute("frameborder", 0);
	player.setAttribute("width", "690");
	player.setAttribute("height", "440");
	
	elem.appendChild(closer);
	elem.appendChild(player);
	wrapper.appendChild(breaker);
		
	updateAttributes(wrapper);
	changeOpac(0, "wrapper");
	wrapper.style.display = "block";	
	opacity("wrapper", 0, 80, 1000);
	elem.style.display = "block";
	elem.style.visibility = "hidden";
	updatePosition(elem);
	elem.style.visibility = "visible";
	
	closer.onclick = function(){
		opacity("wrapper", 80, 0, 1000);		
		elem.style.display = "none";
		elem.removeChild(player);
		elem.removeChild(closer);
		wrapper.style.display = "none";	
		return false;
	}
	wrapper.onclick = function(){
		opacity("wrapper", 80, 0, 1000);		
		elem.style.display = "none";
		elem.removeChild(player);
		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-75+"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(prepareRevenez);
