var size;
var sizeIndex;
var cmbr;
var cmbrIndex;
var ctrl;
var ctrlIndex;
var mtop;
var mtopIndex;
var found;
var foundIndex;
var learn;
var doOffer = false;
var bed = new Array();
var factsX;
var factsY;
var specialX;
var specialY;
var explainX;
var explainY;
var dropX;
var dropY;

var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
              && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
              && (agt.indexOf('webtv')==-1)); 
var is_nav4up = (is_nav && (is_major >= 4)); 
var is_ie   = (agt.indexOf('msie') != -1);
var is_ie3  = (is_ie && (is_major < 4));
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf('msie 5')==-1) );
var is_ie4up  = (is_ie  && (is_major >= 4));
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf('msie 5.0')!=-1) );
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4);
var is_gecko = (agt.indexOf('gecko')!=-1);

function grabObject(id) {
	if(is_ie4) {
		return eval(id);
	}
	if(is_ie5up || is_gecko) {
		return document.getElementById(id);
	}
}

function startup() {
	var elements = new Array();
	elements = ['mtopdiv','cmbrdiv','ctrldiv'];
	for (var i = 0; i < elements.length; i++) {
		var step = grabObject(elements[i]);
		if (step != null) {
			step.style.visibility = 'hidden';
		}
	}
	restoreConfig();
	if (sizeIndex != null) {
		var f = document.forms.sizef;
		f.size.selectedIndex = sizeIndex;
		changeOptions('26', true);
		if (mtopIndex != null) {
			changeOptions('20', true);
			if (cmbrIndex != null) {
				changeOptions('23', true);
				if (ctrlIndex != null) {
					changeOptions(null, true);
					purchase(true);
				}
			}
		}
	}
}

function changeOptions(attrGrp, start) {
	var f = document.forms.sizef;
	sizeIndex = f.size.selectedIndex;
	size = f.size.options[sizeIndex].value;
	var msg = null;
	var optArray = new Array();
	if (attrGrp != null) {optArray = getAttr(size, attrGrp);}
	if (sizeIndex != 0) {
		// store value and reset option
		switch (attrGrp) {
			case '20':
				// save previous 26
				if (document.forms.mtopf.mtop.selectedIndex == '0' && start == false) {
					msg = 'Please Choose a Mattress Cover.';
					document.forms.mtopf.mtop.selectedIndex = mtopIndex;
				} else {
					mtopIndex = document.forms.mtopf.mtop.selectedIndex;
					mtop = document.forms.mtopf.mtop.options[mtopIndex].value;
					var step = grabObject('cmbrdiv');
					if (step != null) {
						step.style.visibility = 'visible';
					}
					
					// reset
					document.forms.cmbrf.cmbr.options.length = 1;
				}
				break;
			case '23':
				// save previous 20
				if (document.forms.cmbrf.cmbr.selectedIndex == '0' && start == false) {
					msg = 'Please Choose an Air Chamber.';
					document.forms.cmbrf.cmbr.selectedIndex = cmbrIndex;
				} else {
					cmbrIndex = document.forms.cmbrf.cmbr.selectedIndex;
					cmbr = document.forms.cmbrf.cmbr.options[cmbrIndex].value;
					var step = grabObject('ctrldiv');
					if (step != null) {
						step.style.visibility = 'visible';
					}
		
					// reset
					document.forms.ctrlf.ctrl.options.length = 1;
				}
				break;
			case '26':		
				var step = grabObject('mtopdiv');
				if (step != null) {
					step.style.visibility = 'visible';
				}
				
				// reset
				document.forms.mtopf.mtop.options.length = 1;
				break;
			default:
				/*
				var step = grabObject('founddiv');
				if (step != null) {
					step.style.visibility = 'visible';
				}
				*/
				
				if (document.forms.ctrlf.ctrl.selectedIndex == '0' && start == false) {
					msg = 'Please Choose a Firmness Controller.';
					document.forms.ctrlf.ctrl.selectedIndex = ctrlIndex;
				} else {
					// save previous 23
					ctrlIndex = document.forms.ctrlf.ctrl.selectedIndex;
					ctrl = document.forms.ctrlf.ctrl.options[ctrlIndex].value;
				}
		}
		
			// rebuild option
			for (var i = 0; i < optArray.length; i++) {
				switch (attrGrp) {
					case '20':
						document.forms.cmbrf.cmbr.options[i + 1] = new Option(getAttrDesc(optArray[i]), optArray[i]);
						break;
					case '23':
						document.forms.ctrlf.ctrl.options[i + 1] = new Option(getAttrDesc(optArray[i]), optArray[i]);
						break;
					case '26':
						document.forms.mtopf.mtop.options[i + 1] = new Option(getAttrDesc(optArray[i]), optArray[i]);
						break;
				}
			}
			
			// restore value
			switch (attrGrp) {
				case '20':
					if (cmbrIndex != '' && cmbrIndex != null && cmbrIndex != 0) {document.forms.cmbrf.cmbr.selectedIndex = cmbrIndex;}
					break;
				case '23':
					if (ctrlIndex != '' && ctrlIndex != null && ctrlIndex != 0) {document.forms.ctrlf.ctrl.selectedIndex = ctrlIndex;}
					break;
				case '26':
					if (mtopIndex != '' && mtopIndex != null && mtopIndex != 0) {document.forms.mtopf.mtop.selectedIndex = mtopIndex;}
					break;
			}
			//if (foundIndex != '' && foundIndex != null && foundIndex != 0) {f.found.selectedIndex = foundIndex;}
			saveConfig();
		if (msg != null) {
			alert(msg);
		}
	} else {
		alert('Please Choose a Size.');
	}
}

