var currentCategory;
var currentManufacturer;
var currentModel;
var currentMake;

function setLoading() {
	$('searchResults').innerHTML='&nbsp;<br /><br />';
	$('searchResults').style.background='url(/pics/ajax-loader.gif) no-repeat center center';
}

function removeLoading() {
	$('searchResults').style.background='';
}

function updateNavigation(currentpage) {
	var links = $('pagenumbers').getElementsByTagName("a");
		
	for(var i=1; i <= links.length; i++) {
		if ( i == currentpage ) {
			links[(i-1)].style.color='#252525';
		} else {
			links[(i-1)].style.color='#63753d';
		}
	}
}

<!-- dwr -->

function renderProducts(id,url,page) {
	url=url+"&pageNumber="+page;
	setLoading();
	
	RenderingService.renderHtmlFragment(
      url, 
      function(response) {
     	  document.getElementById(id).innerHTML = response;
					  
		  var imgs = $('searchResults').getElementsByTagName('img');
						
		  for(var i=0; i < imgs.length; i++) {
			new Draggable(imgs[i].id, {revert:true});
		  }
		  
		  removeLoading();
	
	});
            
}


function handleCategoryChange(manufacturerList) {
	var element = $('searchManufacturer');


	if ( manufacturerList.length > 1 ) {
		element.options[1] = allManufacturer;
	}

	var optionCounter = 2;
	for(var i=0; i < manufacturerList.length; i++) {
		element.options[optionCounter++] = new Option(manufacturerList[i].name,manufacturerList[i].id);
	}
	
	disableOrEnable(false);
}


function handleManufacturerChange(makeList) {
	var element = $('searchMake');

	element.options[1] = allMake;

	var optionCounter = 2;
	for(var i=0; i < makeList.length; i++) {
		element.options[optionCounter++] = new Option(makeList[i].label,makeList[i].label);
	}
	
	disableOrEnable(false);
}


function handleModelChange(makeList) {
	var element = $('searchMake');
	
	element.options[1] = allModel;
	
	var optionCounter = 2;
	for(var i=0; i < makeList.length; i++) {
		element.options[optionCounter++] = new Option(makeList[i].label,makeList[i].label);
	}
	
	disableOrEnable(false);
}


function handleMakeChange(modelList) {
	var element = $('searchModel');

	element.options[1] = allModel;

	var optionCounter = 2;
	for(var i=0; i < modelList.length; i++) {
		element.options[optionCounter++] = new Option(modelList[i].label,modelList[i].label);
	}
	
	disableOrEnable(false);

}
<!-- end of dwr callbacks -->

function createOption(text,value) {
	var option = document.createElement('option');
	option.value=value;
	option.text=text;
	
	return option;

}

/**
 * 1 = category
 * 2 = manufacturer
 * 3 = ....
 */
   
function resetSearchOptions(resetCounter) {

	if ( resetCounter <= 2 ) {
		// reset manufacturer
		resetOptions($('searchManufacturer'));
		
	}
	
	if ( resetCounter <= 3 ) {
		resetOptions($('searchMake'));
	}
	
	if ( resetCounter <= 4 ) {
		resetOptions($('searchModel'));
	}
	
}



function resetOptions(element) {
	$A(element.childNodes).each(function(e) {
		if ( e.value != -1 ) 
			e.parentNode.removeChild(e);
	});
}

function getOptionValueFromElement(id) {
	var element = document.getElementById(id);
	var value 	= element.options[element.selectedIndex].value;
	return value;
}

function disableOrEnable(value) {
	$('searchCategory').disabled=value;
	$('searchManufacturer').disabled=value;
	$('searchModel').disabled=value;
	$('searchMake').disabled=value;
	$('searchYear').disabled=value;
}



function categoryChanged() {
	disableOrEnable(true);
	
	var value = getOptionValueFromElement("searchCategory");
	
	resetSearchOptions(2);
	search.getManufacturers(value,handleCategoryChange);
	
	currentCategory=value;

}


function manufacturerChanged() {
	disableOrEnable(true);
	
	var value = getOptionValueFromElement("searchManufacturer");
	resetSearchOptions(3);
	search.getMakes(value,currentCategory,handleManufacturerChange);
	
	currentManufacturer=value;
}


function makeChanged() {
	disableOrEnable(true);
	
	var value = getOptionValueFromElement("searchMake");
	
	resetSearchOptions(4);
	
	search.getModels(value,currentCategory,currentManufacturer,handleMakeChange);
	
	currentMake=value;
}

/*
Behaviour.list.change_makeChanged = function(attrs) {
	disableOrEnable(true);
	
	var value = getOptionValueFromElement(attrs);
	
	resetSearchOptions(5);
	
	search.getYears(value,currentCategory,currentManufacturer,currentModel,handleMakeChange);
	
	currentMake = value;
}


Behaviour.list.change_yearChanged = function(attrs) {
	var value = getOptionValueFromElement(attrs);
}
*/

/** static elements for select boxces */

var emptyManufacturer = createOption("-- Tuotemerkki --","-1");
var allManufacturer = createOption("Kaikki tuotemerkit", "0");

var emptyModel = createOption("-- Malli --","-1");
var allModel = createOption("Kaikki mallit", "0");

var emptyMake = createOption("-- Merkki --","-1");
var allMake = createOption("Kaikki merkit","0");

var emptyYear = createOption("-- Vuosimalli --","-1");


/**
*	Sets values to the search form's selects if necessary called from the searchbox.vm
*/
function registerSelects() {
	currentCategory = getOptionValueFromElement("searchCategory");
	currentManufacturer = getOptionValueFromElement("searchManufacturer");
	currentModel = getOptionValueFromElement("searchModel");
	currentMake = getOptionValueFromElement("searchMake");
} 
