<?php
function sub_currency_in_text( $liczba, $jednostki, $i ){
	$setki = array( '', 'sto', 'dwieście', 'trzysta', 'czterysta', 'pięćset', 'sześćset', 'siedemset', 'osiemset', 'dziewięćset' );
	$dziesiatki = array( '', 'dziesięć', 'dwadzieścia', 'trzydzieści', 'czterdzieści', 'pięćdziesiąt', 'sześćdziesiąt', 'siedemdziesiąt', 'osiemdziesiąt', 'dziewięćdziesiąt' );
	$jednosci = array( '', 'jeden', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć', 'siedem', 'osiem', 'dziewięć' );
	$nascie = array( 'dziesięć', 'jedenaście', 'dwanaście', 'trzynaście', 'czternaście', 'piętnaście', 'szesnaście', 'siednaście', 'osiemnaście', 'dziewiętnaście' );
	$sub_result = '';
	while( strlen( $liczba ) < 3 ) $liczba.= '0';
	$sub_result = ' ' . $setki[substr( $liczba, 2, 1 ) ];
	if( substr( $liczba, 1, 1 ) == '1' ){
		$sub_result.= ' ' . $nascie[substr( $liczba, 0, 1 ) ] . ' ' . $jednostki[1];
	} else if( $liczba != '000' ){
		$sub_result.= ( $liczba == '100' ) ? ( ( $i == 0 ) ? ' ' . $jednosci[1] : '' ) . ' ' . $jednostki[0] : ( ' ' . $dziesiatki[substr( $liczba, 1, 1 ) ] . ' ' . $jednosci[substr( $liczba, 0, 1 ) ] . ' ' . ( ( in_array( substr( $liczba, 0, 1 ), array( 2, 3, 4 ) ) ) ? $jednostki[2] : $jednostki[1] ) );
	}
	return $sub_result;
}
function currency_in_text( $kwota ){
	$tysiace = array( 0 => array( 'złoty', 'złotych', 'złote' ), 1 => array( 'tysiąc', 'tysięcy', 'tysiące' ), 2 => array( 'milion', 'milionów', 'miliony' ), 3 => array( 'miliard', 'miliardów', 'miliardy' ), 4 => array( 'bilion', 'bilionów', 'bilony' ), 5 => array( 'biliard', 'biliardów', 'biliardy' ) );
	$grosze = array( 'grosz', 'groszy', 'grosze' );
	$zero = 'zero';
	$kwota = sprintf( "%01.2f", $kwota );
	$kwota = explode( '.', $kwota );
	$result = '';
	$zl = strrev( $kwota[0] );
	if( $zl == 0 ) $result = $zero . ' ' . $tysiace[0][1];
	else for( $i = 0;$i < ceil( strlen( $zl ) / 3 );$i++ ){
		$sub_zl = substr( $zl, 3 * $i, 3 );
		$result = sub_currency_in_text( $sub_zl, $tysiace[$i], $i ) . $result;
	}
	$gr = strrev( $kwota[1] );
	if( $gr != 0 ) $result.= sub_currency_in_text( $gr, $grosze, 0 );
	return $result;
}
function declination( $liczba, $jednostki ){
	$liczba = strrev( $liczba );
	while( strlen( $liczba ) < 3 ) $liczba.= '0';
	if( substr( $liczba, 1, 1 ) == '1' ){
		return $jednostki[1];
	} else if( $liczba != '000' ){
		if( $liczba == '100' ) return $jednostki[0];
		if( in_array( substr( $liczba, 0, 1 ), array( 2, 3, 4 ) ) ) return $jednostki[2];
		return $jednostki[1];
	}
}
function time_difference( $iTimeDifference ){
	if( $iTimeDifference < 60 ){
		return $iTimeDifference . ' sek.';
	}
	$iTimeDifference = floor( $iTimeDifference / 60 );
	if( $iTimeDifference < 60 ){
		return $iTimeDifference . ' min.';
	}
	$iTimeDifference = floor( $iTimeDifference / 60 );
	if( $iTimeDifference < 24 ){
		return $iTimeDifference . ' h';
	}
	$iTimeDifference = floor( $iTimeDifference / 24 );
	return $iTimeDifference . declination( $iTimeDifference, Array( ' dzień', ' dni', ' dni' ) );
}