// JavaScript Document
function nextinput(nxt) {
	inputs = document.getElementsByTagName('input');
	for(i=0;i<8;i++) {
		if (inputs[i].tabIndex == nxt) {
			inputs[i].focus();
		}
	}
}

function parseRounded(input){
	var result = input;
	var decimals = 3;
	
	if(!isNaN(arguments[1])) decimals = arguments[1];
	
	decimals = parseFloat(Math.pow(10, decimals));
	
	if(!isNaN(result)){
		result = Math.round(parseFloat(result) * decimals) / decimals;
	}
	
	return result;
}


function parsePercentage(input){
	var result = input;
	
	if(!isNaN(result)){
		result = parseRounded(result, 2) + '%';
	}
	
	return result;
}


/*
	STANDARD ORINGS
*/
	/* POPUP */
	function handlePopup(url, x, y){
		var URL = url;
		var name = '_self';
		var features = 'channelmode=0, fullscreen=0, location=0, menubar=0, resizable=0, scrollbars=0, status=0, titlebar=0, toolbar=0';
		
		window.open(URL, name, 'channelmode=no, fullscreen=yes, location=no, menubar=no, resizable=no, scrollbars=no, status=no, titlebar=no, toolbar=no', true);
	}
/*
	// STANDARD ORINGS
*/


/*
	ACTIVE DESIGN
*/
function initActiveDesign(){
	window.activeDesign = [];
	
	// TOOLBAR
	activeDesign.sealingPrinciple = document.getElementById('sealingPrinciple');
	activeDesign.design = document.getElementById('design');
	
	// APPLICATION
	activeDesign.appTemperature = document.getElementById('appTemperature');
	activeDesign.appMovementContainer = document.getElementById('appMovementContainer');
	activeDesign.appMovement = document.getElementById('appMovement');
	activeDesign.appMovementID = document.getElementById('appMovementID');
	activeDesign.appMovementList = document.getElementById('appMovementList');
	activeDesign.appPressureContainer = document.getElementById('appPressureContainer');
	activeDesign.appPressure = document.getElementById('appPressure');
	activeDesign.appPressureID = document.getElementById('appPressureID');
	activeDesign.appPressureList = document.getElementById('appPressureList');
	activeDesign.appCompressionContainer = document.getElementById('appCompressionContainer');
	activeDesign.appCompression = document.getElementById('appCompression');
	
	
	// STANDARD VALUES
	activeDesign.material = document.getElementById('material');
	activeDesign.materialList = document.getElementById('materialList');
	activeDesign.materialID = document.getElementById('materialID');
	activeDesign.coefficientInputContainer = document.getElementById('coefficientInputContainer');
	activeDesign.coefficientInput = document.getElementById('coefficientInput');
	activeDesign.radius = document.getElementById('radius');
	activeDesign.freeGrooveVolumeContainer = document.getElementById('freeGrooveVolumeContainer');
	activeDesign.freeGrooveVolume = document.getElementById('freeGrooveVolume');
	
	
	// AXIAL INNER AND OUTER PRESSURE
	activeDesign.grooveIDNom = document.getElementById('grooveIDNom');
	activeDesign.grooveIDTolUpper = document.getElementById('grooveIDTolUpper');
	activeDesign.grooveIDTolLower = document.getElementById('grooveIDTolLower');
	activeDesign.grooveID = document.getElementById('grooveID');
	activeDesign.grooveIDSelect = document.getElementById('grooveIDSelect');
	activeDesign.grooveIDSelectList = document.getElementById('grooveIDSelectList');
	
	activeDesign.grooveODNom = document.getElementById('grooveODNom');
	activeDesign.grooveODTolUpper = document.getElementById('grooveODTolUpper');
	activeDesign.grooveODTolLower = document.getElementById('grooveODTolLower');
	activeDesign.grooveOD = document.getElementById('grooveOD');
	activeDesign.grooveODSelect = document.getElementById('grooveODSelect');
	activeDesign.grooveODSelectList = document.getElementById('grooveODSelectList');
	
	activeDesign.grooveDepthNom = document.getElementById('grooveDepthNom');
	activeDesign.grooveDepthTolUpper = document.getElementById('grooveDepthTolUpper');
	activeDesign.grooveDepthTolLower = document.getElementById('grooveDepthTolLower');
	activeDesign.grooveDepth = document.getElementById('grooveDepth');
	activeDesign.grooveDepthSelect = document.getElementById('grooveDepthSelect');
	activeDesign.grooveDepthSelectList = document.getElementById('grooveDepthSelectList');

	
	// PISTON AND ROD
	activeDesign.oringIDStretchInput = document.getElementById('oringIDStretchInput');

	activeDesign.boreDiameterNom = document.getElementById('boreDiameterNom');
	activeDesign.boreDiameterNomChkb = document.getElementById('boreDiameterNomChkb');
	activeDesign.boreDiameterTolUpper = document.getElementById('boreDiameterTolUpper');
	activeDesign.boreDiameterTolLower = document.getElementById('boreDiameterTolLower');
	activeDesign.boreDiameter = document.getElementById('boreDiameter');
	activeDesign.boreDiameterSelect = document.getElementById('boreDiameterSelect');
	activeDesign.boreDiameterSelectList = document.getElementById('boreDiameterSelectList');
	
	activeDesign.grooveDiameterNom = document.getElementById('grooveDiameterNom');
	activeDesign.grooveDiameterTolUpper = document.getElementById('grooveDiameterTolUpper');
	activeDesign.grooveDiameterTolLower = document.getElementById('grooveDiameterTolLower');
	activeDesign.grooveDiameter = document.getElementById('grooveDiameter');
	activeDesign.grooveDiameterSelect = document.getElementById('grooveDiameterSelect');
	activeDesign.grooveDiameterSelectList = document.getElementById('grooveDiameterSelectList');
	
	activeDesign.grooveWidthNom = document.getElementById('grooveWidthNom');
	activeDesign.grooveWidthTolUpper = document.getElementById('grooveWidthTolUpper');
	activeDesign.grooveWidthTolLower = document.getElementById('grooveWidthTolLower');
	activeDesign.grooveWidth = document.getElementById('grooveWidth');
	activeDesign.grooveWidthSelect = document.getElementById('grooveWidthSelect');
	activeDesign.grooveWidthSelectList =document.getElementById('grooveWidthSelectList');
	
	
	// PISTON
	activeDesign.pistonDiameterNom = document.getElementById('pistonDiameterNom');
	activeDesign.pistonDiameterNomChkb = document.getElementById('pistonDiameterNomChkb');
	activeDesign.pistonDiameterTolUpper = document.getElementById('pistonDiameterTolUpper');
	activeDesign.pistonDiameterTolLower = document.getElementById('pistonDiameterTolLower');
	activeDesign.pistonDiameter = document.getElementById('pistonDiameter');
	activeDesign.pistonDiameterSelect = document.getElementById('pistonDiameterSelect');
	activeDesign.pistonDiameterSelectList = document.getElementById('pistonDiameterSelectList');
	
	
	// ROD
	activeDesign.rodDiameterNom = document.getElementById('rodDiameterNom');
	activeDesign.rodDiameterNomChkb = document.getElementById('rodDiameterNomChkb');
	activeDesign.rodDiameterTolUpper = document.getElementById('rodDiameterTolUpper');
	activeDesign.rodDiameterTolLower = document.getElementById('rodDiameterTolLower');
	activeDesign.rodDiameter = document.getElementById('rodDiameter');
	activeDesign.rodDiameterSelect = document.getElementById('rodDiameterSelect');
	activeDesign.rodDiameterSelectList = document.getElementById('rodDiameterSelectList');
	activeDesign.OORMax = document.getElementById('OORMax');
	
	
	// ORING
	activeDesign.oringCompound = document.getElementById('oringCompound');
	activeDesign.oringCompoundList = document.getElementById('oringCompoundList');
	activeDesign.oringCompID = document.getElementById('oringCompID');
	activeDesign.oringChemVolSwell = document.getElementById('oringChemVolSwell');

	activeDesign.oringIDNom = document.getElementById('oringIDNom');
	activeDesign.oringIDTol = document.getElementById('oringIDTol');
	activeDesign.oringID = document.getElementById('oringID');
	activeDesign.oringIDSelect = document.getElementById('oringIDSelect');
	activeDesign.oringIDSelectList = document.getElementById('oringIDSelectList');

	activeDesign.oringCSDNom = document.getElementById('oringCSDNom');
	activeDesign.oringCSDTol = document.getElementById('oringCSDTol');
	activeDesign.oringCSD =document.getElementById('oringCSD');
	activeDesign.oringCSDSelect =document.getElementById('oringCSDSelect');
	activeDesign.oringCSDSelectList =document.getElementById('oringCSDSelectList');
	
	
	// RESULTS AXIAL INNER PRESSURE
	activeDesign.IPCSDCompMinAI = document.getElementById('IPCSDCompMinAI');
	activeDesign.IPCSDCompNomAI = document.getElementById('IPCSDCompNomAI');
	activeDesign.IPCSDCompMaxAI = document.getElementById('IPCSDCompMaxAI');
	activeDesign.IPFreeGrooveVolumeMinAI = document.getElementById('IPFreeGrooveVolumeMinAI');
	activeDesign.IPFreeGrooveVolumeNomAI = document.getElementById('IPFreeGrooveVolumeNomAI');
	activeDesign.IPFreeGrooveVolumeMaxAI = document.getElementById('IPFreeGrooveVolumeMaxAI');
	activeDesign.IPIDStretchMinAI = document.getElementById('IPIDStretchMinAI');
	activeDesign.IPIDStretchNomAI = document.getElementById('IPIDStretchNomAI');
	activeDesign.IPIDStretchMaxAI = document.getElementById('IPIDStretchMaxAI');
	activeDesign.IPODUpsettingMinAI = document.getElementById('IPODUpsettingMinAI');
	activeDesign.IPODUpsettingNomAI = document.getElementById('IPODUpsettingNomAI');
	activeDesign.IPODUpsettingMaxAI = document.getElementById('IPODUpsettingMaxAI');

	activeDesign.IPCSDCompMin = document.getElementById('IPCSDCompMin');
	activeDesign.IPCSDCompNom = document.getElementById('IPCSDCompNom');
	activeDesign.IPCSDCompMax = document.getElementById('IPCSDCompMax');
	activeDesign.IPFreeGrooveVolumeMin = document.getElementById('IPFreeGrooveVolumeMin');
	activeDesign.IPFreeGrooveVolumeNom = document.getElementById('IPFreeGrooveVolumeNom');
	activeDesign.IPFreeGrooveVolumeMax = document.getElementById('IPFreeGrooveVolumeMax');
	activeDesign.IPIDStretchMin = document.getElementById('IPIDStretchMin');
	activeDesign.IPIDStretchNom = document.getElementById('IPIDStretchNom');
	activeDesign.IPIDStretchMax = document.getElementById('IPIDStretchMax');
	activeDesign.IPODUpsettingMin = document.getElementById('IPODUpsettingMin');
	activeDesign.IPODUpsettingNom = document.getElementById('IPODUpsettingNom');
	activeDesign.IPODUpsettingMax = document.getElementById('IPODUpsettingMax');

	
	// RESULTS AXIAL OUTER PRESSURE
	activeDesign.OPCSDCompMinAI = document.getElementById('OPCSDCompMinAI');
	activeDesign.OPCSDCompNomAI = document.getElementById('OPCSDCompNomAI');
	activeDesign.OPCSDCompMaxAI = document.getElementById('OPCSDCompMaxAI');
	activeDesign.OPFreeGrooveVolumeMinAI = document.getElementById('OPFreeGrooveVolumeMinAI');
	activeDesign.OPFreeGrooveVolumeNomAI = document.getElementById('OPFreeGrooveVolumeNomAI');
	activeDesign.OPFreeGrooveVolumeMaxAI = document.getElementById('OPFreeGrooveVolumeMaxAI');
	activeDesign.OPIDStretchMinAI = document.getElementById('OPIDStretchMinAI');
	activeDesign.OPIDStretchNomAI = document.getElementById('OPIDStretchNomAI');
	activeDesign.OPIDStretchMaxAI = document.getElementById('OPIDStretchMaxAI');
	activeDesign.OPODUpsettingMinAI = document.getElementById('OPODUpsettingMinAI');
	activeDesign.OPODUpsettingNomAI = document.getElementById('OPODUpsettingNomAI');
	activeDesign.OPODUpsettingMaxAI = document.getElementById('OPODUpsettingMaxAI');

	activeDesign.OPCSDCompMin = document.getElementById('OPCSDCompMin');
	activeDesign.OPCSDCompNom = document.getElementById('OPCSDCompNom');
	activeDesign.OPCSDCompMax = document.getElementById('OPCSDCompMax');
	activeDesign.OPFreeGrooveVolumeMin = document.getElementById('OPFreeGrooveVolumeMin');
	activeDesign.OPFreeGrooveVolumeNom = document.getElementById('OPFreeGrooveVolumeNom');
	activeDesign.OPFreeGrooveVolumeMax = document.getElementById('OPFreeGrooveVolumeMax');
	activeDesign.OPIDStretchMin = document.getElementById('OPIDStretchMin');
	activeDesign.OPIDStretchNom = document.getElementById('OPIDStretchNom');
	activeDesign.OPIDStretchMax = document.getElementById('OPIDStretchMax');
	activeDesign.OPODUpsettingMin = document.getElementById('OPODUpsettingMin');
	activeDesign.OPODUpsettingNom = document.getElementById('OPODUpsettingNom');
	activeDesign.OPODUpsettingMax = document.getElementById('OPODUpsettingMax');
	
	
	// RESULTS PISTON
	activeDesign.pistonCSDCompCentricalPosMinAI = document.getElementById('pistonCSDCompCentricalPosMinAI');
	activeDesign.pistonCSDCompCentricalPosNomAI = document.getElementById('pistonCSDCompCentricalPosNomAI');
	activeDesign.pistonCSDCompCentricalPosMaxAI = document.getElementById('pistonCSDCompCentricalPosMaxAI');
	activeDesign.pistonFreeGrooveVolumeMinAI = document.getElementById('pistonFreeGrooveVolumeMinAI');
	activeDesign.pistonFreeGrooveVolumeNomAI = document.getElementById('pistonFreeGrooveVolumeNomAI');
	activeDesign.pistonFreeGrooveVolumeMaxAI = document.getElementById('pistonFreeGrooveVolumeMaxAI');
	activeDesign.pistonIDStretchMinAI = document.getElementById('pistonIDStretchMinAI');
	activeDesign.pistonIDStretchNomAI = document.getElementById('pistonIDStretchNomAI');
	activeDesign.pistonIDStretchMaxAI = document.getElementById('pistonIDStretchMaxAI');
	
	activeDesign.pistonCSDCompCentricalPosMin = document.getElementById('pistonCSDCompCentricalPosMin');
	activeDesign.pistonCSDCompCentricalPosNom = document.getElementById('pistonCSDCompCentricalPosNom');
	activeDesign.pistonCSDCompCentricalPosMax = document.getElementById('pistonCSDCompCentricalPosMax');
	activeDesign.pistonFreeGrooveVolumeMin = document.getElementById('pistonFreeGrooveVolumeMin');
	activeDesign.pistonFreeGrooveVolumeNom = document.getElementById('pistonFreeGrooveVolumeNom');
	activeDesign.pistonFreeGrooveVolumeMax = document.getElementById('pistonFreeGrooveVolumeMax');
	activeDesign.pistonIDStretchMin = document.getElementById('pistonIDStretchMin');
	activeDesign.pistonIDStretchNom = document.getElementById('pistonIDStretchNom');
	activeDesign.pistonIDStretchMax = document.getElementById('pistonIDStretchMax');
	activeDesign.pistonDepthCentricalPosMin = document.getElementById('pistonDepthCentricalPosMin');
	activeDesign.pistonDepthCentricalPosNom = document.getElementById('pistonDepthCentricalPosNom');
	activeDesign.pistonDepthCentricalPosMax = document.getElementById('pistonDepthCentricalPosMax');
	activeDesign.pistonSealingGapCentricalPosMin = document.getElementById('pistonSealingGapCentricalPosMin');
	activeDesign.pistonSealingGapCentricalPosNom = document.getElementById('pistonSealingGapCentricalPosNom');
	activeDesign.pistonSealingGapCentricalPosMax = document.getElementById('pistonSealingGapCentricalPosMax');
				
	activeDesign.pistonCSDCompExcentricalPosMin = document.getElementById('pistonCSDCompExcentricalPosMin');
	activeDesign.pistonCSDCompExcentricalPosNom = document.getElementById('pistonCSDCompExcentricalPosNom');
	activeDesign.pistonCSDCompExcentricalPosMax = document.getElementById('pistonCSDCompExcentricalPosMax');
	activeDesign.pistonDepthExcentricalPosMin = document.getElementById('pistonDepthExcentricalPosMin');
	activeDesign.pistonDepthExcentricalPosNom = document.getElementById('pistonDepthExcentricalPosNom');
	activeDesign.pistonDepthExcentricalPosMax = document.getElementById('pistonDepthExcentricalPosMax');
	activeDesign.pistonSealingGapExcentricalPosMin = document.getElementById('pistonSealingGapExcentricalPosMin');
	activeDesign.pistonSealingGapExcentricalPosNom = document.getElementById('pistonSealingGapExcentricalPosNom');
	activeDesign.pistonSealingGapExcentricalPosMax = document.getElementById('pistonSealingGapExcentricalPosMax');
	
	
	// RESULTS ROD
	activeDesign.rodCSDCompCentricalPosMinAI = document.getElementById('rodCSDCompCentricalPosMinAI');
	activeDesign.rodCSDCompCentricalPosNomAI = document.getElementById('rodCSDCompCentricalPosNomAI');
	activeDesign.rodCSDCompCentricalPosMaxAI = document.getElementById('rodCSDCompCentricalPosMaxAI');
	activeDesign.rodFreeGrooveVolumeMinAI = document.getElementById('rodFreeGrooveVolumeMinAI');
	activeDesign.rodFreeGrooveVolumeNomAI = document.getElementById('rodFreeGrooveVolumeNomAI');
	activeDesign.rodFreeGrooveVolumeMaxAI = document.getElementById('rodFreeGrooveVolumeMaxAI');
	activeDesign.rodIDStretchMinAI = document.getElementById('rodIDStretchMinAI');
	activeDesign.rodIDStretchNomAI = document.getElementById('rodIDStretchNomAI');
	activeDesign.rodIDStretchMaxAI = document.getElementById('rodIDStretchMaxAI');
	
	activeDesign.rodCSDCompCentricalPosMin = document.getElementById('rodCSDCompCentricalPosMin');
	activeDesign.rodCSDCompCentricalPosNom = document.getElementById('rodCSDCompCentricalPosNom');
	activeDesign.rodCSDCompCentricalPosMax = document.getElementById('rodCSDCompCentricalPosMax');
	activeDesign.rodFreeGrooveVolumeMin = document.getElementById('rodFreeGrooveVolumeMin');
	activeDesign.rodFreeGrooveVolumeNom = document.getElementById('rodFreeGrooveVolumeNom');
	activeDesign.rodFreeGrooveVolumeMax = document.getElementById('rodFreeGrooveVolumeMax');
	activeDesign.rodIDStretchMin = document.getElementById('rodIDStretchMin');
	activeDesign.rodIDStretchNom = document.getElementById('rodIDStretchNom');
	activeDesign.rodIDStretchMax = document.getElementById('rodIDStretchMax');
	activeDesign.rodDepthCentricalPosMin = document.getElementById('rodDepthCentricalPosMin');
	activeDesign.rodDepthCentricalPosNom = document.getElementById('rodDepthCentricalPosNom');
	activeDesign.rodDepthCentricalPosMax = document.getElementById('rodDepthCentricalPosMax');
	activeDesign.rodSealingGapCentricalPosMin = document.getElementById('rodSealingGapCentricalPosMin');
	activeDesign.rodSealingGapCentricalPosNom = document.getElementById('rodSealingGapCentricalPosNom');
	activeDesign.rodSealingGapCentricalPosMax = document.getElementById('rodSealingGapCentricalPosMax');
				
	activeDesign.rodCSDCompExcentricalPosMin = document.getElementById('rodCSDCompExcentricalPosMin');
	activeDesign.rodCSDCompExcentricalPosNom = document.getElementById('rodCSDCompExcentricalPosNom');
	activeDesign.rodCSDCompExcentricalPosMax = document.getElementById('rodCSDCompExcentricalPosMax');
	activeDesign.rodDepthExcentricalPosMin = document.getElementById('rodDepthExcentricalPosMin');
	activeDesign.rodDepthExcentricalPosNom = document.getElementById('rodDepthExcentricalPosNom');
	activeDesign.rodDepthExcentricalPosMax = document.getElementById('rodDepthExcentricalPosMax');
	activeDesign.rodSealingGapExcentricalPosMin = document.getElementById('rodSealingGapExcentricalPosMin');
	activeDesign.rodSealingGapExcentricalPosNom = document.getElementById('rodSealingGapExcentricalPosNom');
	activeDesign.rodSealingGapExcentricalPosMax = document.getElementById('rodSealingGapExcentricalPosMax');
	
	
	// APPLICATION TOOLBAR
	activeDesign.calculate = document.getElementById('calculate');
	activeDesign.designNameSelect = document.getElementById('designNameSelect');
	activeDesign.saveButton = document.getElementById('saveButton');
	activeDesign.standardORingButton = document.getElementById('standardORingButton');
	activeDesign.designName = document.getElementById('designName');
	activeDesign.designID = document.getElementById('designID');
	activeDesign.deleteButton = document.getElementById('deleteButton');
	activeDesign.resetButton = document.getElementById('resetButton');
	activeDesign.printableDocumentButton = document.getElementById('pdfButton');
}

