/*  Funkce pro zobrazování a shovávání voleb, které se zobrazí jen v závislosti na jiné volbě */

/* Těžké věci */
tezke_veci_handler = function(){
	if($('#k_tezke_veci_a').is(":checked")){
		$('#k_tezke_pocet_div,#k_result_tezke_div').show();
	} else {
		$('#k_tezke_pocet_div,#k_result_tezke_div').hide();
	}
};

/* Stěhování */
steh_handler = function(){
	if($('#k_steh_praha').is(":checked")){
		$('#k_steh_praha_time_div').show();
		$('#k_steh_mimo_km_div,#k_result_steh_sazba').hide();
	} else {
		$('#k_steh_praha_time_div').hide();
		$('#k_steh_mimo_km_div,#k_result_steh_sazba').show();
	}
};

/* Balení */
baleni_handler = function(){
	if($('#k_baleni_a').is(":checked")){
		$('#k_baleni_velke_div,#k_baleni_male_div,#k_result_baleni_material_cena_div,#k_result_baleni_time_div').show();
	} else {
		$('#k_baleni_velke_div,#k_baleni_male_div,#k_result_baleni_material_cena_div,#k_result_baleni_time_div').hide();
	}
};

/* Montáž a demontáž */
demont_handler = function(){
	if($('#k_demont_a').is(':checked')){
		$('#k_demont_pocet_div,#k_result_montaz_time_div').show();
	} else {
		$('#k_demont_pocet_div,#k_result_montaz_time_div').hide();
	}
};

/* explicitni zavolani kontroly formulare */
form_validate = function() {
	$("#kalkulator").valid()
};

/* Spočítání celkové ceny */
final_handler = function(){
	if(pocetVeciCelkem+tezkeKusy<1 || cenaCelkem<1){
		$('.finalStepError').show();
	} else {
		$('.finalStep .stepResult,#kalkulatorPoptavka').show();
		$(window).scrollTop($('.finalStep .stepResult').offset().top-100);
	}
}


/* Poptávkový formulář - přepínač mezi objednávkou a kalkulací */
var formSubmited = false;	//Přepínač zda uživatel již zkusil formulář odeslat - pokud ho již odeslal a neprošel kontrolou, musí se při přepnutí mezi kalkulací a objednávkou znovu ověřit, jinak tam zůstanou viset chybové hlášky.
poptavka_co_handler = function(){
	if($('#fp_co_upresnit').is(':checked')){
		$('#nemusite1,#nemusite2,#nemusite3').css('visibility','visible');
		$('#objednavkano_input').val(false);
	} else {
		$('#nemusite1,#nemusite2,#nemusite3').css('visibility','hidden');
		$('#objednavkano_input').val(true);
	}
	if(formSubmited){
		form_validate();
	}
}


/* vymazani formulare */
function clear(){
	$('#k_dvur_n').get(0).checked = true;
	
	$('#k_demont_mont').get(0).checked = true;
	$('#k_demont_pocet').val('');
	$('#k_demont_n').get(0).checked = true;
	
	$('#k_baleni_male').val('');
	$('#k_baleni_velke').val('');
	$('#k_baleni_n').get(0).checked = true;
	
	$('#k_steh_mimo_km').val('');
	$('#k_steh_praha_time').get(0).selectedIndex = 0;
	$('#k_steh_praha').get(0).checked = true;
	
	$('#k_nakl_patro').get(0).selectedIndex = 0;
	$('#k_nakl_vytah').get(0).selectedIndex = 0;
	$('#k_vykl_patro').get(0).selectedIndex = 0;
	$('#k_vykl_vytah').get(0).selectedIndex = 0;
	
	$('#k_jen_auto').get(0).checked = false;
	
	$('#k_tezke_piano').get(0).selectedIndex = 0;
	$('#k_tezke_kridlo').get(0).selectedIndex = 0;
	$('#k_tezke_skrin').get(0).selectedIndex = 0;
	$('#k_tezke_trezor').get(0).selectedIndex = 0;
	$('#k_tezke_veci_n').get(0).checked = true;

	$('#k_veci1').val('');
	$('#k_veci2').val('');
	
	spocitejCeny();
	
	poptavka_co_handler();
	demont_handler();
	baleni_handler();
	steh_handler();
	tezke_veci_handler();
	
	
	$(window).scrollTop(0);
	
	return false;
}




