var dnaDesignerComp = null;
function createDesignerScreen(designerReply, isOpen) {
		var logonToken = null;
		var getLogonToken = function(data) {
			logonToken = data;
			var getMediaOwner = function(mediaOwner) {
				var screen = null;
				if(isOpen){
					dnaDesignerComp = null;
					if(document.getElementById("_screen")){
						screen = document.getElementById("_screen")
					}else{
						var screen = createScreen("_screen");
					}					
				}else{
					var screen = createScreen("_screen2");
					screen.style.visibility = "hidden";
				}	
				
				var callBack = function(data){
					var reload = data;
					if (logonToken==null) {
						dnaDesignerComp = new designer("guest", "guest", mediaOwner, screen, reload);
					} else {
						dnaDesignerComp = new designer(logonToken.username, logonToken.tokenSecurityHash, mediaOwner, screen, reload);	
					}
					if(reload == "false"){
						AjaxService.setUserSettings("reload", "true");	
					}else{
						AjaxService.setUserSettings("reload", "false");
					}	
				  	dnaDesignerComp.loadExternalResources(webResources);
				  	dnaDesignerComp.config.showMenu = true;
				  	dnaDesignerComp.config.toolMenuHeight = "137";  	
				  	dnaDesignerComp.config.showToolMenu = true;
					dnaDesignerComp.config.menuWidth = 0.18;
				  	dnaDesignerComp.config.menuOnLeftSide = false;
			
					designerReply();					
				};
				AjaxService.getUserSettings("reload", callBack);
			};
			AjaxService.getMediaOwnerId(getMediaOwner);
		}
		AjaxService.isUserLogged(getLogonToken);
}

function setupAd(recreate, callback) {
	var designerReply = function() {
		setStep("step4", true);
		
		var errorHandler = function(data) {
			alert(data);
		}
			
		var failDPI = -1;
		var wardDPI = -1;
			
		var designLoaded = function(data) {
			if (data) {
				var screen = document.getElementById("_screen");
				if(screen){
					screen.parentNode.removeChild(screen);
				}
				AjaxService.setUserSettings("openedItem", "0");
				dnaDesignerComp.config.parent.id = "_screen";
				dnaDesignerComp.config.parent.style.visibility = "visible";
				dnaDesignerComp.addOptionalMetadata("mdata_size_id", sizeId);
			  	dnaDesignerComp.addOptionalMetadata("mdata_colour", colour);	
			  	dnaDesignerComp.addOptionalMetadata("mdata_design_id", designId);
			  	dnaDesignerComp.addOptionalMetadata("mdata_design_column_height", columnHeight);	
			}
		}
		
	 	var designSettingsReply = function(data) {
	 		if (data) {
	 			failDPI = data.failDPI;
	 			warnDPI = data.warnDPI;
				dnaDesignerComp.newDesign(data.templateId,
					data.bleedWidth, data.bleedHeight, 
					data.trimWidth, data.trimHeight, 
					data.typeWidth, data.typeHeight, colour, designLoaded, errorHandler);			
	 		} else {
	 		
	 		}
	 	}
	  	
	  	if (!recreate) {  		
	  		AjaxService.getDesignSettings(designId, sizeId, columnHeight, colour, designSettingsReply);
	  	} else {
	  		var designReloaded = function(data) {
				if (data) {
					var screen = document.getElementById("_screen");
					if(screen){
						screen.parentNode.removeChild(screen);
					}
					
					dnaDesignerComp.config.parent.id = "_screen";
					dnaDesignerComp.config.parent.style.visibility = "visible";	
					dnaDesignerComp.addOptionalMetadata("mdata_size_id", sizeId);
				  	dnaDesignerComp.addOptionalMetadata("mdata_colour", colour);
				  	dnaDesignerComp.addOptionalMetadata("mdata_design_id", designId);
				  	dnaDesignerComp.addOptionalMetadata("mdata_design_column_height", columnHeight);
				}
			}
			var designNotInSession = function(data) {
				//check if https is active
				if (window.document.location.href.indexOf("https") != -1) {
					var callBack = function(accType){
							chekoutScreen(accType);
					}	
					AjaxService.checkBasketType(callBack);						
				}else{
					menuItem1.onclick();	
				}
			}
	  		dnaDesignerComp.reload(designReloaded, colour, designNotInSession)
	  	}
	}
	createDesignerScreen(designerReply);
}

function openDesign(id, closeButton) {
	var designerReply = function() {
		var reply = function(data) {
			if (data) {			
				sizeId = dnaDesignerComp.getOptionalMetadata("mdata_size_id");
				colour = dnaDesignerComp.getOptionalMetadata("mdata_colour");
				designId = dnaDesignerComp.getOptionalMetadata("mdata_design_id");
				columnHeight = dnaDesignerComp.getOptionalMetadata("mdata_design_column_height"); 
				
				AjaxService.setUserSettings("sizeId", sizeId);
				AjaxService.setUserSettings("colour", colour);
				AjaxService.setUserSettings("designId", designId);
				AjaxService.setUserSettings("columnHeight", columnHeight);
								
				if (closeButton) {
					closeButton.onclick();
				}
			} else {
				alert('Failed to open design');
			}
		}
		dnaDesignerComp.openDesign(id, reply);
	};
	createDesignerScreen(designerReply, true);	
}

function downloadProof(o) {
	var testUser = function (data) {
		if (data) {
			var screen = createBlockedScreen("_screenPopup");
			var header = createCustomScreen("_screenPopupheader", createProperties(560, 20, 10, 10));
			header.innerHTML = proof_download_message;
			screen.appendChild(header);
			
			var body = createCustomScreen("_screenPopupBody", createProperties(605, 365, 10, 55));
			body.style.textAlign = "center";
			var proofImg = document.createElement("img");
			proofImg.src = dnaDesignerComp.downloadProof(true);
			proofImg.style.border = "1px #EFEFEF solid";
			body.appendChild(proofImg);
			screen.appendChild(body);			
		} else {
			signInScreen(o, download_proof_autorization);
		}
	};
	AjaxService.isUserLogged(testUser);
}

var designerErrorHandler = function(data) {
	alert(data);
}

					