/*
	SEALINGPRINCIPLE
*/
function showAxialInnerPressure(designID){
	if(isNaN(designID)){ designID = 1; }

	// clear calculator classes by sealing principle
	var className = document.getElementById('calculator').className;
		
	className = className.replace(className, '');
	
	className += ' axialInnerPressure';

	document.getElementById('calculator').className = className;
	document.getElementById('sealingPrinciple').value = 1;
	
	handleDesignChange(designID);
}

function showAxialOuterPressure(designID){
	if(isNaN(designID)){ designID = 1; }

	// clear calculator classes by sealing principle
	var className = document.getElementById('calculator').className;
	
	className = className.replace(className, '');
	
	className += ' axialOuterPressure';

	document.getElementById('calculator').className = className;
	document.getElementById('sealingPrinciple').value = 2;

	handleDesignChange(designID);
}

function showPiston(designID){
	if(isNaN(designID)){ designID = 1; }

	// clear calculator classes by sealing principle
	var className = document.getElementById('calculator').className;

	className = className.replace(className, '');
	
	className += ' piston';

	document.getElementById('calculator').className = className;
	activeDesign.sealingPrinciple.value = 3;
	
	handleDesignChange(designID);
}

function showRod(designID){
	if(isNaN(designID)){ designID = 1; }

	// clear calculator classes by sealing principle
	var className = document.getElementById('calculator').className;
		
	className = className.replace(className, '');
	
	className += ' rod';

	document.getElementById('calculator').className = className;
	activeDesign.sealingPrinciple.value = 4;
	
	handleDesignChange(designID);
}