// konstanty se kterymi se pocita
array_vozidlo = new Array("Merc","Iv13","Iv15","Iv17","Iv20","Iv22","Iv36","Iv43","neni");
array_vozidla_jmena = new Array("Mercedes","Iveco13","Iveco15","Iveco17","Iveco20","Iveco22","Iveco36","Iveco43","neni");
array_sazba = new Array(600,600,600,700,700,700,800,800,0);
array_sazbaKm = new Array(12,13,13,14,14,14,16,18,0);
array_minimum = new Array(800,800,800,1000,1000,1200,1200,0);

casPatroVeci1 = 0.5   // cas noseni tasek 1 patro 
casPatroVeci2 = 1.2   // cas noseni skrini 1 patro 
casNakladkaVeci1 = 1.5 // cas brani a nakladky tasek do auta
casNakladkaVeci2 = 3 // cas brani a nakladky skrini do auta
pocetVeci1MalVytah = 8; // 
casJizdyVytah = 0.4;
casVytahVeci1 = 2; // cas nakladki veci do vytahu a vykladky z vytahu
casVytahVeci2 = 3; // cas nakladki skrini do vytahu a vykladky z vytahu
pocetVeci1VelVytah = 25; // kolik veci se vejdou do nakl. vytahu
pocetVeci2VelVytah = 4; // kolik skrini se vejdou do nakl. vytahu

// hodnoty nactene z formulare
maleVeci = 0;
velkeVeci = 0;

piana = 0;
kridla = 0;
skrine = 0;
trezor = 0;
tezkeKusy = 0;

jenAuto = false;

patroOdkud = 0;
patroKam = 0;
vytahOdkud = 'neni';
vytahKam = 'neni';

stehPraha = true;
stehPrahaCas = 15;
stehMimoKm = 0;

baleni = false;
baleniMale = 0;
baleniVelke = 0;

demontaz = false;
demontazPocet = 0;
montaz = false;

dvur = false;


// vypoctene hodnoty
pocetVeciCelkem = 0;
cisloAuta = 8;
pracovniku = 2;
// ceny
cenaTezke = 0;
sazba = 0;
sazbaKm = 0;
cenaZaHod = 0;
cenaNakladky = 0;
cenaVykladky = 0;
cenaDopravy = 0;
cenaBaleni = 0;
cenaBalenimaterial = 0;
cenaMontaz = 0;
cenaDvur = 0;
cenaCelkem = 0;
//casy
casNakladky = 0;
casVykladky = 0;
casDopravy = 0;
casBaleni = 0;
casMontaz = 0;
casCelkem = 0;


// promene ktere je nutne odeslat ve formulari
cenatezkus1 = 0;
cenatezkus2 = 0;
cenatezkus3 = 0;
cenatezkus4 = 0;

/* ziskani ciselne hodnoty z formulare */
function getInt(id){
	var ret = parseInt($('#'+id).val());
	if(isNaN(ret)){
		ret = 0;
	}
	return ret;
}
/* ziskani ciselne hodnoty z formulare */
function roundTime(time){
	return Math.ceil(time/5)*5;
}

