/**************************************************
DVReplicatie.nl Offerte systeem: By Jeroen Gerritse (jeroen@dta.nl)
**************************************************/

// 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.removeClassName(this.el, 'option');
        Element.removeClassName(this.el, 'active');
		Element.removeClassName(this.el, 'gray');
        Element.addClassName(this.el, 'disabled');
        this.radio.checked = false;
    },
	
	   // gray the button
    	gray: function() {
        this.enabled = true;
        this.active = false;
        Element.removeClassName(this.el, 'disabled');
        Element.removeClassName(this.el, 'option');
        Element.removeClassName(this.el, 'active');
		Element.addClassName(this.el, 'gray');
        this.radio.checked = false;
    },
   
   // enable the button (can be activated)
    enable: function() {
        if (!this.active) {
            this.enabled = true;
            Element.removeClassName(this.el, 'disabled');
            Element.removeClassName(this.el, 'active');
			Element.removeClassName(this.el, 'gray'); 
			Element.addClassName(this.el, 'option');
        }
    },
    
	// activate the button
    activate: function() {
        this.enabled = false;
        this.active = true;
        Element.removeClassName(this.el, 'option');
        Element.removeClassName(this.el, 'disabled');
        Element.removeClassName(this.el, 'hover');
		Element.removeClassName(this.el, 'gray'); 
		Element.addClassName(this.el, 'active');
        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 = 250; 
		
		// submit button
        var getPrice = $('getPrice');
        /*		var populateProject = $('populateProject');*/
        
		// 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 transition for Jewelcase SOORT
        var toggleJewelcasesoort = new fx.Height('jewelcase-soort', {
            duration: transitionDuration
        });
        toggleJewelcasesoort.hide(); 
		
		
		// create transition for DRUKWERK Jewelcasevoorkant SOORT
        var toggleJewelcasevoorkantsoort = new fx.Height('jewelcasevoorkant-soort', {
            duration: transitionDuration
        });
        toggleJewelcasevoorkantsoort.hide(); 
		
		// create transition for DRUKWERK DVDbinnenkant SOORT
        var toggleDvdbinnenkantsoort = new fx.Height('dvdbinnenkant-soort', {
            duration: transitionDuration
        });
        toggleDvdbinnenkantsoort.hide(); 
		
		
		// create transition for DVDbox SOORT
        var toggleDVDboxsoort = new fx.Height('dvdbox-soort', {
            duration: transitionDuration
        });
        toggleDVDboxsoort.hide(); 
		
		// create transition for Digipak SOORT
        var toggleDigipaksoort = new fx.Height('digipak-soort', {
            duration: transitionDuration
        });
        toggleDigipaksoort.hide(); 
		
		// create transition for Flexfile SOORT
        var toggleFlexfilesoort = new fx.Height('flexfile-soort', {
            duration: transitionDuration
        });
        toggleFlexfilesoort.hide(); 
		
		// create transition for Sleeve SOORT
        var toggleSleevesoort = new fx.Height('sleeve-soort', {
            duration: transitionDuration
        });
        toggleSleevesoort.hide(); 
		
		// create transition for cellphone wrap selection
        var toggleCello = new fx.Height('cellophane', {
            duration: transitionDuration
        });
        toggleCello.hide(); 
		
		// create transition for kleefstrip wrap selection
        var toggleKleef = new fx.Height('kleefstrip', {
            duration: transitionDuration
        });
        toggleKleef.hide(); 
			
		// create transition for shrink wrap selection
        var toggleShrinkWrap = new fx.Height('shrink-wrap', {
            duration: transitionDuration
        });
        toggleShrinkWrap.hide(); 
		
		// create transition for barcode selection
        var toggleBarCode = new fx.Height('barcode', {
            duration: transitionDuration
        });
        toggleBarCode.hide(); 
		
		// create transition for disctray selection
        var toggleDigipag = new fx.Height('digipaginas-select', {
            duration: transitionDuration
        });
        toggleDigipag.hide(); 
		
		// create transition for disctray selection
        var toggleDiscTrays = new fx.Height('disctrays', {
            duration: transitionDuration
        });
        toggleDiscTrays.hide(); 
		
		// create transition for disctray selection
        var toggleBookletpag = new fx.Height('paginas-select', {
            duration: transitionDuration
        });
        toggleBookletpag.hide(); 
			
		// create transition for disctray selection
        var toggleBookletpagdvd = new fx.Height('dvdpaginas-select', {
            duration: transitionDuration
        });
        toggleBookletpagdvd.hide(); 
		   
		// create transitions for tray card and dvd inside insert 2-sided checkboxes
	   var toggleCovercard2Sided = new fx.Height('insertType-covercard-2sided', {
            duration: transitionDuration
        });      
		toggleCovercard2Sided.hide();
        
		var toggleVouwvel2Sided = new fx.Height('insertType-vouwvel-2sided', {
            duration: transitionDuration
        });
        toggleVouwvel2Sided.hide();
		
		var toggleTrayCard2Sided = new fx.Height('insertType-traycard-2sided', {
            duration: transitionDuration
        });
        toggleTrayCard2Sided.hide();
		
		var toggleDvdInside2Sided = new fx.Height('insertType-dvdInside-2sided', {
            duration: transitionDuration
        });
		toggleDvdInside2Sided.hide(); 
		
		var toggleDvdCaseSlip2Sided = new fx.Height('insertType-dvdSlipcase-2sided', {
            duration: transitionDuration
        });
		toggleDvdCaseSlip2Sided.hide();
		// function to check toggled items status
        function checkToggles() { 
		
			// COLLAPSES / EXPANDERS // 
		// if disc type is CD, DVD or Blu
            if (CdSoortA.active || DvdSoortA.active || DvdSoortB.active || discTypeBlu.active) { 
			
							
				//allow shrinkwrap if case is printed jacket or slimcase
                if (caseTypeJacket.active || DVDboxSoortC.active || DVDboxSoortD.active || JewelcaseSoortC.active || JewelcaseSoortD.active || FlexfileSoortA.active || FlexfileSoortB.active || DigipakSoortA.active || DigipakSoortB.active  ) {
                    if (CdSoortA.active) {
                   toggleShrinkWrap.expand();
                    } else if (DvdSoortA.active) {
					toggleShrinkWrap.expand();
					} else if (DvdSoortB.active) {
					toggleShrinkWrap.expand();
                    } else if (discTypeBlu.active) {
					toggleShrinkWrap.expand();
                    } else {
                        $('shrinkWrap').checked = '';
                        toggleShrinkWrap.collapse();
                    }
                } else {
                    $('shrinkWrap').checked = '';
                    toggleShrinkWrap.collapse();
                } 
				
				// allow cellophane if case is Standard Jewel and disc is not blank
                if (DVDboxSoortA.active || DVDboxSoortB.active || JewelcaseSoortA.active || JewelcaseSoortB.active || caseTypeFlexible.active) {
                    if (CdSoortA.active) {
                        toggleCello.expand();
                    } else if (DvdSoortA.active) {
                        toggleCello.expand();
					} else if (DvdSoortB.active) {
                        toggleCello.expand();
                    } else if (discTypeBlu.active) {
                        toggleCello.expand();
                    } else {
                        $('cellophaneWrap').checked = '';
                        toggleCello.collapse();
                    }
                } else {
                    $('cellophaneWrap').checked = '';
                    toggleCello.collapse();
                } 
				
				// allow Kleefstrip
                if (SleeveSoortA.active || SleeveSoortB.active) {
                    if (CdSoortA.active) {
                        toggleKleef.expand();
                    } else if (DvdSoortA.active) {
                        toggleKleef.expand();
					} else if (DvdSoortB.active) {
                        toggleKleef.expand();
                    } else if (discTypeBlu.active) {
                        toggleKleef.expand();
                    } else {
                        $('kleefStrip').checked = '';
                        toggleKleef.collapse();
                    }
                } else {
                    $('kleefStrip').checked = '';
                    toggleKleef.collapse();
                } 
				

				
				
				// allow CD Booklet Pagina's
                if (caseTypeStandard.active & insertTypeCdbooklet.active || DigipakSoortB.active & insertTypeCdbooklet.active || FlexfileSoortB.active & insertTypeCdbooklet.active ) {
                    if (CdSoortA.active) {
                        toggleBookletpag.expand();
						$('bookletPag').selectedIndex=2;
                    } else if (DvdSoortA.active) {
                        toggleBookletpag.expand();
						$('bookletPag').selectedIndex=2;
					 } else if (DvdSoortB.active) {
                        toggleBookletpag.expand();
						$('bookletPag').selectedIndex=2;
                    } else if (discTypeBlu.active) {
                        toggleBookletpag.expand();
						$('bookletPag').selectedIndex=2;
                    } else {
                        $('bookletPag').checked = '';
                        toggleBookletpag.collapse();
						$('bookletPag').selectedIndex=9;
                    }
                } else {
                    $('bookletPag').checked = '';
                    toggleBookletpag.collapse();
					$('bookletPag').selectedIndex=9;
                } 
				
				// allow DVD Booklet Pagina's
                if (caseTypeDvd.active & insertTypeDvdbooklet.active || DigipakSoortA.active & insertTypeDvdbooklet.active || FlexfileSoortA.active & insertTypeDvdbooklet.active  || caseTypeFlexible.active & insertTypeDvdbooklet.active  ) {
                    if (CdSoortA.active) {
                        toggleBookletpagdvd.expand();
						$('bookletPagdvd').selectedIndex=2;
                    } else if (DvdSoortA.active) {
                        toggleBookletpagdvd.expand();
						$('bookletPagdvd').selectedIndex=2;
   			} else if (DvdSoortB.active) {
                        toggleBookletpagdvd.expand();
						$('bookletPagdvd').selectedIndex=2;
                    } else if (discTypeBlu.active) {
                        toggleBookletpagdvd.expand();
						$('bookletPagdvd').selectedIndex=2;
                    } else {
                        $('bookletPagdvd').checked ='';
                        toggleBookletpagdvd.collapse();
						$('bookletPagdvd').selectedIndex=9;
                    }
                } else {
                    $('bookletPagdvd').checked = '';
                    toggleBookletpagdvd.collapse();
					$('bookletPagdvd').selectedIndex=9;
                } 
				
				
				

			// Jewelcasevoorkant option	
                if (insertTypeVoorkant.active) {
                    toggleJewelcasevoorkantsoort.expand();
                } else {
                    toggleJewelcasevoorkantsoort.collapse();
                } 
			
				// DVDbinnenkant option	
                if (insertTypeBinnenkant.active) {
                    toggleDvdbinnenkantsoort.expand();
                } else {
                    toggleDvdbinnenkantsoort.collapse();
                } 
				
				// DVDbox option
                if (caseTypeDvd.active) {
                    toggleDVDboxsoort.expand();
                } else {
					DVDboxSoortA.gray();
					DVDboxSoortB.gray();
					DVDboxSoortC.gray();
					DVDboxSoortD.gray();
                    toggleDVDboxsoort.collapse();
                } 
				
				// Jewelcase option	
                if (caseTypeStandard.active) {
                    toggleJewelcasesoort.expand();
                } else {
					 JewelcaseSoortA.gray();
					 JewelcaseSoortB.gray();
					 JewelcaseSoortC.gray();
					 JewelcaseSoortD.gray();
                    toggleJewelcasesoort.collapse();
                } 
				
				
		
				
				// DigiPak option
                if (caseTypeDigipak.active) {
                    toggleDigipaksoort.expand();
                } else {
					DigipakSoortA.gray();
					DigipakSoortB.gray();
                    toggleDigipaksoort.collapse();
                } 
				
				// Flexfile option
                if (caseTypeFlexfile.active) {
                    toggleFlexfilesoort.expand();
                } else {
					FlexfileSoortA.gray();
					FlexfileSoortB.gray();
                    toggleFlexfilesoort.collapse();
                } 
				
				// Sleeve option
                if (caseTypeSleeve.active) {
                    toggleSleevesoort.expand();
                } else {
					SleeveSoortA.gray();
					SleeveSoortB.gray();
                    toggleSleevesoort.collapse();
                } 
				
				//allow barcode if case is printed jacket and disc is not blank
                if (caseTypeJacket.active || insertTypeTrayCard.active || insertTypeDvd.active || DigipakSoortA.active || DigipakSoortB.active || FlexfileSoortA.active || FlexfileSoortB.active) {
                    if (CdSoortA.active) {
                        toggleBarCode.expand();
                    } else if (DvdSoortA.active) {
                        toggleBarCode.expand();
					} else if (DvdSoortB.active) {
                        toggleBarCode.expand();
                    } else if (discTypeBlu.active) {
                        toggleBarCode.expand();
                    } else {
                        $('barCode').checked = '';
                        toggleBarCode.collapse();
                    }
                } else {
                    $('barCode').checked = '';
                    toggleBarCode.collapse();
                }
            }
			
			
			
			
			// if none is selected
            else {
                toggleCello.collapse();
                toggleShrinkWrap.collapse();
                toggleBarCode.collapse();
                toggleDiscTrays.collapse();
				toggleBookletpag.collapse();
				toggleDigipag.collapse();
				toggleBookletpagdvd.collapse();
                toggleDVDboxsoort.collapse();
				toggleDigipaksoort.collapse();
				toggleFlexfilesoort.collapse();
				toggleSleevesoort.collapse();
				toggleKleef.collapse();
                toggleJewelcasesoort.collapse();
				toggleCovercard2Sided.collapse();
				toggleVouwvel2Sided.collapse();
				toggleTrayCard2Sided.collapse();
		        toggleDvdCaseSlip2Sided.collapse();
		        toggleDvdInside2Sided.collapse();
				toggleDvdbinnenkantsoort.collapse();
				toggleJewelcasevoorkantsoort.collapse();
            } 
			
            // Covercard 2-sided option
            if (caseTypeStandard.active & insertTypeCovercard.active || DigipakSoortB.active & insertTypeCovercard.active || FlexfileSoortB.active & insertTypeCovercard.active) {
                toggleCovercard2Sided.expand();
			} else {
                $('covercard2sided').checked = '';
                toggleCovercard2Sided.collapse();
            }
			
		
			
			
			// Vouwvel 2-sided option
            if (caseTypeStandard.active & insertTypeVouwvel.active || DigipakSoortB.active & insertTypeVouwvel.active || FlexfileSoortB.active & insertTypeVouwvel.active) {
                toggleVouwvel2Sided.expand();
            } else {
				 $('vouwvel2sided').checked = '';
                toggleVouwvel2Sided.collapse();
            } 
			
			
			
			// tray card 2-sided option
            if (insertTypeTrayCard.active & JewelcaseSoortB.active) {
                toggleTrayCard2Sided.expand();
            } else {
				$('traycard2sided').checked = '';
                toggleTrayCard2Sided.collapse();
            } 
			
			// dvd slipcase insert 2-sided option
            if (insertTypeDvd.active & DVDboxSoortB.active || insertTypeDvd.active & DVDboxSoortD.active || insertTypeDvd.active & caseTypeFlexible.active) {
                toggleDvdCaseSlip2Sided.expand();
            } else {
				$('dvdSlipcase2sided').checked = '';
                toggleDvdCaseSlip2Sided.collapse();
            } 
			
			// dvd inside insert 2-sided option
            if (caseTypeDvd.active & insertTypeDvdInside.active || caseTypeFlexible.active & insertTypeDvdInside.active || DigipakSoortA.active & insertTypeDvdInside.active || FlexfileSoortA.active & insertTypeDvdInside.active) {
                toggleDvdInside2Sided.expand();
            } else {
				$('dvdInside2sided').checked = '';
                toggleDvdInside2Sided.collapse();
            } 
			

        }

		
		
/***** NIEUWE FIX *****/

        function clearButtons() 
		{ 
            if (discTypeNone.active) {
            caseTypeStandard.disable();
			caseTypeDvd.disable();
			caseTypeJacket.disable();
			caseTypeDigipak.disable();
			caseTypeFlexfile.disable();
			caseTypeFlexible.disable();
			caseTypeSleeve.disable();
			caseTypeSpindel.disable();
			caseTypeNone.disable();
			insertTypeNone.disable();
			insertTypeVoorkant.disable();
			insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeNone.disable();
			insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
            } 
		}
		
		function checkCases() 
		{ 
			if (!discTypeNone.enabled)  {
			caseTypeNone.enable();
			caseTypeStandard.enable();
			caseTypeDvd.enable();
			caseTypeJacket.enable();
			caseTypeDigipak.enable();
			caseTypeFlexfile.enable();
			caseTypeFlexible.enable();
			caseTypeSleeve.enable();
			caseTypeSpindel.enable();
	        caseTypeJacket.enable();
			}
			
		}
				/***** Pressing Geen @ inserts *****/
		function checkCombo() 
		{ 
			if ( JewelcaseSoortA.active && insertTypeNone.active  || JewelcaseSoortB.active && insertTypeNone.active )  {
			insertTypeVoorkant.gray();
			insertTypeCovercard.gray();
            insertTypeVouwvel.gray();
            insertTypeCdbooklet.gray();
			insertTypeTrayCard.gray();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
			}
			
				
			if ( JewelcaseSoortC.active && insertTypeNone.active  || JewelcaseSoortD.active && insertTypeNone.active || DigipakSoortB.active && insertTypeNone.active  || FlexfileSoortB.active && insertTypeNone.active )  {
			insertTypeVoorkant.gray();
			insertTypeCovercard.gray();
            insertTypeVouwvel.gray();
            insertTypeCdbooklet.gray();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
			}
			
			if ( caseTypeDvd.active && insertTypeNone.active || caseTypeFlexible.active && insertTypeNone.active )  {
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.gray();
			insertTypeBinnenkant.gray();
			insertTypeDvdInside.gray();
  			insertTypeDvdbooklet.gray();
			}
			
			if ( DigipakSoortA.active && insertTypeNone.active || FlexfileSoortA.active && insertTypeNone.active )  {
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.gray();
			insertTypeDvdInside.gray();
  			insertTypeDvdbooklet.gray();
			}

		}
		
		
		
		
		
		function checkInsertsCD() 
		{ 
			insertTypeNone.enable();
			insertTypeVoorkant.enable();
			insertTypeTrayCard.enable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
			/***** Reversed *****/
			if ( insertTypeNone.active && caseTypeStandard.active)  {
			insertTypeVoorkant.gray();
			insertTypeTrayCard.gray();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
			}
		}
		
		function checkInsertsCDslim() 
		{ 
			insertTypeNone.enable();
			insertTypeVoorkant.enable();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();	
			/***** Reversed *****/
			if ( insertTypeNone.active && caseTypeStandard.active || insertTypeNone.active && DigipakSoortB.active ||  insertTypeNone.active && FlexfileSoortB.active  )  {
			insertTypeVoorkant.gray();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
			}
		}
		
		
		
		function checkInsertsDVD() 
		{ 
			insertTypeNone.enable();
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.enable();
			insertTypeBinnenkant.enable();
			/***** Reversed *****/
			if ( insertTypeNone.active && caseTypeDvd.active )  {
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.gray();
			insertTypeBinnenkant.gray();
			}
			
		}
		
			function checkInsertsDigiFlex() 
		{ 
			insertTypeNone.enable();
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.enable();
			/***** Reversed *****/
			if ( insertTypeNone.active && DigipakSoortA.active || insertTypeNone.active && FlexfileSoortA.active  )  {
			insertTypeVoorkant.disable();
			insertTypeTrayCard.disable();
			insertTypeDvd.disable();
			insertTypeBinnenkant.gray();
			}
			
		}
		
   

        
		/***** instantiate buttons *****/
         var discTypeNone = new Button('discType-none');
        var CdSoortA = new Button('CdSoort-A');
        var DvdSoortA = new Button('DvdSoort-A');
        var DvdSoortB = new Button('DvdSoort-2B');
        var discTypeBlu = new Button('discType-blu');
       
        var caseTypeStandard = new Button('caseType-standard');
        var JewelcaseSoortA = new Button('JewelcaseSoort-A');
        var JewelcaseSoortB = new Button('JewelcaseSoort-B');
        var JewelcaseSoortC = new Button('JewelcaseSoort-C');
        var JewelcaseSoortD = new Button('JewelcaseSoort-D');
        var caseTypeDvd = new Button('caseType-dvd');
        var DVDboxSoortA = new Button('DVDboxSoort-A');
        var DVDboxSoortB = new Button('DVDboxSoort-B');
        var DVDboxSoortC = new Button('DVDboxSoort-C');
        var DVDboxSoortD = new Button('DVDboxSoort-D');
        var caseTypeDigipak = new Button('caseType-digipak');
        var DigipakSoortA = new Button('DigipakSoort-A');
        var DigipakSoortB = new Button('DigipakSoort-B');
        var caseTypeFlexfile = new Button('caseType-flexfile');
		var FlexfileSoortA = new Button('FlexfileSoort-A');
        var FlexfileSoortB = new Button('FlexfileSoort-B');
		var caseTypeSleeve = new Button('caseType-sleeve');
		var SleeveSoortA = new Button('SleeveSoort-A');
        var SleeveSoortB = new Button('SleeveSoort-B');
        var caseTypeFlexible = new Button('caseType-flexible');
        var caseTypeJacket = new Button('caseType-jacket');
        var caseTypeSpindel = new Button('caseType-spindel');
        var caseTypeNone = new Button('caseType-none');
        var insertTypeCovercard = new Button('insertType-covercard');
        var insertTypeVouwvel = new Button('insertType-vouwvel');
        var insertTypeCdbooklet = new Button('insertType-cdbooklet');
        var insertTypeTrayCard = new Button('insertType-traycard');
        var insertTypeDvd = new Button('insertType-dvd');
		var insertTypeVoorkant = new Button('insertType-voorkant');
		var insertTypeBinnenkant = new Button('insertType-binnenkant');
        var insertTypeDvdInside = new Button('insertType-dvdInside');
        var insertTypeDvdbooklet = new Button('insertType-dvdbooklet');
		var insertTypeNone = new Button('insertType-none');
       
	   
	   /***** assign actions to each button *****/
       
	   
	   // Disc Type: NONE
        discTypeNone.action = function() {
			clearButtons();
			CdSoortA.enable();
			DvdSoortA.enable();
			DvdSoortB.enable();
			discTypeBlu.enable();
			getPrice.disabled = true;

		  }; 
		
			// Disc Type: CD
      		CdSoortA.action = function() {
 			checkCases();
			discTypeNone.gray();
			DvdSoortA.gray();
			DvdSoortB.gray();
			discTypeBlu.gray();
        		
		  }; 
		
		// Disc Type: DvdSoortA
      		DvdSoortA.action = function() {
			checkCases();	
			discTypeNone.gray();
			CdSoortA.gray();
			DvdSoortB.gray();
			discTypeBlu.gray();	

		
		  }; 
		  
		// Disc Type: DvdSoortB
DvdSoortB.action = function() {		
			checkCases();	
			discTypeNone.gray();
			CdSoortA.gray();
			DvdSoortA.gray();
			discTypeBlu.gray();
			 
		
        }; 
		
		// Disc Type: DvdSoortBlurom
discTypeBlu.action = function() {
 			checkCases();	
			discTypeNone.gray();
			CdSoortA.gray();
			DvdSoortA.gray();
			DvdSoortB.gray();
        }; 
		
// Case Type: NONE
caseTypeNone.action = function() {
 			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray();
			insertTypeNone.disable();
			insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeNone.disable();
			insertTypeVoorkant.disable();
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkToggles();
			getPrice.disabled = false;
        }; 
		
// Case Type: JEWELCASESOORT
caseTypeStandard.action = function() {
		
			JewelcaseSoortA.enable();
			JewelcaseSoortB.enable();
			JewelcaseSoortC.enable();
			JewelcaseSoortD.enable();

            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
		
			caseTypeNone.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray();

            checkToggles();
			 getPrice.disabled = true;
        }; 
		

// Case Type: JEWELCASESOORT A
        JewelcaseSoortA.action = function() {
			JewelcaseSoortB.gray();
			JewelcaseSoortC.gray();
			JewelcaseSoortD.gray();
			checkInsertsCD() ;
            checkToggles();

        }; 
		
// Case Type: JEWELCASESOORT B
        JewelcaseSoortB.action = function() {
			JewelcaseSoortA.gray();
			JewelcaseSoortC.gray();
			JewelcaseSoortD.gray();
			checkInsertsCD() ;
            checkToggles();

        }; 
		
// Case Type: JEWELCASESOORT C
        JewelcaseSoortC.action = function() {
			JewelcaseSoortA.gray();
			JewelcaseSoortB.gray();
			JewelcaseSoortD.gray();
			checkInsertsCDslim() ;
            checkToggles();

        }; 
		
// Case Type: JEWELCASESOORT D
        JewelcaseSoortD.action = function() {
			JewelcaseSoortA.gray();
			JewelcaseSoortB.gray();
			JewelcaseSoortC.gray();
			checkInsertsCDslim() ;
            checkToggles();

        }; 
		
	
// Case Type: CARDBOARD WALLET
caseTypeJacket.action = function() {
       		caseTypeNone.gray();
			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray();
			insertTypeNone.disable();		
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkToggles();
			getPrice.disabled = false;
        }; 
		
		
        caseTypeDvd.action = function() {
			caseTypeNone.gray();
			
			DVDboxSoortA.enable();
			DVDboxSoortB.enable();
			DVDboxSoortC.enable();
			DVDboxSoortD.enable();
			
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeTrayCard.disable();
			
			caseTypeStandard.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray(); 
			checkToggles();
			getPrice.disabled = true;
        }; 
		
        DVDboxSoortA.action = function() {
			
			DVDboxSoortB.gray();
			DVDboxSoortC.gray();
			DVDboxSoortD.gray();
			checkInsertsDVD() ;
            checkToggles();
			
        }; 
		
        DVDboxSoortB.action = function() {
			
			DVDboxSoortA.gray();
			DVDboxSoortC.gray();
			DVDboxSoortD.gray();
			checkInsertsDVD() ;
            checkToggles();
			
        }; 
		
        DVDboxSoortC.action = function() {
			checkInsertsDVD() ;
			DVDboxSoortA.gray();
			DVDboxSoortB.gray();
			DVDboxSoortD.gray();
            checkToggles();
			
        }; 
		
        DVDboxSoortD.action = function() {
			
			DVDboxSoortA.gray();
			DVDboxSoortB.gray();
			DVDboxSoortC.gray();
			checkInsertsDVD();
            checkToggles();
			
        }; 
		
		// Case Type: Digipak Style
caseTypeDigipak.action = function() {
			caseTypeNone.gray();
			
			DigipakSoortA.enable();
			DigipakSoortB.enable();
			
			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray();
		
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
		
            checkToggles();
			getPrice.disabled = true;
        }; 
		
        DigipakSoortA.action = function() {
			DigipakSoortB.gray();
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
			checkInsertsDigiFlex();
			checkToggles();
			
        }; 
		
        DigipakSoortB.action = function() {
			DigipakSoortA.gray();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkInsertsCDslim();
			checkToggles();
			
        }; 
		

		// Case Type: Flexfile Style
        caseTypeFlexfile.action = function() {
            caseTypeNone.gray();			
			
			FlexfileSoortA.enable();
			FlexfileSoortB.enable();
			
			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexible.gray();
			caseTypeSleeve.gray();
			
	
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			
			checkToggles();
			 getPrice.disabled = true;
        }; 
		
		// Flexfile Type: A
        FlexfileSoortA.action = function() {
			FlexfileSoortB.gray();
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
			checkInsertsDigiFlex() ;
			checkToggles();
			
        }; 
		
		// Flexfile Type: B
        FlexfileSoortB.action = function() {
			FlexfileSoortA.gray();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkInsertsCDslim();
			checkToggles();
			
        }; 
		
		// Case Type: Sleeve Style
        caseTypeSleeve.action = function() {
            caseTypeNone.gray(); 
			
			SleeveSoortA.enable();
			SleeveSoortB.enable();
			
			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeFlexible.gray();
			
			insertTypeNone.disable();		
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();

			checkToggles();
			 getPrice.disabled = true;

        }; 
		
		// Sleeve Type: A
        SleeveSoortA.action = function() {
			SleeveSoortB.gray();
			insertTypeNone.disable();		
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkToggles();
			getPrice.disabled = false;
        }; 
		
		// Sleeve Type: B
        SleeveSoortB.action = function() {
			SleeveSoortA.gray();
			insertTypeNone.disable();		
			insertTypeVoorkant.disable();
            insertTypeCovercard.disable();
            insertTypeVouwvel.disable();
            insertTypeCdbooklet.disable();
            insertTypeTrayCard.disable();
            insertTypeDvd.disable();
			insertTypeBinnenkant.disable();
            insertTypeDvdInside.disable();
            insertTypeDvdbooklet.disable();
			checkToggles();	
			getPrice.disabled = false;
        }; 

		
		// Case Type: Flexible Plastic
        caseTypeFlexible.action = function() {
			checkInsertsDVD() ;
			caseTypeNone.gray();
			caseTypeStandard.gray();
			caseTypeDvd.gray();
			caseTypeJacket.gray();
			caseTypeDigipak.gray();
			caseTypeFlexfile.gray();
			caseTypeSleeve.gray();
            checkToggles();
			getPrice.disabled = true;
        }; 
		
		//SET INSERTS//
        
// Insert Type: NONE
insertTypeNone.action = function() {
			checkCombo();
			checkToggles();
			getPrice.disabled = false;
        }; 


		// Case Type: Voorkant Jewelcase
        insertTypeVoorkant.action = function() {
			insertTypeNone.gray();
			insertTypeCovercard.enable();
            insertTypeVouwvel.enable();
            insertTypeCdbooklet.enable();
            checkToggles();
			 getPrice.disabled = true;
        }; 
		
		// insertTypeCovercard
        insertTypeCovercard.action = function() {
			insertTypeVouwvel.gray();	
			insertTypeCdbooklet.gray();
            checkToggles();
			 getPrice.disabled = false;
        }; 
		
		// insertTypeVouwvel
        insertTypeVouwvel.action = function() {
			insertTypeCovercard.gray();	
			insertTypeCdbooklet.gray();
            checkToggles();
			getPrice.disabled = false;
        };
		
		// insertTypeCdbooklet
        insertTypeCdbooklet.action = function() {
			insertTypeVouwvel.gray();
			insertTypeCovercard.gray();	
            checkToggles();
			getPrice.disabled = false;
        };
		
		// Case Type: ACHTERKANT Jewelcase
        insertTypeTrayCard.action = function() {
			insertTypeNone.gray();
            checkToggles();
			getPrice.disabled = false;
        };
		
		// Case Type: DVD omslag (inlay)
        insertTypeDvd.action = function() {
			insertTypeNone.gray();
            checkToggles();
			getPrice.disabled = false;
        };
		
		// Case Type: Binnenkant DVD
        insertTypeBinnenkant.action = function() {
			insertTypeNone.gray();
			insertTypeDvdInside.enable();
            insertTypeDvdbooklet.enable();
            checkToggles();
			getPrice.disabled = true;
        }; 
		
		// Case Type:  insertTypeDvdInside
        insertTypeDvdInside.action = function() {
			   
			   insertTypeNone.gray();
			   insertTypeDvdbooklet.gray();
            checkToggles();
			   getPrice.disabled = false;
			  
        }; 
		
		// Case Type:  insertTypeDvdbooklet
        insertTypeDvdbooklet.action = function() {
			   insertTypeNone.gray();
			   insertTypeDvdInside.gray();
            checkToggles();
			   getPrice.disabled = false;
			   
        };
		
		

	   
	   // array of buttons
        buttons = Array( CdSoortA, DvdSoortA, DvdSoortB, discTypeBlu, discTypeNone, caseTypeStandard ); 
		
		// perform activation routines for selected buttons
        for (var i = 0; i < buttons.length; i++) {
            if (buttons[i].active) {
                buttons[i].activate();
                buttons[i].action();
            }
        }
    });
} 