/*
	DESIGN
*/
function handleDesignChange(design){
	var className = document.getElementById('calculator').className;

	className = className.replace('designGrooveAndORing', '');
	className = className.replace('designGroove', '');
	className = className.replace('designORing', '');


	activeDesign.grooveIDNom.disabled = true;
	activeDesign.grooveIDTolUpper.disabled = true;
	activeDesign.grooveIDTolUpper.style.backgroundColor = '#CCC';
	activeDesign.grooveIDTolLower.disabled = true;
	activeDesign.grooveIDTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.grooveODNom.disabled = true;
	activeDesign.grooveODTolUpper.disabled = true;
	activeDesign.grooveODTolUpper.style.backgroundColor = '#CCC';
	activeDesign.grooveODTolLower.disabled = true;
	activeDesign.grooveODTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.grooveDepthNom.disabled = true;
	activeDesign.grooveDepthTolUpper.disabled = true;
	activeDesign.grooveDepthTolUpper.style.backgroundColor = '#CCC';
	activeDesign.grooveDepthTolLower.disabled = true;
	activeDesign.grooveDepthTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.boreDiameterNom.disabled = true;
	activeDesign.boreDiameterNomChkb.checked = false;
	activeDesign.boreDiameterTolUpper.disabled = true;
	activeDesign.boreDiameterTolUpper.style.backgroundColor = '#CCC';
	activeDesign.boreDiameterTolLower.disabled = true;
	activeDesign.boreDiameterTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.pistonDiameterNom.disabled = true;
	activeDesign.pistonDiameterNomChkb.checked = false;
	activeDesign.pistonDiameterTolUpper.disabled = true;
	activeDesign.pistonDiameterTolUpper.style.backgroundColor = '#CCC';
	activeDesign.pistonDiameterTolLower.disabled = true;
	activeDesign.pistonDiameterTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.rodDiameterNom.disabled = true;
	activeDesign.rodDiameterNomChkb.checked = false;
	activeDesign.rodDiameterTolUpper.disabled = true;
	activeDesign.rodDiameterTolUpper.style.backgroundColor = '#CCC';
	activeDesign.rodDiameterTolLower.disabled = true;
	activeDesign.rodDiameterTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.grooveDiameterNom.disabled = true;
	activeDesign.grooveDiameterTolUpper.disabled = true;
	activeDesign.grooveDiameterTolUpper.style.backgroundColor = '#CCC';
	activeDesign.grooveDiameterTolLower.disabled = true;
	activeDesign.grooveDiameterTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.grooveWidthNom.disabled = true;
	activeDesign.grooveWidthTolUpper.disabled = true;
	activeDesign.grooveWidthTolUpper.style.backgroundColor = '#CCC';
	activeDesign.grooveWidthTolLower.disabled = true;
	activeDesign.grooveWidthTolLower.style.backgroundColor = '#CCC';
	
	activeDesign.oringIDNom.disabled = true;
	activeDesign.oringIDNom.style.backgroundColor = '#FFF';
	activeDesign.oringIDTol.disabled = true;
	activeDesign.oringIDTol.style.backgroundColor = '#CCC';

	activeDesign.oringCSDNom.disabled = true;
	activeDesign.oringCSDNom.style.backgroundColor = '#FFF';
	activeDesign.oringCSDTol.disabled = true;
	activeDesign.oringCSDTol.style.backgroundColor = '#CCC';
		
	
	switch(design){
		
		// DESIGN GROOVE
		case 1:
			activeDesign.oringIDNom.disabled = false;
			activeDesign.oringCSDNom.disabled = false;
			
			activeDesign.grooveIDTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveIDTolLower.style.backgroundColor = '#FFF';
			activeDesign.grooveODTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveODTolLower.style.backgroundColor = '#FFF';
			activeDesign.grooveDepthTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveDepthTolLower.style.backgroundColor = '#FFF';
			activeDesign.grooveWidthTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveWidthTolLower.style.backgroundColor = '#FFF';
			activeDesign.boreDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.boreDiameterTolLower.style.backgroundColor = '#FFF';
			activeDesign.grooveDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveDiameterTolLower.style.backgroundColor = '#FFF';
			activeDesign.pistonDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.pistonDiameterTolLower.style.backgroundColor = '#FFF';
			activeDesign.rodDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.rodDiameterTolLower.style.backgroundColor = '#FFF';
			
			className += ' designGroove';
			
			activeDesign.oringIDNom.focus();
			break;
			
		// DESIGN ORING
		case 2:
			activeDesign.grooveIDNom.disabled = false;
			activeDesign.grooveODNom.disabled = false;
			activeDesign.grooveDepthNom.disabled = false;
			activeDesign.boreDiameterNom.disabled = false;
			activeDesign.pistonDiameterNom.disabled = false;
			activeDesign.rodDiameterNom.disabled = false;
			activeDesign.grooveDiameterNom.disabled = false;
			activeDesign.grooveWidthNom.disabled = false;
			activeDesign.oringChemVolSwell.disabled = false;
			
			activeDesign.oringIDNom.style.backgroundColor = '#EFEFEF';
			activeDesign.oringIDTol.style.backgroundColor = '#EFEFEF';
			activeDesign.oringIDSelect.style.backgroundColor = '#EFEFEF';
			activeDesign.oringCSDNom.style.backgroundColor = '#EFEFEF';
			activeDesign.oringCSDTol.style.backgroundColor = '#EFEFEF';
			activeDesign.oringCSDSelect.style.backgroundColor = '#EFEFEF';
			

			if(activeDesign.sealingPrinciple.value == 3){
				activeDesign.grooveWidthNom.focus();
			}else if(activeDesign.sealingPrinciple.value == 4){
				activeDesign.grooveWidthNom.focus();
			}else{
				activeDesign.grooveDepthNom.focus();
			}
			
			className += ' designORing';
			break;
			
		// DESIGN ORING AND GROOVE
		case 3:	
			activeDesign.grooveIDNom.disabled = false;
			activeDesign.grooveODNom.disabled = false;
			activeDesign.grooveDepthNom.disabled = false;
			activeDesign.boreDiameterNom.disabled = false;
			activeDesign.pistonDiameterNom.disabled = false;
			activeDesign.rodDiameterNom.disabled = false;
			activeDesign.grooveDiameterNom.disabled = false;
			activeDesign.grooveWidthNom.disabled = false;
			activeDesign.oringIDNom.disabled = false;
			activeDesign.oringCSDNom.disabled = false;
			
			if(activeDesign.sealingPrinciple.value == 3){
				activeDesign.grooveWidthNom.focus();
			}else if(activeDesign.sealingPrinciple.value == 4){
				activeDesign.grooveWidthNom.focus();
			}else{
				activeDesign.grooveDepthNom.focus();
			}
			
			className += ' designGrooveAndORing';
			break;
	}
	
	document.getElementById('calculator').className = className;

	activeDesign.design.value = design;
	
	handleDesign();
}

/*
	APPLICATION
*/
function handleAppTemperature(){
	var appTemperature = parseFloat(activeDesign.appTemperature.value.replace(',', '.'));
	var oringCompoundID = activeDesign.oringCompID.value;
	
	handleClearAttributes(activeDesign.appTemperature);
	
	HTTPRequest = null;
	
	if((!isNaN(appTemperature)) && ((appTemperature >= 0) && (appTemperature <= 250))){
		handleHTTPRequest('appTemperature='+appTemperature+'&oringCompound='+oringCompoundID, 'updateAppTemperature');
	}else{
		displayError(text.appTemperature, activeDesign.appTemperature);
	}
}

function handleAppMovement(evt){
	HTTPRequest = null;
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('appMovementList').getElementsByTagName('li');
	
	for(var i=0; i<li.length; i++){
		if(i == (optionValue-1)){ 
			li[i].className = 'selected';
		}else{
			li[i].className = null;
		}
	}
	
	activeDesign.appMovement.value = optionValue;
	
	handleHTTPRequest('appMovement='+activeDesign.appMovement.value+'&appPressure='+activeDesign.appPressure.value, 'updateAppMovement');
}

function handleAppPressure(evt){
	HTTPRequest = null;
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('appPressureList').getElementsByTagName('li');
	
	for(var i=0; i<li.length; i++){
		if(i == (optionValue-1)){ 
			li[i].className = 'selected';
		}else{
			li[i].className = null;
		}
	}
	
	activeDesign.appPressure.value = optionValue;
	
	handleHTTPRequest('appMovement='+activeDesign.appMovement.value+'&appPressure='+activeDesign.appPressure.value, 'updateAppPressure');
}

function handleAppCompression(){
	var appCompression = parseFloat(activeDesign.appCompression.value.replace(',', '.'));

	HTTPRequest = null;
	
	if((!isNaN(appCompression)) && (appCompression >= 0) && (appCompression <= 50)){
		handleClearAttributes(activeDesign.appCompression);
		
		handleHTTPRequest('appCompression='+appCompression, 'updateAppCompression');
	}else{
		displayError(text.appCompression, activeDesign.appCompression);
	}
}

/*
	GROOVE
*/
function handleMaterial(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var li = document.getElementById('materialList').getElementsByTagName('li');
	activeDesign.materialID.value = optionValue;

	for(var i=0; i<li.length; i++){
		var a = li[i].getElementsByTagName('a');
		var attribute = a[0].getAttribute('optionValue');
		
		if(attribute == optionValue){
			li[i].className = 'selected';
		}else{
			li[i].className = null;
		}
	}

	if(isNaN(optionValue)){
		activeDesign.coefficientInputContainer.style.display = 'block';
	}else{
		activeDesign.coefficientInputContainer.style.display = 'none';
	}
	
	HTTPRequest = null;
	
	handleHTTPRequest('materialID='+optionValue, 'updateMaterial');
}
/*

*/
function handleCoefficientInput(){
	var coefficientInput = parseFloat(activeDesign.coefficientInput.value.replace(',', '.'));
	
	HTTPRequest = null;
	
	if((!isNaN(coefficientInput)) && (coefficientInput > 0) && (coefficientInput < 500)){
		handleClearAttributes(activeDesign.coefficientInput);
		
		handleHTTPRequest('coefficientInput='+coefficientInput, 'updateCoefficientInput');
	}else{
		displayError(text.coefficientInput, activeDesign.coefficientInput);
	}
}
/*

*/
function handleFreeGrooveVolume(){
	var freeGrooveVolume = parseFloat(activeDesign.freeGrooveVolume.value.replace(',', '.'));
	
	HTTPRequest = null;

	if((!isNaN(freeGrooveVolume)) && (freeGrooveVolume > 0) && (freeGrooveVolume <= 100)){
		handleClearAttributes(activeDesign.freeGrooveVolume);
		
		handleHTTPRequest('freeGrooveVolume='+freeGrooveVolume, 'updateFreeGrooveVolume');
	}else{
		displayError(text.freeGrooveVolume, activeDesign.freeGrooveVolume);
	}
}
/*

*/
function handleGrooveIDNom(){
	var radius = parseFloat(activeDesign.radius.value.replace(',','.'));
	var grooveIDNom = parseFloat(activeDesign.grooveIDNom.value.replace(',', '.'));
	var grooveODNom = activeDesign.grooveODNom.value.replace(',','.');
	
	handleClearAttributes(activeDesign.radius);
	handleClearAttributes(activeDesign.grooveIDNom);
	handleClearAttributes(activeDesign.grooveODNom);
	
	HTTPRequest = null;
	
	if((!isNaN(grooveIDNom)) && (grooveIDNom > 0)){
		if(!isNaN(grooveODNom) && grooveODNom > 0 && !isNaN(radius) && radius > 0){
			if(grooveIDNom > grooveODNom){
				displayError(text.grooveODNom, activeDesign.grooveIDNom);
			}else if(radius > ((grooveODNom-grooveIDNom) / 4)){
				displayError(text.radiusGrooveWidth, activeDesign.radius);
			}else{
				handleHTTPRequest('grooveIDNom='+grooveIDNom, 'updateGrooveIDNom');
			}
		}else{
			handleHTTPRequest('grooveIDNom='+grooveIDNom, 'updateGrooveIDNom');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveIDNom);
	}
}