/* nacteni hodnot z formulare */
function formNactiHodnoty(){
	maleVeci = getInt('k_veci1');
	velkeVeci = getInt('k_veci2');
	
	if($('#k_tezke_veci_a').is(':checked')){
		piana = getInt('k_tezke_piano');
		kridla = getInt('k_tezke_kridlo');
		skrine = getInt('k_tezke_skrin');
		trezor = getInt('k_tezke_trezor');
		tezkeKusy = piana + kridla + skrine + (trezor>0?1:0);
	} else {
		piana = kridla = skrine = trezor = tezkeKusy = 0;
	}
	
	jenAuto = $('#k_jen_auto').is(':checked');
	
	patroOdkud = getInt('k_nakl_patro');
	patroKam = getInt('k_vykl_patro');
	vytahOdkud = $('#k_nakl_vytah').val();
	vytahKam = $('#k_vykl_vytah').val();
	
	pocetVeciCelkem = maleVeci + 4*velkeVeci;
	
	stehPraha = $('#k_steh_praha').is(':checked');
	if(stehPraha){
		stehPrahaCas = getInt('k_steh_praha_time');
		stehMimoKm = 0;
	} else {
		stehPrahaCas = 0;
		stehMimoKm = getInt('k_steh_mimo_km');
	}
	
	baleni = $('#k_baleni_a').is(':checked');
	if(baleni){
		baleniMale = getInt('k_baleni_male');
		baleniVelke = getInt('k_baleni_velke');
	} else {
		baleniMale = baleniVelke = 0;
	}
	
	demontaz = $('#k_demont_a').is(':checked');
	if(demontaz){
		demontazPocet = getInt('k_demont_pocet');
		montaz = $('#k_demont_mont').is(':checked');
	} else {
		demontazPocet = montaz = 0;
	}
	
	dvur = $('#k_dvur_a').is(':checked');
}


/*   urceni typu auta   */
function formAuto(){
	var pocetVeciCelkemAuto = pocetVeciCelkem + tezkeKusy;
	var velkeVeciAuto = velkeVeci + tezkeKusy;
	if(pocetVeciCelkem==0 && tezkeKusy>0){
		if(tezkeKusy<=2){
			cisloAuta=1;
		} else {
			cisloAuta=3;
		}
	} else if(pocetVeciCelkemAuto==0){
		cisloAuta=8;
	} else if (pocetVeciCelkemAuto<=32 && velkeVeciAuto<=4){
		cisloAuta=1;
	} else if (pocetVeciCelkemAuto<=64 && velkeVeciAuto<=8){
		cisloAuta=1;
	} else if (pocetVeciCelkemAuto<=72 && velkeVeciAuto<=8){
		cisloAuta=2;
	} else if (pocetVeciCelkemAuto<=80 && velkeVeciAuto<=10){
		cisloAuta=3;
	} else if (pocetVeciCelkemAuto<=96 && velkeVeciAuto<=14){
		cisloAuta=4;
	} else if (pocetVeciCelkemAuto<=128 && velkeVeciAuto<=18){
		cisloAuta=5;
	} else if(pocetVeciCelkemAuto<=160 && velkeVeciAuto<=30){
		cisloAuta=6;
	} else {
		cisloAuta=7;
	}
}

/*  zjisteni poctu pracovniku  */
function formPracovnici(){

	pracovniku = 2;
	if(jenAuto){
		//chce jen ridice
		pracovniku = 1;
	} else if(cisloAuta!=8){
		if(cisloAuta>=6){
			pracovniku = maleVeci>20 ? 4 : 3;
		} else if(((((patroOdkud>=4 && vytahOdkud=='neni') || (patroKam>=5 && vytahKam=='neni')) && (cisloAuta==1 || cisloAuta==2))
			|| (((patroOdkud>=3 && vytahOdkud=='neni') || (patroKam>=4 && vytahKam=='neni')) && cisloAuta==3 )
			|| (((patroOdkud>=2 && vytahOdkud=='neni') || (patroKam>=3 && vytahKam=='neni')) && (cisloAuta==4 || cisloAuta==5)))
			&& maleVeci>20
			){
			pracovniku = 3;
		}
		if(kridla>0 || trezor==3){
			pracovniku = 4;
		} else if(trezor==4){
			pracovniku = 6;
		}
	}
}

/*  tezke kusy  */
function formTezkeKusy(){
	var patra = (vytahOdkud=='nakladni' ? 0 : patroOdkud) + (vytahKam=='nakladni' ? 0 : patroKam);
	
	cenatezkus1 = (1800+250*patra)*piana;
	cenatezkus2 = (3000+500*patra)*kridla;
	cenatezkus3 = (1200+200*patra)*skrine;
	
	switch(trezor){
		case 1:
			cenatezkus4 = 1200+200*patra;
			break;
		case 2:
			cenatezkus4 = 1800+250*patra;
			break;
		case 3:
			cenatezkus4 = 3000+500*patra;
			break;
		case 4:
			cenatezkus4 = 4000+600*patra;
			break;
		default:
			cenatezkus4 = 0;
	}	

	cenaTezke = cenatezkus1 + cenatezkus2 + cenatezkus3 + cenatezkus4;

}

