var ds_portable_compressors = new Spry.Data.XMLDataSet("portable_compressors.xml", "dataroot/t_compressors", {sortOnLoad: "id", sortOrderOnLoad: "ascending"});
ds_portable_compressors.setColumnType("id", "number");
ds_portable_compressors.setColumnType("category", "number");
ds_portable_compressors.setColumnType("engine_type", "number");


function ToggleFilter(enable, f){
	if (enable) {
		ds_portable_compressors.addFilter(f, true);
	} else {
		ds_portable_compressors.removeFilter(f, true);
	}
}

function RemoveAllFilters(enable){
	ds_portable_compressors.removeAllFilters(enable);
}

function ffCategory(ds, row, index){
	var selected_category= document.forms[0]["category"].value;
	return (row.category == selected_category || selected_category == "0") ? row : null;
}
function ffEngine_Type(ds, row, index){
	var selected_engine_type= document.forms[0]["engine_type"].value;
	return (row.engine_type == selected_engine_type || selected_engine_type == "0") ? row : null;
}
function ffFrame(ds, row, index){
	var selected_frame= document.forms[0]["frame_type"].value;
	return (row.frame == selected_frame || selected_frame == "0") ? row : null;
}

function switchState(state) {
	var rgn = Spry.Data.getRegion("table_box");
	rgn.mapState("ready", state);
	rgn.updateContent();
}

function f_update_engine(selected_category, lang){
	var d = document;
	var engine_type_list = d.form01.engine_type;
	var frame_type_list = d.form01.frame_type;

	frame_type_list.parentNode.className='option_list_hide';
	RemoveAllFilters(false);
	ToggleFilter(true, ffCategory);
	switchState('show_list');

	if (selected_category != 0) {
		engine_type_list.disabled = false;
		engine_type_list.parentNode.className='option_list_show';
		
		var a_engine_type=new Array()
		if(lang == "IT"){
			a_engine_type[0]=""
			a_engine_type[1]=["Seleziona...|0", "Honda|1", "Robin-Subaru|2"]
			a_engine_type[2]=["Elettrico|0"]
			a_engine_type[3]=["Elettrico|0"]
			a_engine_type[4]=["Seleziona...|0", "Honda|1", "Elettrico Monofase|3", "Elettrico Trifase|4"]
		} else {
			a_engine_type[0]=""
			a_engine_type[1]=["Choose...|0", "Honda|1", "Robin-Subaru|2"]
			a_engine_type[2]=["Electric|0"]
			a_engine_type[3]=["Electric|0"]
			a_engine_type[4]=["Choose...|0", "Honda|1", "Single-phase electric|3", "Three-phase electric|4"]
		}

		engine_type_list.options.length = 0;
		for (i=0; i<a_engine_type[selected_category].length; i++) {
			engine_type_list.options[engine_type_list.options.length]=new Option(a_engine_type[selected_category][i].split("|")[0], a_engine_type[selected_category][i].split("|")[1])
		}
		if (selected_category == 2 || selected_category == 3) {
			engine_type_list.disabled = true;
			frame_type_list.parentNode.className='option_list_show';
			(selected_category == 2) ? f_update_frame(3, lang) : f_update_frame(4, lang);
		}
	} else {
		engine_type_list.parentNode.className='option_list_hide';
		switchState('');
	}
}

function f_update_frame(selected_engine, lang){
	var d = document;
	var frame_type_list = d.form01.frame_type;

	RemoveAllFilters(false);
	ToggleFilter(true, ffCategory);
	ToggleFilter(true, ffEngine_Type);
	
	if (selected_engine != 0 && d.form01.category.value != 4) {
		frame_type_list.parentNode.className='option_list_show';

		var a_frame_type=new Array()
		if(lang == "IT"){
			a_frame_type[0]=""
			a_frame_type[1]=["Seleziona...|0", "Standard (Telaio aperto)|1", "Compact (Telaio chiuso)|2"]
			a_frame_type[2]=["Seleziona...|0", "Standard (Telaio aperto)|1", "Compact (Telaio chiuso)|2"]
			a_frame_type[3]=["Seleziona...|0", "Standard (Telaio aperto)|1", "Compact (Telaio chiuso)|2", "Silent (Telaio chiuso silenziato)|3"]
			a_frame_type[4]=["Seleziona...|0", "Standard (Telaio aperto)|1", "Compact (Telaio chiuso)|2"]

		} else {
			a_frame_type[0]=""
			a_frame_type[1]=["Choose...|0", "Standard (Open frame)|1", "Compact (Closed frame)|2"]
			a_frame_type[2]=["Choose...|0", "Standard (Open frame)|1", "Compact (Closed frame)|2"]
			a_frame_type[3]=["Choose...|0", "Standard (Open frame)|1", "Compact (Closed frame)|2", "Silent (Silent closed frame)|3"]
			a_frame_type[4]=["Choose...|0", "Standard (Open frame)|1", "Compact (Closed frame)|2"]
		}
		
		frame_type_list.options.length = 0;
		for (i=0; i<a_frame_type[selected_engine].length; i++) {
			frame_type_list.options[frame_type_list.options.length]=new Option(a_frame_type[selected_engine][i].split("|")[0], a_frame_type[selected_engine][i].split("|")[1])
		}
	} else {
		frame_type_list.parentNode.className='option_list_hide';
	}
}

