ну тут нужна вычеслительная работа. Нужно поставить условие, приблизительно так:
if ((popup.offsetLeft + popupWidth) > windowWidth) { // если отступ от границы экрана слева + ширина попапа больше чем ширина экрана
var x = windowWidth - (popup.offsetLeft + popupWidth); // узнаем насколько пикселей попап ушел вправо
}
После того как узнали на сколько попап вылез за экран, можно отнять енто значение от css left проперти