function openBuilder() {
	var back = $('<div class="door-builder-back"></div>');
	back.css({
		display: 'none',
		zIndex: 990,
		position: 'absolute',
		top: 0,
		left: 0,
		opacity: 0.8,
		width: $(window).width(),
		height: $(document).height(),
		background: '#000'
	});
	$('body').append(back);
	back.fadeIn(400);
	var door_sel = $('<div class="door-builder-main"></div>');
	door_sel.css({
		display: 'none',
		zIndex: 1000,
		position: 'absolute',
		top: Math.max($(window).height() / 2 - 340, 0),
		left: $(window).width() / 2 - 415,
		width: 830,
		height: 600
	});
	
	if (!$.fn.flash.hasFlash('10,0,22')) {
		var problem = $("<div>Sorry, you need the latest Flash Player to use the Door Designer.<br /></div>").css({'text-align': 'center', 'width': '500px', 'margin': '0 auto', 'color': '#000000', 'margin-top': 230, 'padding': '20px', 'background': '#ffffff'});
		problem.append($('<input type="button" value="Download Flash Player" />').css({'margin-top': '20px', 'height': '30px'}).click(function() { location.href = 'http://www.adobe.com/go/getflashplayer'; }));
		problem.append($('<br />'));
		problem.append($('<div>(<a href="?hasFlash=true">already have flash</a>?)</div>').css({'font-size': '6pt', 'margin-top': '10px'}));
		problem.find('a').css({'color': '#000044'});
		door_sel.append(problem);
	}
	else {
		
		$('.composite-builder embed').css({'display': 'none'});
		
		if (!failure) {
			door_sel.flash({
				width: 830,
				height: 600,
				src: '/skin/fabstore/flash/builder.swf',
				flashvars: $.extend({'baseURL': '/skin/fabstore/flash/', 'styleURL': '/skin/fabstore/flash/prodoor/', 'basketItems': basketItems, 'logged': loggedIn}, opts)
			}, { version: '10,0,22', wmode: 'transparent' });
		}
		else {
			var problem = $("<div>There was a problem with the URL and the door cannot be loaded.<br /></div>").css({'text-align': 'center', 'width': '500px', 'margin': '0 auto', 'color': '#000000', 'margin-top': 230, 'padding': '20px', 'background': '#ffffff'});
			function replaceWithFlash() {
				problem.fadeOut(400, function() {
					$(this).remove();
					door_sel.flash({
						width: 830,
						height: 600,
						src: '/skin/fabstore/flash/builder.swf',
						flashvars: $.extend({'baseURL': '/skin/fabstore/flash/', 'styleURL': '/skin/fabstore/flash/prodoor/', 'basketItems': basketItems, 'logged': loggedIn}, opts)
					}, { version: '10,0,22', wmode: 'transparent' });
				});
			}
		
			function cancel() {
				problem.fadeOut(400, function() {
					$(this).remove();
					closeBuilder();
				});
			}
			problem.append($('<input type="button" value="Create new door" />').css({'margin-top': '20px'}).click(replaceWithFlash));
			problem.append($('<input type="button" value="Cancel" />').css({'margin-top': '20px', 'margin-left': '10px'}).click(cancel));
			door_sel.append(problem);
		}
	}
	
	if (loggedIn) {
		var loginText = "You are logged in as " + loggedInName + ". Need help? Call 0121 331 2831";
	}
	else {
		var loginText = "You are not currently logged in. Need help? Call 0121 331 2831";
	}
	
	var login = $('<div class="flash-login-bar">' + loginText + '</div>');
	login.prepend($('<div class="flash-close-bar"><a href="/composite">Return to site</a></div>')).find('a').click(closeBuilder);
	door_sel.prepend(login);
	$('body').append(door_sel);
	door_sel.fadeIn(400);
	return false;
}

function loggedout() {
	$.getJSON('/composites/getLoginStatus', {}, updateLoginStatus);
}
loggedin = loggedout;

function updateLoginStatus(data, status) {
	if (data.loggedIn) {
		$('.flash-login-bar').text('You are logged in as ' + data.loggedInName + '. Need help? Call 0121 331 2831');
		$('.login-message').html('<span><span class="hello">Hello ' + data.loggedInName + '</span> (<a href="/login">not you?</a>)</span>');
		$('.loglink').attr('href', '/logout').text('Log Out');
	}
	else {
		$('.login-message').html('Not logged in.');
		$('.flash-login-bar').text('You are not currently logged in. Need help? Call 0121 331 2831');
		$('.loglink').attr('href', '/login').text('Log In');
	}
}

function closeBuilder() {
	$('.door-builder-main, .door-builder-back').fadeOut(400, function() { $(this).remove(); $('.composite-builder embed').css({'display': 'block'})});
}

function printDoor() {
	var p_names = [
		'numeralsY', 'numeralsX', 'doorNumerals', 'doorHandle', 'doorSpy',
		'doorKnocker', 'doorLetterbox', 'furnitureColor', 'doorHinge', 'leftAddon',
		'cillAddon', 'rightAddon', 'headAddon', 'doorCill',
		'doorThreshold', 'frameColor', 'openHeight', 'openWidth',
		'lockType', 'backingGlass', 'doorOpens', 'supplyType',
		'colorID', 'glassID', 'doorID'
	];
	var post_object = {};
	for (var i in p_names) {
		var p = p_names[i];
		switch (arguments[i]) {
			case false:
				post_object[p] = 'false';
				break;
			case true:
				post_object[p] = 'true';
				break;
			default:
				post_object[p] = arguments[i];
		}
	}
	$.post('/composites/getPrintURL/', post_object, function(data, textStatus) {
		var print_window = window.open('/composites/print/' + data, 'fabprintwindow', 'width=720,height=600,location=no,directories=no');
		print_window.focus();
	}, 'text');
}

$(function() {
	$('.screen a').click(openBuilder);
});