// Create button class
var Button = Class.create();
Button.prototype = {
	
	// initialize 
	initialize: function(el) {
		// attach element (el) to the button
		this.el = $(el);
		
		// attach radio to the button
		this.radio  = $(el+'-radio');				

		// an array for other buttons that set the same variable
		this.others = Array();

		// setup an action function 
		this.action = function() {};
		
		// enable button
		this.enable();
		
		// if the radio is already checked, activate the button
		if(this.radio.checked) {
			this.activate();
		}
		
		// setup hover for element
		this.el.onmouseover = this.onMouseOver.bindAsEventListener(this);
		this.el.onmouseout = this.onMouseOut.bindAsEventListener(this);
		
		// setup onclick for element
		this.el.onmousedown = this.onClick.bindAsEventListener(this);
		
		// hide radio button and label
		this.radio.style.visibility = 'hidden';
		this.el.getElementsByTagName('label')[0].style.visibility = 'hidden';
	},
	
	// disable the button
	disable: function() {
		this.enabled = false;
		this.active = false;
		Element.addClassName(this.el, 'disabled');
		Element.removeClassName(this.el, 'option');
		Element.removeClassName(this.el, 'active');
		this.radio.checked = false;
	},
	
	// enable the button (can be activated)
	enable: function() {
		if(!this.active) {
			this.enabled = true;
			Element.addClassName(this.el, 'option');
			Element.removeClassName(this.el, 'disabled');
			Element.removeClassName(this.el, 'active');
		}
	},
	
	// activate the button
	activate: function() {
		this.enabled = false;
		this.active = true;
		Element.addClassName(this.el, 'active');
		Element.removeClassName(this.el, 'option');
		Element.removeClassName(this.el, 'disabled');
		Element.removeClassName(this.el, 'hover');
		this.radio.checked = true;
		
		// deactivate others
		for(var i = 0; i < this.others.length; i++) {
			this.others[i].deactivate();
		}
	},
	
	// deactivate the button
	deactivate: function() {
		if(this.active) {
			this.active = false;
			this.enable();
			this.radio.checked = false;
		}
	},
	
	// mouseover event
	onMouseOver: function() {
		if(this.enabled) {
			Element.addClassName(this.el, 'hover');
		}
	},
	
	// mouseout event
	onMouseOut: function() {
		Element.removeClassName(this.el, 'hover');
	},
	
	// onclick event
	onClick: function() {
		if(this.enabled) {
			this.activate();	// activate button
			this.action();		// perform any actions
		}
	},
	
	// specify which other buttons control the same variable
	setOthers: function() {
		var elements = [];
		$c(arguments).each(function(el){
			elements.push($(el));
		});
		this.others = elements;
	}
};

