(function($){   
 $.fn.dialogRoadBlock = function(options) {   
       
  var defaults = {   
   width: 300, 
   height: 300,
   content: '<br/><br/><center>dialogLoaded</center>',
   onLoad: function(){},
   onUnLoad: function(){}
  }; 
  
  var constants = {   
   bgColor: '#000000',
   bgDialogColor: '#000000',
   bgOpacity:0.8,
   closeImage: '/images/jquery/close.png',
   closeWidth: 12,
   closeHeight: 18
  }; 
     
  var options = $.extend(defaults, options);   
  	
		
  	resizeHandler = function( dialogWindow )
	{
		if ( !dialogWindow )
			return ;

			IsStrictMode = function( document )
			{
				return ( 'CSS1Compat' == ( document.compatMode || ( FCKBrowserInfo.IsSafari ? 'CSS1Compat' : null ) ) ) ;
			}
			
			var relElement = IsStrictMode( document ) ? document.documentElement : document.body ;

		dialogWindow.style.width = Math.max( relElement.scrollWidth,
					relElement.clientWidth,
					document.scrollWidth || 0 ) - 1 + 'px';
		
		dialogWindow.style.height =Math.max( relElement.scrollHeight,
					relElement.clientHeight,
					document.scrollHeight || 0 ) - 1 + 'px';

		
	}
	
	
	
	moveDialog = function (obj) {
		
		
			  var myWidth = 0, myHeight = 0;
			  if( typeof( window.innerWidth ) == 'number' ) {
				//Non-IE
				myWidth = window.innerWidth;
				myHeight = window.innerHeight;
			  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
				//IE 6+ in 'standards compliant mode'
				myWidth = document.documentElement.clientWidth;
				myHeight = document.documentElement.clientHeight;
			  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
				//IE 4 compatible
				myWidth = document.body.clientWidth;
				myHeight = document.body.clientHeight;
			  }
			  
			  var scrOfX = 0, scrOfY = 0;
			  if( typeof( window.pageYOffset ) == 'number' ) {
				//Netscape compliant
				scrOfY = window.pageYOffset;
				scrOfX = window.pageXOffset;
			  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
				//DOM compliant
				scrOfY = document.body.scrollTop;
				scrOfX = document.body.scrollLeft;
			  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
				//IE6 standards compliant mode
				scrOfY = document.documentElement.scrollTop;
				scrOfX = document.documentElement.scrollLeft;
			  }

			  
			  obj.style.left  = Math.max( (myWidth  - options.width ) / 2 + scrOfX, 0 ) + 'px' ;
			  obj.style.top = Math.max( (myHeight  - options.height )  / 2 + scrOfY , 0 )  + 'px';

		
	}
	
	moveCloseButton = function (obj , parentObj) {
			obj.style.left = parentObj.style.left;
			obj.style.top  = parentObj.style.top;
			obj.style.marginTop  = '-'+ constants.closeHeight+ 'px';
			var tmp = options.width - constants.closeWidth;
			obj.style.marginLeft  = tmp + 'px';
			
	}
    
  return this.each(function() {   
   		
		
		var mainDiv = document.createElement( 'div' ) ;
		mainDiv.id = 'windowDialog';
		mainDiv.style.position='absolute';
		mainDiv.style.zIndex				= '999';
		mainDiv.style.top='0';
		mainDiv.style.left='0';
		
		
		var mainWrapperDiv = document.createElement( 'div' ) ;
		mainWrapperDiv.id = 'windowWrapperDialog';
		mainWrapperDiv.style.position='absolute';
		mainWrapperDiv.style.zIndex				= '999';
		mainWrapperDiv.style.top='0';
		mainWrapperDiv.style.left='0';
		
		
		resizeHandler(mainWrapperDiv);
		
		mainDiv.style.width  				= mainWrapperDiv.style.width;
		mainDiv.style.height 				= mainWrapperDiv.style.height;
				
		var dialogContent 						= document.createElement('div');
		dialogContent.style.position			= 'absolute';
		dialogContent.style.zIndex				= '999';
		dialogContent.style.width  				= options.width  + 'px';
		var tmp = options.height + constants.closeHeight;
		dialogContent.style.height 				= tmp + 'px';
		dialogContent.style.backgroundColor 	= constants.bgDialogColor;
		dialogContent.style.border 				= '5px solid ' + constants.bgDialogColor;
		dialogContent.id						= 'dialogContent';
		dialogContent.style.display='none';
		
		var dialogActContent 					= document.createElement('div');
		dialogActContent.id 					= 'dialogActContentDiv';
		dialogActContent.innerHTML 				= options.content;
		
		
		moveDialog(dialogContent);
		
		var closeDiv = document.createElement('div');
		closeDiv.style.cursor			= 'pointer';
		closeDiv.style.width  			= options.width  + 'px';
		closeDiv.style.height  			= constants.closeHeight  + 'px';
		closeDiv.style.textAlign		= 'right';
		closeDiv.id = 'dialogCloseDiv';
		
		var closeDivImage = document.createElement('img');
		closeDivImage.id = 'dialogCloseDivImage';
		closeDivImage.src = constants.closeImage;
		closeDiv.appendChild(closeDivImage);
		
		
		dialogContent.appendChild(closeDiv);
		dialogContent.appendChild(dialogActContent);
		
		mainWrapperDiv.appendChild(mainDiv);
		mainWrapperDiv.appendChild(dialogContent);
      	
		document.body.appendChild(mainWrapperDiv);
		
		
		
		$("#dialogCloseDiv").click(function(event) {
						
				$(window).scroll(function () { 
      					//do nothing
    			});	
				
				options.onUnLoad();
				
				$('#dialogContent').slideUp( 500, function () {
				
						$("#windowWrapperDialog").fadeTo(200 , 0, function() { document.body.removeChild(mainWrapperDiv); });
								
				 }) ;		
		});
		
		
		$(window).scroll(function () { 
      		//moveDialog(dialogContent); 
    	});
		
		
		
			mainDiv.style.backgroundColor = constants.bgColor;
			$('#' + mainDiv.id).css("opacity", 0);
			$('#' + mainDiv.id ).fadeTo(200, constants.bgOpacity , function () {
                      $('#windowWrapperDialog').css("display", "");
					  $('#dialogContent').slideDown( 500, function () { }) ;
					  
            });

		options.onLoad();
		
		
  });   
 };   
})(jQuery); 




