var YEAR  = 0;
var MAKE  = 1;
var MODEL = 2;
var MILES = 3;

function selectYear()
{
	disableControls();
	
	if (document.f1.yearselect.selectedIndex == 0)
	{
		enableControls(YEAR);
		return;
	}
	
	document.getElementById("yearmarker").innerHTML = '&nbsp;';
	document.getElementById("makemarker").innerHTML = '<img src="images/spinner.gif" />';
	
	var makeyear   = document.f1.yearselect.options[document.f1.yearselect.selectedIndex].text;
	
	loadScript("carboncalc/" + makeyear + ".js");
	enableControls(MAKE);
	document.f1.makeselect.focus();
	
    document.f1.value_5200.value = makeyear;     // Set the hidden field for signup (year)
}

function selectMake()
{
	disableControls();
	
	if (document.f1.makeselect.selectedIndex == 0)
	{
		enableControls(MAKE);
		return;
	}
	
	document.getElementById("makemarker").innerHTML = '&nbsp;';
	document.getElementById("modelmarker").innerHTML = '<img src="images/spinner.gif" />';
	
	var makeyear    = document.f1.yearselect.options[document.f1.yearselect.selectedIndex].text;
	var make        = document.f1.makeselect.options[document.f1.makeselect.selectedIndex].text;
	
	loadScript('carboncalc/'+ makeyear + make.replace(/ /g, "_") + '.js');
	enableControls(MODEL);
	document.f1.modelselect.focus();
	
	document.f1.value_5000.value = make;     // Set the hidden field for signup (make)
}

function selectModel()
{
	if (document.f1.modelselect.selectedIndex == 0)
	{
		enableControls(MODEL);
	}
	else
	{
		enableControls(MILES);
		document.f1.mileselect.focus();	
		document.f1.value_5100.value = document.f1.modelselect.options[document.f1.modelselect.selectedIndex].text;
	}
}

function loadScript(src)
{
	var script = document.createElement("script");
	
	script.src  =  src;
	script.type = "text/javascript";
	script.id   = "load_scr";
    
	document.getElementsByTagName("head")[0].appendChild(script); 
}

function disableControls()
{
	document.f1.yearselect.disabled  = true;
	document.f1.makeselect.disabled  = true;
	document.f1.modelselect.disabled = true;
	document.f1.mileselect.disabled  = true;
}

function enableControls(focus)
{
	var disabled   = true;
	var enabled    = false;
	var on         = '<img src="images/linkarrow.gif" />';
	var off        = '';
	var bold	   = "bold";
	var normal     = "normal";
	var gray       = "gray";
	var black      = "black";
	
	var controls = [enabled, disabled, disabled, disabled];
	var markers  = [on, off, off, off];
	var colors   = [black, gray, gray, gray];
	var weights  = [bold, normal, normal, normal]
	
	var indexes  = [document.f1.yearselect, document.f1.makeselect, document.f1.modelselect, document.f1.mileselect];
	var pointers = [document.getElementById("yearmarker"), document.getElementById("makemarker"), document.getElementById("modelmarker"), document.getElementById("milemarker")];
	var labels   = [document.getElementById("yearlabel"), document.getElementById("makelabel"), document.getElementById("modellabel"), document.getElementById("milelabel")];
	
	for (var i = 0; i < 3; i++)
	{
		if (i < focus)
		{
			markers[i]    = off;
			colors[i]     = gray;
			weights[i]    = normal;
			
			markers[i+1]  = on;		
			controls[i+1] = enabled;
			colors[i+1]   = black;
			weights[i+1]   = bold;
		}
		else
		{
			break;
		}
	}

	for (i = 0; i < 4; i++) 
	{ 
		indexes[i].disabled     = controls[i]; //Enable the dropdowns
		pointers[i].innerHTML   = markers[i];  //Move the carat
		labels[i].style.color   = colors[i];   //Change the color of the label
	}
}

function validateForm(frm)
{
	if(!frm.yearselect.selectedIndex)
	{
		alert("Please select the year your car was made.\n");
		frm.yearselect.focus();
		return false;
	}
	else if(!frm.makeselect.selectedIndex)
	{
		alert("Please select the make of your car.\n");
		frm.makeselect.focus();
		return false;
	}
	else if(!frm.modelselect.selectedIndex)
	{
		alert("Please select the model of your car.\n");
		frm.modelselect.focus();
		return false;
	}
	else if (frm.optattr2.checked)
	{
		var emailregex  = /^\s*[\w\_\-\.]+@[\w\_\-\.]+\.\w+\s*$/;
		var emailresult = frm.ea.value.match(emailregex);
	
		if (emailresult == null)
		{
			alert ("If you'd like our newsletter, please provide a valid email address.\n\nOtherwise, simply uncheck the newsletter box.");
			frm.ea.focus();
			return false;
		}
	}
	
    return true;
}