function handleGrooveIDTolUpper(){
	var grooveIDTolUpper = parseFloat(activeDesign.grooveIDTolUpper.value.replace(',', '.'));
	var grooveIDTolLower = parseFloat(activeDesign.grooveIDTolLower.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveIDTolUpper);
	handleClearAttributes(activeDesign.grooveIDTolLower);

	HTTPRequest = null;
	
	if(!isNaN(grooveIDTolUpper)){
		if(!isNaN(grooveIDTolLower)){
			if(grooveIDTolLower > grooveIDTolUpper){
				displayError(text.tolerance, activeDesign.grooveIDTolLower);
			}else{
				handleHTTPRequest('grooveIDTolUpper='+grooveIDTolUpper, 'updateGrooveIDTolUpper');
			}
		}else{
			handleHTTPRequest('grooveIDTolUpper='+grooveIDTolUpper, 'updateGrooveIDTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveIDTolUpper);
	}
}

function handleGrooveIDTolLower(){
	var grooveIDTolLower = parseFloat(activeDesign.grooveIDTolLower.value.replace(',', '.'));
	var grooveIDTolUpper = parseFloat(activeDesign.grooveIDTolUpper.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveIDTolLower);
	handleClearAttributes(activeDesign.grooveIDTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveIDTolLower)){
		if(!isNaN(grooveIDTolUpper)){
			if(grooveIDTolLower > grooveIDTolUpper){
				displayError(text.tolerance, activeDesign.grooveIDTolLower);
			}else{
				handleHTTPRequest('grooveIDTolLower='+grooveIDTolLower, 'updateGrooveIDTolLower');
			}
		}else{
			handleHTTPRequest('grooveIDTolLower='+grooveIDTolLower, 'updateGrooveIDTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveIDTolLower);
	}
}

function handleGrooveIDSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('grooveID').getElementsByTagName('li');
	activeDesign.grooveIDSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 2){
			activeDesign.grooveIDTolUpper.disabled = false;
			activeDesign.grooveIDTolLower.disabled = false;
			activeDesign.grooveIDTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveIDTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.grooveIDTolUpper.disabled = true;
			activeDesign.grooveIDTolLower.disabled = true;
			activeDesign.grooveIDTolUpper.style.backgroundColor = '#CCC';
			activeDesign.grooveIDTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('grooveIDSelect='+optionValue, 'updateGrooveIDSelect');
	}
}
/*

*/
function handleGrooveODNom(){
	var radius = parseFloat(activeDesign.radius.value.replace(',', '.'));
	var grooveODNom = parseFloat(activeDesign.grooveODNom.value.replace(',', '.'));
	var grooveIDNom = parseFloat(activeDesign.grooveIDNom.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.radius);
	handleClearAttributes(activeDesign.grooveODNom);
	handleClearAttributes(activeDesign.grooveIDNom);
	
	HTTPRequest = null;
	
	if((!isNaN(grooveODNom)) && (grooveODNom > 0)){
		
		if(!isNaN(grooveODNom) && grooveODNom > 0 && !isNaN(radius) && radius > 0){
			if(grooveIDNom > grooveODNom){
				displayError(text.grooveODNom, activeDesign.grooveIDNom);
			}else if(radius > ((grooveODNom-grooveIDNom) / 4)){
				displayError(text.radiusGrooveWidth, activeDesign.radius);
			}else{
				handleHTTPRequest('grooveODNom='+grooveODNom, 'updateGrooveODNom');
			}
		}else{
			handleHTTPRequest('grooveODNom='+grooveODNom, 'updateGrooveODNom');
		}
		
	}else{
		displayError(text.defaultMessage, activeDesign.grooveODNom);
	}
}

function handleGrooveODTolUpper(){
	var grooveODTolUpper= parseFloat(activeDesign.grooveODTolUpper.value.replace(',', '.'));
	var grooveODTolLower = parseFloat(activeDesign.grooveODTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveODTolUpper);
	handleClearAttributes(activeDesign.grooveODTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveODTolUpper)){
		if(!isNaN(grooveODTolLower)){
			if(grooveODTolLower > grooveODTolUpper){
				displayError(text.tolerance, activeDesign.grooveODTolLower);
			}else{
				handleHTTPRequest('grooveODTolUpper='+grooveODTolUpper, 'updateGrooveODTolUpper');
			}
		}else{
			handleHTTPRequest('grooveODTolUpper='+grooveODTolUpper, 'updateGrooveODTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveODTolUpper);
	}
}

function handleGrooveODTolLower(){
	var grooveODTolLower = parseFloat(activeDesign.grooveODTolLower.value.replace(',', '.'));
	var grooveODTolUpper= parseFloat(activeDesign.grooveODTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveODTolLower);
	handleClearAttributes(activeDesign.grooveODTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveODTolLower)){
		if(!isNaN(grooveODTolUpper)){
			if(grooveODTolLower > grooveODTolUpper){
				displayError(text.tolerance, activeDesign.grooveODTolLower);
			}else{
				handleHTTPRequest('grooveODTolLower='+grooveODTolLower, 'updateGrooveODTolLower');
			}
		}else{
			handleHTTPRequest('grooveODTolLower='+grooveODTolLower, 'updateGrooveODTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveODTolLower);
	}
}

function handleGrooveODSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var design = document.getElementById('calculator').className;
	var li = document.getElementById('grooveOD').getElementsByTagName('li');
	activeDesign.grooveODSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 2){
			activeDesign.grooveODTolUpper.disabled = false;
			activeDesign.grooveODTolLower.disabled = false;
			activeDesign.grooveODTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveODTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.grooveODTolUpper.disabled = true;
			activeDesign.grooveODTolLower.disabled = true;
			activeDesign.grooveODTolUpper.style.backgroundColor = '#CCC';
			activeDesign.grooveODTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('grooveODSelect='+optionValue, 'updateGrooveODSelect');
	}
}
/*

*/
function handleGrooveDepthNom(){
	var grooveDepthNom = parseFloat(activeDesign.grooveDepthNom.value.replace(',', '.'));
	handleClearAttributes(activeDesign.grooveDepthNom);
	
	HTTPRequest = null;
	
	if((!isNaN(grooveDepthNom)) && (grooveDepthNom > 0)){
		handleHTTPRequest('grooveDepthNom='+grooveDepthNom, 'updateGrooveDepthNom');
	}else{
		displayError(text.defaultMessage, activeDesign.grooveDepthNom);
	}
}

function handleGrooveDepthTolUpper(){
	var grooveDepthTolUpper = parseFloat(activeDesign.grooveDepthTolUpper.value.replace(',', '.'));
	var grooveDepthTolLower = parseFloat(activeDesign.grooveDepthTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveDepthTolUpper);
	handleClearAttributes(activeDesign.grooveDepthTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveDepthTolUpper)){
		if(!isNaN(grooveDepthTolLower)){
			if(grooveDepthTolLower > grooveDepthTolUpper){
				displayError(text.tolerance, activeDesign.grooveDepthTolLower);
			}else{
				handleHTTPRequest('grooveDepthTolUpper='+grooveDepthTolUpper, 'updateGrooveDepthTolUpper');
			}
		}else{
			handleHTTPRequest('grooveDepthTolUpper='+grooveDepthTolUpper, 'updateGrooveDepthTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveDepthTolUpper);
	}
}

function handleGrooveDepthTolLower(){
	var grooveDepthTolLower = parseFloat(activeDesign.grooveDepthTolLower.value.replace(',', '.'));
	var grooveDepthTolUpper = parseFloat(activeDesign.grooveDepthTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveDepthTolLower);
	handleClearAttributes(activeDesign.grooveDepthTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveDepthTolLower)){
		if(!isNaN(grooveDepthTolUpper)){
			if(grooveDepthTolLower > grooveDepthTolUpper){
				displayError(text.tolerance, activeDesign.grooveDepthTolLower);
			}else{
				handleHTTPRequest('grooveDepthTolLower='+grooveDepthTolLower, 'updateGrooveDepthTolLower');
			}
		}else{
			handleHTTPRequest('grooveDepthTolLower='+grooveDepthTolLower, 'updateGrooveDepthTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveDepthTolLower);
	}
}

function handleGrooveDepthSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var design = document.getElementById('calculator').className;
	var li = document.getElementById('grooveDepth').getElementsByTagName('li');
	activeDesign.grooveDepthSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 2){
			activeDesign.grooveDepthTolUpper.disabled = false;
			activeDesign.grooveDepthTolLower.disabled = false;
			activeDesign.grooveDepthTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveDepthTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.grooveDepthTolUpper.disabled = true;
			activeDesign.grooveDepthTolLower.disabled = true;
			activeDesign.grooveDepthTolUpper.style.backgroundColor = '#CCC';
			activeDesign.grooveDepthTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('grooveDepthSelect='+optionValue, 'updateGrooveDepthSelect');
	}
}
/*

*/
function handleRadius(){
	var sealingPrinciple = parseFloat(activeDesign.sealingPrinciple.value);
	var radius = parseFloat(activeDesign.radius.value.replace(',', '.'));
	var grooveWidthNom = parseFloat(activeDesign.grooveWidthNom.value.replace(',', '.'));
	var grooveIDNom = parseFloat(activeDesign.grooveIDNom.value.replace(',', '.'));
	var grooveODNom = parseFloat(activeDesign.grooveODNom.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.radius);
	handleClearAttributes(activeDesign.grooveWidthNom);
	handleClearAttributes(activeDesign.grooveIDNom);
	handleClearAttributes(activeDesign.grooveODNom);
	
	HTTPRequest = null;
	
	if((!isNaN(radius)) && (radius >= 0) && (radius < 3)){
		
		if(sealingPrinciple == 1 || sealingPrinciple == 2){
			/* principle axial inner and outer pressure */
			if(!isNaN(grooveIDNom) && grooveIDNom > 0 && !isNaN(grooveODNom) && grooveODNom > 0){
				if(radius > ((grooveODNom-grooveIDNom) / 4)){
					displayError(text.radiusGrooveWidth, activeDesign.radius);
				}else{
					handleHTTPRequest('radius='+radius, 'updateRadius');
				}
			}else{
				handleHTTPRequest('radius='+radius, 'updateRadius');
			}
		}else{
			/* sealingprinciple piston and rod */
			if((!isNaN(grooveWidthNom)) && (grooveWidthNom > 0)){
				if(radius > (grooveWidthNom / 2)){
					displayError(text.grooveWidthNom, activeDesign.radius);
				}else{
					handleHTTPRequest('radius='+radius, 'updateRadius');
				}
			}else{
				handleHTTPRequest('radius='+radius, 'updateRadius');
			}
			
		}
		
	}else{
		displayError(text.radius, activeDesign.radius);
	}
}
/*
	PISTON AND ROD
*/
function handleORingIDStretchInput(){
	var oringIDStretchInput = parseFloat(activeDesign.oringIDStretchInput.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.oringIDStretchInput);

	HTTPRequest = null;
	
	if((!isNaN(oringIDStretchInput)) && (oringIDStretchInput >= 0) && (oringIDStretchInput <= 15)){
		handleHTTPRequest('oringIDStretchInput='+oringIDStretchInput, 'updateORingIDStretchInput');
	}else{
		displayError(text.IDStretchInput, activeDesign.oringIDStretchInput);
	}
}
/*

*/
function handleBoreDiameterNom(){
	var boreDiameterNom = parseFloat(activeDesign.boreDiameterNom.value.replace(',', '.'));
	var grooveDiameterNom = parseFloat(activeDesign.grooveDiameterNom.value.replace(',', '.'));
	var pistonDiameterNom = parseFloat(activeDesign.pistonDiameterNom.value.replace(',', '.'));
	var rodDiameterNom = parseFloat(activeDesign.rodDiameterNom.value.replace(',', '.'));
	var error = false;
	
	handleClearAttributes(activeDesign.boreDiameterNom);
	handleClearAttributes(activeDesign.pistonDiameterNom);
	handleClearAttributes(activeDesign.grooveDiameterNom);
	handleClearAttributes(activeDesign.rodDiameterNom);
	
	HTTPRequest = null;
	
	/* check if boreDiameter is a number and if it is higher than 0 */
	if((!isNaN(boreDiameterNom)) && (boreDiameterNom > 0)){
		
		if(!activeDesign.boreDiameterNomChkb.checked || (activeDesign.rodDiameterNomChkb.checked || activeDesign.pistonDiameterNomChkb.checked)){

			/* PISTON */
			if(activeDesign.sealingPrinciple.value == 3){
					
				if(((!isNaN(pistonDiameterNom)) && (pistonDiameterNom > 0))){
					if(pistonDiameterNom > boreDiameterNom){
						displayError(text.boreDiameterNom, activeDesign.pistonDiameterNom);
						error = true;
					}
					
					if(((boreDiameterNom - pistonDiameterNom) / 2) >= 0.25){
						displayError(text.gapPistonBoreDiameterNom, activeDesign.boreDiameterNom);
						error = false;
					}
				}
					
				if(((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0))){
					if(grooveDiameterNom > boreDiameterNom){
						displayError(text.boreDiameterNom, activeDesign.grooveDiameterNom);
						error = true;
					}
				}
				
				if(!error){
					handleHTTPRequest('boreDiameterNom='+boreDiameterNom, 'updateBoreDiameterNom');
				}
				
			/* ROD */
			}else{
				
				if(((!isNaN(rodDiameterNom)) && (rodDiameterNom > 0))){
					if(rodDiameterNom > boreDiameterNom){
						displayError(text.boreDiameterNom, activeDesign.rodDiameterNom);
						error = true;
					}
					
					if(((boreDiameterNom - rodDiameterNom) / 2) >= 0.25){
						displayError(text.gapRodBoreDiameterNom, activeDesign.boreDiameterNom);
						error = false;
					}
				}
				
				if(((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0))){
					if(boreDiameterNom > grooveDiameterNom){
						displayError(text.grooveDiameterNom, activeDesign.boreDiameterNom);
						error = true;
					}
				}
				
				if(!error){
					handleHTTPRequest('boreDiameterNom='+boreDiameterNom, 'updateBoreDiameterNom');
				}
			}
			
		}else{
			handleHTTPRequest('boreDiameterNom='+boreDiameterNom, 'updateBoreDiameterNom');
		}
		
	}else{
		displayError(text.defaultMessage, activeDesign.boreDiameterNom);
	}
}

function handleBoreDiameterNomChkb(){
	if(this.checked){
		activeDesign.boreDiameterNom.disabled = false;
		activeDesign.boreDiameterNom.className = 'fixedInput';
	}else{
		activeDesign.boreDiameterNom.disabled = true;
		activeDesign.boreDiameterNom.className = false;
	}
	
	handleHTTPRequest('checked=' + this.checked, 'updateBoreDiameterNomChkb');
}

function handleBoreDiameterTolUpper(){
	var boreDiameterTolUpper = parseFloat(activeDesign.boreDiameterTolUpper.value.replace(',', '.'));
	var boreDiameterTolLower = parseFloat(activeDesign.boreDiameterTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.boreDiameterTolUpper);
	handleClearAttributes(activeDesign.boreDiameterTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(boreDiameterTolUpper)){
		if(!isNaN(boreDiameterTolLower)){
			if(boreDiameterTolLower > boreDiameterTolUpper){
				displayError(text.tolerance, activeDesign.boreDiameterTolLower);
			}else{
				handleHTTPRequest('boreDiameterTolUpper='+boreDiameterTolUpper, 'updateBoreDiameterTolUpper');
			}
		}else{
			handleHTTPRequest('boreDiameterTolUpper='+boreDiameterTolUpper, 'updateBoreDiameterTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.boreDiameterTolUpper);
	}
}

function handleBoreDiameterTolLower(){
	var boreDiameterTolLower = parseFloat(activeDesign.boreDiameterTolLower.value.replace(',', '.'));
	var boreDiameterTolUpper = parseFloat(activeDesign.boreDiameterTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.boreDiameterTolLower);
	handleClearAttributes(activeDesign.boreDiameterTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(boreDiameterTolLower)){
		if(!isNaN(boreDiameterTolUpper)){
			if(boreDiameterTolLower > boreDiameterTolUpper){
				displayError(text.tolerance, activeDesign.boreDiameterTolLower);
			}else{
				handleHTTPRequest('boreDiameterTolLower='+boreDiameterTolLower, 'updateBoreDiameterTolLower');
			}
		}else{
			handleHTTPRequest('boreDiameterTolLower='+boreDiameterTolLower, 'updateBoreDiameterTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.boreDiameterTolLower);
	}
}

function handleBoreDiameterSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('boreDiameter').getElementsByTagName('li');
	activeDesign.boreDiameterSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 3){
			activeDesign.boreDiameterTolUpper.disabled = false;
			activeDesign.boreDiameterTolLower.disabled = false;
			activeDesign.boreDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.boreDiameterTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.boreDiameterTolUpper.disabled = true;
			activeDesign.boreDiameterTolLower.disabled = true;
			activeDesign.boreDiameterTolUpper.style.backgroundColor = '#CCC';
			activeDesign.boreDiameterTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('boreDiameterSelect='+optionValue, 'updateBoreDiameterSelect');
	}
}
/*

*/
function handlePistonDiameterNom(){
	var pistonDiameterNom = parseFloat(activeDesign.pistonDiameterNom.value.replace(',', '.'));
	var boreDiameterNom = parseFloat(activeDesign.boreDiameterNom.value.replace(',', '.'));
	var grooveDiameterNom = parseFloat(activeDesign.grooveDiameterNom.value.replace(',', '.'));
	var error = false;
	
	handleClearAttributes(activeDesign.pistonDiameterNom);
	handleClearAttributes(activeDesign.boreDiameterNom);
	handleClearAttributes(activeDesign.grooveDiameterNom);
	
	HTTPRequest = null;
	
	if((!isNaN(pistonDiameterNom)) && (pistonDiameterNom > 0)){
		
		if(!activeDesign.pistonDiameterNomChkb.checked || activeDesign.boreDiameterNomChkb.checked){
		
			if((!isNaN(boreDiameterNom)) && (boreDiameterNom > 0)){
				if(pistonDiameterNom > boreDiameterNom){
					displayError(text.boreDiameterNom, activeDesign.pistonDiameterNom);
					error = true;
				}
				
				if(((boreDiameterNom - pistonDiameterNom) / 2) >= 0.25){
					displayError(text.gapPistonBoreDiameterNom, activeDesign.pistonDiameterNom);
					error = false;
				}
			}
			
			if((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0)){
				if(grooveDiameterNom > pistonDiameterNom){
					displayError(text.pistonDiameterNom, activeDesign.grooveDiameterNom);
					error = true;
				}
			}
			
			if(!error){
				handleHTTPRequest('pistonDiameterNom='+pistonDiameterNom, 'updatePistonDiameterNom');
			}
		
		}else{
			handleHTTPRequest('pistonDiameterNom='+pistonDiameterNom, 'updatePistonDiameterNom');
		}
		
	}else{
		displayError(text.defaultMessage, activeDesign.pistonDiameterNom);
	}
}

function handlePistonDiameterNomChkb(){
	if(this.checked){
		activeDesign.pistonDiameterNom.disabled = false;
		activeDesign.pistonDiameterNom.className = 'fixedInput';
	}else{
		activeDesign.pistonDiameterNom.disabled = true;
		activeDesign.pistonDiameterNom.className = false;
	}
	
	handleHTTPRequest('checked=' + this.checked, 'updatePistonDiameterNomChkb');
}

function handlePistonDiameterTolUpper(){
	var pistonDiameterTolUpper = parseFloat(activeDesign.pistonDiameterTolUpper.value.replace(',', '.'));
	var pistonDiameterTolLower = parseFloat(activeDesign.pistonDiameterTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.pistonDiameterTolUpper);
	handleClearAttributes(activeDesign.pistonDiameterTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(pistonDiameterTolUpper)){
		if(!isNaN(pistonDiameterTolLower)){
			if(pistonDiameterTolLower > pistonDiameterTolUpper){
				displayError(text.tolerance, activeDesign.pistonDiameterTolLower);
			}else{
				handleHTTPRequest('pistonDiameterTolUpper='+pistonDiameterTolUpper, 'updatePistonDiameterTolUpper');
			}
		}else{
			handleHTTPRequest('pistonDiameterTolUpper='+pistonDiameterTolUpper, 'updatePistonDiameterTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.pistonDiameterTolUpper);
	}
}

function handlePistonDiameterTolLower(){
	var pistonDiameterTolLower = parseFloat(activeDesign.pistonDiameterTolLower.value.replace(',', '.'));
	var pistonDiameterTolUpper = parseFloat(activeDesign.pistonDiameterTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.pistonDiameterTolLower);
	handleClearAttributes(activeDesign.pistonDiameterTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(pistonDiameterTolLower)){
		if(!isNaN(pistonDiameterTolUpper)){
			if(pistonDiameterTolLower > pistonDiameterTolUpper){
				displayError(text.tolerance, activeDesign.pistonDiameterTolLower);
			}else{
				handleHTTPRequest('pistonDiameterTolLower='+pistonDiameterTolLower, 'updatePistonDiameterTolLower');
			}
		}else{
			handleHTTPRequest('pistonDiameterTolLower='+pistonDiameterTolLower, 'updatePistonDiameterTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.pistonDiameterTolLower);
	}
}

function handlePistonDiameterSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var design = document.getElementById('calculator').className;
	var li = document.getElementById('pistonDiameter').getElementsByTagName('li');
	activeDesign.pistonDiameterSelect.value = optionValue;
	
	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 3){
			activeDesign.pistonDiameterTolUpper.disabled = false;
			activeDesign.pistonDiameterTolLower.disabled = false;
			activeDesign.pistonDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.pistonDiameterTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.pistonDiameterTolUpper.disabled = true;
			activeDesign.pistonDiameterTolLower.disabled = true;
			activeDesign.pistonDiameterTolUpper.style.backgroundColor = '#CCC';
			activeDesign.pistonDiameterTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('pistonDiameterSelect='+optionValue, 'updatePistonDiameterSelect');
	}
}
/*
	GROOVEDIAMETER
*/
function handleGrooveDiameterNom(){
	var grooveDiameterNom = parseFloat(activeDesign.grooveDiameterNom.value.replace(',', '.'));
	var boreDiameterNom = parseFloat(activeDesign.boreDiameterNom.value.replace(',', '.'));
	var pistonDiameterNom = parseFloat(activeDesign.pistonDiameterNom.value.replace(',', '.'));
	var rodDiameterNom = parseFloat(activeDesign.rodDiameterNom.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveDiameterNom);
	handleClearAttributes(activeDesign.pistonDiameterNom);
	handleClearAttributes(activeDesign.boreDiameterNom);
	handleClearAttributes(activeDesign.rodDiameterNom);
	
	HTTPRequest = null;

	/* PISTON */
	if(activeDesign.sealingPrinciple.value == 3){
		if((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0)){
			
			if(((!isNaN(pistonDiameterNom)) && (pistonDiameterNom > 0)) || ((!isNaN(boreDiameterNom)) && (boreDiameterNom > 0))){
			
				if(grooveDiameterNom > pistonDiameterNom){
					displayError(text.pistonDiameterNom, activeDesign.grooveDiameterNom);
				
				}else if(grooveDiameterNom > boreDiameterNom){
					displayError(text.boreDiameterNom, activeDesign.grooveDiameterNom);
				
				}else{
					handleHTTPRequest('grooveDiameterNom='+grooveDiameterNom, 'updateGrooveDiameterNom');
				}
			
			}else{
				handleHTTPRequest('grooveDiameterNom='+grooveDiameterNom, 'updateGrooveDiameterNom');
			}
		}else{
			displayError(text.defaultMessage, activeDesign.grooveDiameterNom);
		}
		
	/* ROD */
	}else{
		if((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0)){
			
			if(((!isNaN(boreDiameterNom)) && (boreDiameterNom > 0)) || ((!isNaN(rodDiameterNom)) && (rodDiameterNom > 0))){
				
				if(boreDiameterNom > grooveDiameterNom){
					displayError(text.grooveDiameterNom, activeDesign.boreDiameterNom);
				
				}else if(rodDiameterNom > grooveDiameterNom){
					displayError(text.grooveDiameterNom, activeDesign.rodDiameterNom);
				
				}else{
					handleHTTPRequest('grooveDiameterNom='+grooveDiameterNom, 'updateGrooveDiameterNom');
				}
				
			}else{
				handleHTTPRequest('grooveDiameterNom='+grooveDiameterNom, 'updateGrooveDiameterNom');
			}
		}else{
			displayError(text.defaultMessage, activeDesign.boreDiameterNom);
		}		
	}
}

function handleGrooveDiameterTolUpper(){
	var grooveDiameterTolUpper = parseFloat(activeDesign.grooveDiameterTolUpper.value.replace(',', '.'));
	var grooveDiameterTolLower = parseFloat(activeDesign.grooveDiameterTolLower.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveDiameterTolLower);
	handleClearAttributes(activeDesign.grooveDiameterTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveDiameterTolUpper)){
		if(!isNaN(grooveDiameterTolLower)){
			if(grooveDiameterTolLower > grooveDiameterTolUpper){
				displayError(text.tolerance, activeDesign.grooveDiameterTolLower);
			}else{
				handleHTTPRequest('grooveDiameterTolUpper='+grooveDiameterTolUpper, 'updateGrooveDiameterTolUpper');
			}
		}else{
			handleHTTPRequest('grooveDiameterTolUpper='+grooveDiameterTolUpper, 'updateGrooveDiameterTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveDiameterTolUpper);
	}
}

function handleGrooveDiameterTolLower(){
	var grooveDiameterTolLower = parseFloat(activeDesign.grooveDiameterTolLower.value.replace(',', '.'));
	var grooveDiameterTolUpper = parseFloat(activeDesign.grooveDiameterTolUpper.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveDiameterTolLower);
	handleClearAttributes(activeDesign.grooveDiameterTolUpper);

	HTTPRequest = null;
	
	if(!isNaN(grooveDiameterTolLower)){
		if(!isNaN(grooveDiameterTolUpper)){
			if(grooveDiameterTolLower > grooveDiameterTolUpper){
				displayError(text.tolerance, activeDesign.grooveDiameterTolLower);
			}else{
				handleHTTPRequest('grooveDiameterTolLower='+grooveDiameterTolLower, 'updateGrooveDiameterTolLower');
			}
		}else{
			handleHTTPRequest('grooveDiameterTolLower='+grooveDiameterTolLower, 'updateGrooveDiameterTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveDiameterTolLower);
	}
}

function handleGrooveDiameterSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('grooveDiameter').getElementsByTagName('li');
	activeDesign.grooveDiameterSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 2){
			activeDesign.grooveDiameterTolUpper.disabled = false;
			activeDesign.grooveDiameterTolLower.disabled = false;
			activeDesign.grooveDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveDiameterTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.grooveDiameterTolUpper.disabled = true;
			activeDesign.grooveDiameterTolLower.disabled = true;
			activeDesign.grooveDiameterTolUpper.style.backgroundColor = '#CCC';
			activeDesign.grooveDiameterTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('grooveDiameterSelect='+optionValue, 'updateGrooveDiameterSelect');
	}
}
/*
	GROOVEWIDTH
*/
function handleGrooveWidthNom(){
	var grooveWidthNom = parseFloat(activeDesign.grooveWidthNom.value.replace(',', '.'));
	var radius = parseFloat(activeDesign.radius.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.grooveWidthNom);
	handleClearAttributes(activeDesign.radius);
	
	HTTPRequest = null;
	
	if((!isNaN(grooveWidthNom)) && (grooveWidthNom > 0)){
		
		if((!isNaN(radius)) && (radius >= 0)){
			
			if(radius > (grooveWidthNom / 2)){
				displayError(text.grooveWidthNom, activeDesign.radius);
			
			}else{
				handleHTTPRequest('grooveWidthNom='+grooveWidthNom, 'updateGrooveWidthNom');
			}
		
		}else{
			handleHTTPRequest('grooveWidthNom='+grooveWidthNom, 'updateGrooveWidthNom');
		}
	
	}else{
		displayError(text.defaultMessage, activeDesign.grooveWidthNom);
	}
}

function handleGrooveWidthTolUpper(){
	var grooveWidthTolUpper = parseFloat(activeDesign.grooveWidthTolUpper.value.replace(',', '.'));
	var grooveWidthTolLower = parseFloat(activeDesign.grooveWidthTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveWidthTolUpper);
	handleClearAttributes(activeDesign.grooveWidthTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveWidthTolUpper)){
		if(!isNaN(grooveWidthTolLower)){
			if(grooveWidthTolLower > grooveWidthTolUpper){
				displayError(text.tolerance, activeDesign.grooveWidthTolLower);
			}else{
				handleHTTPRequest('grooveWidthTolUpper='+grooveWidthTolUpper, 'updateGrooveWidthTolUpper');
			}
		}else{
			handleHTTPRequest('grooveWidthTolUpper='+grooveWidthTolUpper, 'updateGrooveWidthTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveWidthTolUpper);
	}
}

function handleGrooveWidthTolLower(){
	var grooveWidthTolLower = parseFloat(activeDesign.grooveWidthTolLower.value.replace(',', '.'));
	var grooveWidthTolUpper = parseFloat(activeDesign.grooveWidthTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.grooveWidthTolLower);
	handleClearAttributes(activeDesign.grooveWidthTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(grooveWidthTolLower)){
		if(!isNaN(grooveWidthTolUpper)){
			if(grooveWidthTolLower > grooveWidthTolUpper){
				displayError(text.tolerance, activeDesign.grooveWidthTolLower);
			}else{
				handleHTTPRequest('grooveWidthTolLower='+grooveWidthTolLower, 'updateGrooveWidthTolLower');
			}
		}else{
			handleHTTPRequest('grooveWidthTolLower='+grooveWidthTolLower, 'updateGrooveWidthTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveWidthTolLower);
	}
}

function handleGrooveWidthDiameterSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('grooveWidth').getElementsByTagName('li');
	activeDesign.grooveWidthSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 2){
			activeDesign.grooveWidthTolUpper.disabled = false;
			activeDesign.grooveWidthTolLower.disabled = false;
			activeDesign.grooveWidthTolUpper.style.backgroundColor = '#FFF';
			activeDesign.grooveWidthTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.grooveWidthTolUpper.disabled = true;
			activeDesign.grooveWidthTolLower.disabled = true;
			activeDesign.grooveWidthTolUpper.style.backgroundColor = '#CCC';
			activeDesign.grooveWidthTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('grooveWidthSelect='+optionValue, 'updateGrooveWidthSelect');
	}
}
/*
	ROD
*/
function handleRodDiameterNom(){
	var rodDiameterNom = parseFloat(activeDesign.rodDiameterNom.value.replace(',', '.'));
	var boreDiameterNom = parseFloat(activeDesign.boreDiameterNom.value.replace(',', '.'));
	var grooveDiameterNom = parseFloat(activeDesign.grooveDiameterNom.value.replace(',', '.'));
	var error = false;
	
	handleClearAttributes(activeDesign.rodDiameterNom);
	handleClearAttributes(activeDesign.boreDiameterNom);
	handleClearAttributes(activeDesign.grooveDiameterNom);
	
	HTTPRequest = null;
	
	if((!isNaN(rodDiameterNom)) && (rodDiameterNom > 0)){
		
		if(!activeDesign.rodDiameterNomChkb.checked || activeDesign.boreDiameterNomChkb.checked){
			
			if(((!isNaN(boreDiameterNom)) && (boreDiameterNom > 0))){
				if(rodDiameterNom > boreDiameterNom){
					displayError(text.boreDiameterNom, activeDesign.rodDiameterNom);
					error = true;
				}
				
				if(((boreDiameterNom - rodDiameterNom) / 2) >= 0.25){
					displayError(text.gapRodBoreDiameterNom, activeDesign.rodDiameterNom);
					error = false;
				}
			}
				
			if(((!isNaN(grooveDiameterNom)) && (grooveDiameterNom > 0))){
				if(rodDiameterNom > grooveDiameterNom){
					displayError(text.grooveDiameterNom, activeDesign.rodDiameterNom);
					error = true;
				}
			}
			
			if(!error){
				handleHTTPRequest('rodDiameterNom='+rodDiameterNom, 'updateRodDiameterNom');
			}
			
		}else{
			handleHTTPRequest('rodDiameterNom='+rodDiameterNom, 'updateRodDiameterNom');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.grooveWidthNom);
	}
}

function handleRodDiameterNomChkb(){
	if(this.checked){
		activeDesign.rodDiameterNom.disabled = false;
		activeDesign.rodDiameterNom.className = 'fixedInput';
	}else{
		activeDesign.rodDiameterNom.disabled = true;
		activeDesign.rodDiameterNom.className = false;
	}
	
	handleHTTPRequest('checked=' + this.checked, 'updateRodDiameterNomChkb');
}

function handleRodDiameterTolUpper(){
	var rodDiameterTolUpper = parseFloat(activeDesign.rodDiameterTolUpper.value.replace(',', '.'));
	var rodDiameterTolLower = parseFloat(activeDesign.rodDiameterTolLower.value.replace(',', '.'));

	handleClearAttributes(activeDesign.rodDiameterTolUpper);
	handleClearAttributes(activeDesign.rodDiameterTolLower);
	
	HTTPRequest = null;
	
	if(!isNaN(rodDiameterTolUpper)){
		if(!isNaN(rodDiameterTolLower)){
			if(rodDiameterTolLower > rodDiameterTolUpper){
				displayError(text.tolerance, activeDesign.rodDiameterTolLower);
			}else{
				handleHTTPRequest('rodDiameterTolUpper='+rodDiameterTolUpper, 'updateRodDiameterTolUpper');
			}
		}else{
			handleHTTPRequest('rodDiameterTolUpper='+rodDiameterTolUpper, 'updateRodDiameterTolUpper');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.rodDiameterTolUpper);
	}
}

function handleRodDiameterTolLower(){
	var rodDiameterTolLower = parseFloat(activeDesign.rodDiameterTolLower.value.replace(',', '.'));
	var rodDiameterTolUpper = parseFloat(activeDesign.rodDiameterTolUpper.value.replace(',', '.'));

	handleClearAttributes(activeDesign.rodDiameterTolLower);
	handleClearAttributes(activeDesign.rodDiameterTolUpper);
	
	HTTPRequest = null;
	
	if(!isNaN(rodDiameterTolLower)){
		if(!isNaN(rodDiameterTolUpper)){
			if(rodDiameterTolLower > rodDiameterTolUpper){
				displayError(text.tolerance, activeDesign.rodDiameterTolLower);
			}else{
				handleHTTPRequest('rodDiameterTolLower='+rodDiameterTolLower, 'updateRodDiameterTolLower');
			}
		}else{
			handleHTTPRequest('rodDiameterTolLower='+rodDiameterTolLower, 'updateRodDiameterTolLower');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.rodDiameterTolLower);
	}
}

function handleRodDiameterSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var design = document.getElementById('calculator').className;
	var li = document.getElementById('rodDiameter').getElementsByTagName('li');
	activeDesign.rodDiameterSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designGroove') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
		
		if(optionValue == 3){
			activeDesign.rodDiameterTolUpper.disabled = false;
			activeDesign.rodDiameterTolLower.disabled = false;
			activeDesign.rodDiameterTolUpper.style.backgroundColor = '#FFF';
			activeDesign.rodDiameterTolLower.style.backgroundColor = '#FFF';
		}else{
			activeDesign.rodDiameterTolUpper.disabled = true;
			activeDesign.rodDiameterTolLower.disabled = true;
			activeDesign.rodDiameterTolUpper.style.backgroundColor = '#CCC';
			activeDesign.rodDiameterTolLower.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('rodDiameterSelect='+optionValue, 'updateRodDiameterSelect');
	}
}
/*

*/
function handleOORMax(){
	var OORMax = parseFloat(activeDesign.OORMax.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.OORMax);

	HTTPRequest = null;
	
	if((!isNaN(OORMax)) && (OORMax >= 0)){
		handleHTTPRequest('OORMax='+OORMax, 'updateOORMax');
	}else{
		displayError(text.defaultMessage, activeDesign.OORMax);
	}
}


/*
	O-RING
*/
function handleORingCompound(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var appTemperature = activeDesign.appTemperature.value;
	var a = document.getElementById('oringCompoundList').getElementsByTagName('a');
	
	for(var i=0; i<a.length; i++){
		var opt = a[i].getAttribute('optionValue');
		if(opt == (optionValue)){
			a[i].parentNode.className = 'selected';
		}else{
			a[i].parentNode.className = null;
		}
	}
	
	activeDesign.oringCompID.value = optionValue;
	
	HTTPRequest = null;
	
	handleHTTPRequest('appTemperature='+ appTemperature +'&oringCompoundID='+optionValue, 'updateORingCompound');
}
/*
	ORING CHEMICAL VOLUME SWELL
*/
function handleORingChemVolSwell(){
	var oringChemVolSwell = activeDesign.oringChemVolSwell.value.replace(',', '.');
	
	HTTPRequest = null;
	
	if((!isNaN(oringChemVolSwell)) && (oringChemVolSwell >= -10) && (oringChemVolSwell <= 50)){
		handleClearAttributes(activeDesign.oringChemVolSwell);
		handleHTTPRequest('oringChemVolSwell='+oringChemVolSwell, 'updateORingChemVolSwell');
	}else{
		displayError(text.defaultMessage, activeDesign.oringChemVolSwell);
	}
}
/*
	ORING INNER DIAMETER
*/
function handleORingIDNom(){
	var oringIDNom = parseFloat(activeDesign.oringIDNom.value.replace(',', '.'));
	var oringCSDNom = parseFloat(activeDesign.oringCSDNom.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.oringIDNom);
	handleClearAttributes(activeDesign.oringCSDNom);
	
	HTTPRequest = null;
	
	if((!isNaN(oringIDNom)) && (oringIDNom > 0)){
		if(!isNaN(oringCSDNom) && oringCSDNom > 0){
			if(oringCSDNom > oringIDNom){
				displayError(text.oringIDNom, activeDesign.oringCSDNom);
			}else{
				handleHTTPRequest('oringIDNom='+oringIDNom, 'updateORingIDNom');
			}
		}else{
			handleHTTPRequest('oringIDNom='+oringIDNom, 'updateORingIDNom');
		}
	}else{
		displayError(text.defaultMessage, activeDesign.oringIDNom);
	}
}


function handleORingIDTol(){
	var oringIDTol = activeDesign.oringIDTol.value.replace(',', '.');
	
	HTTPRequest = null;

	handleClearAttributes(activeDesign.oringIDTol);

	if((!isNaN(oringIDTol)) && (oringIDTol > 0)){
		handleHTTPRequest('oringIDTol='+oringIDTol, 'updateORingIDTol');
	}else{
		displayError(text.defaultMessage, activeDesign.oringIDTol);
	}
}

function handleORingIDSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];
	
	var design = document.getElementById('calculator').className;
	var li = document.getElementById('oringID').getElementsByTagName('li');
	activeDesign.oringIDSelect.value = optionValue;
	
	if((design.indexOf('And') != -1) || (design.indexOf('designORing') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){ 
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
	
		HTTPRequest = null;
	
		if(optionValue == 2){
			activeDesign.oringIDTol.disabled = false;
			activeDesign.oringIDTol.style.backgroundColor = '#FFF';
		}else{
			activeDesign.oringIDTol.disabled = true;
			activeDesign.oringIDTol.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('oringIDSelect='+optionValue, 'updateORingIDSelect');
	}
}
/*
	ORING
*/
function handleORingCSDNom(){
	var oringCSDNom = parseFloat(activeDesign.oringCSDNom.value.replace(',', '.'));
	var oringIDNom = parseFloat(activeDesign.oringIDNom.value.replace(',', '.'));
	
	handleClearAttributes(activeDesign.oringCSDNom);
	handleClearAttributes(activeDesign.oringIDNom);
	
	HTTPRequest = null;
	
	if((!isNaN(oringCSDNom)) && (oringCSDNom >= 0) && (oringCSDNom <= 25)){
		
		/* crossSectionDiameter's bigger than 7 are not within the ISO 3601 */
		if(oringCSDNom > 7){
			var li = document.getElementById('oringCSD').getElementsByTagName('li');
			
			for(var i=0; i<li.length; i++){
				if(i == 1){
					li[i].className = 'selected';
				}else{
					li[i].className = null;
				}
			}

			activeDesign.oringCSDTol.disabled = false;
			activeDesign.oringCSDTol.style.backgroundColor = '#FFF';
		}
		
		if((!isNaN(oringIDNom)) && (oringIDNom > 0)){
			if(oringCSDNom > oringIDNom){
				displayError(text.oringIDNom, activeDesign.oringCSDNom);
			}else{
				handleHTTPRequest('oringCSDNom='+oringCSDNom, 'updateORingCSDNom');
			}
		}else{
			handleHTTPRequest('oringCSDNom='+oringCSDNom, 'updateORingCSDNom');
		}
	}else{
		displayError(text.oringCSDNom, activeDesign.oringCSDNom);
	}
}

function handleORingCSDTol(){
	var oringCSDTol = parseFloat(activeDesign.oringCSDTol.value.replace(',', '.'));
	
	HTTPRequest = null;
	
	handleClearAttributes(activeDesign.oringCSDTol);
	
	if((!isNaN(oringCSDTol)) && (oringCSDTol > 0)){
		handleHTTPRequest('oringCSDTol='+oringCSDTol, 'updateORingCSDTol');
	}else{
		displayError(text.defaultMessage, activeDesign.oringCSDTol);
	}
}

function handleORingCSDSelect(evt){
	var optionValue;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "optionValue";
	// "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
	evt[moz_var] ? optionValue = evt[moz_var][prop_var] : optionValue = evt[ie_var][prop_var];

	var design = document.getElementById('calculator').className;
	var li = document.getElementById('oringCSD').getElementsByTagName('li');
	activeDesign.oringCSDSelect.value = optionValue;

	if((design.indexOf('And') != -1) || (design.indexOf('designORing') == -1)){
	
		for(var i=0; i<li.length; i++){
			if(i == (optionValue-1)){
				li[i].className = 'selected';
			}else{
				li[i].className = null;
			}
		}
		
		HTTPRequest = null;
	
		if(optionValue == 2){
			activeDesign.oringCSDTol.disabled = false;
			activeDesign.oringCSDTol.style.backgroundColor = '#FFF';
		}else{
			activeDesign.oringCSDTol.disabled = true;
			activeDesign.oringCSDTol.style.backgroundColor = '#CCC';
		}
		
		handleHTTPRequest('oringCSDSelect='+optionValue, 'updateORingCSDSelect');
	}
}


/*

*/
// INITIALISING ARRAY FOR THE SELECTS
	var selectListContent = [];


function initSelects(){
	// AXIAL INNER AND OUTER PRESSURE
	selectListContent.push(['1', 'h11', true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('grooveIDSelectList', 'handleGrooveIDSelect');
	
	selectListContent.push(['1', 'H11', true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('grooveODSelectList', 'handleGrooveODSelect');
	
	selectListContent.push(['1', text.sugg, true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('grooveDepthSelectList', 'handleGrooveDepthSelect');
	
	// PISTON AND ROD
	selectListContent.push(['1', 'H7', false]);
	selectListContent.push(['2', 'H8', true]);
	selectListContent.push(['3', text.free, false]);
	initSelectList('boreDiameterSelectList', 'handleBoreDiameterSelect');

	selectListContent.push(['1', 'h9', true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('grooveDiameterSelectList', 'handleGrooveDiameterSelect');

	selectListContent.push(['1', text.sugg, true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('grooveWidthSelectList', 'handleGrooveWidthDiameterSelect');

	// PISTON
	selectListContent.push(['1', 'f7', true]);
	selectListContent.push(['2', 'g6', false]);
	selectListContent.push(['3', text.free, false]);
	initSelectList('pistonDiameterSelectList', 'handlePistonDiameterSelect');

	// ROD
	selectListContent.push(['1', 'f7', true]);
	selectListContent.push(['2', 'g6', false]);
	selectListContent.push(['3', text.free, false]);
	initSelectList('rodDiameterSelectList', 'handleRodDiameterSelect');
	
	// ORING
	selectListContent.push(['1', 'ISO 3601', true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('oringIDSelectList', 'handleORingIDSelect');

	selectListContent.push(['1', 'ISO 3601', true]);
	selectListContent.push(['2', text.free, false]);
	initSelectList('oringCSDSelectList', 'handleORingCSDSelect');
	

	activeDesign.appMovement.onclick = showSelect;
	activeDesign.appPressure.onclick = showSelect;
	activeDesign.material.onclick = showSelect;
	activeDesign.oringCompound.onclick = showSelect;
	activeDesign.grooveID.onclick = showSelect;
	activeDesign.grooveOD.onclick = showSelect;
	activeDesign.grooveDepth.onclick = showSelect;
	activeDesign.boreDiameter.onclick = showSelect;
	activeDesign.grooveDiameter.onclick = showSelect;
	activeDesign.grooveWidth.onclick = showSelect;
	activeDesign.pistonDiameter.onclick = showSelect;
	activeDesign.rodDiameter.onclick = showSelect;
	activeDesign.oringID.onclick = showSelect;
	activeDesign.oringCSD.onclick = showSelect;
	activeDesign.designNameSelect.onclick = showSelect;
}

function showSelect(){
	var design = document.getElementById('calculator').className;
	var className = '';
	
	if (this.className == '') {
		if(this.id.indexOf('app') != -1){
			
				className = 'onClick';
			
		}else{
			
			/* grooveInputs */
			if(design.indexOf('And') != -1){
				
					className = 'onClick';
				
			}else if(design.indexOf('designGroove') != -1){
				
				if((this.id.indexOf('oring') != -1) || (this.id.indexOf('material') != -1) || (this.id.indexOf('designNameSelect') != -1)){				
					
						className = 'onClick';
				}
				
			/* oringProperties */
			}else if(design.indexOf('designORing') != -1){
				
				if((this.id.indexOf('Compound') != -1) || (this.id.indexOf('oring') == -1) || (this.id.indexOf('designNameSelect') != -1)){
					
						className = 'onClick';
				}
				
			}
			
		}
	} else {
		className = '';
	}
	
	this.className = className;	
	selectIsVisible = false;
}

initLogin = function(){
	var loginButton = document.getElementById('loginButton');
		
	toggleButtons();
	
	if( !oRingCalculator.userIsLoggedIn ) loginButton.onclick = openLoginForm;
}

toggleButtons = function(){
	var saveButton = document.getElementById('saveButton');
	var deleteButton = document.getElementById('deleteButton');
	var loginButton = document.getElementById('loginButton');
	var designNameSelect = document.getElementById('designNameSelect');
	var designName = document.getElementById('designName');

	if( oRingCalculator.userIsLoggedIn ){
		saveButton.style.display = 'block';
		deleteButton.style.display = 'block';
		designNameSelect.style.display = 'block';
		designName.style.display = 'block';
		loginButton.style.display = 'none';
	}else{
		loginButton.style.display = 'block';
		saveButton.style.display = 'none';
		deleteButton.style.display = 'none';
		designNameSelect.style.display = 'none';
		designName.style.display = 'none';
	}	
}

var selectIsVisible = false;
function clearPopUp(){

	if(selectIsVisible){
		var bodyArray = ['appProperties','calculatorBody'];
		
		for(var i=0; i<bodyArray.length; i++){
			var ul = document.getElementById(bodyArray[i]).getElementsByTagName('ul');
			
			for(var j = 0; j < ul.length; j++){
				var parentNode = document.getElementById(ul[j].id).parentNode;
				
				if(parentNode.className != 'errorMessage'){
					parentNode.className = null;
				}
			}
		}
		
		selectIsVisible = false;
	}else{
		selectIsVisible = true;
		return false;
	}
}

function addEvent(obj, evType, fn, useCapture, optionValue){
	/* FIREFOX */
	if(obj.addEventListener){
		obj.addEventListener(evType, eval(fn), useCapture);
		obj.optionValue = optionValue;
		return true;
		
	/* INTERNET EXPLORER */
	}else if(obj.attachEvent){
		obj.attachEvent('on'+evType, eval(fn));
		obj.optionValue = optionValue;
	}else{
		alert("Handler could not be attached");
	}
}

var selectListWrapper;

function initSelectList(input, functionName){
	selectListWrapper = document.getElementById(input);

	this.createSelectList = function(optionValue, text, selected){
		var listItem = document.createElement('li');
		var link = document.createElement('a');

		if(selected == 1) listItem.className = 'selected';
		
		link.setAttribute('optionValue', optionValue);
		link.appendChild(document.createTextNode(text));
		listItem.appendChild(link);
		
		addEvent(link, 'click', functionName, false, optionValue);
		
		return listItem;
	}
	
	for(var i = 0; i < selectListContent.length; i++){
		selectListWrapper.appendChild(createSelectList(selectListContent[i][0], selectListContent[i][1], selectListContent[i][2]));
	}
	
	selectListContent = [];
}

function handleSelectLoad(objectList, selectedValue){
	// objectList  -  list element
	
	var anchors = objectList.getElementsByTagName('a'); // 
	var parent = objectList.parentNode.parentNode; // fieldset element
	var inputs = parent.getElementsByTagName('input'); // input elements
	var optionValue = '';
	var manualInput = false;
	
	
	
	for(var i=0; i<anchors.length; i++){
		optionValue = anchors[i].getAttribute('optionValue');
		innerHTML = anchors[i].innerHTML;
		anchors[i].parentNode.className = '';
		
		if(optionValue == selectedValue){
			anchors[i].parentNode.className = 'selected';
			
			if(innerHTML.indexOf('free') != -1){
				manualInput = true;
			}
		}		
	}
	
	
	if(manualInput){
		for(i=0; i<inputs.length; i++){
			if(inputs[i].id.indexOf('Tol')){
				inputs[i].disabled = false;
				inputs[i].style.backgroundColor = '#FFF';
			}
		}
	}
}


/*
	APPLICATION TOOLBAR
*/
function handleSaveDesign(){
	var sealingPrinciple = parseInt(activeDesign.sealingPrinciple.value);
	var design = parseInt(activeDesign.design.value);
	var designName = activeDesign.designName.value;

	var oringIDNom = activeDesign.oringIDNom.value;
	var oringCSDNom = activeDesign.oringCSDNom.value;
	
	var grooveIDNom = activeDesign.grooveIDNom.value;
	var grooveODNom = activeDesign.grooveODNom.value;
	var grooveDepthNom = activeDesign.grooveDepthNom.value;
	
	var pistonDiameterNom = activeDesign.pistonDiameterNom.value;
	var rodDiameterNom = activeDesign.rodDiameterNom.value;
	var boreDiameterNom = activeDesign.boreDiameterNom.value;
	var grooveDiameterNom = activeDesign.grooveDiameterNom.value;
	var grooveWidthNom = activeDesign.grooveWidthNom.value;
	
	var error = false;
	
	if(design == 1 || design == 3){
		if(oringIDNom == ''){
			displayError(text.defaultMessage, activeDesign.oringIDNom);
			error = true;
		}
		
		if(oringCSDNom == ''){
			displayError(text.defaultMessage, activeDesign.oringCSDNom);
			error = true;
		}
	}
	
	if(design == 2 || design ==3){
		switch(sealingPrinciple){
			case 1:
				if(grooveIDNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveIDNom);
					error = true;
				}
				
				if(grooveODNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveODNom);
					error = true;
				}
				
				if(grooveDepthNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveDepthNom);
					error = true;
				}
				break;
				
			case 2:
				if(grooveIDNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveIDNom);
					error = true;
				}
				
				if(grooveODNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveODNom);
					error = true;
				}
				
				if(grooveDepthNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveDepthNom);
					error = true;
				}
				break;
			
			case 3:
				if(pistonDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.pistonDiameterNom);
					error = true;
				}
				
				if(boreDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.boreDiameterNom);
					error = true;
				}
				
				if(grooveDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveDiameterNom);
					error = true;
				}
	
				if(grooveWidthNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveWidthNom);
					error = true;
				}
				break;
			
			case 4:
				if(rodDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.rodDiameterNom);
					error = true;
				}
				
				if(boreDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.boreDiameterNom);
					error = true;
				}
				
				if(grooveDiameterNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveDiameterNom);
					error = true;
				}
	
				if(grooveWidthNom == ''){
					displayError(text.defaultMessage, activeDesign.grooveWidthNom);
					error = true;
				}
				break;
		}
	}
	
	if(error){
		alert('Some of the value\'s are missing. Please check your provided value\'s');
		return;
	}
	
	if(designName == ''){
		alert('Please specify a designName');
		return;
	}
	
	saveDesign();
}


var infoBox;

/*
	INFO BOX
*/
function handleInfoBox(head, message){
	var html = '';
	
	if(infoBox){
		infoBox.parentNode.removeChild(document.getElementById('infoBox'));
		infoBox = false;
	}
	
	var screenWidth = screen.width;
	var screenHeight = screen.height;

	infoBox = document.createElement('div');
	infoBox.id = 'infoBox';
	html += '<h2>Info - ' + head + '<a href="javascript:closeInfoBox()"><img src="img/closePopup.gif" /></a></h2>';
	html += '<div>' + eval('text.' + message) + '</div>';
	
	infoBox.innerHTML = html;
	
	document.getElementsByTagName('body')[0].appendChild(infoBox);
	
	var infoBoxWidth = infoBox.offsetWidth;
	var infoBoxHeight = infoBox.offsetHeight;
	
	x = (50)-((100 / screenWidth * (infoBoxWidth/2)));
	y = (50)-((100 / screenHeight * (infoBoxHeight/2)));
	
	infoBox.style.left = x + '%';
	infoBox.style.top = y + '%';
	
	return false;
}

function closeInfoBox(){
	if(infoBox){
		infoBox.parentNode.removeChild(document.getElementById('infoBox'));
		infoBox = false;
	}
}
/*
	// INFO BOX
*/

/*
	APP TOOLBAR
*/
	function handleCalculate(msEvent, errshow){
		
		if (errshow === undefined) {
			errshow = 1;
		}
		
		var sealingPrinciple = parseInt(activeDesign.sealingPrinciple.value);
		var design = parseInt(activeDesign.design.value);
		var designName = activeDesign.designName.value;
	
		var oringIDNom = activeDesign.oringIDNom.value;
		var oringCSDNom = activeDesign.oringCSDNom.value;
		
		var grooveIDNom = activeDesign.grooveIDNom.value;
		var grooveODNom = activeDesign.grooveODNom.value;
		var grooveDepthNom = activeDesign.grooveDepthNom.value;
		
		var pistonDiameterNom = activeDesign.pistonDiameterNom.value;
		var rodDiameterNom = activeDesign.rodDiameterNom.value;
		var boreDiameterNom = activeDesign.boreDiameterNom.value;
		var grooveDiameterNom = activeDesign.grooveDiameterNom.value;
		var grooveWidthNom = activeDesign.grooveWidthNom.value;
		
		var error = false;
		
		if(design == 1 || design == 3){
			if(oringIDNom == ''){
				if (errshow) {
					displayError(text.defaultMessage, activeDesign.oringIDNom);
				}
				error = true;
			}
			
			if(oringCSDNom == ''){
				if (errshow) {
					displayError(text.defaultMessage, activeDesign.oringCSDNom);
				}
				error = true;
			}
		}
		
		if(design == 2 || design ==3){
			switch(sealingPrinciple){
				case 1:
					if(grooveIDNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveIDNom);
						}
						error = true;
					}
					
					if(grooveODNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveODNom);
						}
						error = true;
					}
					
					if(grooveDepthNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveDepthNom);
						}
						error = true;
					}
					break;
					
				case 2:
					if(grooveIDNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveIDNom);
						}
						error = true;
					}
					
					if(grooveODNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveODNom);
						}
						error = true;
					}
					
					if(grooveDepthNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveDepthNom);
						}
						error = true;
					}
					break;
				
				case 3:
					if(pistonDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.pistonDiameterNom);
						}
						error = true;
					}
					
					if(boreDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.boreDiameterNom);
						}
						error = true;
					}
					
					if(grooveDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveDiameterNom);
						}
						error = true;
					}
		
					if(grooveWidthNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveWidthNom);
						}
						error = true;
					}
					break;
				
				case 4:					
					if(rodDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.rodDiameterNom);
						}
						error = true;
					}
					
					if(boreDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.boreDiameterNom);
						}
						error = true;
					}
					
					if(grooveDiameterNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveDiameterNom);
						}
						error = true;
					}
		
					if(grooveWidthNom == ''){
						if (errshow) {
							displayError(text.defaultMessage, activeDesign.grooveWidthNom);
						}
						error = true;
					}
					break;
			}
		}
		
		if(error && errshow){
			alert('Some of the value\'s are missing. Please check your provided value\'s');
			return;
		}
		
		calculate();
	}