// Upon load, create buttons and set up dependencies
if(document.getElementById) {
	attachOnload( function() {
		
		/***** set up transitions *****/
		
		// define transition duration
		var transitionDuration = 500;

		// extend the fx.Height class to allow expand() and collapse() functions
		Object.extend(fx.Height.prototype, {
			expand: function() {
				if (this.el.offsetHeight == 0) this.custom(0, this.el.scrollHeight);
			},
			
			collapse: function() {
				if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0);
			}
		});
		
		// create transitions for price calculator totals
		var toggleDiscFormatPrice = new fx.Height('discFormatPriceWrap', { duration: transitionDuration });
		toggleDiscFormatPrice.hide();
		var toggleDesignPrice = new fx.Height('designPriceWrap', { duration: transitionDuration });
		toggleDesignPrice.hide();
		var togglePrintPrice = new fx.Height('printPriceWrap', { duration: transitionDuration });
		togglePrintPrice.hide();
		var togglePackagePrice = new fx.Height('packagePriceWrap', { duration: transitionDuration });
		togglePackagePrice.hide();
		var toggleColorPrice = new fx.Height('colorTotalCostWrap', { duration: transitionDuration });
		toggleColorPrice.hide();

		// create transition for pre-built packages selection
		var toggleRetailCD = new fx.Height('retailCD', { duration: transitionDuration });
		toggleRetailCD.hide();
		var toggleRetailDVD = new fx.Height('retailDVD', { duration: transitionDuration });
		toggleRetailDVD.hide();
		var toggleJewelCase = new fx.Height('jewelCasePackage', { duration: transitionDuration });
		toggleJewelCase.hide();
		var toggleDVDCase = new fx.Height('DVDCasePackage', { duration: transitionDuration });
		toggleDVDCase.hide();
		
		function discFormatSelected () {
			return (discFormatStandard.active || discFormatMini.active || discFormatBusiness.active);	
		}
		
		function printTypeSelected () {
			return (printTypeBlackText.active || printTypePhotoMatte.active || printTypePhotoGlossy.active || printTypeOffset.active || printTypeSilkscreen.active);	
		}
		
		function packageTypeSelected () {
			return (packageTypeBulk.active || packageTypeVinyl.active || packageTypeSleeve.active || packageTypeStandard.active || packageTypeSlimline.active || packageTypeTrimpak.active || packageTypeSlimpak.active || packageTypeClamshell.active || packageTypeDvd.active || packageTypeRetailCD.active || packageTypeRetailDVD.active || packageTypeJewelCasePackage.active || packageTypeDVDCasePackage.active);	
		}
		
		function disableDiscFormats () {
			discFormatStandard.disable();
			discFormatMini.disable();
			discFormatBusiness.disable();
		}
		
		function discDesignSelected() {
			return (discDesignOwn.active || discDesignUs.active);	
		}
		
		function enableDiscDesign () {
			discDesignOwn.enable();
			discDesignUs.enable();
		}
		
		function disableDiscDesign () {
			discDesignOwn.disable();
			discDesignUs.disable();
		}
		
		function disablePrintTypes () {
			printTypeBlackText.disable();
			printTypePhotoMatte.disable();
			printTypePhotoGlossy.disable();
			printTypeOffset.disable();
			printTypeSilkscreen.disable();
		}
		
		function disableReplicationPrintTypes () {
			printTypeOffset.disable();
			printTypeSilkscreen.disable();
		}
		
		function disableDuplicationPrintTypes () {
			printTypeBlackText.disable();
			printTypePhotoMatte.disable();
			printTypePhotoGlossy.disable();
		}
		
		function enablePrintTypes () {
			printTypeBlackText.enable();
			printTypePhotoMatte.enable();
			printTypePhotoGlossy.enable();
			printTypeOffset.enable();
			printTypeSilkscreen.enable();
		}
		
		function enablePackageTypes () {
			packageTypeBulk.enable();
			packageTypeVinyl.enable();
			packageTypeSleeve.enable();
			packageTypeStandard.enable();
			packageTypeSlimline.enable();
			packageTypeTrimpak.enable();
			packageTypeSlimpak.enable();
			packageTypeClamshell.enable();
			packageTypeDvd.enable();
			packageTypeRetailCD.enable();
			packageTypeRetailDVD.enable();
			packageTypeJewelCasePackage.enable();
			packageTypeDVDCasePackage.enable();	
		}
		
		function disablePackageTypes () {
			packageTypeBulk.disable();
			packageTypeVinyl.disable();
			packageTypeSleeve.disable();
			packageTypeStandard.disable();
			packageTypeSlimline.disable();
			packageTypeTrimpak.disable();
			packageTypeSlimpak.disable();
			packageTypeClamshell.disable();
			packageTypeDvd.disable();
			packageTypeRetailCD.disable();
			packageTypeRetailDVD.disable();
			packageTypeJewelCasePackage.disable();
			packageTypeDVDCasePackage.disable();	
		}
		
		function setMiniPackageTypes () {
			packageTypeSlimline.disable();
			packageTypeStandard.disable();
			packageTypeTrimpak.disable();
			packageTypeSlimpak.disable();
			packageTypeClamshell.disable();
			packageTypeDvd.disable();
			packageTypeSleeve.disable();
			packageTypeVinyl.enable();
			packageTypeBulk.enable();
			packageTypeRetailCD.disable();
			packageTypeRetailDVD.disable();
			packageTypeJewelCasePackage.disable();
			packageTypeDVDCasePackage.disable();	
		}
		
		function setBusinessPackageTypes () {
			packageTypeSlimline.disable();
			packageTypeStandard.disable();
			packageTypeTrimpak.disable();
			packageTypeSlimpak.disable();
			packageTypeClamshell.disable();
			packageTypeDvd.disable();
			packageTypeSleeve.disable();
			packageTypeVinyl.enable();
			packageTypeBulk.enable();
			packageTypeRetailCD.disable();
			packageTypeRetailDVD.disable();
			packageTypeJewelCasePackage.disable();
			packageTypeDVDCasePackage.disable();	
		}
		
		function checkSteps() {
			if(discFormatSelected()) {
				enableDiscDesign();
				if (discDesignSelected()) {
					enablePrintTypes();
					if (printTypeSelected()) {
						enablePackageTypes();
						if (discFormatBusiness.active) { setBusinessPackageTypes(); }
						else if (discFormatMini.active) { setMiniPackageTypes(); }
					} else {
						disablePackageTypes();
					}
				} else {
					disablePrintTypes();
					disablePackageTypes();
				}
			} else {
				disableDiscDesign();
				disablePrintTypes();
				disablePackageTypes();
			}	
		}
		
		// function to check statuses
		function checkToggles() {
			// if disc type is CD or DVD
			if(quantityTextInput.value > 0) {

			discTypeCd.enable();
			discTypeDvd.enable();
			
			if( (discTypeCd.active || discTypeDvd.active) && !(pageType.value == 'print_only')) {
				
				// expand cd format options
				if(discTypeCd.active) {
					if (pageType.value == 'duplication') {
						toggleJewelCase.expand();

						toggleRetailCD.collapse();
						toggleRetailDVD.collapse();
						toggleDVDCase.collapse();

						
						packageTypeDVDCasePackage.deactivate();
						if (discDesignSelected()) {
							disableReplicationPrintTypes();
							printTypePhotoGlossy.enable();
							if (discFormatMini.active || discFormatBusiness.active) {
								printTypePhotoMatte.disable();
								printTypeBlackText.disable();
							} else {
								printTypePhotoMatte.enable();
								printTypeBlackText.enable();
							}
						}
					} else if (pageType.value == 'replication') {
						toggleRetailCD.expand();

						toggleRetailDVD.collapse();
						toggleJewelCase.collapse();
						toggleDVDCase.collapse();
						
						packageTypeRetailDVD.deactivate();
						if (discDesignSelected()) {
							disableDuplicationPrintTypes();
							printTypeSilkscreen.enable();
							if (discFormatMini.active || discFormatBusiness.active) {
								printTypeOffset.disable();
							} else {
								printTypeOffset.enable();
							}
						}
					}
				} else if(discTypeDvd.active) {
					
					discFormatBusiness.disable();
					
					if (pageType.value == 'duplication') {
						discFormatMini.disable();
						discFormatStandard.activate();
						
						toggleRetailDVD.collapse();
						toggleRetailCD.collapse();
						toggleJewelCase.collapse();
						
						toggleDVDCase.expand();
						
						packageTypeJewelCasePackage.deactivate();
						
						if (discDesignSelected()) {
							disableReplicationPrintTypes();
							printTypePhotoGlossy.enable();
							
							if (discFormatMini.active) {
								printTypePhotoMatte.disable();
								printTypeBlackText.disable();
							} else {
								printTypePhotoMatte.enable();
								printTypeBlackText.enable();
							}
						
						}
						
					} else if (pageType.value == 'replication') {
						toggleRetailDVD.expand();
						toggleRetailCD.collapse();
						toggleDVDCase.collapse();
						toggleJewelCase.collapse();
						packageTypeRetailCD.deactivate();
						
						if (discDesignSelected()) {
							disableDuplicationPrintTypes();
							printTypeOffset.enable();
							if (discFormatMini.active) {
								printTypeSilkscreen.disable();
							} else {
								printTypeSilkscreen.enable();	
							}
						
						}
					}
				}
				
			} else if (pageType.value == 'print_only') {
				discFormatMini.disable();
				discFormatBusiness.disable();
				enablePrintTypes();
				disablePackageTypes();
				
			}
	
		} else {
				
				discTypeCd.deactivate();
				discTypeDvd.deactivate();
				discFormatStandard.deactivate();
				discFormatMini.deactivate();
				discFormatBusiness.deactivate();
				discDesignOwn.deactivate();
				discDesignUs.deactivate();
				printTypePhotoGlossy.deactivate();
				printTypePhotoMatte.deactivate();
				printTypeBlackText.deactivate();
				printTypeSilkscreen.deactivate();
				printTypeOffset.deactivate();
				packageTypeBulk.deactivate();
				packageTypeVinyl.deactivate();
				packageTypeSleeve.deactivate();
				packageTypeStandard.deactivate();
				packageTypeSlimline.deactivate();
				packageTypeTrimpak.deactivate();
				packageTypeSlimpak.deactivate();
				packageTypeClamshell.deactivate();
				packageTypeDvd.deactivate();
				packageTypeRetailCD.deactivate();
				packageTypeRetailDVD.deactivate();
				packageTypeJewelCasePackage.deactivate();
				packageTypeDVDCasePackage.deactivate();
				
				discTypeCd.disable();
				discTypeDvd.disable();
				disableDiscFormats();
				disableDiscDesign();
				disablePrintTypes();
				disablePackageTypes();
			}

		if(discFormatSelected() && printTypeSelected() && (packageTypeSelected() || pageType.value == 'print_only')) {
			continueButton.disabled = false;
		} else {
			continueButton.disabled = true;
		}
		setPrices();
		
		}

		
//////////////////////////
///// MATH FUNCTIONS /////
//////////////////////////
function pF(n) {
	
  var result = 'FREE';
  
  if (n>0) {
	  result = '+$'+n.toFixed(2);
  } else if (n<0) {
	  n *= -1;
	  result = '-$'+n.toFixed(2);
  }

  return result;
}

function setPrices () {
var basePrice = 0;
var discFormatPrice = 0;
var discDesignPrice = 0;
var printPrice = 0;
var colorTotalCost = 0;
var packagePrice = 0;
	
if (pageType.value == 'duplication') {
	
	if (discTypeCd.active) {
		if (quantityTextInput.value < 1000) {
			basePrice = .99;
		} else {
			basePrice = .75;
		}
		
		// SPECIAL FORMAT CHECK AND THERMAL CHECK //
		if(discFormatBusiness.active || discFormatMini.active) {
			discFormatPrice = .10;
		} else if (printTypePhotoGlossy.active) {
			printPrice = .30;
		}

	} else if (discTypeDvd.active) {
		
		if (quantityTextInput.value < 1000) {
			basePrice = 1.25;
		} else {
			basePrice = .99;
		}
		
		// THERMAL CHECK //
		if (printTypePhotoGlossy.active) {
			printPrice = .30;			
		}

	}
	// PRISM PRINTING //
	if (printTypeBlackText.active) {
		printPrice = -.10;
	}
	
} else if (pageType.value == 'replication') {

	if (discTypeCd.active) {
		
		if (quantityTextInput.value < 1000) {
			basePrice = 260 / quantityTextInput.value;
		} else {
			basePrice = .26;
		}
		
		// SPECIAL FORMAT CHECK //
		if(discFormatBusiness.active) {
			discFormatPrice = .30;
		} else if(discFormatMini.active) {
			discFormatPrice = .20;
		}
		
	} else if(discTypeDvd.active) {

		if (quantityTextInput.value < 1000) {
			basePrice = 470 / quantityTextInput.value;
		} else {
			basePrice = .47;
		}
		
		// SPECIAL FORMAT CHECK //
		if(!discFormatStandard.active) {
			discFormatPrice = .10;
		}
	}

	// OFFSET PRINTING //
	if (printTypeOffset.active) {
		printPrice = .05;
	}
} else if (pageType.value == 'print_only') {

if(printTypePhotoGlossy.active) {
	if (discTypeCd.active) { printPrice = 1.05; }
	else if (discTypeDvd.active) { printPrice = 1.25; }
} else if (printTypePhotoMatte.active) {
	if (discTypeCd.active) { printPrice = .75; }
	else if (discTypeDvd.active) { printPrice = .95; }
} else if (printTypeBlackText.active) {
	if (discTypeCd.active) { printPrice = .65; }
	else if (discTypeDvd.active) { printPrice = .85; }
} else if (printTypeSilkscreen.active) {
	if (discTypeCd.active) { printPrice = .55; }
	else if (discTypeDvd.active) { printPrice = .65; }
} else if (printTypeOffset.active) {
	if (discTypeCd.active) { printPrice = .7; }
	else if (discTypeDvd.active) { printPrice = .8; }
}

}

if (packageTypeSleeve.active) {
	packagePrice = .11;
} else if (packageTypeClamshell.active || packageTypeTrimpak.active || packageTypeSlimpak.active || packageTypeSlimline.active || packageTypeStandard.active || packageTypeDvd.active) {
	packagePrice = .3;
} else if (packageTypeVinyl.active && discFormatStandard.active) {
	packagePrice = .2;
} else if (packageTypeVinyl.active) {
	packagePrice = .1;
} else if (packageTypeRetailCD.active) {
	packagePrice = .6;
} else if (packageTypeRetailDVD.active) {
	packagePrice = .7;
} else if (packageTypeJewelCasePackage.active) {
	packagePrice = 1.08;
} else if (packageTypeDVDCasePackage.active) {
	packagePrice = .97;
}

if (printTypeSilkscreen.active) {
	colorTotalCost = 25 * 5; // 5 Colors
} else if (printTypeOffset.active) {
	colorTotalCost = 125;	
}

if (discDesignUs.active) {
discDesignPrice = 99;	
}



if (quantityTextInput.value > 0 && discFormatSelected()) {
	document.quote.perUnitPrice.value = pF(basePrice);
} else {
	discFormatPrice = 0;
	printPrice = 0;
	packagePrice = 0;
	colorTotalCost = 0;
	document.quote.perUnitPrice.value = '';
}

if (discFormatPrice == 0) {
	document.quote.discFormatPrice.value = '';
	toggleDiscFormatPrice.collapse();
} else {
	document.quote.discFormatPrice.value = pF(discFormatPrice);
	toggleDiscFormatPrice.expand();
}

if (printPrice == 0) {
	document.quote.printPrice.value = '';
	togglePrintPrice.collapse();
} else {
	document.quote.printPrice.value = pF(printPrice);
	togglePrintPrice.expand();
}

if (packagePrice == 0) {
	document.quote.packagePrice.value = '';
	togglePackagePrice.collapse();
} else {
	document.quote.packagePrice.value = pF(packagePrice);
	togglePackagePrice.expand();
}

if (discDesignPrice == 0) {
	document.quote.discDesignPrice.value = '';
	toggleDesignPrice.collapse();
} else {
	document.quote.discDesignPrice.value = pF(discDesignPrice);
	toggleDesignPrice.expand();
}

if (colorTotalCost == 0) {
	document.quote.colorTotalCost.value = '';
	toggleColorPrice.collapse();
} else {
	document.quote.colorTotalCost.value = pF(colorTotalCost);
	toggleColorPrice.expand();
}

if (quantityTextInput.value > 0) {
	document.quote.totalUnitPrice.value = '$'+(((basePrice+discFormatPrice+printPrice+packagePrice)*quantityTextInput.value + discDesignPrice + colorTotalCost)/quantityTextInput.value).toFixed(2);
} else {
	document.quote.totalUnitPrice.value = '$0.00';
}
document.quote.total.value = '$'+((basePrice+discFormatPrice+printPrice+packagePrice)*quantityTextInput.value + discDesignPrice + colorTotalCost).toFixed(2);

}

		// set up variables
		var quantity = $('quantity');
		var quantityText = $('quantity-text');
		var quantityTextInput = $('quantity-text-input');
		
		// restrict input text box to integers between 1 and 25000
		quantityTextInput.onchange = function() {
			// minimum 1
			if(Number(this.value) < 0) {
				this.value = 0;
			}
			
			// only integers
			if(/\D/.test(this.value)) { // search for non-digits
				this.value = 300;
				alert('Please enter a whole number between 1 and 25,000.');
				this.focus();
			}
			
			if(Number(this.value) > 999 && pageType.value == 'duplication') {
				document.getElementById('popups').style.visibility="visible";
				document.getElementById('tryReplication').style.display="block";
			}
			if(Number(this.value) < 1000 && pageType.value == 'replication') {
				document.getElementById('popups').style.visibility="visible";
				document.getElementById('tryDuplication').style.display="block";
				this.value = 1000;
			}
			
			checkToggles();
		};
		
		var pageType = $('pageType');
		
		/***** instantiate buttons *****/
		var discTypeCd = new Button('discType-cd');
		var discTypeDvd = new Button('discType-dvd');
		var discFormatStandard = new Button('discFormat-standard');
		var discFormatBusiness = new Button('discFormat-business');
		var discFormatMini = new Button('discFormat-mini');
		var discDesignOwn = new Button('discDesign-own');
		var discDesignUs = new Button('discDesign-us');
		var printTypePhotoGlossy = new Button('printType-photoGlossy');
		var printTypePhotoMatte = new Button('printType-photoMatte');
		var printTypeBlackText = new Button('printType-blackText');
		var printTypeSilkscreen = new Button('printType-silkscreen');
		var printTypeOffset = new Button('printType-offset');
		var packageTypeSlimline = new Button('packageType-slimline');
		var packageTypeStandard = new Button('packageType-standard');
		var packageTypeTrimpak = new Button('packageType-trimpak');
		var packageTypeSlimpak = new Button('packageType-slimpak');
		var packageTypeClamshell = new Button('packageType-clamshell');
		var packageTypeDvd = new Button('packageType-dvd');
		var packageTypeSleeve = new Button('packageType-sleeve');
		var packageTypeVinyl = new Button('packageType-vinyl');
		var packageTypeBulk = new Button('packageType-bulk');
		var packageTypeRetailCD = new Button('packageType-retailCD');
		var packageTypeRetailDVD = new Button('packageType-retailDVD');
		var packageTypeJewelCasePackage = new Button('packageType-jewelCasePackage');
		var packageTypeDVDCasePackage = new Button('packageType-DVDCasePackage');
		
		/***** assign actions to each button *****/
		
		// Disc Type: CD
		discTypeCd.setOthers(discTypeDvd);
		discTypeCd.action = function() {
			checkSteps();
			checkToggles();
			discFormatStandard.enable();
			discFormatMini.enable();
			discFormatBusiness.enable();
			if (discFormatStandard.active) {
				discFormatStandard.action();
			}
			checkToggles();
		};
		
		// Disc Type: DVD
		discTypeDvd.setOthers(discTypeCd);
		discTypeDvd.action = function() {
			checkSteps();
			checkToggles();
			discFormatStandard.enable();
			discFormatMini.enable();
			discFormatBusiness.disable();
			if (discFormatStandard.active) {
				discFormatStandard.action();
			}
			checkToggles();
		};
		
		// Disc Format: Standard
		discFormatStandard.setOthers(discFormatBusiness,discFormatMini);
		discFormatStandard.action = function() {
			checkSteps();
			if (!(pageType.value == 'print_only') && printTypeSelected()) {
			packageTypeSlimline.enable();
			packageTypeStandard.enable();
			packageTypeTrimpak.enable();
			packageTypeSlimpak.enable();
			packageTypeClamshell.enable();
			packageTypeDvd.enable();
			packageTypeSleeve.enable();
			packageTypeVinyl.enable();
			packageTypeBulk.enable();
			packageTypeRetailCD.enable();
			packageTypeRetailDVD.enable();
			packageTypeJewelCasePackage.enable();
			packageTypeDVDCasePackage.enable();
			}
			checkToggles();
		};
		
		// Disc Format: Business Card
		discFormatBusiness.setOthers(discFormatStandard,discFormatMini);
		discFormatBusiness.action = function() {
			checkSteps();
			checkToggles();
		};
		
		// Disc Format: Mini
		discFormatMini.setOthers(discFormatStandard,discFormatBusiness);
		discFormatMini.action = function() {
			checkSteps();
			checkToggles();
		};
		

		// Disc Design: You
		discDesignOwn.setOthers(discDesignUs);
		discDesignOwn.action = function() {
			checkSteps();
			checkToggles();
		};
		
		// Disc Design: Us
		discDesignUs.setOthers(discDesignOwn);
		discDesignUs.action = function() {
			checkSteps();
			checkToggles();
		};
		
		// Print Type: Thermal
		printTypePhotoGlossy.setOthers(printTypePhotoMatte,printTypeBlackText,printTypeSilkscreen,printTypeOffset);
		printTypePhotoGlossy.action = function() {
			checkSteps();
			checkToggles();
		}
		
		// Print Type: Inkjet
		printTypePhotoMatte.setOthers(printTypePhotoGlossy,printTypeBlackText,printTypeSilkscreen,printTypeOffset);
		printTypePhotoMatte.action = function() {
			checkSteps();
			checkToggles();
		}
		
		// Print Type: Prism
		printTypeBlackText.setOthers(printTypePhotoGlossy,printTypePhotoMatte,printTypeSilkscreen,printTypeOffset);
		printTypeBlackText.action = function() {
			checkSteps();
			checkToggles();
		}
		
		// Print Type: Silkscreen
		printTypeSilkscreen.setOthers(printTypePhotoGlossy,printTypePhotoMatte,printTypeBlackText,printTypeOffset);
		printTypeSilkscreen.action = function() {
			checkSteps();
			checkToggles();
		}

		// Print Type: Offset
		printTypeOffset.setOthers(printTypePhotoGlossy,printTypePhotoMatte,printTypeBlackText,printTypeSilkscreen);
		printTypeOffset.action = function() {
			checkSteps();
			checkToggles();
		}
		
		// Case Type: Slimline
		packageTypeSlimline.setOthers(packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeSlimline.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Standard Jewel
		packageTypeStandard.setOthers(packageTypeSlimline,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeStandard.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Trimpak
		packageTypeTrimpak.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeTrimpak.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Slimpak
		packageTypeSlimpak.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeSlimpak.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Clamshell
		packageTypeClamshell.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeClamshell.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Dvd Style
		packageTypeDvd.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeDvd.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Paper Sleeve
		packageTypeSleeve.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeSleeve.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};
		
		// Case Type: Vinyl Sleeve
		packageTypeVinyl.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeVinyl.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.enable();
			discFormatMini.enable();
			checkToggles();
		};

		// Case Type: Bulk
		packageTypeBulk.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage);
		packageTypeBulk.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.enable();
			discFormatMini.enable();
			checkToggles();
		};

		// Case Type: Retail Ready CD
		packageTypeRetailCD.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeRetailCD.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};

		// Case Type: Retail Ready DVD
		packageTypeRetailDVD.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeJewelCasePackage,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeRetailDVD.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};

		// Case Type: Jewel Case Package
		packageTypeJewelCasePackage.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeDVDCasePackage,packageTypeBulk);
		packageTypeJewelCasePackage.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};

		// Case Type: DVD Case Package
		packageTypeDVDCasePackage.setOthers(packageTypeSlimline,packageTypeStandard,packageTypeTrimpak,packageTypeSlimpak,packageTypeClamshell,packageTypeDvd,packageTypeSleeve,packageTypeVinyl,packageTypeRetailCD,packageTypeRetailDVD,packageTypeJewelCasePackage,packageTypeBulk);
		packageTypeDVDCasePackage.action = function() {
			discFormatStandard.enable();
			discFormatBusiness.disable();
			discFormatMini.disable();
			checkToggles();
		};

		/***** Set up reset button *****/
		var reset = $('reset');
		reset.onclick = function() {
			if(confirm('Are you sure you want to clear your selections?')) {
				quantityTextInput.value = '0';
				checkToggles();
			}
		};
		
		/***** Set up complete button *****/
		var continueButton = $('continue');
		continueButton.onmouseover = function() {
			checkToggles();
		};

		

		/***** Upon load, perform activation actions for any pre-selected buttons *****/
		
		// array of buttons
		buttons = Array(
			discTypeCd,
			discTypeDvd,
			discFormatStandard,
			discFormatBusiness,
			discFormatMini,
			discDesignOwn,
			discDesignUs,
			packageTypeBulk,
			packageTypeVinyl,
			packageTypeSleeve,
			packageTypeStandard,
			packageTypeSlimline,
			packageTypeTrimpak,
			packageTypeSlimpak,
			packageTypeClamshell,
			packageTypeDvd,
			packageTypeRetailCD,
			packageTypeRetailDVD,
			packageTypeJewelCasePackage,
			packageTypeDVDCasePackage
		);

		checkSteps();

		// perform activation routines for selected buttons
		for(var i = 0; i < buttons.length; i++) {
			if(buttons[i].active) {
				buttons[i].activate();
				buttons[i].action();
			}
		}

		checkToggles();

	});

}

// Attach an onload event 
function attachOnload(handler)
{
	if(window.addEventListener) {
		window.addEventListener("load",handler,false);
	}
	else if(window.attachEvent) {
		window.attachEvent("onload",handler);
	}
	else if(window.onload) {
		var oldHandler = window.onload;
		window.onload = function piggyback() {
			oldHandler();
			handler();
		};
	}
	else {
		window.onload = handler;
	}
}

//Create an array 
var allPageTags = new Array(); 

function setType() {
if (document.create_account.type[0].checked) { hide('company'); }
else { show('company'); }
}

function onSubmitForm(goto)
{
  if(goto != 'Email')
  {
    document.quote.action ="details.php";
  }
  document.quote.submit();
}

function show(thisId){ document.getElementById('popups').style.visibility="visible";document.getElementById(thisId).style.display="block"; }
function hide(thisId){ document.getElementById('popups').style.visibility="hidden";document.getElementById(thisId).style.display="none"; }