Пардон, совсем забыл, что контекст this внутри функции work не сохраняется.
Вот рабочий вариант:
<a href='/calc/index.php?step=1&TB_iframe=true&height=%(my_param_x)%&width=%(my_param_y)%' onmousedown="work(this);" rel='sexylightbox' target="_blank">Link</a>
function work(el) {
var scr_wdt = screen.width,
scr_hgt = screen.height,
win_wdt = (scr_wdt / 2) + 300,
win_hgt = (scr_hgt / 2) + 200,
my_params = {
my_param_x: win_wdt,
my_param_y: win_hgt
}, param_name;
for (param_name in my_params) {
el.href = el.href.replace('%(' + param_name + ')%', my_params[param_name]);
};
};
http://jsbin.com/agabUdAq/1/edit
Минус в том, что код не сработает, если будет клик не кнопкой мыши, а колесиком, например.