var original_y = 0;
//aangezien IE zelf niet zo slim is om de plaatjes behorende bij de css-klassen te laden, moeten we het maar even geforceerd doen hè...
if(navigator.userAgent.toLowerCase().indexOf('msie') != -1) {
	var1 = new Image(1, 1);
	var1.src = '/images/popup/corner_body_right.gif';
	var2 = new Image(1, 1);
	var2.src = '/images/popup/corner_body_left.gif';
	var3 = new Image(1, 1);
	var3.src = '/images/popup/corner_head_right.gif';
	var4 = new Image(1, 1);
	var4.src = '/images/popup/corner_head_left.gif';
	var5 = new Image(1, 1);
	var5.src = '/images/popup/close.gif';
}

function openPopup(popup_title, popup_url) {
	closePopup();
	original_y = getYScrollPosition();
	window.onscroll = scrollPopup;
	
	var close_button = '/images/popup/close.gif';
	var body_pad_top = 10;
	var body_pad_right = 40;
	var body_pad_bottom = 20;
	var body_pad_left = 40;
	var popup_width = 800;
	var popup_height = 600;
	var distance_viewport = 20; // de minimale afstand van het popup-venster tot de viewport.

	//determine dimensions
	var viewport_width = getViewportWidth();
	var popup_x_pos = (viewport_width / 2) - (popup_width / 2);
	if(popup_x_pos < distance_viewport) {
		popup_x_pos = distance_viewport;
	}
	
	var viewport_height = getViewportHeight();
	var popup_y_pos = (viewport_height / 2) - (popup_height / 2);
	if(popup_y_pos < distance_viewport) {
		popup_y_pos = distance_viewport;
	}
	
	//checken of het niet te breed is
	x_pos_fault = (viewport_width - popup_width - popup_x_pos - distance_viewport) * -1;
	if(x_pos_fault > 0) {
		//Gezien de breedte en de x-positie is de popup te breed.
		//Checken of de popup een stukje naar links geschoven kan worden.
		x_pos_correctie = popup_x_pos - (2 * distance_viewport);// - distance_viewport;
		if(x_pos_fault < x_pos_correctie) {
			popup_x_pos = popup_x_pos - x_pos_fault;
		}
		else {
			popup_width = viewport_width - (2 * distance_viewport);
			popup_x_pos = distance_viewport;
		}
	}
	
	//scroll to the point the user is at the moment!
	popup_y_pos += getYScrollPosition();
	
	//create popupContainerDiv
	popupContainerDiv = document.createElement('div');
	popupContainerDiv.setAttribute('id', 'popupContainerDiv');
	popupContainerDiv.setAttribute('style', 'z-index: 1000;');
	document.getElementsByTagName('body')[0].appendChild(popupContainerDiv);

	popupContainerDiv = document.getElementById('popupContainerDiv');
	popupContainerDiv.style.top = popup_y_pos + 'px';
	popupContainerDiv.style.left = popup_x_pos + 'px';
	popupContainerDiv.style.width = popup_width + 'px';
	popupContainerDiv.style.height = popup_height + 'px';
	popupContainerDiv.style.position = 'absolute';

	popupContent = '<iframe style="position: absolute; left: 0; top: 0; z-index: -1; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" src="javascript:false" scrolling="no" frameborder="0" ></iframe>';
	popupContent += '<div class="popup" style="z-index: 500">';
	popupContent += '	<div class="popup_header">';
	popupContent += '		<div><span style="float: left; font-weight: bold;">'+popup_title+'</span><span style="float: right;"><a href="javascript:window.closePopup();" style="text-decoration: none;">&nbsp;<img src="'+close_button+'" style="border: 0pt none;"></a></span></div>';
	popupContent += '	</div>';
	popupContent += '	<div class="popup_body">';
	popupContent += '		<div class="popup_content"></div>';
	popupContent += '	</div>';
	popupContent += '</div>';
	
	popupContainerDiv.innerHTML = popupContent;
	popupContainerDiv.style.zIndex = 500;
	
	//fix the IE select hover 'bug'
	popupContainerDiv.getElementsByTagName('iframe').item(0).style.width = popup_width + 'px';
	popupContainerDiv.getElementsByTagName('iframe').item(0).style.height = popup_height + 'px';
	
	var children = popupContainerDiv.getElementsByTagName('div');
	var popupDiv = false;
	var popupHeaderDiv = false;
	var popupBodyDiv = false;
	var popupContentDiv = false;
	for(var i = 0; i < children.length; i++) {
		if(children[i].className == 'popup') {
			popupDiv = children[i];
		}
		if(children[i].className == 'popup_header') {
			popupHeaderDiv = children[i];
		}
		if(children[i].className == 'popup_body') {
			popupBodyDiv = children[i];
		}
		if(children[i].className == 'popup_content') {
			popupContentDiv = children[i];
		}
	}

	
	popupContentDiv.style.height = (popup_height - popupHeaderDiv.offsetHeight - body_pad_top - body_pad_bottom) + 'px';
	popupContentDiv.style.width = (popup_width - body_pad_left - body_pad_right) + 'px';
	
	popupContent = '<iframe src="javascript:false" id="contentIframe" name="contentIframe" frameborder="no" border="no" width="100%" height="100%" style="width: 100%; height: 100%; border: none; z-index: 500;"></iframe>';
	popupContentDiv.innerHTML = popupContent;
	document.getElementById('contentIframe').src = popup_url;
}

function scrollPopup() {
	window.scrollTo(0, original_y);
}

function closePopup() {
	if(document.getElementById('popupContainerDiv')) {
		document.getElementById('popupContainerDiv').parentNode.removeChild(document.getElementById('popupContainerDiv'));
	}
	window.onscroll = null;
}

function getYScrollPosition() {
	if(window.innerHeight) {
		pos = window.pageYOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop) {
		pos = document.documentElement.scrollTop;
	}
	else if(document.body) {
		pos = document.body.scrollTop;
	}
	else {
		pos = false;
	}
	return pos;
}

function getXScrollPosition() {
	if(window.innerHeight) {
		pos = window.pageXOffset;
	}
	else if(document.documentElement && document.documentElement.scrollLeft) {
		pos = document.documentElement.scrollLeft;
	}
	else if(document.body) {
		pos = document.body.scrollLeft;
	}
	else {
		pos = false;
	}
	return pos;
}

function getViewportWidth() {
	if(typeof window.innerWidth != 'undefined') {
		viewport_width = window.innerWidth;
	}
	else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		viewport_width = document.documentElement.clientWidth;
	}
	else {
		viewport_width = document.getElementsByTagName('body')[0].clientWidth;
	}
	if(navigator.userAgent.toLowerCase().indexOf('msie') == -1) {
		viewport_width -= 15;
	}
	return viewport_width;
}

function getViewportHeight() {
	if(typeof window.innerHeight != 'undefined') {
		viewport_height = window.innerHeight;
	}
	else if(typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		viewport_height = document.documentElement.clientHeight;
	}
	else {
		viewport_height = document.getElementsByTagName('body')[0].clientHeight;
	}
	return viewport_height;
}