/* cena za hodinu */
function formCenaHod(){
	if(jenAuto){
		sazba = array_sazba[cisloAuta];
		sazbaKm = array_sazbaKm[cisloAuta];
	} else {
		sazba = array_sazba[cisloAuta] - 300 + pracovniku*200
		if (pracovniku == 1){
			sazba += 100
		}
		sazbaKm = array_sazbaKm[cisloAuta] - 2 + pracovniku*2;
	}
	cenaZaHod = sazba/60;	
}

function formNakladka(co){
	if(co == 'vykladka'){
		patro = patroKam;
		vytah = vytahKam;
	} else {
		patro = patroOdkud;
		vytah = vytahOdkud;
	}
	var cas1 = 0;
	var cas2 = 0;
	//alert (vytah);

	switch(vytah){
		case 'neni':
			//alert (vytah);
			cas1 = ((patro+1)*casPatroVeci1/2 + casNakladkaVeci1)*maleVeci;
			cas2 = (patro+1)*velkeVeci + velkeVeci*casNakladkaVeci2;
			//alert (cas2);
			break;
		case 'osobni':
			cas1 = patro*Math.ceil(maleVeci/pocetVeci1MalVytah)*casJizdyVytah + maleVeci*casVytahVeci1;
			cas2 = (patro*(casJizdyVytah+1) + casVytahVeci2 + casNakladkaVeci2)*velkeVeci/2;
			break;
		case 'nakladni':
			cas1 = patro*Math.ceil(maleVeci/pocetVeci1VelVytah)*casJizdyVytah + maleVeci*casVytahVeci1;
			cas2 = patro*Math.ceil(velkeVeci/pocetVeci2VelVytah)*casJizdyVytah + velkeVeci*casVytahVeci2;
			break;
	}
	cas = roundTime((cas1+cas2)*2/pracovniku);
	cena = cas*cenaZaHod;
	if(co == 'vykladka'){
		casVykladky = cas;
		cenaVykladky = cena;
	} else {
		casNakladky = cas;
		cenaNakladky = cena;
	}

}

function formDoprava(){
	if(stehPraha){
		casDopravy = stehPrahaCas;
		cenaDopravy = casDopravy*cenaZaHod;
	} else {
		cenaDopravy = stehMimoKm*2*sazbaKm;
		var rychlost = stehMimoKm;
		if (stehMimoKm>80) {
			rychlost = 80;
		} else if(stehMimoKm<60) {
			rychlost = 60;
		}
		casDopravy = (stehMimoKm/rychlost)*60;
		if(casDopravy < 10){
			casDopravy = 10;
		}
	}
}

function formBaleni(){
	if(baleni){
		casBaleni = (baleniMale*3+baleniVelke*4)*2/pracovniku;
		if (casBaleni<20/3 && (baleniMale!=0 || baleniVelke!=0)){
			casBaleni=20/3
		}
		casBaleni = roundTime(casBaleni);
		cenaBaleni = casBaleni*cenaZaHod;
		cenaBalenimaterial = baleniMale*20+baleniVelke*45;
	} else {
		cenaBaleni = casBaleni = 0;
	}
}


function formMontaz(){
	if(demontaz){
		casMontaz= roundTime(demontazPocet*(15+(montaz?30:0))*2/pracovniku);
		cenaMontaz = casMontaz*cenaZaHod;
	} else {
		cenaMontaz = casMontaz = 0;
	}
}

function formDvur(){
	cenaDvur = dvur?200:0;
}

function formCelkem(){
	cenaCelkem = cenaTezke + cenaNakladky + cenaVykladky + cenaDopravy + cenaBaleni + cenaBalenimaterial + cenaMontaz + cenaDvur;
	if (cenaCelkem<=array_minimum[cisloAuta]){
		cenaCelkem = array_minimum[cisloAuta];
		//alert (cenaCelkem);
		if (pracovniku > 2){
			cenaCelkem += (pracovniku-2)*200
		}
		//if (pracovniku>=2){
		//	cenaCelkem = 600+(pracovniku-2)*200
		//}
	}
	
	casCelkem = casNakladky + casVykladky + casDopravy + casBaleni + casMontaz;
	if(casCelkem < 60){
		casCelkem = 60;
	}
}


