(function($){
  // очищаем select
  $.fn.clearSelect = function() {
	  return this.each(function(){
		  if(this.tagName=='SELECT') {
		      this.options.length = 0;
		      //$(this).attr('disabled','disabled');
		  }
	  });
  }
  // заполняем select
  $.fn.fillSelect = function(dataArray) {
	  return this.clearSelect().each(function(){
		  if(this.tagName=='SELECT') {
			  var currentSelect = this;
			  $.each(dataArray,function(index,data){
				  var option = new Option(data.text,data.value);
				  if($.support.cssFloat) {
					  currentSelect.add(option,null);
				  } else {
					  currentSelect.add(option);
				  }
			  });
		  }
	  });
  }
})(jQuery);
// Вытаскиваем AJAXом SELECTы которые выбирает пользователь
$(document).ready(function(){
  // выбор сезонности
  function adjustSeasson(){
  	var seassonValue = $('#mainpodborshini_seasson').val();
  	var tmpSelect = $('#mainpodborshini_width');
  	if(seassonValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  		adjustTyreWidth();
  	} else {
  		$.getJSON('',{seasson:seassonValue},function(data) { 
  	  		tmpSelect.fillSelect(data.content).attr('disabled',''); 
			$('#count').text("Найдено " + data.count + " товаров");
  	  		adjustTyreWidth();
  	  		 
  	  	});
  	}
  };
  // выбор ширины шины
  function adjustTyreWidth(){
  	var seassonValue = $('#mainpodborshini_seasson').val();
  	var widthValue = $('#mainpodborshini_width').val();
  	var tmpSelect = $('#mainpodborshini_profile');
  	if(seassonValue.length == 0||widthValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  		adjustTyreHeight();
  	} else {
  		$.getJSON('',{seasson:seassonValue,width:widthValue},function(data) { 
  	  		tmpSelect.fillSelect(data.content).attr('disabled','');
  	  		$('#count').text("Найдено " + data.count + " товаров"); 
  	  		adjustTyreHeight(); 
  	  	});
  	}
  };

  // выбор профиля шины
  function adjustTyreHeight(){
  	var seassonValue = $('#mainpodborshini_seasson').val();
  	var widthValue = $('#mainpodborshini_width').val();
  	var heightValue = $('#mainpodborshini_profile').val();
  	var tmpSelect = $('#mainpodborshini_radius');
  	if(seassonValue.length == 0||widthValue.length == 0||heightValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  		adjustTyreRadius();
  	} else {
  		$.getJSON('',{seasson:seassonValue,width:widthValue,height:heightValue},function(data) { 
  	  		tmpSelect.fillSelect(data.content).attr('disabled','');
  	  		$('#count').text("Найдено " + data.count + " товаров");
  	  		adjustTyreRadius();
  	  	});
  	}
  };
  
  // выбор радиуса шины
  function adjustTyreRadius(){
  	var seassonValue = $('#mainpodborshini_seasson').val();
  	var widthValue = $('#mainpodborshini_width').val();
  	var heightValue = $('#mainpodborshini_profile').val();
  	var radiusValue = $('#mainpodborshini_radius').val();
  	var tmpSelect = $('#mainpodborshini_producer');
  	if(seassonValue.length == 0||widthValue.length == 0||heightValue.length == 0||radiusValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  	} else {
  		$.getJSON('',{seasson:seassonValue,width:widthValue,height:heightValue,radius:radiusValue},function(data) { 
  	  		tmpSelect.fillSelect(data.content).attr('disabled','');
  	  		$('#count').text("Найдено " + data.count + " товаров"); 
  	  	});
  	}
  };
	
  $('#mainpodborshini_seasson').change(function(){
  	adjustSeasson();
  }).change();
  $('#mainpodborshini_width').change(adjustTyreWidth);
  $('#mainpodborshini_profile').change(adjustTyreHeight);
  $('#mainpodborshini_radius').change(adjustTyreRadius);
  $('#mainpodborshini_producer').change(function(){
  	if($(this).val().length != 0) { 
  	  	var seassonValue = $('#mainpodborshini_seasson').val();
  	  	var widthValue = $('#mainpodborshini_width').val();
  	  	var heightValue = $('#mainpodborshini_profile').val();
  	  	var radiusValue = $('#mainpodborshini_radius').val();
  	  	var producerValue = $('#mainpodborshini_producer').val();

                // Получаем URL строку
		//var uri = window.location.pathname.split('/');

  	  	//document.location.href = "/" + uri[1] + "/?seasson=" + seassonValue + "&width=" + widthValue + "&height=" + heightValue + "&radius=" + radiusValue + "&producer=" + producerValue;
  	}
  });
  

});
// Если пользователь выбрал уже параметры, отображаем их
var arrGET = get_request();
if(is_array(arrGET)) {
	$(document).ready(function(){
		//var seassonValue = $('#seasson').val();
		//var tmpSelect = $('#width');
		$('#seasson option[value="' + arrGET["seasson"] + '"]').attr('selected', 'selected');
		//adjustSeasson();
		$.getJSON('',{seasson:arrGET["seasson"]},function(data) { 
			$('#width').fillSelect(data.content).attr('disabled','');
			$('#width option[value="' + arrGET["width"] + '"]').attr('selected', 'selected');
		});
		$.getJSON('',{seasson:arrGET["seasson"],width:arrGET["width"]},function(data) { 
			$('#profile').fillSelect(data.content).attr('disabled','');
			$('#profile option[value="' + arrGET["height"] + '"]').attr('selected', 'selected');
		});
		$.getJSON('',{seasson:arrGET["seasson"],width:arrGET["width"],height:arrGET["height"]},function(data) { 
			$('#radius').fillSelect(data.content).attr('disabled','');
			$('#radius option[value="' + arrGET["radius"] + '"]').attr('selected', 'selected');
		});
		$.getJSON('',{seasson:arrGET["seasson"],width:arrGET["width"],height:arrGET["height"],radius:arrGET["radius"]},function(data) { 
			$('#producer').fillSelect(data.content).attr('disabled','');
			$('#producer option[value="' + arrGET["producer"] + '"]').attr('selected', 'selected');
		});
	});
}




/* Проверка данных на массив */
function is_array (a) {
    return (typeof a == "object") && (a instanceof Array);
}
/* Преобразование GET запросов в массив */
function get_request() {
	// Получаем GET строку с переменными
	var uri = location.search;

	// Начинаем обаботку полученной строки запроса
	if(uri != '') {
		// Обрезаем знак вопроса и парсим
		uri = uri.substring(1).split("&");
		var stringGET;
		var massit = "";
		var result = new Array();

		// Собираем общий массив GET переменных
		for (var i in uri) {
			// Делим переменные на переменную и ее значение
			stringGET = uri[i].split("=");
			// Поготавливаем массив и сохраняем в него значение
			result[stringGET[0]] = "";
			result[stringGET[0]] += stringGET[1];
		}
		return result;
	} else {
		return false;
	}

}