function zIsFormFilled(oForm)
{
var aElem = oForm.elements;
var bHasBlankFields = false;
for (var iI=0;iI<aElem.length;iI++)
{
if (aElem[iI].type == "text" && aElem[iI].value.length == 0)
{
bHasBlankFields = true;
break;
}
}

if (bHasBlankFields)
{
alert("'Aantal stuks' is niet opgegeven of hoger dan 500 stuks");
aElem[iI].focus();
}

return (!bHasBlankFields);
}


function clearText(field){

    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;

}



window.onload=function(){
textboxround('quant');
}
function textboxround(textboxid)
{
var tb=document.getElementById(textboxid);
if (tb.addEventListener) {
tb.addEventListener ("blur",round,false);
tb.addEventListener ("mouseout",round,false);
} else if (el.attachEvent) {
tb.attachEvent ("blur",round);
tb.attachEvent ("onmouseout",round);
} else {
tb.blur = round;
tb.onmouseout = round;
}
tb.addEventListener('blur',round,false );
}

function round(){
var t=this.value;
var k=null;
if ((t>1)&(t<=10))
{
t=Math.ceil(parseInt(t));
this.value=t;return;}

if ((t>10)&(t<=100))
{ t=Math.round(t/10)*10;
this.value=t;return;}

if ((t>500))
{ alert("'Voor aantallen boven de 500 is het voordeliger om uw productie te PERSEN");}

if ((t>100)&(t<=1000))
{
t=Math.round(t/25)*25;
this.value=t;return;}

if ((t>1000)&(t<=10000))
{
t=Math.round(t/50)*50;
this.value=t;return;}

if ((t>10000)&(t<=100000))
{
t=Math.round(t/100)*100;
this.value=t;return;}

if ((t>100000))
{
t=Math.round(t/1000)*1000;
this.value=t;return;}
this.value=t;
}



function isNumeric(keyCode)

    {
        return ((keyCode >= 48 && keyCode <= 57) || keyCode == 8 ||
        (keyCode >= 96 && keyCode <= 105))
    } 



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


function disableEnterKey(e) {
    var key;
    if (window.event) key = window.event.keyCode; //IE
    else key = e.which; //firefox      
    return (key != 13);
}