/*
	APP TOOLBAR
*/



/*
	STANDARD ORINGS
*/
	function handleStandardORing(){
		var oringCompound = activeDesign.oringCompound.value;
		var oringIDNom = activeDesign.oringIDNom.value;
		var oringCSDNom = activeDesign.oringCSDNom.value;
	
		if(oringIDNom == ''){ oringIDNom = 0; }
		if(oringCSDNom == ''){ oringCSDNom = 0; }
		
		activeDesign.oringIDTol.style.backgroundColor = '#CCC';
		activeDesign.oringCSDTol.style.backgroundColor = '#CCC';
		
		handleHTTPRequest('oringCompound=' + oringCompound + '&innerDiameter=' + oringIDNom + '&crossSectionDiameter=' + oringCSDNom, 'updateStandardORing');
	}
	
	function handleStandardORingSearch(){
		var oringCompound = activeDesign.oringCompound.value;
		var oringIDNom = document.getElementById('innerDiameter').value;
		var oringCSDNom = document.getElementById('crossSectionDiameter').value;
		
		closeStandardORing();
	
		if((!isNaN(oringIDNom) && oringIDNom != '') && (!isNaN(oringCSDNom) && oringCSDNom != '')){
			handleHTTPRequest('oringCompound=' + oringCompound + '&innerDiameter=' + oringIDNom + '&crossSectionDiameter=' + oringCSDNom, 'updateStandardORing');
		}
	}

	/* POPUP */
	function closeStandardORing(){
		document.getElementsByTagName('body')[0].removeChild(document.getElementById('standardORing'));
	}
