At least 20 people have been killed and 340,000 made homeless by massive floods that have swept through the Indonesian capital, Jakarta.

Three days of torrential rain have caused rivers to burst their banks, sending muddy water up to 3m (10ft) deep into homes and businesses.

Authorities say the city of nine million people is now on its highest level of alert.

The floods are said to be the worst to hit Jakarta for five years.

Meteorologists have warned the downpour is likely to continue for another week, and with heavy rains falling on hilly regions to the south, more flooding is threatened.

Power cuts

Rising floodwaters have cut water supplies and communications to parts of the city and forced medical teams to use boats and helicopters to reach many of those left stranded.

More than 670,000 people have been left without electricity.

Staff manning a key floodgate in the east of the capital said it had failed and the water flowing in had caused the main canal to burst its banks.

Some main roads have been closed and patients in some hospitals moved to upper floors.

The death toll attributed to the floods has continued to rise since the downpour began at the start of the month.

"Twenty have died since the first day of flooding. Seven were dragged under by strong currents, nine were electrocuted and the others because of sickness," I Ketut Untung Yoga Ana, a Jakarta police spokesman, told Reuters news agency.

Many of the homeless are sheltering in schools and mosques, while others are refusing to leave their partially flooded homes.

Melissa Whyte told the BBC that houses in her area, Cilandak, were "totally washed out and... flooded with up to three metres of water".

"After living here for 12 years I have never seen the floods as bad as this," she said.

Roof-top rescue

In parts of the city, sandbags are being prepared to protect buildings from the floodwaters, while some residents have taken refuge in the lobby of the five-star Borobudur Hotel, reports say.

Thousands of extra police have been deployed to help with evacuation efforts.

Television pictures showed residents being evacuated from their roofs and second floors of their homes.

Mr Ana said police had built more than 200 rafts to make up for a shortage of rubber dinghies.

The water is heavily polluted and, with a recent outbreak of dengue fever, there is great concern about the spread of more disease, says the BBC's Rebecca Henschke in Jakarta

The central government is blaming poor urban planning for the disaster, our correspondent says.

One Jakarta resident, Elan Manoppo, told the BBC there was "no integrated development plan" for the capital, adding: "Most of the city's drainage systems are not taken care of."