function showInt(id,value){
	$('#k_result_'+id).text(Math.round(value));
	$('#'+id+'_input').val(Math.round(value));
}

function showIntInput(id,value){
	$('#'+id+'_input').val(Math.round(value));
}

function showTimeCore(id,minuty,input){
	var minuty = Math.round(minuty);
	var casHod = Math.floor(minuty/60);
	var casMin = minuty-casHod*60;
	if(input){
		showIntInput(id+'_time_hod',casHod);
		showIntInput(id+'_time_min',casMin);
	} else {
		showInt(id+'_time_hod',casHod);
		showInt(id+'_time_min',casMin);
	}
}

function showTime(id,minuty){
	showTimeCore(id,minuty,false);
}
function showTimeInput(id,minuty){
	showTimeCore(id,minuty,true);
}

function formZobraz(){
	for(var i=1;i<=8;++i){
		if(i == cisloAuta+1){
			$('#k_result_car'+i).show();
		} else {
			$('#k_result_car'+i).hide();
		}
	}
	
	showInt('pracovniku',pracovniku);
	showInt('sazba',sazba);
	showInt('tezke_cena',cenaTezke);
	
	if(pocetVeciCelkem>0){
		$('.resultRightSazba').show();
	} else {
		$('.resultRightSazba').hide();
	}
	
	showInt('nakl_cena',cenaNakladky+cenaVykladky);
	showTime('nakl',casNakladky+casVykladky);
	
	showInt('steh_cena',cenaDopravy);
	showInt('steh_sazba strong',sazbaKm);
	
	showInt('baleni_cena',cenaBaleni);
	showInt('baleni_material_cena',cenaBalenimaterial);
	showTime('baleni',casBaleni);
	
	showInt('montaz_cena',cenaMontaz);
	showTime('montaz',casMontaz);
	
	showInt('dvur_cena',cenaDvur);
	
	
	showInt('final_cena_bez',cenaCelkem);
	showInt('final_cena_s',cenaCelkem*1.20);
	showTime('final',casCelkem);
	
	
	// veci ktere se nezobrazuji ale posilaji formularem
	$('#transfer_input').val('http://www.stehovani-tavocer.cz/odeslanoobj.htm');
	$('#vozidlo_input').val(array_vozidla_jmena[cisloAuta]);
	showIntInput('cenatezkus1',cenatezkus1);
	showIntInput('cenatezkus2',cenatezkus2);
	showIntInput('cenatezkus3',cenatezkus3);
	showIntInput('cenatezkus4',cenatezkus4);
	showTimeInput('steh',casDopravy);
	showIntInput('steh_sazba',sazbaKm);
	$('#vzdalkmcena_input').val($('#k_steh_mimo_km').val());
	showIntInput('cenadopravykm',cenaDopravy);
	
	
	showTimeInput('vykl',casVykladky);
	showIntInput('vykl_cena',cenaVykladky);
	showTimeInput('naklp',casNakladky);
	showIntInput('naklp_cena',cenaNakladky);
	
	
	//schovani chybove hlasky
	if(pocetVeciCelkem+tezkeKusy && $('.finalStepError').css('display')=='block'){
		$('.finalStepError').hide();
	}
	if(!(pocetVeciCelkem+tezkeKusy)){
		$('.finalStep .stepResult,#kalkulatorPoptavka').hide();
	}
}

function spocitejCeny(){
	formNactiHodnoty();
	
	formAuto();
	formPracovnici();
	formTezkeKusy();
	formCenaHod();
	formNakladka('vykladka');
	formNakladka('nakladka');
	formDoprava();
	formBaleni();
	formMontaz();
	formDvur();
	
	formCelkem();
	
	formZobraz();
}


