var wind; var nullObj; var Nav = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4)); var AllClicks; // Заблокировать для IE элементы форм и линки function disableForms() { AllClicks = new Array() if(parent){ for (var h = 0; h < parent.frames.length; h++) { for (var i = 0; i < parent.frames[h].document.forms.length; i++) { for (var j = 0; j < parent.frames[h].document.forms[i].elements.length; j++) { parent.frames[h].document.forms[i].elements[j].disabled = true } } AllClicks[h] = new Array() for (i = 0; i < parent.frames[h].document.all.length; i++) { AllClicks[h][i] = parent.frames[h].document.all[i].onclick parent.frames[h].document.all[i].onclick = deadend } } }else{ if (frames.length>1){ for (var h = 0; h < frames.length; h++) { for (var i = 0; i < frames[h].document.forms.length; i++) { for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) { frames[h].document.forms[i].elements[j].disabled = true } } AllClicks[h] = new Array() for (i = 0; i < frames[h].document.all.length; i++) { AllClicks[h][i] = frames[h].document.all[i].onclick frames[h].document.all[i].onclick = deadend } } }else{ for (var i = 0; i < document.forms.length; i++) { for (var j = 0; j < document.forms[i].elements.length; j++) { document.forms[i].elements[j].disabled = true } } AllClicks = new Array() for (i = 0; i < document.all.length; i++) { AllClicks[i] = document.all[i].onclick document.all[i].onclick = deadend } } } } // Восстановить для IE элементы форм и линки function enableForms() { if(parent){ for (var h = 0; h < parent.frames.length; h++) { for (var i = 0; i < parent.frames[h].document.forms.length; i++) { for (var j = 0; j < parent.frames[h].document.forms[i].elements.length; j++) { parent.frames[h].document.forms[i].elements[j].disabled = false } } for (i = 0; i < parent.frames[h].document.all.length; i++) { parent.frames[h].document.all[i].onclick = AllClicks[h][i] } } }else{ if (frames.length>1){ for (var h = 0; h < frames.length; h++) { for (var i = 0; i < frames[h].document.forms.length; i++) { for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) { frames[h].document.forms[i].elements[j].disabled = false } } for (i = 0; i < frames[h].document.all.length; i++) { frames[h].document.all[i].onclick = AllClicks[h][i] } } }else{ for (var i = 0; i < document.forms.length; i++) { for (var j = 0; j < document.forms[i].elements.length; j++) { document.forms[i].elements[j].disabled = false } } for (i = 0; i < document.all.length; i++) { document.all[i].onclick = AllClicks[i] } } } } // открытие диалога - блокировка в окне opener function blockEvents() { if (Nav) { window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) window.onclick = deadend; } else { disableForms(); } window.onfocus = checkModal; } // По закрытию диалога - возврат всех параметров function unblockEvents() { if (Nav) { window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) window.onclick = null window.onfocus = null } else { enableForms(); } } // Создание диалога function createDialog(url_href, dialog_name, dialog_width, dialog_height, dialog_top, dialog_left, dialog_resizable, dialog_scrollbars){ wind = window.open(url_href, dialog_name, config='resizable='+dialog_resizable+', scrollbars='+dialog_scrollbars+', width='+dialog_width+', height='+dialog_height+', top='+dialog_top+', left='+dialog_left+', status=no, toolbar=no, menubar=no'); } // Проверки на фокус function deadend() { if (wind && !wind.closed) { wind.focus(); return false; } } function checkModal() { if (wind && !wind.closed) { wind.focus(); } }