// PRIMARY DRIVER FOR AUTOS OPTION
var addPrimaryDriver = function(text, value, combo)
{
	
	if(text != ' ' && text != '' && text!= null)
	{
		var oOption = document.createElement("OPTION");
		oOption.text = text
		oOption.value = value
		combo.options.add(oOption);
	}
}

var addPrimaryDriverCombo = function(number) 
{	
	// Go through each of the drivers names and add them to the given primary driver
	var oSelField = document.getElementById('auto_primary_driver');
	oSelField.length = 0
	addPrimaryDriver("Self",  "0", oSelField)
	
	if($('driver_1_first_name').value != '' && $('driver_1_last_name').value != '')
	{
		var driver1 = $('driver_1_first_name').value + ' ' + $('driver_1_last_name').value
		addPrimaryDriver(driver1, "1", oSelField)
	}
	
	if($('driver_2_first_name').value != null && $('driver_2_last_name').value != '')
	{
		var driver2 = $('driver_2_first_name').value + ' ' + $('driver_2_last_name').value
		addPrimaryDriver(driver2, "2", oSelField)
	}
	
	if($('driver_3_first_name').value != null && $('driver_3_last_name').value !='')
	{
		var driver3 = $('driver_3_first_name').value + ' ' + $('driver_3_last_name').value
		addPrimaryDriver(driver3, "3", oSelField)
	}
}

// YES/NO RADIO SLIDEOUTS
// Show and hide the little radio buttons
var forArrayItems = function(items, func)
{
	for(key in items)
	{
		if( /^\d*$/.test(key)) 
			func(items[key]);;
	}
}

var enableDisable = function(enable, disable)
{
	forArrayItems(enable, function(divname) { $(divname).show(); })
	forArrayItems(disable, function(divname) { $(divname).hide(); })
}

var slideDownGeneric = function(divname, enable, disable)
{
	$(divname).show();
	enableDisable(enable, disable);
}
var slideUpGeneric = function(divname, disable, enable) 
{ 
	enableDisable(enable, disable); 
	$(divname).hide();
}

var driverSlideDown = slideDownGeneric;
var driverSlideUp = slideUpGeneric;
var autoSlideUp = slideUpGeneric;
var insuranceSlideUp = slideUpGeneric;
var insuranceSlideDown = slideDownGeneric;
var incidentSlideUp = slideUpGeneric;
var incidentSlideDown = slideDownGeneric;

var autoSlideDown = function(divname, enable, disable, number)
{
	addPrimaryDriverCombo(number) // also reload primary driver field in auto in case a new driver has been added
	slideDownGeneric(divname, enable, disable);
}


var violation_change = function(select, div) {
	if($(select).value.length != 0)
		$(div).show()
	else
		$(div).hide()
}

var insurance_change = function() 
{
	if($('auto_policy_current_insurance').value.length == 0){ $('insurance').hide() }
	else { $('insurance').show() }
}



// POLK INTEGRATION
var clear_options = function(name, caption)
{
	var oSelField = document.getElementById(name);
	if(oSelField == null)
		return
		
	oSelField.length = 0

	var oOption = document.createElement("OPTION");	
	oOption.text = caption
	oOption.value = null
	oSelField.options.add(oOption);
}


var populate_option = function(option_id, json)
{
	var oSelField = document.getElementById(option_id);

	for(key in json)
	{
		var oOption = document.createElement("OPTION");
		if(json[key].table != null)
		{
			oOption.text = json[key].table.display
			oOption.value = json[key].table.polk
			oSelField.options.add(oOption);
		}
	}
}
var q = function(input)
{
	// Use RESTful get ajax requests, by replacing encoding characters that would cause routing problems
	return input.replace(/\//g, '_slash_').replace(/\./g, '_dot_')
}

var years_change = function() 
{

	var oYearField = document.getElementById("auto_auto_year");
	var year = oYearField.value

	clear_options("auto_auto_make", "--Make--")
	clear_options("auto_auto_model", "--Model--")
	clear_options("auto_submodel", "--Submodel--")

	new Ajax.Request('/auto/get_data/'+q(year) + "?authenticity_token=" + auth, 
	{ 

		method:'get', 
		contentType: 'application/javascript',
		onSuccess: function(transport) 
		{

			populate_option("auto_auto_make", transport.responseText.evalJSON());
			return;	
		}
	}
	);
}

var make_change = function() 
{
	var oYearField = document.getElementById("auto_auto_year");
	var year = oYearField.value

	var oMakeField = document.getElementById("auto_auto_make");
	var make = oMakeField.value

	clear_options("auto_auto_model", "--Model--")
	clear_options("auto_submodel", "--Submodel--")
	new Ajax.Request('/auto/get_data/'+q(year) + '/' + q(make) + "?authenticity_token=" + auth, 
	{ 
		method:'get', 
		contentType: 'application/javascript',
		onSuccess: function(transport)
		{
			populate_option("auto_auto_model", transport.responseText.evalJSON());
			return;	
		}
	}
	);
}

var model_change = function() 
{
	var oYearField = document.getElementById("auto_auto_year");
	var year = oYearField.value

	var oMakeField = document.getElementById("auto_auto_make");
	var make = oMakeField.value

	var oModel = document.getElementById("auto_auto_model");
	var model = oModel.value

	clear_options("auto_submodel", "--Submodel--")
	new Ajax.Request('/auto/get_data/'+q(year) + '/' + q(make) + '/' +q(model) + "?authenticity_token=" + auth, 
	{ 
		method:'get', 
		contentType: 'application/javascript',
		onSuccess: function(transport) 
		{
			populate_option("auto_submodel", transport.responseText.evalJSON());
			return;	
		}
	}
	);
}
