function hideTypeDetails(){
	$(".typ_vozidla").hide();
}

function showTypeDetails(type){
	if(type!='sanita' && type!='obytne' && type!='tahac'){
		$('#moznosti_'+type).show();
	}

	if(type=='osobni'){
		$('#frmkrok1Form-vozidlo_zimni_pneu').removeAttr("disabled").removeClass("disabled");
	}
	else{
		$('#frmkrok1Form-vozidlo_zimni_pneu').removeAttr("checked").attr("disabled", "disabled").addClass("disabled");
	}
}

function toggleTypes(){

	if(getSelectedTypesNumber()){//je vybrano vozidlo
		hideNotChecked();
	}
	else{
		hideVozidlo();
		hidePojistnik();
		hidePojisteni();
	}
}

function hideVozidlo(){
	$('#kalkulator_vozidlo').hide();
}
function showVozidlo(){
	$('#kalkulator_vozidlo').show();
	$('#kalkulator_vozidlo_warning').hide();
}

function hidePojistnik(){
	$('#kalkulator_pojistnik').hide();
}
function showPojistnik(){
	$('#kalkulator_pojistnik').show();
	$('#kalkulator_pojistnik_warning').hide();
}

function hidePojisteni(){
	$('#kalkulator_pojisteni').hide();
}
function showPojisteni(){
	$('#kalkulator_pojisteni').show();
	$('#kalkulator_pojisteni_warning').hide();
}


function hideNotChecked(){
	showShower();
	hideHider();
	hideTypeDetails();
	showTypeDetails(whichType());
	showVozidlo();
	showPojistnik();
	showPojisteni();
	hideVykon();
}



function whichType(){
	return($('#div_vozidlo_typ select').attr('value'));
}

function hideVykon(){
	if (whichType()=='pripojne'){
		$('#frmkrok1Form-vykon').attr("disabled", "true").val("none");
		removeError($('#frmkrok1Form-vykon'))
	}
	else{
		$('#frmkrok1Form-vykon').removeAttr("disabled");
	}
}
function getSelectedTypesNumber(){
	return ($('#div_vozidlo_typ select option:selected').length);
}

function showShower(){
	$('#shower').fadeIn();
}
function hideShower(){
	$('#shower').fadeOut();
}
function showHider(){
	$('#hider').fadeIn();
}
function hideHider(){
	$('#hider').fadeOut();
}

function pscChanged(){
	var psc=$('#frmkrok1Form-psc_text').val();
	psc=psc.replace(' ', '');
	if(psc.length==5){
		$.ajax({
			   type: "POST",
			   url: "povinne-ruceni-sazby/getmestobypsc",
			   data: "psc="+psc,
			   dataType: 'text',
			   beforeSend: function(){
			 	$('#frmkrok1Form-pojistnik_mesto_id').html('<option>--načítám načítám seznam měst--</option>');
		   	   },
			   success: function(text){
			     $('#frmkrok1Form-pojistnik_mesto_id').html(text);
			   }
			 });
	}
}

function pscChangedDrzitel(){
	var psc=$('#frmkrok1Form-drzitel_psc').val();
	psc=psc.replace(' ', '');
	if(psc.length==5){
		$.ajax({
			   type: "POST",
			   url: "povinne-ruceni-sazby/getmestobypsc",
			   data: "psc="+psc,
			   dataType: 'text',
			   beforeSend: function(){
				 $('#frmkrok1Form-drzitel_mesto_id').html('<option>--načítám seznam měst--</option>');
			   },
			   success: function(text){
			     $('#frmkrok1Form-drzitel_mesto_id').html(text);
			   }
			 });
	}
}




function pscChangedDrzitelStep3(){
    
	var psc=$('#frmkrok3Form-drzitel_psc').val();

	psc=psc.replace(' ', '');
	if(psc.length==5){
		$.ajax({
			   type: "POST",
			   url: "povinne-ruceni-sazby/getmestobypsc",
			   data: "psc="+psc,
			   dataType: 'text',
			   beforeSend: function(){
				 $('#frmkrok3Form-drzitel_mesto_id').html('<option>--načítám seznam měst--</option>');
			   },
			   success: function(text){
			     $('#frmkrok3Form-drzitel_mesto_id').html(text);
			   }
			 });
	}
}





