/*
 * jQuery select box auto change plugin
 * Version 1.00 (08/29/2008)
 * @requires jQuery v1.2.5 or later
 *
 * Copyright (c) 2008 Petr Svamberg
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
/*
<selectboxs>
	<option>
		<name>A</name>
		<val>1</val>
	</option>
	<option>
		<name>B</name>
		<val>2</val>
	</option>
	<option>
		<name>C</name>
		<val>3</val>
	</option>
</selectbox>

*/
var debugStr = '';
var lastAjaxUrl = '';
var i =0 ;
$(function(){
	
	// zacatek selectu 
    var xmlSelIdMain = '#findSelect';
	// nastaveni stabilni sirky dle defaultu
	var pocetSelectu = 5;
	var pocetRadio = 4;
	// ukotveni velikosti selectboxu
	for( i = 1; i <= pocetSelectu; i++ ){
	   	$(xmlSelIdMain+i).css('width', $(xmlSelIdMain+i).css('width'));
	}
	// fce pro update selectu
	function mdAjaxSuccess(xml){
       	var xmlSelId = '';
		$('.searchHTMLBlok').html(' ');
        $('select',xml).each(function() {
			var selectBox = $(this);
			// atributy
			var id = selectBox.attr('id');
			var selVal = selectBox.attr('selVal');
			var selEnabled = selectBox.attr('enabled');
			
			xmlSelId = xmlSelIdMain+id;
			var options = ''; 
	    	var selItem = '';
	    	var pocet = 0;
			$('option',selectBox).each(function() {
				pocet++;
				var itemVal = $('val',this).text();
				var itemText = $('name',this).text();
				options += '<option value="' + itemVal + '">' + itemText + '</option>';
			});
			if( $('text',selectBox).size() > 0 ){
				$('.searchHTMLBlok').html( $.base64Decode($('text',selectBox).text()));
			}
			if( pocet < 2 ) selEnabled = '0';
			$(xmlSelId).removeClass('loadInput');
			if( selEnabled == '1' ){
				$(xmlSelId).attr('disabled','');
				$(xmlSelId).html(options);	
				$(xmlSelId).val(selVal);
			}else{
				$(xmlSelId).attr('disabled','disabled');
				$(xmlSelId).html('<option value="0"> - </option>');	
			}
        });
	}
	// error fce  
	function mdAjaxError(){
	   	for( i = 1; i <= pocetSelectu; i++ ){
		   	$( xmlSelIdMain+i).removeClass('loadInput');
		   	$( xmlSelIdMain+i).attr('disabled','');
		}
		//alert('Error loading XML data (timeout)');
	}
	// ONCHANGE fce
	function mdAjaxSelChange( reset, druh ){	
		debugStr = '';
		selIndex = j;
		// vytvoreni get dat
		var getStr = '';
		// pamet puvodnich hodnot
		var valSel = []; 
		if( !reset ){ // 
			for( i = 1; i <= pocetSelectu; i++ ){
				valSel[i] = $(xmlSelIdMain+i ).val();
				getStr += '&sid['+i+']='+valSel[i];
			}
			// druh 
			for( i = 1; i <= pocetRadio; i++ ){
				if( $( '#rDruh'+i).attr('checked') ){
					getStr += '&d='+$( '#rDruh'+i).val();
				}
			}
		}else{
			if( druh ){
				// druh 
				for( i = 1; i <= pocetRadio; i++ ){
					if( $( '#rDruh'+i).attr('checked') ){
						getStr += '&d='+$( '#rDruh'+i).val();
					}
				}
			}else{
				for( i = 1; i <= pocetRadio; i++ ){
				   	$( '#rDruh'+i).attr('checked','');
				}
			}
		}
		if( $('#idKatSearch').val() > 0 ) getStr +='&idk='+ $('#idKatSearch').val();
		// oznaceni updatovanych selectu
		for( i = 1; i <= pocetSelectu; i++ ){
			if( ( i != selIndex  && valSel[i]  < 1)  || reset ){
				$(xmlSelIdMain+i).addClass('loadInput');
			   	$(xmlSelIdMain+i).attr('disabled','disabled');
			}
		}
		var cil = zacatekUrl+'xmlselectdata.php?sel='+i+getStr;
		if( cil != lastAjaxUrl ){
			lastAjaxUrl = zacatekUrl+'xmlselectdata.php?sel='+i+getStr;
			
			// promenne selectu pro generator options
			$.ajax({
			    url: lastAjaxUrl,
			    type: 'GET',
			    dataType: 'xml',
			    timeout: 20000,
			    error: function(){ mdAjaxError(); },
			    success:  function(xml){ mdAjaxSuccess(xml); }
			});
		}
	}
	
	// select change functions
   	for( var j = 1; j <= pocetSelectu; j++ ){ 
		$("select"+xmlSelIdMain+j).change(function(){
			mdAjaxSelChange(false,true);
		});
	}
	// druh 
	for( i = 1; i <= pocetRadio; i++ ){
		$( '#rDruh'+i).click(function(){
			mdAjaxSelChange(true,true);
		});
	}
	
	
	// reset		
	$("#mdResetButton").click(function(){
		mdAjaxSelChange(true,false);
	});
});
