п.1. - а вы сами-то как думаете?)))
Конечно, делать на JS, цены менять плавно через fade - все будет выглядеть шоколадно.
тут нужно уточнить пару нюансов:
1. Загружать (в сессию или локалсторадж, да хоть просто в js-массив) первоначально курс валют, это всего одно или два числа.
2. По клику на смену валюты банальный пересчет и замена в соответствующих блоках, это займет на клиенте 50мс
3. самое важное допущение - так как продажа на терр. РФ разрешена только в одной валюте, то не нужны заморочки с корзиной и т.д.. Т.е. в заказ попадет исходная цена в руб.!
Сомневаюсь, что вы пишите про мега-магазин с 20 валютами, торгующий по всему миру. так что все три вышеозвученных пункта - самое то!! ))