function zmenenaFormaPojistnika(){
	if($('#frmkrok1Form-forma_pojistnika').val()!=0){
		$(
			'#frmkrok1Form-pojistnik_datum_narozeni,' +
			'#frmkrok1Form-pojistnik_ztp,'+
			'#frmkrok1Form-pojistnik_hasic'
			)
			.attr("disabled", "true");


		$('#frmkrok1Form-pojistnik_datum_narozeni').val("").addClass("disabled");

		$(
			'#frmkrok1Form-pojistnik_lekar,' +
			'#frmkrok1Form-pojistnik_ztp' +
			'#frmkrok1Form-pojistnik_hasic'
			).removeAttr("checked");
				
		removeError($('#frmkrok1Form-pojistnik_datum_narozeni'));
	}
	else{
		$(
			'#frmkrok1Form-pojistnik_datum_narozeni,' +
			'#frmkrok1Form-pojistnik_lekar,' +
			'#frmkrok1Form-pojistnik_ztp,' +
			'#frmkrok1Form-pojistnik_hasic'
			).removeAttr("disabled").removeClass("disabled");
	}
}

function zmenenoDrzitelTotozny(){

	if($('#frmkrok1Form-drzitel_totozny').attr("checked")){//zaskrtnuto, ze je drzitel totozny s pojistnikem
		$('#drzitel_hide').slideUp();
	}
	else{
		$('#drzitel_hide').slideDown();
	}

	if($('#frmkrok1Form-drzitel_totozny').attr('checked')){
		$('#frmkrok1Form-drzitel_forma, #frmkrok1Form-drzitel_datum_narozeni, #frmkrok1Form-drzitel_psc, #frmkrok1Form-drzitel_mesto').attr("disabled", "disabled").addClass("disabled");
		$('#frmkrok1Form-drzitel_forma, #frmkrok1Form-drzitel_datum_narozeni, #frmkrok1Form-drzitel_psc, #frmkrok1Form-drzitel_mesto').val("");
		removeError($('#frmkrok1Form-drzitel_forma'));
		removeError($('#frmkrok1Form-drzitel_datum_narozeni'));
		removeError($('#frmkrok1Form-drzitel_psc'));
		removeError($('#frmkrok1Form-drzitel_mesto'));
	}
	else if($('#drzitel_forma').val()==0){
		$('#frmkrok1Form-drzitel_forma, #frmkrok1Form-drzitel_datum_narozeni, #frmkrok1Form-drzitel_psc, #frmkrok1Form-drzitel_mesto').removeAttr("disabled").removeClass("disabled");
	}else{
    $('#frmkrok1Form-drzitel_forma, #frmkrok1Form-drzitel_psc, #frmkrok1Form-drzitel_mesto').removeAttr("disabled").removeClass("disabled");
  }

}

function zmenenaFormaDrzitele(){
	if($('#frmkrok1Form-drzitel_forma').val()!=0){
		$('#frmkrok1Form-drzitel_datum_narozeni').attr("disabled", "disabled");
		$('#frmkrok1Form-drzitel_datum_narozeni').val("").addClass("disabled");
		removeError($('#frmkrok1Form-drzitel_forma'));
		removeError($('#frmkrok1Form-drzitel_datum_narozeni'));
	}
	else{
		$('#frmkrok1Form-drzitel_datum_narozeni').removeAttr("disabled").removeClass("disabled");
	}
}


function form_init(){
	zmenenaFormaPojistnika();
	zmenenaFormaDrzitele();
	zmenenoDrzitelTotozny();
	toggleTypes();
}

