function sortCZ(a, b) {
	 a = a.charCodeAt(0);
	 b = b.charCodeAt(0);
	 var pred = [225,269,271,233,283,237,328,345,353,357,250,367,253,382,193,268,270,201,282,205,327,344,352,356,218,366,221,381];
	 var po = [97.5,99.5,100.5,101.5,101.5,105.5,110.5,114.5,115.5,116.5,117.5,117.5,121.5,122.5,65.5,67.5,68.5,69.5,69.5,73.5,78.5,82.5,83.5,84.5,85.5,85.5,89.5,90.5];
	 var code_a = pred.indexOf(a);
	 code_a = code_a != -1 ? po[code_a] : a;
	 var code_b = pred.indexOf(b);
	 code_b = code_b != -1 ? po[code_b] : b;
	 if(code_a > code_b) return 1;
	 if(code_a < code_b) return -1;
	 return 0;
}

if(!Array.indexOf){ // IE fix
	 Array.prototype.indexOf = function(obj){
			for(var i=0; i<this.length; i++){
				 if(this[i]===obj){
						return i;
				 }
			}
			return -1;
	 }
}

function jsonCalc(kroku) {
	if(!window.cars2) {
		window.cars2 = {
			fillSelBox: function(sel, data) { // generates selectbox with data
				var html = '<option value="-1">Vyberte hodnotu</option>';
				if(!sel) {
					var i = this.dotazy.indexOf(this.tmp);
					if(i != -1) {
						sel = this.selBoxes[i];
					}
				}
				for(var i=0, len=data.length; i<len; i=i+2) {
						html+='<option value="'+ data[i] +'">'+ data[i+1] +'</option>';
				}
				sel.empty();
				sel.html(html);
				this.composeBoxes(sel);
			},
			getJsonData: function(dotaz, id) { // loads json data and fill selectbox with them
				this.tmp = dotaz;
				var i = this.dotazy.indexOf(this.tmp);
				if (jQuery('#' + this.dotazy[i]).length == 0) {
					return;
				}
				if(this.selBoxes[i]) this.selBoxes[i].empty().html('<option value="">Načítám data...</option>');
				jQuery.getJSON('/ajax-calc.php', { dotaz:dotaz, id:id }, function(data){
						window.cars2.fillSelBox(false, data);
				});
			},
			composeBoxes: function(sel) {
				var act = this.dotazy.indexOf(sel.attr('id'));
				var i=act +1;
				var len=this.dotazy.length;
				for(i; i<len; i++) {
					this.selBoxes[i].empty();
				}
				i = 1;
				for(i; i<len; i++) {
					if(i<=act) {
						this.selBoxesContainers[i].addClass('act');
					} else {
						this.selBoxesContainers[i].removeClass('act');
					}
				}
			},
			domLoaded: function() { // data async loaded + domready, now we can manipulate DOM
				if(!this.tmp) return false; // prazdna data, nefunguje soap, koncime
				// vars
				if (jQuery('#vyrobci').length == 0) {
					return;
				}

				for(var i=0, tmp, len=this.dotazy.length; i<len; i++) {
					tmp = jQuery('#'+ this.dotazy[i]);
					this.selBoxes.push(tmp);
					this.selBoxesContainers.push(tmp.parent());
				}
				
				if (this.selBoxes.length < 1) {
					return;
				}
				// events
				this.selBoxes[0].change(function(){
					if(this.value == 'x') this.form.submit();
					else if(this.value != -1) {
						window.cars2.getJsonData('modely', this.value);
					}
				});
				if(this.kroku > 2) {
					this.selBoxes[1].change(function(){
						if(this.value == 'x') this.form.submit();
						else if(this.value != -1) {
							window.cars2.getJsonData('palivo', this.value);
						}
					});
				}

				if(this.kroku > 3) {
					this.selBoxes[2].change(function(){
						if(this.value == 'x') this.form.submit();
						else if(this.value != -1) {
							window.cars2.getJsonData('motory', this.value);
						}
					});
				}

				if(this.kroku > 4) {
					this.selBoxes[3].change(function(){
						if(this.value == 'x') this.form.submit();
						else if(this.value != -1) {
							window.cars2.getJsonData('provedeni', this.value);
						}
					});
				}

				// init
				this.selBoxes[(this.kroku -1)].change(function(){
					if(this.value != -1) this.form.submit();
				});
				this.fillSelBox(this.selBoxes[0], this.tmp);
				this.tmp = null;
			},
			tmp: null,
			selBoxes: [],
			selBoxesContainers: [],
			dotazy: ['vyrobci', 'modely', 'palivo', 'motory', 'provedeni'], // used for selectbox ID & GET param for ajax
			kroku: 5
		};

		if(kroku > 5 || kroku < 2) kroku = 5;
		window.cars2.kroku = kroku;
		if (jQuery('#vyrobci').length > 0) {
			jQuery.getJSON('/ajax-calc.php', { dotaz:'vyrobci', id:'20018' }, function(data){
					window.cars2.tmp = data;
					jQuery(document).ready(function(){
							window.cars2.domLoaded();
					});
			});
		}
	}
}

jQuery(document).ready(function(){
	jsonCalc($('#calc select').length);
})
