jQuery(function($){
////////////////////////////////////////////////////////////////////////////////////////////////////////INIT MODAL: Creates and edits a modal window
	function initModal(){
		//Creates a modal window if none exists
		if($(".modal-window").length==0){
			return $("<div>").hide().addClass("modal-window").appendTo("body");
		}
		else{
			return $(".modal-window");
		}
	};
	
////////////////////////////////////////////////////////////////////////////////////////////////////////BOXIN: Adds data to the modal window and appends it
	function boxin(data, modal){
		//The modal window top position
		var top = $(window).scrollTop() + ($(window).height()/2);
		
		//Add a modal overlay to the DOM
		if($(".modal-overlay").length==0){
			$("<div>").hide().addClass("modal-overlay").click(function(event){
				boxout(event);
			}).appendTo("body");
		}
		
		// var topMargin = modal.outerHeight() !> $("body").height() ?  : $("body").height();
		
		
		modal.hide().html(data);
		if(modal.outerHeight() < $("body").height())
		{
			var topMargin = -150;
		}
		else
		{
			var topMargin = 0;
			top = 40;
		}
		modal.css({
			"marginTop" : topMargin,
			"marginLeft" : -(modal.outerWidth()/2)-20,
			"top" : top,
			"padding" : "20px"
		}).appendTo("body");
		
		if($(".modal-overlay").outerHeight() < $("body").height())
			$(".modal-overlay").css("height", $("body").height());
		
		$(".modal-window, .modal-overlay").fadeIn("fast");
	};
	
////////////////////////////////////////////////////////////////////////////////////////////////////////BOXOUT: Removes the modal window from dom
	function boxout(event){
		if(event!=undefined){
			event.preventDefault();
		}
		//Fade out and remove from dom
		$(".modal-window, .modal-overlay")
			.fadeOut("fast", function(){
				$(this).remove();
			}
		);
	};
	
////////////////////////////////////////////////////////////////////////////////////////////////////////FORMS: Send, request and response
	var processFile = "bokning/js-switchboard.php";
	
	var options = { 
        beforeSubmit:  	showRequest,  // pre-submit callback 
        success:       	showResponse  // post-submit callback 
    };
	
	$('.modal-window .antonsFinaCssWrapper input[type=submit]').live("click", function(event){
		event.preventDefault();
		$(this).unbind("submit").submit();
		$(this).parents("form").ajaxSubmit(options);
		return false;
	});
	
	function showRequest(formData, jqForm, options){
		return true;
	};
	
	function showResponse(responseText, statusText, xhr, $form){
		// console.log(responseText);
		modal = initModal();
		if(responseText.length < 250)
		{
			$(".message").remove();
			if($("input[name=" + responseText.split(" - ")[0] + "]").length != 0)
			{
				var target = $("input[name=" + responseText.split(" - ")[0] + "]");
				var message = responseText.split(" - ")[1];
				
				$("input[type=text]").not(target).removeClass("invalid");
				
				target.addClass("invalid");
				target.after("<span class=\"message\">" + message + "</span>");
			}
			else
				modal.append("<span class=\"message\">" + responseText + "</span>");
		}
		else
		{
			if(modal.find("input[name=modal]").val() != "false")
			{
				boxin(responseText, modal);
				$(".modal-window .antonsFinaCssWrapper form").attr("action", processFile);
			}
			else
			{
				alert("Vi har nu motagit din bokning!");
				window.location.href = $(".modal-window .antonsFinaCssWrapper input[name=pageName]").val();
			}
		}
	};
	
	$('.antonsFinaCssWrapper table.modalForm input[type=submit]').live("click", function(event){
		event.preventDefault();
		modal = initModal();
		var data = $(this).parents("form").serialize();
		$.ajax({
			type: "POST",
			url: $(this).parents("form").attr("action"),
			data: data,
			success: function(data){
				boxin(data, modal);
			}
		});
	});

////////////////////////////////////////////////////////////////////////////////////////////////////////PUBLISH DATE
	if($("input[name=date], input[name=date2]").length!=0)
		$("input[name=date], input[name=date2]").datepicker({"dateFormat" : "yy-mm-dd"});
	
////////////////////////////////////////////////////////////////////////////////////////////////////////PRISER

	if($("caption").length>0)
	{
		$("#maincont > table:first").before('<div class="table-elm-select"><span class="table-elm-select-title">V&auml;lj ett startpaket:</span><select></select></div><div class="table-elm-show"></div>');
		$.each($("table"),  function(i){
			if($(this).find("caption").length>0)
			{
				$(this).find("tr").find("td:not(:first):last").addClass("table-elm-td-last");
				$(this).find("tr:last").addClass("table-elm-tr-last");
				$(".table-elm-show").append($(this));
				$(this).addClass("table-elm-" + i);
				$(this).hide();
				$(".table-elm-select > select").append('<option value="table-elm-' + i + '">' + $(this).find("caption").html() + '</option>');
			}
		});
	}
	
	/* $(".table-elm-select > select").live("change", function(){
		changeTableElm($(this).val());
	}); */
	
	$(".table-elm-select > select").change(function(){
		changeTableElm($(this).val());
	});
	
	/* $(".table-elm-select > select").live("focus", function(){
		alert("japp");
	}); */
	
	changeTableElm("table-elm-0");

	function changeTableElm(elm)
	{
		$(".table-elm-show > table:not(." + elm + ")").hide();
		$(".table-elm-show > ." + elm).show();
		
	}
	
	$("#julkalender").live("click", function(event){
		event.preventDefault();
		modal = initModal();
		$.get("get_kalender.php", function(data) {
			boxin(data, modal);
		});
	});
});
