(function($) {
	$.wPopup = function(options) {
		options = options ? options : {};
		
		//2009-10-30
		
		var $popup_form = $( "<div class='popup_form'><div class='bg'></div><div class='content_area'><div class='header'></div><div class='close'>&nbsp;</div><div class='content'></div></div></div>" );
		$(document.body).append( $popup_form );
		
		var before_remove = (typeof( options.before_remove ) == 'function') ? options.before_remove : function(){ return true; };
		var after_remove = (typeof( options.after_remove ) == 'function') ? options.after_remove : function(){ };
		var after_content_load = (typeof( options.after_content_load ) == 'function') ? options.after_content_load : function(){ }; /* Добавлено */
		
		//type = options.HTML ? "HTML" : "load";
		//var $popup_form = $(".popup_form" );
		//delete $define_html;
		
		var $bg = $(".bg" , $popup_form );
		var $content_area = $(".content_area" , $popup_form );
		var $header = $(".header" , $content_area );
		var $close = $(".close" , $content_area );
		var $content = $(".content" , $content_area );
		if( $content_area.length == 1 ) {
			if( options.overflow ){ 
				$content_area.css( "overflow" , "auto" );
				//$content.css( "overflow" , "auto" ); if( options.height ) $content.css( "height" ,  parseInt( options.height ) -  60 );
				}			
			
			$bg.click( remove_popup_form );
			$close.click( remove_popup_form );
				
			if( options.header ) $header.html( options.header );
			
			if( options.src ) {
				$content.html("<div class='indicator'>&nbsp;</div>");
				$.ajax({
					url: options.src,
					cache: true,
					success: fill_content
				});
			}
			else if( options.html ){
				fill_content( {html:options.html} );
			}
			else if( options.jquery ){
				fill_content( {jquery:options.jquery} );
			}
			
			
			
			$popup_form.css( "height" , jQuery(document).height() );
			$bg.css( "height" , jQuery(document).height() );
			
			if( options.width ) $content_area.css( "width" ,  options.width );
			if( options.height ) $content_area.css( "height" ,  options.height );
			
			
			
			if( options.position && options.position == "center" ) {
				$content_area.css( "top" ,  parseInt( jQuery(window).scrollTop() + ( jQuery(window).height() - $content_area.height() ) / 2 ) );
				$content_area.css( "left" ,  jQuery(window).scrollLeft() + ( jQuery(window).width() - $content_area.width() ) / 2 );
			}
			else{
				if( options.position_left ){ $content_area.css( "left" , options.position_left ); }
				if( options.position_top ){ $content_area.css( "top" , options.position_top ); }
			}
			
		}
		
		function fill_content(content){
			if(content.html){ $content.html(content.html); }
			else if(content.jquery){ $content.append(content.jquery); }
			else if(content){ $content.html(content);} /* Странно! */
			$( '.close_popup', $content ).click( remove_popup_form );
			after_content_load( $content ); /* Добавлено */
		}
		
		function remove_popup_form(){
			if( before_remove() ){
				$popup_form.remove();
				after_remove();
			}
			return false;			
		}
		//$popup_form.attr('remove', remove_popup_form);//2009-10-05
		$popup_form.get(0).wPopup={};//2009-10-05
		$popup_form.get(0).wPopup.remove=remove_popup_form;//2009-10-05
		
		//2009-10-30
		return {
			'$content': $content,
			'remove': remove_popup_form
		};
	};
})(jQuery);