(function($) {
	$.fn.Overlay = function(options) {
		
		options = $.extend( {
			
			defaults: {
				log: false
			},
			
			ClassName: 'Popup',
			URL:  AbsPath + 'includes/SpecialPages/Product/Vraag/Form.php',
			
			core : {
				Items: new Array()
			}			
			
		}, options );
		
		init();
		
		function init() {
			
			if (typeof(window["console"]) == "undefined") {
				options.defaults.log = false;
			}
			
			options.core.Items = $(document).find('.' + options.ClassName );
			
			create();
			
		};
		
		function create() {
			
			if ( options.core.Items.length > 0 ) {
				
				if( options.defaults.log )
					console.info('Create actions');
				
				$.each( options.core.Items, function(){
					$(this).click(function( ev ){
						ev.preventDefault();
						var _ProductID = $(this).attr('rel') .substr(7); 
						open( _ProductID );
					});
				});
				var Holder = document.getElementById('PopupHolder');
				if( !Holder ){
					
					createLayers();
				}
			} else {
				if( options.defaults.log )
					console.info('No items to set actions');
			}
			
		};
		
		function open( ProductID ){
			if( options.defaults.log )
				console.info( 'Open overlay' );
			
			resizeLayers();
			
			$.ajax({
				type: "POST",
				data: "ProductID=" + ProductID,
				dataType : 'html',
				async: false,
				cache: false,
				url: options.URL,
				success: function(result){
					$('#PopupContent').html( result );
				},
				error: function(xhr, status, errorThrown){
					alert('Er is een fout opgetreden tijdens het doorgeven van deze actie!');
				}
			});
			
			$('#PopupHolder').removeClass('Closed');
			
			$('#DarklayerPopup').animate({
				opacity: 0.8
			}, 750, function() {
			});
			
			$('#WrapperPopup').animate({
				opacity: 1
			}, 750, function() {
			});
			
			
		};
		
		function close(){
			if( options.defaults.log )
				console.info( 'Close overlay' );

			$('#DarklayerPopup').animate({
				opacity: 0
			}, 750, function() {
				$('#PopupHolder').addClass('Closed');
			});
			
			$('#WrapperPopup').animate({
				opacity: 0
			}, 750, function() {
			});
			
		};
		
		function createLayers() {
			$('body').append('<div class="PopupHolder Closed" id="PopupHolder"></div>');
			$('#PopupHolder').append('<div class="Darklayer" id="DarklayerPopup"></div>');
			
			$('#DarklayerPopup').click(function(){
				close();
			});
			
			$('#PopupHolder').append('<div class="PopupWrapper" id="WrapperPopup"><div id="PopupContent"></div></div>');
			$('#WrapperPopup').css('opacity', 0);
			
			$('#WrapperPopup').append( '<a href="#" id="PopupClose" class="Close"></a>' );
			
			$('#PopupClose').click(function(){
				close();
				return false;
			});
			
		};
		
		function resizeLayers() {
			var Height = Math.max( $(document).height(), $(window).height() );
			var Width = $(window).width();
			
			$('#PopupHolder').css( 'width', Width );
			$('#PopupHolder').css( 'height', Height );
			
			$('#DarklayerPopup').css( 'width', Width );
			$('#DarklayerPopup').css( 'height', Height );
			$('#DarklayerPopup').css( 'opacity', 0 );
		}
		
	};
})(jQuery);
