jQuery.fn.overlay = function(_options){

	var _options = jQuery.extend({
		opacity: '70',
		color: '#000',
		window_width: '400',
		window_height: '300',
		window_background_color: '#fff',
		close_img: 'images/close.bmp',
		close_styles: 'position: absolute; right: 25px; top: 15px;',
		src: '<p>Dit is de inhoud van de overlay</p>',	// Can contain html or een url, url will result in an ajaxcall to that url and source of that page is shown in the overlay window. url must start with: "url:"
		callback_ajax: '',	// Put function names here that need to be executed after de ajaxcall is done
		callback_closing: ''
	}, _options);
	
	return $(this).each(function(){
		var body = $(this);
		var margintop = parseInt(_options.window_height) / 2;
		margintop = margintop + "px";
		var marginleft = parseInt(_options.window_width) / 2;
		marginleft = marginleft + "px";
		
		var top = body.offset().top;
		
		$('html,body').animate({scrollTop: top}, 500, function(){
			if ($("#overlay").length == 0)
			{
				body.css({
					'overflow' : 'hidden'
				});
				
				var window_src = _options.src;
				
				if (_options.src.substring(0,4) == "url:")
				{
					var ajaxUrl = _options.src.substring(4,_options.src.length);
					$.ajax({
					  type: 'GET',
					  url: ajaxUrl,
					  cache: false,
					  success: function(html){
					  
						var get_src = html.split("<body>");
						if (get_src.length > 0)
						{
							var correct_src = get_src[1].split("</body>");
							if (correct_src.length > 0)
							{
								window_src = correct_src[0];
							}
							else
								window_src = html;
						}
						else				  
							window_src = html;
						
						//$("#results").append(html);
						if ($("#overlay").length == 0)
						{
						
							body.append('<div id="overlay" style="z-index: 9998; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: '+_options.color+'; opacity:.'+_options.opacity+'; filter: alpha(opacity='+_options.opacity+'); -moz-opacity: 0.'+_options.opacity+';"></div>');
							body.append('<div id="overlay-window" style="margin-top: -'+margintop+'; margin-left: -'+marginleft+'; z-index: 9999;position: absolute; left: 50%; top: 50%; width: '+_options.window_width+'px; height: '+_options.window_height+'px; background-color: '+_options.window_background_color+';"><div class="inner_window"><a href="javascript:;" class="close-overlay" id="btn-close-overlay" style="'+_options.close_styles+'"><img src="'+_options.close_img+'" alt="Sluiten" /></a>'+window_src+'</div></div>');
						
							$(".close-overlay").click(function(event){
								event.preventDefault();
								$("#overlay").remove();
								$("#overlay-window").remove();
								body.css({
									'overflow' : 'auto'
								});
								eval(_options.callback_closing);
							});
							
							$("#overlay").click(function(event){
						event.preventDefault();
						$("#overlay").remove();
						$("#overlay-window").remove();
						body.css({
						'overflow' : 'auto'
						});
					});
						}
					  },
					  complete: function(){
						eval(_options.callback_ajax);
					  }
					});
				}
				else
				{
					body.append('<div id="overlay" style="z-index: 9998; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: '+_options.color+'; opacity:.'+_options.opacity+'; filter: alpha(opacity='+_options.opacity+'); -moz-opacity: 0.'+_options.opacity+';"></div>');
					body.append('<div id="overlay-window" style="margin-top: -'+margintop+'; margin-left: -'+marginleft+'; z-index: 9999;position: absolute; left: 50%; top: 50%; width: '+_options.window_width+'px; height: '+_options.window_height+'px; background-color: '+_options.window_background_color+';"><div class="inner_window"><a href="javascript:;" class="close-overlay" id="btn-close-overlay" style="'+_options.close_styles+'"><img src="'+_options.close_img+'" alt="Sluiten" /></a>'+_options.src+'</div></div>');
				
					eval(_options.callback_ajax);
				
					$(".close-overlay").click(function(event){
						event.preventDefault();
						$("#overlay").remove();
						$("#overlay-window").remove();
						body.css({
						'overflow' : 'auto'
						});
					});
					$("#overlay").click(function(event){
						event.preventDefault();
						$("#overlay").remove();
						$("#overlay-window").remove();
						body.css({
						'overflow' : 'auto'
						});
					});
				}
			
			}
		});
	});
}
