var txxLightboxDiv = null;

function txxAddLightbox(obj, href, type, width, height) {
	
	if (txxLightboxDiv != null) {
		txxRemoveLightBox();
	}
	sizes = txxGetPageSize();
	bod = document.getElementsByTagName('body')[0];
	overlay = document.createElement('div');
	overlay.id = 'txxOverlayDiv';
	overlay.style.display = 'none';
	overlay.style.floating = 'left';
	overlay.style.position = 'absolute';
	overlay.style.zIndex = 1000000000000;
	overlay.style.top = '0px';
	overlay.style.left = '0px';
	overlay.style.backgroundColor = 'black';
	overlay.style.filter = 'Alpha(Opacity=70)';
	overlay.style.opacity = '.7';
//
	overlay.style.width="100%";
	overlay.style.height=sizes[1] + "px";
	bod.appendChild(overlay);
	
	txxLightboxDiv = document.createElement('div');
	txxLightboxDiv.id = 'txxLightboxDiv';
	txxLightboxDiv.style.display = 'none';
	txxLightboxDiv.style.position = 'absolute';
	txxLightboxDiv.style.zIndex = 1000000000001;
	txxLightboxDiv.style.top = ($(window).height() - height ) / 2 + $(window).scrollTop() + "px"; //'25%';
	txxLightboxDiv.style.left = ($(window).width() - width ) / 2 + $(window).scrollLeft() + "px"; //'50%';
	//txxLightboxDiv.style.marginLeft = '-'+(width/2)+'px';
	
	txxLightboxDivContent = 
			'<div style="color:#000000;font-family:arial;font-size:10px;padding:0px;height:'+height+'px;width:'+width+'px;background:#ffffff;padding:1px">';
	if (type == 'iframe') {
		txxLightboxDivContent += '<iframe src="'+href+'" height="'+height+'" width="'+width+'" frameborder="0"></iframe>';
	} else if (type == 'image') {
		txxLightboxDivContent += '<img src="'+href+'" height="'+height+'" width="'+width+'" border="0"/>';
	} else if (type == 'html') {
		txxLightboxDivContent += $(obj).prev().val();
	}
	txxLightboxDivContent += '</div>';
	txxLightboxDiv.innerHTML = txxLightboxDivContent;
	bod.appendChild(txxLightboxDiv);
	addEvent(overlay, ["click"], txxHideLightbox);
}

function txxRemoveLightBox() {
	var beforeMe = document.getElementById('txxLightboxDiv');
	beforeMe.parentNode.removeChild(beforeMe);
}

function txxShowLightbox(obj, url) {
	var href = null;
	var options = obj.name.split('|');
	if (options == '') {
		options = obj.rel.split('|');
	}
	if (url == '') {
		href = obj.href;
	} else {
		href = url;
	}
	obj.href = 'javascript:void(0)';
	txxAddLightbox(obj, href, options[0], options[1], options[2]);
	txxShowMarkup('txxOverlayDiv');
	txxShowMarkup('txxLightboxDiv');
}

function txxHideLightbox() {
	txxHideMarkup('txxLightboxDiv');
	txxHideMarkup('txxOverlayDiv');
}

function txxHideMarkup(id) {
	document.getElementById(id).style.display = 'none';
}

function txxShowMarkup(id) {
	document.getElementById(id).style.display = 'block';
}

function txxGetPageSize(){
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function addEvent( obj, types, fn ) {
	var type;
	for(var i = 0; i < types.length; i++) {
		type = types[i];
		if ( obj.attachEvent ) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function(){obj['e'+type+fn]( window.event)}
			obj.attachEvent( 'on'+type, obj[type+fn] );
		} else obj.addEventListener( type, fn, false );
	}
}