/*
	// STANDARD ORINGS
*/


function handleDeleteDesign(){
	deleteDesign();
}

function handleResetCalculator(){
	resetCalculator();
}

/*
	// APPLICATION TOOLBAR
*/


/*
	QUICKLINKS
*/
function showQuickLinks(){
	document.getElementById('quickLinksDiv').style.display = 'block';
}

function hideQuickLinks(){
	document.getElementById('quickLinksDiv').style.display = 'none';
}
/*
	// QUICKLINKS
*/


/*
	SCREEN RESOLUTION
*/
function checkScreenSize(){
	var width = screen.width;
	var height = screen.height;
	var browser = navigator.userAgent;
	var attributes = '';
	
	// if the screen resolution is smaller than 1024 x 768 open a popup with the calculator
	if((width<1024) && (height<768)){
		// INTERNET EXPLORER
		if(browser.indexOf('MSIE') != -1){
				attributes = 'fullscreen=1';				
		// FIREFOX EN ANDERE
		}else{
			attributes = 'width='+width+',height='+height;
		}
		
		window.open('/oringCalculator/index.cfm?calculatorPopup', 'oringCalculator', attributes);
	}
}
/*
	// SCREEN RESOLUTION
*/


function handleTabnavigation(){
	var ul = this.parentNode.parentNode;
	
	if(ul.className == ''){
		ul.className = this.id;
	}else{
		ul.className = '';
	}
	
	return false;
}


