function changeDoorStyle(style) {

	if (document.layers) {

		alert('Sorry, Netscape 4 is not supported at the present time.')

	}

	if (document.images) {

		var imgBase = root + 'images/cols/' + curCollection + '/door/'

		var rollSrc = imgBase + doors[style]['default']

		document.images.door.src = rollSrc

	}

	

	// update global

	curDoor = style

	curKnob = null

	curSpecies = null

	

	// nuke any existing knobs (default doors already have knobs)

	clearKnobs()



	return false

}



function changeDoorColor(species, shade) {

	var rollSrc = ''

	var imgBase = root + 'images/cols/' + curCollection + '/door/'

	if (curDoor) {

		if (document.images) {

			if (doors[curDoor][species] && doors[curDoor][species][shade]) {

				rollSrc = imgBase + doors[curDoor][species][shade]

				document.images.door.src = rollSrc

			}

		}

	}

	

	// update globals

	curSpecies = species

	curShade = shade

	

	if ( (curKnob != null) && (typeof curKnob != 'undefined') ) {

		changeKnob(curKnob)

	}

	

	return false

}



function changeKnob(ix) {

	var imgBase = root + 'images/cols/' + curCollection + '/knobs/'

	var blankSrc =  root + 'images/spacer.gif'

	var previewLayer = getElt('context', 'preview')	

	var previewLayerY = getEltPageTop(previewLayer) - 25

	var previewLayerX = getEltLeft(previewLayer)

	var x, y

	

	if (curDoor && curSpecies && curShade) {

		

		// get the knob image sources and positions

		knobSrcList = getKnobs(ix)

		knobPosList = knobs.pos[curDoor]

		

		// swap images

		if (document.images) {

			document.images.topKnobImg.src = (knobPosList[0]) ? imgBase + knobSrcList[0] : blankSrc

			document.images.bottomKnobImg.src = (knobPosList[1]) ? imgBase + knobSrcList[1] : blankSrc

		}

		

		// move knobs into position

		for (var i = 0; i < knobPosList.length; i++) {

			if (knobPosList[i]) {

				x = previewLayerX + knobPosList[i].x

				y = previewLayerY + knobPosList[i].y

				elt = getElt('knob' + (i+1))

				hideElt(elt)

				centerEltAtPoint(elt, x, y)

				showElt(elt)

			}

		}

	}

	

	// update global

	curKnob = ix

}



function getKnobs(ix) {

	var srcList

	if (knobs.src[ix]) {

		srcList = knobs.src[ix]

	}

	else if (knobColors[curSpecies][curShade][curDoor]) { // a knob that varies by color

		color = knobColors[curSpecies][curShade][curDoor][ix]

		srcList =  [ ( (ix+1) + '_' + color + '.gif'), ( (ix+1) + '_' + color + '.gif') ]

	}

	// otherwise, the door has no knobs

	return srcList

}



function clearKnobs() {

	var blankSrc =  root + 'images/spacer.gif'

	if (document.images) {

		document.images.topKnobImg.src =  blankSrc

		document.images.bottomKnobImg.src =  blankSrc

	}

}



// centers an element at the point given by coordinates x and y

function centerEltAtPoint(elt, x, y) {

	x -= parseInt ( getEltWidth(elt) / 2 )

	y -= parseInt ( getEltHeight(elt) / 2 )

	moveEltTo(elt, x, y)

}