function parseQuery() {
	var q = unescape(location.search).substr(1).replace(/\+/g," ").split("&");
	var rs={};
    for (var z=0, qL=q.length, kv, rkv; z<qL; z++) {
        kv=q[z].split("=");
        /* convert PHP and Perl-styled hashes to JS has keys */
        kv[0] = kv[0].replace(/[{}\[\]]*$/, "");
        rkv = rs[kv[0]];
        /* replace all + with spaces, unescape skips this part */
		//kv[1] = unescape(kv[1].replace("+"," "));
        if (rkv)
			if ('array' == typeof(rkv)) rs[kv[0]][rs[kv[0]].length] = kv[1];
				else rs[kv[0]] = [rs[kv[0]],kv[1]];
        else rs[kv[0]] = kv[1];
    }
    return rs;
}

(function($){
	$.fn.emptySelect = function(keep){
		return $(this).each(function(){
			if(this.tagName == 'SELECT') this.options.length = keep;
		});
	}

	$.fn.loadSelect = function(in_str, keep, selIt){
		return this.emptySelect(keep).each(function(){
			if(this.tagName == 'SELECT'){
				in_str = $.trim(in_str);
				var selectedElement = this;
				var dataArray = in_str.split('|');
				$.each(dataArray, function(key, optionData){
					if(optionData == selIt){
						var option = new Option(optionData, optionData, false, true);
					}else{
						var option = new Option(optionData, optionData);
					}
					if($.browser.msie){
						selectedElement.add(option);
					}else{
						selectedElement.add(option, null);
					}
				});
				selectedElement.attr('disabled', false);
			}
		});
	}
})(jQuery);

$(function(){
	var brand  = $('#auto_brand');
	var model  = $('#auto_model');
	var kind   = $('#auto_kind');
	var radius = $('#auto_radius');
	var msg_box_disk = $('#msg_box_disk');
	var msg_box_gum = $('#msg_box_gum');
	var gum_l = $('#gum_l');
	var gum_h = $('#gum_h');
	var gum_radius = $('#gum_radius');
	var params = parseQuery();

/* Shina functions */
	loadGumL = function(setTo){
		$.get(
			'find_gum.php',
			{action: 'l'},
			function(res_str, stat){
				gum_l.loadSelect(res_str, 1, setTo);
			}
		);
	}
	loadGumH = function(setTo){
		$.get(
			'find_gum.php',
			{action: 'h'},
			function(res_str, stat){
				gum_h.loadSelect(res_str, 1, setTo);
			}
		);
	}
	loadGumR = function(setTo){
		$.get(
			'find_gum.php',
			{action: 'r'},
			function(res_str, stat){
				gum_radius.loadSelect(res_str, 1, setTo);
			}
		);		
	}

/* Disks functions */
	loadCarBrands = function(setTo){
		$.get(
			'find_disk.php', 
			{action: 'car'}, 
			function(res_str, stat){
				brand.loadSelect(res_str, 1, setTo);
			}
		);
	}
	loadAutoModel = function(setTo, fromBrand){
		$.get(
			'find_disk.php', 
			{action: 'model', name: fromBrand}, 
			function(res_str, stat){
				model.loadSelect(res_str, 1, setTo);
			}
		);
	}	
	loadAutoKind = function(setTo, fromBrand, fromModel){
		$.get(
			'find_disk.php', 
			{action: 'kind', brand: fromBrand, model: fromModel}, 
			function(res_str, stat){
				kind.loadSelect(res_str, 1, setTo);
			}
		);
	}
	loadDiskR = function(setTo, fromBrand, fromModel, fromKind){
		$.get(
			'find_disk.php', 
			{action: 'radius', brand: fromBrand, model: fromModel, kind: fromKind}, 
			function(res_str, stat){
				radius.loadSelect(res_str, 1, setTo);
			}
		);
	}	

	/* Блокируем все списки */
	$('#auto_brand, #auto_model, #auto_kind, #auto_radius, #gum_l, #gum_h, #gum_radius').attr('disabled', 'disabled');
	
	var $path = location.pathname.substring(1);
	if($path == 'diski.php'){
		if(params['auto_brand']){
			loadCarBrands(params['auto_brand']);
			brand.attr('disabled', false);
			if(params['auto_model']){
				loadAutoModel(params['auto_model'], params['auto_brand']);
				model.attr('disabled', false);
				if(params['auto_kind']){
					loadAutoKind(params['auto_kind'], params['auto_brand'], params['auto_model']);
					kind.attr('disabled', false);
					if(params['r']){
						loadDiskR(params['r'], params['auto_brand'], params['auto_model'], params['auto_kind']);
						radius.attr('disabled', false);
					} 
				}
			}
		}else{
			loadCarBrands();
			$('#auto_brand').attr('disabled', false);
		} 
	}else if($path == 'shini.php'){
		if(params['l']) loadGumL(params['l']); else loadGumL();
		if(params['h']) loadGumH(params['h']); else loadGumH();
		if(params['d']) loadGumR(params['d']); else loadGumR();
		if(params['sezon']) $('input[name=sezon][value=' + params['sezon'] + ']').attr('checked', true);
		$('#gum_l, #gum_h, #gum_radius').attr('disabled', false);
	}else{
		/* Load Car brands */
		loadCarBrands();
		loadGumL();
		loadGumH();
		loadGumR();
		$('#auto_brand, #gum_l, #gum_h, #gum_radius').attr('disabled', false);
	}

/* disk interrupt function */
	brand.change(function(){
		if(brand.val() == 0){
			$('#auto_model, #auto_kind, #auto_radius').attr('disabled', 'disabled').val(0);
		}else{
			$.get(
				'find_disk.php', 
				{action: 'model', name: brand.val()}, 
				function(res_str, stat){
					model.loadSelect(res_str, 1);
				}
			);
			model.attr('disabled', false);
		}
		msg_box_disk.css("display", "none");
	});

	model.change(function(){
		if(model.val() == 0){
			$('#auto_kind, #auto_radius').attr('disabled', 'disabled').val(0);
		}else{
			$.get(
				'find_disk.php', 
				{action: 'kind', brand: brand.val(), model: model.val()}, 
				function(res_str, stat){
					kind.loadSelect(res_str, 1);
				}
			);
			kind.attr('disabled', false);
		}
		msg_box_disk.css("display", "none");
	});
	
	kind.change(function(){
		if(kind.val() == 0){
			$('#auto_radius').attr('disabled', 'disabled').val(0);
		}else{
			$.get(
				'find_disk.php', 
				{action: 'radius', brand: brand.val(), model: model.val(), kind: kind.val()}, 
				function(res_str, stat){
					radius.loadSelect(res_str, 1);
				}
			);
			radius.attr('disabled', false);
		}
		msg_box_disk.css("display", "none");
	});

	radius.change(function(){
		msg_box_disk.css("display", "none");
	});
	
	$('#form_disk').submit(function(){
		if(brand.val() == 0 || model.val() == 0 || kind.val() == 0 || radius.val() == 0){
			msg_box_disk.html('Ошибка! Выбраны не все поля, необходимые для поиска.').css("display", "block");
			return false;
		}
		return true;
	});

});