/* Inicializace - navěšení ovládacích funkcí na události formuláře */
$(document).ready(function(){
	/* napoveda */
	$('.kalkulatorHelp').tooltip({
		showURL: false
	});
	
	
	/* zobrazování a skrývání voleb */
	$('#k_tezke_veci_a,#k_tezke_veci_n').click(tezke_veci_handler);
	tezke_veci_handler();

	$('#k_steh_mimo,#k_steh_praha').click(steh_handler);
	steh_handler();
	
	$('#k_baleni_a,#k_baleni_n').click(baleni_handler);
	baleni_handler();
	
	$('#k_demont_a,#k_demont_n').click(demont_handler);
	demont_handler();
	
	$('.finalStep .stepInputs input').click(final_handler);
	$('.finalStep .stepResult,#kalkulatorPoptavka').hide();
	
	$('#fp_co_objednat,#fp_co_upresnit').click(poptavka_co_handler);
	poptavka_co_handler();
	$("input:submit").click(function(){formSubmited=true;});
	
	
	
	/* Omezení znaků které je možné napsat do políček formuláře */
	$('#k_veci2,#k_veci1,#k_steh_mimo_km,#k_baleni_velke,#k_baleni_male,#k_demont_pocet').onlyInt();
	
	
	/* Ověření vypnění formuláře pro kalkulaci */
	jQuery.validator.addMethod("regexp", function(value, element, param) {
		return value.match(new RegExp(param));
	},"Neplatná hodnota.");
		
	$("#kalkulator").validate({
		rules: {
			jmeno: {
				required: function(element) {
					return $('#fp_co_objednat').is(":checked") && !$('#fp_firma').is(":checked");
				}
			},
			firma: {
				required: function(element) {
					return $('#fp_co_objednat').is(":checked") && !$('#fp_jmeno').is(":checked");
				}
			},
			termin: {
				required: "#fp_co_objednat:checked"
			},
			telefon: {
				required: function(element) { return !$("#fp_email").val();},
				regexp: "^([\\d +]{9,})|$"
			},
			email: {
				required: function(element) { return !$("#fp_telefon").val();},
				email: true
			},
			mestoodkud: "required"
		},
		messages: {
			jmeno: "Uveďte vaše jméno nebo firmu.",
			firma: "Uveďte vaše jméno nebo firmu.",
			termin: "Uveďte termín kdy si přejete stěhování provést.",
			email: {
				required: "Uveďte váš e-mail nebo telefon, abychom vás mohli kontaktovat.",
				email: "Zadaný e-mail je naplatný."
			},
			telefon: {
				required: "Uveďte váš e-mail nebo telefon, abychom vás mohli kontaktovat.",
				regexp: "Zadané telefonní číslo je neplatné."
			},
			mestoodkud: "Uveďte město odkud chcete stěhovat."
		}
	});
	$('#fp_email,#fp_telefon').change(form_validate);
	
	
	
	// spocitani ceny
	$('#kalkulator').change(spocitejCeny);
	$('#kalkulator :input').keyup(spocitejCeny);
	$('#kalkulator :radio,#kalkulator :checkbox').click(spocitejCeny);
	$('select').change(spocitejCeny);
	spocitejCeny();
	
	
	//posun po kliknuti na sipticku
	$('.stepBottomArrow').click(function(){
		$(window).scrollTop($(window).scrollTop()+150);
	});

	
	//vynulovani formulare
	$('.stepInputsVymazat a').click(clear);
	
	//odkaz v chybove hlasce - posune na zadani poctu kusu
	$('.finalStepError a').click(function(){
		$(window).scrollTop($('#kalkulator').offset().top);
		return false;
	});
});



var myTWin = window.myTWin;
function OpenWinAuta(link)
{ 
  link.target = '_WinAuta'; 
  if (myTWin != null && !myTWin.closed) 
  { 
    myTWin.focus(); 
    myTWin.location.href = link.href; 
  } 
  else 
  { 
    myTWin = window.open(link.href,'_WinAuta','dependent=yes,menubar=no,location=no,resizable=yes,width=920,height=320,toolbar=no'); 
    if (myTWin != null) 
      myTWin.focus(); 
  } 
  return myTWin; 
} 