$(document).ready( function() {
	toggleTypes();

form_init();
	$('#div_vozidlo_typ select').change(function() {hideNotChecked();});
	$("#hider").click(function(){hideNotChecked();});
	$('#frmkrok1Form-forma_pojistnika')
		.click(function(){zmenenaFormaPojistnika();})
		.change(function(){zmenenaFormaPojistnika();})
		.keyup(function(){zmenenaFormaPojistnika();})
	;
	$('#frmkrok1Form-drzitel_totozny')
		.click(function(){zmenenoDrzitelTotozny();})
		.change(function(){zmenenoDrzitelTotozny();})
		.keyup(function(){zmenenoDrzitelTotozny();})
	;
	$('#frmkrok1Form-drzitel_forma')
		.click(function(){zmenenaFormaDrzitele();})
		.change(function(){zmenenaFormaDrzitele();})
		.keyup(function(){zmenenaFormaDrzitele();})
	;

	$('#frmkrok1Form-psc_text').change(function(){pscChanged();});

    // krok1
	$('#frmkrok1Form-drzitel_psc').keyup(function(){pscChangedDrzitel();});
	$('#frmkrok1Form-drzitel_psc').change(function(){pscChangedDrzitel();});

    // krok 3
    $('#frmkrok3Form-drzitel_psc').keyup(function(){pscChangedDrzitelStep3();});
    $('#frmkrok3Form-drzitel_psc').change(function(){pscChangedDrzitelStep3();});







/* ONLINE KONTROLA */
	needChange = new Array(
		'frmkrok1Form-typ_osobni',
		'frmkrok1Form-typ_nakladni',
		'frmkrok1Form-typ_motocykl',
		'frmkrok1Form-typ_autobus',
		'frmkrok1Form-typ_pripojne',
		'frmkrok1Form-typ_pracovni',
		'frmkrok1Form-typ_traktor',
		'frmkrok1Form-typ_sanita',
		'frmkrok1Form-typ_obytne',
		'frmkrok1Form-typ_tahac',
		'frmkrok1Form-pojistnik_datum_narozeni',
		'frmkrok1Form-drzitel_datum_narozeni',
		'frmkrok1Form-drzitel_mesto_id',
		'frmkrok1Form-psc_text',
		'frmkrok1Form-drzitel_psc',
		'frmkrok1Form-pojisteni_pojistne_udalosti',
		'frmkrok1Form-vykon',
		'frmkrok1Form-stari_vozidla',
		'frmkrok1Form-pouziti_vozidla',
		'frmkrok1Form-pojistnik_mesto_id',
		'frmkrok1Form-forma_pojistnika',
		'frmkrok1Form-bezeskodni_prubeh',
		'frmkrok1Form-splatky',
		'frmkrok1Form-vyska_limitu',
		'frmkrok1Form-drzitel_forma'

	);


	$(needChange).each(
		function(){
			$('#'+ this).change(
					function (){
						$.ajax({
						 type: "POST",
						 url: "povinne-ruceni-sazby/cheFormKrok1Element",
						 data: "element="+$(this).attr('name')+"&value="+$(this).val() + '&' + $('#frm-krok1Form').serialize(),
						 dataType: 'json',
						 success: function(result){
							 id = result.element;
							 $('#'+id).remove()
							 removeError($('*[name="'+result.element + '"]'));
							 removeSuccess($('*[name="'+result.element + '"]'));
							 if(result.result){
								 addError($('*[name="'+result.element + '"]'), result.result);
							 }else{
								 addSuccess($('*[name="'+result.element + '"]'));
							 }
						 }
					 });
					}
		    );
		}
	)
});



/**
 * zobtazeni informacniho okna s chybou formulare na kroku1
 *
 */
function showErrorKrok1(errors){
	schovatNapovedu();
	removeErrors()
	removeSuccesss()
	var e = '<table>';
	for(key in errors){
		e = e + '<tr><td>' + errors[key] + '</td></tr>';
		addError($('#frmkrok1Form-'+ key +''), errors[key]);
	}
	e = e + '</table>';

	openDialogwithNonArrayParams(e, 'Formulář obsahuje následující chyby');
}

/**
 * zobtazeni informacniho okna s chybou formulare na kroku3
 *
 */
function showErrorKrok3(errors){
	schovatNapovedu();
	removeErrors()
	removeSuccesss()
	var e = '<table>';
	for(key in errors){
		//e = e + '<tr><th>' + $('[for=frmkrok3Form-'+ key +']').html() + '</th><td>' + errors[key] + '</td></tr>';
		e = e + '<tr><td>' + errors[key] + '</td></tr>';
		addError($('#frmkrok3Form-'+ key +''), errors[key]);
	}
	e = e + '</table>';
	openDialogwithNonArrayParams(e, 'Formulář obsahuje následující chyby');
}