function handleArtWorkWrapper(){
	var div = document.getElementById('artWorkWrapper').getElementsByTagName('div');
	
	for(var i=0; i<div.length; i++){
		div[i].className = '';
		div[i].className = this.id;
	}
}


function handleInputChange(){
	var inputs = document.getElementById('results').getElementsByTagName('input');
	
	for(var i=0; i<inputs.length; i++){
		inputs[i].value = '';
		inputs[i].readOnly = true;
		handleClearAttributes(inputs[i]);
	}
	
	activeDesign.printableDocumentButton.style.visibility = 'hidden';
}


/*

*/
function closeCFRuntimeExceptMessage(){
	var div = document.getElementById('CFRuntimeExceptMessage');
	
	document.getElementsByTagName('body')[0].removeChild(div);
}
/*

*/


/*
	WINDOW ONLOAD
*/
	window.onload = function (){
	
		HTTPRequest = null;
		initActiveDesign();
		showAxialInnerPressure();
		initSelects();
		
		initLogin();
		if( !oRingCalculator.userIsLoggedIn ) automaticLoginDetection();
		/*
			EVENT HANDLERS
		*/
			
			// APPLICATION
			activeDesign.appTemperature.onchange = handleAppTemperature;
			activeDesign.appMovement.onchange = handleAppMovement;
			activeDesign.appPressure.onchange = handleAppPressure;
			activeDesign.appCompression.onchange = handleAppCompression;
			
			
			// STANDARD
			activeDesign.coefficientInputContainer.style.display = 'none';
			activeDesign.coefficientInput.onchange = handleCoefficientInput;
			activeDesign.radius.onchange = handleRadius;
			activeDesign.freeGrooveVolume.onchange = handleFreeGrooveVolume;
			activeDesign.oringChemVolSwell.onchange = handleORingChemVolSwell;
		
		
			// AXIAL INNER AND OUTER PRESSURE
			activeDesign.grooveIDNom.onfocus = handleArtWorkWrapper;
			activeDesign.grooveIDNom.onchange = handleGrooveIDNom;
			activeDesign.grooveIDTolUpper.onchange = handleGrooveIDTolUpper;
			activeDesign.grooveIDTolLower.onchange = handleGrooveIDTolLower;
			
			activeDesign.grooveODNom.onfocus = handleArtWorkWrapper;
			activeDesign.grooveODNom.onchange = handleGrooveODNom;
			activeDesign.grooveODTolUpper.onchange = handleGrooveODTolUpper;
			activeDesign.grooveODTolLower.onchange = handleGrooveODTolLower;
			
			activeDesign.grooveDepthNom.onfocus = handleArtWorkWrapper;
			activeDesign.grooveDepthNom.onchange = handleGrooveDepthNom;
			activeDesign.grooveDepthTolUpper.onchange = handleGrooveDepthTolUpper;
			activeDesign.grooveDepthTolLower.onchange = handleGrooveDepthTolLower;
			
			
			// PISTON AND ROD
			activeDesign.oringIDStretchInput.onchange = handleORingIDStretchInput;
			
			activeDesign.boreDiameterNom.onfocus = handleArtWorkWrapper;
			activeDesign.boreDiameterNom.onchange = handleBoreDiameterNom;
			activeDesign.boreDiameterNomChkb.onclick = handleBoreDiameterNomChkb;
			activeDesign.boreDiameterTolUpper.onchange = handleBoreDiameterTolUpper;
			activeDesign.boreDiameterTolLower.onchange = handleBoreDiameterTolLower;
			
			activeDesign.grooveDiameterNom.onfocus = handleArtWorkWrapper;
			activeDesign.grooveDiameterNom.onchange = handleGrooveDiameterNom;
			activeDesign.grooveDiameterTolUpper.onchange = handleGrooveDiameterTolUpper;
			activeDesign.grooveDiameterTolLower.onchange = handleGrooveDiameterTolLower;
			
			activeDesign.grooveWidthNom.onfocus = handleArtWorkWrapper;
			activeDesign.grooveWidthNom.onchange = handleGrooveWidthNom;
			activeDesign.grooveWidthTolUpper.onchange = handleGrooveWidthTolUpper;
			activeDesign.grooveWidthTolLower.onchange = handleGrooveWidthTolLower;
			
			
			// PISTON
			activeDesign.pistonDiameterNom.onfocus = handleArtWorkWrapper;
			activeDesign.pistonDiameterNom.onchange = handlePistonDiameterNom;
			activeDesign.pistonDiameterNomChkb.onclick = handlePistonDiameterNomChkb;
			activeDesign.pistonDiameterTolUpper.onchange = handlePistonDiameterTolUpper;
			activeDesign.pistonDiameterTolLower.onchange = handlePistonDiameterTolLower;
		
		
			// ROD
			activeDesign.rodDiameterNom.onfocus = handleArtWorkWrapper;
			activeDesign.rodDiameterNom.onchange = handleRodDiameterNom;
			activeDesign.rodDiameterNomChkb.onclick = handleRodDiameterNomChkb;
			activeDesign.rodDiameterTolUpper.onchange = handleRodDiameterTolUpper;
			activeDesign.rodDiameterTolLower.onchange = handleRodDiameterTolLower;
			activeDesign.OORMax.onchange = handleOORMax;
			
			
			// O-RING
			activeDesign.oringIDNom.onchange = handleORingIDNom;
			activeDesign.oringIDTol.onchange = handleORingIDTol;
			activeDesign.oringCSDNom.onchange = handleORingCSDNom;
			activeDesign.oringCSDTol.onchange = handleORingCSDTol;
			
			
			// APPLICATION TOOLBAR
			activeDesign.calculate.onclick = handleCalculate;
			activeDesign.saveButton.onclick = handleSaveDesign;
			activeDesign.standardORingButton.onclick = handleStandardORing;
			activeDesign.printableDocumentButton.onclick = handlePDF;
			activeDesign.printableDocumentButton.style.visibility = 'hidden';
			activeDesign.deleteButton.onclick = handleDeleteDesign;
			activeDesign.resetButton.onclick = handleResetCalculator;
		/*
			// EVENT HANDLERS
		*/	
		
		document.getElementsByTagName('body')[0].onclick = clearPopUp;
		
		document.getElementById('disclaimer').onclick = function(){ handleDisclaimer(); return false; }
		document.getElementById('feedbackLink').onclick = function(){ handleFeedBack(); return false; }
		document.getElementById('contactLink').onclick = function(){ handleContact(); return false; }
		document.getElementById('mailThisPageLink').onclick = function(){ handleMailThisPage(); return false; }
		
		
		/*
			INTERNET EXPLORER
		*/
			if(navigator.appName == 'Microsoft Internet Explorer'){
				document.getElementById('quickLinks').onmouseover = showQuickLinks;
				document.getElementById('quickLinks').onmouseout = hideQuickLinks;
				
				var navVersion = navigator.appVersion.split(";");
					
				navVersion = navVersion[1].replace('MSIE ', '');
				
				/* INTERNET EXPLORER 6 */
				if(navVersion >= 6.0 && navVersion < 7.0){
					handleMenu();
					
					handleSelectsRollOver();
				}
			}
		/*
			// INTERNET EXPLORER
		*/
	}
/*
	// WINDOW ONLOAD
*/
