	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 ;
			}
		}
		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 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 ) ;

		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 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();
	}
