(function($) {
	$.window = function(data) {
	    $.window.loading();
		if ($.isFunction(data)) data.call($);
	    else $.window.reveal(data);
		if (jQuery.fn.png) $('.window').png();
	}
  	$.extend($.window, {
	    loading: function() {
	      	init()
	      	ShowOverlay()
	      	$('.window .frame').empty()
			$(document).bind('keydown.window', function(e) {
				if (e.keyCode == 27) $.window.close()
				return true
			});
		  	$(window).resize(function(){
				$('.window').css({top:($(window).height()-$('.window').height()-20)/2+GetPageScroll()[1],left:($(document).width()-$('.window').width())/2});
			});
			$(window).scroll(function() {
				$('.window').css({top:($(window).height()-$('.window').height()-20)/2+GetPageScroll()[1],left:($(document).width()-$('.window').width())/2});
				return true
	      	})
	      	$(document).trigger('loading.window');
			$('.window').css({top:($(window).height()-$('.window').height()-20)/2+GetPageScroll()[1],left:($(document).width()-$('.window').width())/2}).show()
		},
	    reveal: function(data) {
			$(document).trigger('beforeReveal.window')
			$('.window .frame').append('<iframe name="frame" src="'+data+'" id="frame" allowtransparency="true" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="margin-top: 4px; width: 99%; height:480px;"></iframe>')
			$('.window .body').children().fadeIn('normal')
			$('.window').css({top:($(window).height()-$('.window').height()-20)/2+GetPageScroll()[1],left:($(document).width()-$('.window').width())/2})
			$(document).trigger('reveal.window').trigger('afterReveal.window')
	    },
    	close: function() {
      		$(document).trigger('close.window')
			$('iframe#frame').attr('src', 'about:blank');
      		return false
    	}
	})
	function init() {
		if ($.window.inited) return true
		else $.window.inited = true
		$(document).trigger('init.window')
		$('body').append('<div class="window" style="display:none;position:absolute;top:0;left:0;z-index:100;text-align:left;"><div style="position:relative"><img class="close" style="top:12px;right:12px;position:absolute;cursor:pointer;z-index:9999" src="http://myhomes.360photo.ca/close.gif" width="16" height="16"><table><tbody><tr><td class="nw"/><td style="background:#FFF"/><td class="ne"/></tr><tr><td style="background:#FFF"/><td style="padding:8px;background:#FFF;width:540px;"><div class="frame"></div></td><td style="background:#FFF"/></tr><tr><td class="sw"/><td style="background:#FFF"/><td class="se"/></tr></tbody></table></div></div>')
		$('.close').click($.window.close)
	}
	function GetPageScroll() {
		var xScroll, yScroll;
		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop) {
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		}
		else if (document.body) {
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;	
		}
		return new Array(xScroll,yScroll) 
	}
	function ShowOverlay() {
		if ($('overlay').length == 0) $('body').append('<div id="overlay" class="hide"></div>');
   		$('#overlay').addClass('background');
		$('#overlay').addClass('hide');
		$('#overlay').css('opacity', 0.3)
    	return false
	}
	function HideOverlay() {
		$('#overlay').fadeOut('fast', function() {
			$('#overlay').removeClass('background')
			$('#overlay').addClass('hide') 
			$('#overlay').remove()
			$('.window .frame').empty()
		})
		return false
	}
	$(document).bind('close.window', function() {
		$(document).unbind('keydown.window')
		$('.window').fadeOut(function() {
			$('.window .movie').removeClass().addClass('movie')
			HideOverlay()
		})
	})
})(jQuery);
