

jQuery(function(){
	if($.browser.msie && $.browser.version <= 6) return;
	$(".dialog-media").openInDialog();
});

// dialog
$.fn.extend({openInDialog: function(){
		
		var init = function(){
			close();
			createDialog();
		};
		
		var createDialog = function(){
			/*
				> <body>
					> div#jQ_gov-dialog-overlay
					> div#jQ_gov-dialog
						> div.container
							> AJAX > div#dialog-body [.dialog-media-video|.dialog-media-banner]
			*/
			$("body").append( $("<div id=\"jQ_gov-dialog-overlay\" />") )
					 .append( $("<div id=\"jQ_gov-dialog\" />" ).append( $("<div class=\"container\" />") ) );			
						
		};
		
		var open = function(){
			var marginTop = parseInt( ($("#jQ_gov-dialog").height()/2), 10); 
			var width = $("#dialog-body").width();
			$("#jQ_gov-dialog").css({				
				marginTop: - marginTop,
				marginLeft: - parseInt( (width/2), 10 ),
				width: width,
				top: "50%",
				left: "50%",
				visibility:"visible"
			});
			$("#jQ_gov-dialog .close a, #jQ_gov-dialog-overlay").click(close);	
		};
		
		var close = function(){
			$("#jQ_gov-dialog-overlay, #jQ_gov-dialog").remove();
			return false;
		};
		
		var initContent = function( dialogBody ){	
			switch( dialogBody.attr("class") )
			{
				case "dialog-media-video":
					$(".dialog-media", dialogBody).openInDialog();					
					open();
					break;
				case "dialog-media-banner":
					$(".dialog-media", dialogBody).openInDialog();					
					open();
					break;
				default:
					open();
			}
		};
		
		return this.each(function(){	
			$(this).bind("click", function(){	
				init();
				var href = $(this).attr("href");
				var options = {
					url: href,
					cache: false,
					type : "POST",	
					data: { Dialog: "true" },
					success: function(data, textStatus){
						var htmlData = $("<div />");
						// Don't strip the script
						htmlData[0].innerHTML = data;
						if( $("#dialog-body", htmlData).length ) {
							$("#jQ_gov-dialog .container").empty().html($("#dialog-body", htmlData).parent().html());
							$("#dialog-body").delayed(function(){
								initContent( $(this) );
							}, 100, false);				
						}
						else document.location.href = href; 				
					}
				}
				$.ajax(options);
				return false;
			});
		});
	}
});

$.fn.extend({delayed: function(func, delay){		
		return this.each(function(){
			$(this).animate({_dummy:0}, {duration:delay, complete:func, queue:false});			
		});
	}
});