/**
 * zobtazeni informacniho okna s chybou formulare na kroku4
 *
 */
function showErrorKrok4(errors){
	schovatNapovedu();
	removeErrors()
	var e = '<table>';
	for(key in errors){
		//e = e + '<tr><th>' + $('[for=frmkrok3Form-'+ key +']').html() + '</th><td>' + errors[key] + '</td></tr>';
		e = e + '<tr><td>' + errors[key] + '</td></tr>';
		addError($('#frmkrok3Form-'+ key +''), errors[key]);
	}
	e = e + '</table>';
	openDialogwithNonArrayParams(e, 'Formulář obsahuje následující chyby');
}



function addError(element, text){
	id = element.attr('name');
	element.after('<span id="'+id+'" class="formError errorKrok1" onclick="openDialogwithNonArrayParams(\''+text+'\', \'Informace o chybě\')">?</span>');
}

function openDialogwithNonArrayParams(text, title){
	params = new Array();
	params['text'] = text;
	params['title'] = title;

	openInfoDialog(params);
}

function addSuccess(element){
	id = element.attr('name');
	element.after('<span id="success'+id+'" class="formOK">OK</span>');
}

function removeErrors(){
	$(".formError").remove();
}

function removeError(element){
	$('#'+element.attr('name')).remove();

}

function removeSuccess(element){
	$('#success'+element.attr('name')).remove();
}

function removeSuccesss(){
	$(".formOK").remove();

}

function openInfoDialog(params){
	$("#dialogInfo").dialog({ dialogClass: 'infoDialog', autoOpen: false, modal: true, bgiframe: true, width: 500});
	$('#dialogInfo').html(params.text);
	$('#dialogInfo').dialog("option", "title", params.title);
	$('#dialogInfo').dialog("option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
	$("#dialogInfo").dialog('open');
}

function openContactMe(){

  // pred otevrenim dialogu pred vyplni formular
  
  $("#frmkrok1Form-jmeno").val($("#frmkrok1Form-pojistnik_jmeno").val());
  $("#frmkrok1Form-prijmeni").val($("#frmkrok1Form-pojistnik_prijmeni").val());
  $("#frmkrok1Form-telefon").val($("#frmkrok1Form-pojistnik_telefon").val());
  $("#frmkrok1Form-email").val($("#frmkrok1Form-pojistnik_email").val());

	$("#kalkulator_kontaktujte_mne" ).dialog({
    modal: true, 
    width: 600,
    buttons: {
				"Odeslat žádost": function() {
          sendContactMe();
					$( this ).dialog( "close" );
				},
        "Zavřít formulář": function() {
					$( this ).dialog( "close" );
				}
			}
  });
  $("#kalkulator_kontaktujte_mne").dialog('open');

}

function sendContactMe()
{
  var jmeno, prijmeni, telefon, email, kdy, poznamka;

  jmeno     = $("#frmkrok1Form-jmeno").val();
  prijmeni  = $("#frmkrok1Form-prijmeni").val();
  telefon   = $("#frmkrok1Form-telefon").val();
  email     = $("#frmkrok1Form-email").val();
  datum       = $("#frmkrok1Form-datum_volani").val();
  cas       = $("#frmkrok1Form-cas_volani").val();
  poznamka  = $("#frmkrok1Form-poznamka").val();
  
  $.ajax({
    url: "./backoffice/kontaktujteMne/",
    type: "POST",
    data: "jmeno="+jmeno+"&prijmeni="+prijmeni+"&telefon="+telefon+"&email="+email+"&datum="+datum+"&cas="+cas+"&poznamka="+poznamka,
    dataType: 'text',
    success: function(data){
    alert(data);
    },
    error: function(xhr, ajaxOptions, thrownError){
      console.error(xhr.status);
      alert("Omlouváme se, na stránce se vyskytla chyba, kterou jste nezapříčinily. Na odstranění usilovně pracujeme. Děkujeme za pochopení.")
    }
  });

}




