
(function($){
	
	$.fn.initWindow = function(options){
		
		//Här sätts alla inställningar
		var defaults = {  
			mode: "normal",
			size: "defined",
  			windowWidth: 650,
			windowHeight: 400
		};  
		var options = $.extend(defaults, options);	
			
		return this.each(function() {
			$(this).click(function() {
				$(this).showWindow(options, this.href+"/ajax");
				return false;
			});
		});			
		
	};
	
	//Här laddar vi in den valda filen samt visar rutan
	$.fn.showWindow = function(options, page) {

		$('html, body').css({overflow:"hidden"});
		$('body').append('<div id="window" style="position:absolute;z-index:1000;display:none;"></div>');
		$.ajax({
	   		type: "GET",
		   	url: page,
		   	success: function(data){
				var dimensions = $.getContentDimensions(data, options);	
				$('#window').css({width:dimensions.width,height:dimensions.height,top:dimensions.top,left:dimensions.left});
				$("#window").append(data);
				$('#window').append('<a href="#" id="close" class="closeWindow"><img src="http://www.colormebeautiful.se/themes/default/icons/icon_close.png" alt="Close" title="Close" /></a>');
		   	}
	 	});
		
		$.dimScreen(500, 0.7, function() {
			$('#window').fadeIn(500);
	    });
		
		$.bindClick(options);
		
		return this;
		
	};
	
	//Stänger dialogdiven
	$.fn.closeWindow = function() {
		$('#window').fadeOut(500);
		$('#window').remove();
		$.dimScreenStop();
		$('html, body').css({overflow:"auto"});
		return this;
	};
	
	$.bindClick = function(options){

		//Fixar så att ifall man klickar någon annanstans än på elementet så stängs rutan
		$(document).bind('click', function(e){
			
			var $clicked = $(e.target); // get the element clicked
			
			//Kollar om man bara vill ladda in ny information
			if ($clicked.is('.loadInfo')) {
				$.ajax({
	   				type: "GET",
		   			url: $clicked.attr('href')+'/ajax',
		   			success: function(data){
						var dimensions = $.getContentDimensions(data, options);
						$('#window').css({width:dimensions.width,height:dimensions.height,top:dimensions.top,left:dimensions.left});
						$('#window').empty();
						$("#window").html(data);
						$('#window').append('<a href="#" id="close" class="closeWindow"><img src="http://www.colormebeautiful.se/themes/default/icons/icon_close.png" alt="Close" title="Close" /></a>');
					}
				});
				return false;
			}
			
			//Kollar ifall man klickat utanför diven och stänger den i sådant fall
			if (!($clicked.parents().is('#window'))) {
				if (!($clicked.is('#window'))) {
					$(this).closeWindow();
				}
			}
			
			//Kollar om man klickat på ett ställe med classen closeWindow
			//Och stänger självklart den i sådant falll
			if ($clicked.parents().is('.closeWindow') || $clicked.is('.closeWindow')) {
				$(this).closeWindow();
				return false;
			}
			
		});
		
	}
	
	$.getContentDimensions = function(data, options) {
		
		var win_width =$(window).width();
	    var scrollToLeft=$(window).scrollLeft();
	    var win_height =$(window).height();
	    var scrollToBottom=$(window).scrollTop();
		
		if (options.size == "resize") {
			$('body').append('<div id="tempHolder" style="display:none;"></div>');
			$("#tempHolder").html(data);
			var windowWidth = $("#tempHolder").width()+10;
			var windowHeight = $("#tempHolder").height()+10;
			$("#tempHolder").remove();
		} else {
			var windowWidth = options.windowWidth;
			var windowHeight= options.windowHeight;
		}
		
		var top = (win_height/2-windowHeight/2)+scrollToBottom;
		var left = (win_width/2-windowWidth/2)+scrollToLeft;
		
		return {"width":windowWidth+'px',"height":windowHeight+'px',"top":top+'px',"left":left+'px'};
	};

})(jQuery);


