LB = new Object({openLightBox: false});

LB.createLightboxLinks = function() {

	// get all flash links in the primary container
	$('a.lightbox').click(function(){
		LB.createLighboxContentForLink(this);
		return false;
	});
}

LB.readLightboxParametersFromHref = function(href) {
	var parameters = new Array();
	var params = href.substr(href.lastIndexOf('#') + 1);

	var paramsArr = params.split(',');
	for (k=0; k<paramsArr.length; k++) {
		var paramArr = paramsArr[k].split('=');
		parameters[paramArr[0]] = paramArr[1];
	}

	return parameters;
}

LB.createLighboxContentForLink = function(link) {
	var url = link.href.substring(0,link.href.lastIndexOf('#'));
	var parameters = LB.readLightboxParametersFromHref(link.href);
	
	var id = 'lightbox_' + (parameters['id']?parameters['id']:(Math.round(Math.random()*1000)));

	LB.createLighboxContent(id, url, parameters);
}

LB.createLighboxContent = function(foid, url, parameters) {

	var type = url.substr(url.lastIndexOf('.') + 1).toLowerCase();

	// create lightbox
	var grayDiv = $(document.createElement('div'));
	grayDiv.attr('id','graysite');
	grayDiv.css({
		backgroundColor: parameters['fadecolor'] ? '#'+parameters['fadecolor'] : '#454545',
		height: '100%',
		left: '0',
		opacity: '0',
		position: 'fixed',
		top: '0',
		width: '100%',
		zIndex: '10000'
	});

		// remove scrollbar
	// document.body.style.overflow = 'hidden';

	$('body').append(grayDiv);

	// create an close event on lightbox
	grayDiv.bind('click', LB.closeLightboxContainer);

	// fade in
	grayDiv.fadeTo(500, 0.8, function(){

		// if fading done, create container

    		// create flash Container
    		var fo_container = document.createElement('div');
    		fo_container.id = 'fo_' + foid;
    		fo_container.className = 'lightboxobj_container';
    		fo_container.style.position = 'absolute';
    		fo_container.style.zIndex = '10001';

			// check if there is a height specified
			var winHeight = 500;
			if (parameters['height']) {
				winHeight = parameters['height'];
			} else if (parameters['voffset']) {
				winHeight = $(window).height() - (2 * parseInt(parameters['voffset']));
			}

			// check if there is a width specified
			var winWidth = 500;
			if (parameters['width']) {
				winWidth = parameters['width'];
			} else if (parameters['hoffset']) {
				winWidth = $(window).width() - (2 * parseInt(parameters['hoffset']));
			}

			var top = ($(window).height() - winHeight)/2 + $(window).scrollTop();
    		var left = ($(window).width() - winWidth)/2 + $(window).scrollLeft();
    		
    		if (top < ($(window).scrollTop()+25) && !parameters['voffset']) top = ($(window).scrollTop()+25);
			if (left < ($(window).scrollLeft()+25) && !parameters['hoffset']) left = ($(window).scrollLeft()+25);

			fo_container.style.left = left + 'px';
    		fo_container.style.top = top + 'px';

    		
    		document.body.appendChild(fo_container);

    		LB.openLightboxContainer = fo_container.id;

			// write flash object

			switch(type) {
				case 'swf':
					if (deconcept.SWFObjectUtil.getPlayerVersion().major >= 8) {
			    	    var fo = new SWFObject(url,parameters['id'], winWidth + "px", winHeight + "px", "8");
				        fo.addParam("quality", "high");
				        fo.addParam("menu", "false");
				        fo.addParam("allowFullScreen", "false");
				        fo.addParam("allowScriptAccess","always");
				        fo.addParam("pluginspage", "http://www.macromedia.com/go/getflashplayer");
				        fo.addParam("play", "true");
				        fo.addParam("loop", "true");
				        fo.addParam("wmode", "transparent");
				        fo.addParam("devicefont", "false");
				        fo.write(fo_container.id);
					}
					break;

				case ('jpg' || 'gif'):
					var img = new Image();
					img.src = url;
					img.style.width = winWidth + 'px';
					img.style.height = winHeight + 'px';
					fo_container.appendChild(img);
					break;

				default:

					var iframe = document.createElement('iframe');
					iframe.src = url;
					iframe.style.width = winWidth + 'px';
					iframe.style.height = winHeight + 'px';
					iframe.setAttribute('frameBorder','0');
					fo_container.appendChild(iframe);
					break;

			}

			if ('none' != parameters['close']) {
    			var closeButton = document.createElement('a');
    			closeButton.innerHTML = 'sluiten';
    			closeButton.className = 'lightbox_close';
    			closeButton.style.position = 'absolute';
    			closeButton.style.right = '0px';
    			closeButton.style.top = '-20px';
    			closeButton.style.zIndex = '10002';
    			closeButton.style.cursor = 'pointer';
    			closeButton.style.color = '#fff';
    			closeButton.onclick = LB.closeLightboxContainer;

    			fo_container.appendChild(closeButton);
    		}

    		// ie6 fix
			grayDiv.height( ($('body').height() > $(window).height() ?  $('body').height() :  $(window).height()) + 40);

	});
}

// function to close container and re-enable site
LB.closeLightboxContainer = function() {

	var grayDiv = $('#graysite');

	if (!grayDiv) return false;

	//remove flashContainer
	if (LB.openLightboxContainer) $('#'+LB.openLightboxContainer).remove();

	// fade out
	grayDiv.fadeTo(500,0,function(){
		// remove container
		grayDiv.remove();
	});

	// re-enable scrollbars
	// document.body.style.overflow = 'auto';

}

LB.openLightBoxByHash = function() {

	var lightboxId = document.location.hash.substring(1);

	// get all lightbox links in the primary container
	$('a.lightbox').each(function(){
		var lightboxLink = $(this);
		var parameters = LB.readLightboxParametersFromHref(lightboxLink[0].href);
		var lightboxLinkId =  parameters['id'];
		if (lightboxLinkId == lightboxId) {
			LB.createLighboxContentForLink(lightboxLink);
		}
	});
}
LB.doTakeOver = function() {
	var takeoverLink = $('a.takeover:first');
	if (!takeoverLink[0]) return;

	var doTakeOver = true;
	if (takeoverLink.hasClass('iphone_only')) {
		if (! (ua.iphone || ua.ipod)) return;
	}

	var parameters = LB.readLightboxParametersFromHref(takeoverLink[0].href);
	var lightboxId =  parameters['id'];
	var showTakeOver = true;
	if (typeof lightboxId != 'undefined') {
		setCookie('takeover_check',true,365);
		if (getCookie('takeover_check') && !getCookie('takeover_' + lightboxId)) {
			setCookie('takeover_' + lightboxId,true,365);
		} else {
			showTakeOver = false;
		}
	}
	if (showTakeOver) {
		if (parameters['force']=='true') {
			document.location.href = takeoverLink[0].href.substring(0,takeoverLink[0].href.lastIndexOf('#'));

		} else {
			LB.createLighboxContentForLink(takeoverLink[0]);
		}
	}
}

$(document).ready(function(){
	LB.createLightboxLinks();
	LB.openLightBoxByHash();
	LB.doTakeOver();
});
