/*
 * SOAR
 *
 * Copyright (c) Jostens Inc. 2006-2009. All rights reserved.
 */

var ChooseDesign = {
	previewProductId: -1,
	previewProductName: '',
	selProductId: -1,
	categoryId: -1,
	designId: -1,
	envSwf: null,
	previewDivLoaded: false,
	
	loadProductDetails: function(productId, productName) {
		// update name below the spread
		var element = gebi('designName');
		if (element) {
			element.innerHTML = productName;
		}

		Element.removeClassName('a_product_' + ChooseDesign.selProductId, 'selected');
		Element.addClassName('a_product_' + productId, 'selected');
		ChooseDesign.selProductId = productId;

		var url = '/create/chooseDesignDetails.do';
		// note: progress dialog looks bad with flash - do not use here
		new Ajax.Updater('design-details', url, {method: 'POST', postBody:'productId=' + productId, evalScripts: true });
	},
	chgOrganization: function() {
		var orgNumber = $F("orgNumber");
		var url = '/create/chooseDesign.do?categoryId=' + this.categoryId + '&orgNumber=' + orgNumber;
		window.location.replace(url);
	},
	/**
	 * I reload the flash object with the new design and render it on the fly
	 * without having to reload the swf
	 *
	 * @param designId
	 *    String representing the id of the design the pages belong to.
	 * @param coverId
	 *    String representing the id of the design the pages belong to.
	 * @param leftPageId
	 *    String representing the id of the design the pages belong to.
	 * @param rightPageId
	 *    String representing the id of the design the pages belong to.
	 * @param trimSize
	 *    String representing a trim size
	 */
	changeBook : function(designId, coverId, leftPageId, rightPageId, trimSize) {
		if (window.so) {
			if (!this.envSwf) {
				this.envSwf = gebi("Enveloper");
			}
			if (this.envSwf != null && window.so.ready) {
				this.envSwf.changeBook(designId, coverId, leftPageId, rightPageId, trimSize);
				return;
			}
		}
	},
	selectDesign: function() {
		ProgressDialog.delayedShowOnId("Please Wait", "Updating design selection and loading covers...",this.selProductId);
		var url = '/create/selectTemplate.do?productId=' + this.selProductId;
		window.location.replace(url);
	},
	showPreview: function(designId, designName, productId) {
		this.designId = designId;
		this.previewProductId = productId;
		this.previewProductName = designName;
		if (!this.previewDivLoaded) {
			this.previewDivRequest();
		} else {
			this.showPreviewDialog();
		}
	},
	previewDivRequest: function() {
		var url = '/orgs/customLandingPages/steelers/steelersDesignPreviewDialog.jsp';
		// note: progress dialog looks bad with flash - do not use here
		new Ajax.Updater('previewDialogHolder', url, {method: 'GET', evalScript:true, onComplete: function() { ChooseDesign.previewDivResponse(); },
																					  onError: function(e) { alert(e.message) }
													 });
	},
	previewDivResponse:function() {
		this.previewDivLoaded = true;
		this.showPreviewDialog();
	},
	showPreviewDialog: function() {
		$('designPreviewDialog_DesignNameContainer').innerHTML = this.previewProductName;
		if (!window.createDesignPreviewDialogWidget) {
			window.createDesignPreviewDialogWidget = new DialogWidget('createDesignPreviewDialog', {
				doCancel: function(dialogWidget) {
					var iframe = $('previewIframe660');
					if(iframe != null) {
						iframe.src = '/jsp/blank.jsp';
					}
					dialogWidget.hide();
				},
				onShow: function() {
					var iframe = $('previewIframe660');
					if(iframe != null) {
						iframe.src = "/create/chooseDesignPreview.do?designId=" + ChooseDesign.designId;
					}
				}
			});
		}
		Element.hide('a_createDesignPreviewDialogCancelBtn');
		$$('div.popDialogueContent table').each(function (a) { Element.hide(a) });
		$('previewIframe660').style.height="310px";
		$('previewIframe660').style.width="660px";
		window.createDesignPreviewDialogWidget.show();
	},
	selectPreviewDesign: function() {
		ChooseDesign.loadProductDetails(this.previewProductId, this.previewProductName);
		ChooseDesign.selectDesign();
	}
}
