All pastes #932900 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-08 00:23 UTC
rendered paste body
function clearGenericImageView(event,layer){
	layer.style.display = 'none';
	layer.parentNode.removeChild(layer);
	gimage_layer = null;
	if (event != null){
		if (window.event) window.event.returnValue = false;
		else event.preventDefault();
		return false;
	}
}

function genericImageView(event,image,url,current_size){
	if (gimage_layer != null) clearGenericImageView(null,gimage_layer);
	gimage_layer = document.createElement('div');
	gimage_layer.setAttribute('id','gimageLayer');
	
	var gimage = new Image();
	
	var new_size = null;
	if (current_size=='t') new_size = 'medium';
	if (current_size=='m') new_size = 'full';
	
	
	gimage.onload = function() {
	    // always called
		if (typeof window.innerWidth != 'undefined'){
			viewportwidth = window.innerWidth;
			viewportheight = window.innerHeight;
		} // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
		else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth !='undefined' && document.documentElement.clientWidth != 0){
			viewportwidth = document.documentElement.clientWidth;
			viewportheight = document.documentElement.clientHeight;
		}// older versions of IE
		else{
			viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
			viewportheight = document.getElementsByTagName('body')[0].clientHeight
		}
		var top_position = (viewportheight/2) - (gimage.height/2);
		var left_position = (viewportwidth/2) - (gimage.width/2);
		gimage_layer.style.top = top_position+'px';
		gimage_layer.style.left = left_position+'px';
		gimage_layer.style.display = 'block';
	};
	var gimage_url = '/' + generic_image_base + new_size + '/' + image;
	gimage.src = gimage_url;
	gimage.setAttribute('alt','Image popup');
	gimage.setAttribute('title','');

	var layer_hide = document.createElement('a');
	layer_hide.setAttribute('href',document.location);
	layer_hide.setAttribute('id','windowHide');
	layer_hide.appendChild(document.createTextNode('Close'));
	var gimage_full_size_link = null;
	if (current_size == 't'){
		gimage_full_size_link = document.createElement('a');
		gimage_full_size_link.setAttribute('gimage_full_size_link','imageview');
		image_id = gup(url,'image_id');
		var new_url = '/imageview.php?image_id=' + image_id + '&s=m';
		
		gimage_full_size_link.setAttribute('href',new_url);
		
		gimage_full_size_link.appendChild(gimage);
		evAdd(gimage_full_size_link,'click',function(event){ genericImageView(event,image,url,'m') },false);
		gimage_layer.appendChild(gimage_full_size_link);
	}
	else gimage_layer.appendChild(gimage);

	gimage_layer.appendChild(layer_hide);
	
	gimage_layer.style.display = 'none';
	document.getElementsByTagName('body')[0].appendChild(gimage_layer);

	evAdd(layer_hide,'click',function(e){ clearGenericImageView(e,gimage_layer) },false);


	if (window.event) window.event.returnValue = false;
	else event.preventDefault();
	return false;
}