	var __znaZustatek = false;

	var __connectorPath = "../hypokalk/" ;

	var __sazba ;



	var __defaultUrok = new Array() ;

	__defaultUrok[1] = 5.34	;

	__defaultUrok[2] = 5.02 ;

	__defaultUrok[3] = 5.02 ;



	function init()

	{

		document.forms['refkalkForm'].attachEvent("onkeypress", noComma);

	}



	function checkKontakt(form)

	{

		var em = form.kontaktEmail ;

		var tel = form.kontaktTelefon ;

		var jm = form.kontaktJmeno ;



		var sel = form.zadanyFix ;

		sel.disabled = false ;



//		if ( ( em.value.length < 5 ) && ( tel.value.length < 5 ) && jm.value == "" )

//		{

//			alert("Vyplňte prosím Vaše kontaktní údaje.");

//		    jm.focus();

//		    return false;

//		}



//		if ( jm.value == "" )

//		{

//			alert("Napište prosím správně Vaše jméno.");

//		    jm.focus();

//		    return false;

//		}



		if (  em.value.length < 5 )

		{

			alert("Vyplňte prosím správně Váš e-mail.");

		    jm.focus();

		    return false;

		}

		if (window.RegExp)

		{





//			re=new RegExp("[0-9]{5,15}");



//			if (!re.test(tel.value))

//			{

//				alert("Napište prosím správně Váš telefon.");

//			    tel.focus();

//			    return false;

//			}



			var re=new RegExp("^[^@]+@[^.]+\..+$");



			if (!re.test(em.value))

			{

				alert("Napište prosím správně Váš e-mail.");

			    em.focus();

			    return false;

			}

		}

	}



	function noComma(e)

	{

		if ( window.event )

		{

			if( e.keyCode == 44 && e.srcElement.nodeName.toLowerCase() == "input" )

			{

				e.keyCode = 46 ;

				noCommaFF (e.target) ;

				return false ;

			}

		}

		else

		{

			if( e.which == 44 && e.target.nodeName.toLowerCase() == "input" )

			{

				noCommaFF (e.target) ;

				return false ;

			}



		}

		return true;

	}





	function noCommaFF(obj)

	{

		var start = obj.selectionStart;

		var end   = obj.selectionEnd;



		obj.value = obj.value.substr(0, start)

				    + '.'

				    + obj.value.substr(end, obj.value.length);

	}





	function getXmlHttpObject()

	{

		var xmlHttp = null;



		try

		{

			//	Mozilla, Opera ...

			xmlHttp=new XMLHttpRequest();

		}

		catch (e)

		{

			//	IE

			try

			{

				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

			}

			catch (e)

			{

				try

				{

					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

				}

				catch (e)

				{

					alert("No support for Ajax !!!");

					xmlHttp = false;

				}

			}

		}



		return xmlHttp ;

	}



	function ajaxSazba( fixUveru, procentoHodnoty )

	{

		var xmlHttp ;

		var s = document.getElementById ( 'novaSazba' ) ;



		xmlHttp = getXmlHttpObject();



		if ( xmlHttp !== false )

		{

			var url = __connectorPath + "sazbaRemote2.php?delka=" + fixUveru ;

			url += "&typsazeb=1" ;

			url += "&procento=" + procentoHodnoty ;

			url += "&unique=" + Math.random() ;



			xmlHttp.open("GET" ,url , true) ;

			xmlHttp.send(null) ;



			xmlHttp.onreadystatechange=function()

			{

				if(xmlHttp.readyState==4)

				{

					var retVal = parseFloat ( xmlHttp.responseText ) ;



					if ( isNaN ( retVal ) )

					{

						s.value = __defaultUrok [ procentoHodnoty ] ;					//		nejnizsi dosazitelna sazba dle typu uveru

					}

					else

					{

						s.value = retVal ;

					}

					vysledky() ;

				}		//	if (readyState == 4)

			}		//	xmlHttp.onreadystatechange Handler

		}

		else

		{

			s.value =  __defaultUrok [ procentoHodnoty ] ;					//		kdyz se nejde pripojit, tak nejnizsi dosazitelna sazba dle typu uveru

			vysledky() ;

		}





	}		//	function ajaxSazba( fixUveru, procentoHodnoty )





	function toggle( el, visible )

	{

		var e = document.getElementById( el ) ;



		if ( e.nodeName.toLowerCase() == "tbody" )

		{

			if ( document.all )

			{

				if( visible == true )

				{

					e.style.display = "block" ;

				}

				else

				{

					e.style.display = "none" ;

				}

			}

			else

			{

				if( visible == true )

				{

					e.style.display = "table-row-group" ;

				}

				else

				{

					e.style.display = "none" ;

				}

			}

		}

		else

		{

			if( visible == true )

			{

				e.style.display = "block" ;

			}

			else

			{

				e.style.display = "none" ;

			}

		}



		return false ;

	}



	function checkZustatek()

	{

		var z = document.getElementById ( 'zustatek' ) ;

		var a = document.getElementById ( 'znamyzustatek' ) ;

		var b = document.getElementById ( 'neznamyzustatek' ) ;



		if ( z.value.toString() == "" )

		{

			toggleActive ( a, false ) ;

			toggleActive ( b, true ) ;

		}

		else

		{

			toggleActive ( a, true ) ;

			toggleActive ( b, false ) ;

		}

	}