function resetDiv(elemnum) {
	var elements = new Array();
	if(elemnum==1) {elements = ['mtopdiv','cmbrdiv','ctrldiv'];} else {elements = ['cmbrdiv','ctrldiv'];}
	for (var i = 0; i < elements.length; i++) {
		var step = grabObject(elements[i]);
		if (step != null) {
			step.style.visibility = 'hidden';
		}
	}
	if(elemnum != 2)
	{
		mtop = null;
		mtopIndex = null;
		document.forms.mtopf.mtop.selectedIndex = 0;
	}
	cmbr = null;
	cmbrIndex = null;
	document.forms.cmbrf.cmbr.selectedIndex = 0;
	ctrl = null;
	ctrlIndex = null;
	document.forms.ctrlf.ctrl.selectedIndex = 0;
	found = null;
	foundIndex = null;
	//f.found.selectedIndex = 0;
	bed = new Array();
	saveConfig();
}

function positionComponents() {

	if (is_nav4up && !is_gecko) {
		factsX = 0;
		factsY = 0;
		specialX = 0;
		specialY = 0;
		dropX = 0;
		dropY = 0;
		explainX = 0;
		explainY = 0;
		for (var i = 0; i < document.links.length; i++) {
			if (document.links[i].hash == '#factsLink') {
				factsX = document.links[i].x;
				factsY = document.links[i].y;
				document.layers["fastFacts"].pageX = factsX;
				document.layers["fastFacts"].pageY = factsY;
			} else if (document.links[i].hash == '#specialLink') {
				specialX = document.links[i].x;
				specialY = document.links[i].y;
				document.layers["todaySpecial"].pageX = specialX;
				document.layers["todaySpecial"].pageY = specialY;
			} else if (document.links[i].hash == '#explainLink') {
				explainX = document.links[i].x;
				explainY = document.links[i].y;
				document.layers["explainSizeText"].pageX = explainX;
				document.layers["explainSizeText"].pageY = explainY;
			} else if (document.links[i].hash == '#dropLink') {
				dropX = document.links[i].x;
				dropY = document.links[i].y;
				document.layers["priceText"].pageX = dropX;
				document.layers["priceText"].pageY = dropY;
			}
		}
	}
}

function fastFacts(id, direction) {
	window.onerror = function() { return true; }
	if (direction == 'more') {
		id++;
	} else {
		id--;
	}

	if (is_nav4up && !is_gecko) {
		document.layers['fastFacts'].document.write(eval('msgFacts' + id));
		document.layers['fastFacts'].document.close();
	} else if (is_ie4 || is_ie5up) {
		document.all('fastFacts').innerHTML = eval('msgFacts' + id);
	} else if (is_gecko) {
		document.getElementById('fastFacts').innerHTML = eval('msgFacts' + id);
	}
}

function purchase(start) {
	saveConfig();
	/*
	var f = document.forms.bedconfig;
	if (f.found.selectedIndex == 0 && start == false) {
		msg = 'Please Choose a Foundation.';
		f.found.selectedIndex = foundIndex;
		alert(msg);
	} else {	
		foundIndex = f.found.selectedIndex;
		found = f.found.options[foundIndex].value;
		saveConfig();
	}
	*/
}

function locator() {
	if (sizeIndex != 0 && mtopIndex != 0 && cmbrIndex != 0 && ctrlIndex != 0 && foundIndex != 0) {
		var f = document.forms.bedconfig;
		f.size.value = size;
		f.mtop.value = mtop;
		f.cmbr.value = cmbr;
		f.ctrl.value = ctrl;
		f.submit();
	}
}