/*

	function checkDisabled( c )

	{

		var z = document.getElementById ( 'zustatek' ) ;



		if ( c.id == 'znamyzustatek' )

		{

			toggleActive ( z ) ;

		} else

		{

			toggleActive ( z, false ) ;

		}

	}

*/





	function toggleActive( t, active )

	{

//		if ( t.readOnly != true && t.disabled != true )

//		{

			if ( t.nodeName.toLowerCase() == 'input' && t.type )	// kdyz prepiname textove pole

			{

				if ( t.type.toLowerCase() == 'text' )

				{

					if ( active == false )

					{

						t.readOnly = true ;

						t.style.backgroundColor = "#FAFAFA" ;

						t.style.color = "#AAA" ;

					} else

					{

						t.readOnly = false ;

						t.style.backgroundColor = "#FFF" ;

						t.style.color = "#888" ;

					}

				} else if ( t.type.toLowerCase() == 'radio' )		//	kdyz prepiname radio

				{

					if ( active == false )

					{

						t.checked = false ;

					} else

					{

						t.checked = true ;

					}

				}

			}

//		}

	}



	function toggleZustatek( toggleAll, znazustatek )

	{

		/*

		 *		vychozi hodnoty parametru jsou TRUE

		 */

		toggleAll = ( toggleAll == undefined ) ? true : toggleAll ;

		znazustatek = ( znazustatek == undefined ) ? true : znazustatek ;



		var a = document.getElementById ( 'zustatek' ) ;

		var z = document.getElementById ( 'znamyzustatek' ) ;

		var n = document.getElementById ( 'neznamyzustatek' ) ;

//alert(a + " - " + z + " - " + n ) ;

		/*

		 *		volani s toggleAll == false znamena,

		 *		ze volani prichazi z textoveho pole, s kterym se pracuje

		 *		a pokud je prazdne, naznacuje to, ze budeme pocitat - ALE NEVYPINAME pole.

		 */

		if ( toggleAll == false && a.value.toString() == "" )

		{

			znazustatek = false ;

		}



		if ( znazustatek && !__znaZustatek )

		{

			if ( toggleAll )

			{

				toggleActive ( a ) ;

			}

			toggleActive ( z ) ;

			toggleActive ( n, false ) ;

		} else if ( !__znaZustatek )

		{

			if ( toggleAll )

			{

				toggleActive ( a, false ) ;

			}

			toggleActive ( z, false ) ;

			toggleActive ( n ) ;

		}

	}



	function neznaZustatek()

	{

		var ret = true ;



		__znaZustatek = false;

		var z = document.getElementById ( 'zustatek' ) ;



		var xx = document.getElementById ( 'divVypocetZustatku' ) ;

		xx.className = "" ;



		z.value = "..." ;

		z.style.backgroundColor = "#F8F8F8" ;



		//z.style.backgroundColor = "#fffbcb" ;



		toggle ( 'divVypocetZustatku', true ) ;

		toggle ( 'tbTlacitkaZustatek', false ) ;

		toggle ( 'tbVypocitatZustatek', true ) ;



		document.getElementById ( 'puvodniVyse' ).focus() ;

		//toggle ( 'divZnamyZustatek', false ) ;

		//ukazZustatek() ;



		return ret ;

	}



	function znaZustatek()

	{

		var ret = true ;



		var z = document.getElementById ( 'zustatek') ;

		var zustatek =  parseInt ( z.value ) ;





		if ( isNaN ( zustatek ) )

		{

			window.alert ( "Nezadali jste zůstatek správně !") ;

			ret = false ;

		}

		else

		{

			var xx = document.getElementById ( 'divNabizenePodminky' ) ;

			xx.className = "" ;



			z.value = formatNum ( z.value ) ;

			__znaZustatek = true;



			toggle ( 'tbTlacitkaZustatek', false ) ;

			toggle ( 'divNabizenePodminky', true ) ;



			toggle ( 'tbSpoctiSazbu', true ) ;

/*

			toggleActive ( document.getElementById ( 'puvodniVyse' ), false ) ;

			toggleActive ( document.getElementById ( 'puvodniFix' ), false ) ;

			toggleActive ( document.getElementById ( 'puvodniDelka' ), false ) ;

			toggleActive ( document.getElementById ( 'puvodniSazba' ), false ) ;

*/

			document.getElementById ( 'zustatek' ).style.backgroundColor = "#fffbcb" ;

			document.getElementById ( 'zustatek' ).style.color = "#333" ;



			document.getElementById ( 'zadanyFix' ).focus() ;

		}



		return ret ;

	}



	function ukazZustatek()

	{

		var ret = true ;



		var puvodniFix = parseInt ( document.getElementById ( 'puvodniFix' ).value )  ;

		var puvodniSazba = parseFloat ( document.getElementById ( 'puvodniSazba' ).value ) ;

		var puvodniVyse = parseInt ( document.getElementById ( 'puvodniVyse' ).value ) ;

		var puvodniDelka = parseInt ( document.getElementById ( 'puvodniDelka' ).value ) ;



		if( puvodniFix > 0 && puvodniVyse > 0 && puvodniSazba > 0 && !isNaN ( puvodniFix ) && !isNaN ( puvodniSazba) && !isNaN ( puvodniVyse ) )

		{

			var xx = document.getElementById ( 'divNabizenePodminky' ) ;

			xx.className = "" ;



			toggle ( 'tbVypocitatZustatek', false ) ;		//	zmizet tlacitko



			var z = document.getElementById ( 'zustatek' ) ;

			var vz = document.getElementById ( 'vypoctenyZustatek' ) ;



			z.value = parseInt ( vypocetZustatek ( puvodniVyse, puvodniFix, puvodniDelka, puvodniSazba  ) );



			z.value = formatNum ( z.value ) ;

			vz.value = z.value ;



			z.readOnly = true ;

			vz.readOnly = true ;



			z.style.backgroundColor = "#fffbcb" ;

			z.style.color = "#333" ;



			toggle ( 'divNabizenePodminky', true ) ;		//	ukazat dalsi cast formulare

			toggle ( 'tbVypocitatZustatek', false ) ;		//	zmizet tlacitko spocitat zustatek



			toggleActive ( document.getElementById ( 'puvodniVyse' ), false ) ;		//	zamknout pole vypoctu zustatku

			toggleActive ( document.getElementById ( 'puvodniFix' ), false ) ;

			toggleActive ( document.getElementById ( 'puvodniDelka' ), false ) ;

			toggleActive ( document.getElementById ( 'puvodniSazba' ), false ) ;



			toggle ( 'tbVypoctenyZustatek', true ) ;

			toggle ( 'tbSpoctiSazbu', true ) ;



			document.getElementById ( 'zadanyFix' ).focus() ;



			__znaZustatek = true ;

		}

		else

		{

			window.alert ( 'Nebyly vyplněny správné údaje !' ) ;

			ret = false ;

		}



		return ret ;

	}



	function ukazVysledky()

	{

		var zus = document.getElementById ( 'zustatek' ) ;

		var dom = document.getElementById ( 'prijemDomacnosti' ) ;

		var vyd = document.getElementById ( 'jineVydaje' ) ;

		var sel = document.getElementById ( 'zadanyFix' ) ;
		
		var selVar = document.getElementById ( 'zadanyFixVar' ) ;

		var ltv = parseInt ( radio_value ( 'refkalkForm', 'zadaneLTV' ) ) ;

		var nsaz = document.getElementById ( 'nabizenaSazba' ) ;

		var zdob = document.getElementById ( 'zadanaDoba' ) ;

		var zustatek = parseInt ( unformat ( zus.value ) ) ;



		var zadanaDoba = parseInt ( unformat ( zdob.value ) )  ;

		var nabizenaSazba = parseFloat ( unformat ( nsaz.value ) ) ;

		var zadanyFix = parseInt ( document.getElementById ( 'zadanyFix' ).value ) ;
		
		var zadanyFixVar = parseInt ( document.getElementById ( 'zadanyFixVar' ).value ) ;
		
		if(zadanyFix == parseInt(99)){
			//zadanyFix = zadanyFixVar;
			sel = selVar;
		}


		if( zadanaDoba > 0 && nabizenaSazba > 0 && zadanyFix > 0 && !isNaN ( zadanaDoba ) && !isNaN ( nabizenaSazba) && !isNaN ( zadanyFix ) )

		{

			//	naformatovat pole

			zus.value = formatNum ( zustatek ) ;

			dom.value = formatNum ( dom.value ) ;

			vyd.value = formatNum ( vyd.value ) ;

			nsaz.value = nabizenaSazba ;

			zdob.value = zadanaDoba ;



			//	zamknout roletku fixu

			//sel.disabled = true ;

			//sel.style.backgroundColor = "#FAFAFA" ;

			//sel.style.border = "1px solid #BBB" ;



			//toggleActive ( document.getElementById ( 'nabizenaSazba' ), false ) ;	//	zamknout zadavaci pole

			//toggleActive ( document.getElementById ( 'zadanaDoba' ), false ) ;

			//toggleActive ( document.getElementById ( 'zustatek' ), false ) ;



			//toggle ( 'tbSpoctiSazbu', false ) ;		//	zmizet tlacitko

			toggle ( 'tbNovaSazba', true ) ;		//	ukaz vysledkove pole



			//toggle ( 'divVysledky', true ) ;		//	ukaz vysledkovou tabulku

			document.getElementById ( 'tbVysledkyHead' ).className = "" ;



			toggle ( 'tbVysledky', true ) ;		//	ukaz vysledkovou tabulku

			toggle ( 'divKontakt', true ) ;			//	ukaz 'volatko'



			ajaxSazba( zadanyFix, ltv ) ;				//	spocti vysledek



			//document.getElementById('novaSazba').value = __sazba ;		//	vloz vysledek





			/**

			 * Google Analytics

			 */

			ga_vypocet() ;

		}

		else

		{

			window.alert ( 'Nebyly vyplněny správné údaje !' ) ;

		}

		return false ;

	}



	function vysledky()

	{

		var zustatek = parseInt ( unformat ( document.getElementById ( 'zustatek').value ) ) ;

		var sazba = parseFloat ( document.getElementById ( 'novaSazba' ).value )  ;

		var nabizenaSazba = parseFloat ( document.getElementById ( 'nabizenaSazba' ).value ) ;

		var zadanaDoba = parseInt ( document.getElementById ( 'zadanaDoba' ).value )  ;

		var fixace = parseInt ( document.getElementById ( 'zadanyFix' ).value )  ;
		
		var fixaceVar = parseInt ( document.getElementById ( 'zadanyFixVar' ).value )  ;
		
		if(fixace == parseInt(99)){
			fixace = fixaceVar;
		}


		var refinSplatka = vypocetSplatka ( sazba, zustatek, zadanaDoba ) ;				//	VYPOCET SPLATEK

		var bankSplatka = vypocetSplatka ( nabizenaSazba, zustatek, zadanaDoba ) ;		//



		document.getElementById( 'refinSazba' ).value = sazba ;							//	VYPIS SAZEB

		document.getElementById( 'bankSazba' ).value = nabizenaSazba ;					//

		document.getElementById( 'usporaSazba' ).value = ( nabizenaSazba - sazba ).toFixed ( 2 ) ;		//



		document.getElementById( 'refinSplatka' ).value = formatNum ( refinSplatka ) ;	//	VYPIS SPLATEK

		document.getElementById( 'bankSplatka' ).value = formatNum ( bankSplatka ) ;	//

		document.getElementById( 'usporaSplatka' ).value = formatNum ( bankSplatka - refinSplatka ) ;



		var refinObjem = vypocetObjem ( fixace, refinSplatka ) ;						//	VYPOCET OBJEMU

		var bankObjem = vypocetObjem ( fixace, bankSplatka ) ;							//

		var rozdilObjemu = bankObjem - refinObjem ;



		document.getElementById( 'refinObjem' ).value = formatNum ( refinObjem ) ;		//	VYPIS OBJEMU

		document.getElementById( 'bankObjem' ).value = formatNum ( bankObjem ) ;		//

		document.getElementById( 'usporaObjem' ).value = formatNum ( bankObjem - refinObjem ) ;



		var refinZustatek = vypocetZustatek ( zustatek, fixace, zadanaDoba, sazba  ) ;				//	ZUSTATEK PO DALSIM FIXU PRI REFINANCOVANI

		var bankZustatek = vypocetZustatek ( zustatek, fixace, zadanaDoba, nabizenaSazba  ) ;		//	ZUSTATEK PO DALSIM FIXU S BANKU

		var rozdilZustatku = bankZustatek - refinZustatek ;



		document.getElementById( 'refinZustatek' ).value = formatNum ( parseInt ( refinZustatek ) ) ;		//	VYPIS ZUSTATKU

		document.getElementById( 'bankZustatek' ).value = formatNum ( parseInt ( bankZustatek ) ) ;

		document.getElementById( 'usporaZustatek' ).value = formatNum ( parseInt ( bankZustatek - refinZustatek ) ) ;



		document.getElementById( 'usporaRefin' ).value = formatNum ( parseInt (rozdilObjemu + rozdilZustatku ) ) ;	//	VYPIS CELKOVOU USPORU

	}



	function formatNum ( number )

	{

		var tmp = '' ;

		var out1 = '' ;

		var out2 = '' ;

		var c = '' ;

		var j = 1 ;



		number = String( number ) ;



		for ( var i = number.length-1 ; i >= 0  ; i-- )

		{

			c = number.charAt ( i ) ;

			if ( c != ' ' )

			{

				out1 += c ;



				if  (( j ) % 3 == 0 )

				{

					out1 += " ";

				}



				j++ ;

			}

		}



		for ( i = out1.length-1 ; i >= 0  ; i-- )

		{

			out2 += out1.charAt ( i ) ;

		}

		if (out2.charAt(0)==" ") {

			out2=out2.substring(1,10);

		}

		return out2 ;

	}



	function unformat ( num )

	{

		var ret = '';



		for ( var i = 0; i < num.length; i++ )

		{

			var c = num.charAt( i ) ;

			if ( c != " " )

			{

				ret += c ;

			}

		}



		return ret ;

	}



	function vypocetSplatka ( sazba, objem, doba )

	{

		//document.Urok.uro.value = urok ;



		/*		vypocet...		*/



		/*

		if(document.Urok.zad.value=="1")

		{*/

			a=4100;

			b=0;

			c=0;

			d=0;

		/*}



		if(document.Urok.zad.value=="2")

		{

			a=0;

			b=4100*2;

			c=0;

		}

		if(document.Urok.zad.value=="3")

		{

			a=0;

			b=0;

			c=6960;

		}

		*/

		j=0;

		u=objem;

		n=doba*12;

		var i = sazba ;

		if (!isNaN(i))

		{

			i=i/100/12;

		}

		else

		{

			i = ( parseFloat(i)+"."+i.substring( ( ( parseFloat(i) +"" ).length ) + 1 ) ) / 100 / 12; //eliminace desetinne carky

		}

		vys = u / ( ( 1 - ( 1 / ( Math.pow(1+i,n) ) ) ) / i ) ;

		if (!isNaN(vys))

		{

			return Math.round(vys);

			//document.Urok.min.value= formatNum ( (Math.round(vys*1.35)+a+b+c+d+j).toString() );

		}

		else

		{

			window.alert('Nesprávně zadaný výpočet!');

		}



	}



	function vypocetObjem ( doba, splatka )

	{

		if ( parseInt( doba ).toString() != doba )

		{

			doba = parseInt ( unformat ( doba ) ) ;

		}

		if ( parseInt( splatka ).toString() != splatka )

		{

			doba = parseInt ( unformat ( splatka ) ) ;

		}

		return parseInt( doba ) * parseInt ( splatka ) * 12 ;

	}



	function vypocetZustatek ( puvodniVyse, dobaFixace, delkaUveru, urok )

	{

		var splatka ;



		var mesiceDoba = dobaFixace * 12 ;

		var mesicniUrok = 1 + ( urok / 100 / 12) ;

		var zustatek = puvodniVyse ;

		var splatka = vypocetSplatka ( urok, puvodniVyse, delkaUveru ) ;



		for ( var i = 1; i <= mesiceDoba; i++ )

		{

			zustatek = ( zustatek * mesicniUrok ) - splatka  ;

		}



		return zustatek ;

	}



	function  validateNumeric( textbox )

	{

		/*****************************************************************

		DESCRIPTION: Validates that a string contains only valid numbers.



		PARAMETERS:

		   strValue - String to be tested for validity



		RETURNS:

		   True if valid, otherwise false.

		******************************************************************/

		var objRegExp  =  /(^\d\d*\.\d*$)|(^\d\d*$)|(^\d\d*$)|(^(\d\s*\d*)+\s*\.*\s*(\d\s*\d*)*$)/;

		var strValue = textbox.value + '' ;



		//check for numeric characters

		if ( strValue != '' && !objRegExp.test( strValue ) )

		{

			alert ( "Nezadali jste platné číslo." ) ;

			setTimeout( function() { textbox.focus() ; } , 100 );

			//textbox.focus() ;

			return false ;

		} else

		{

			return true ;

		}

	}



	function fieldFocus()

	{

		element.focus();

	}


