/**
 * Открытие дочернего окна браузера и размещение
 * его по центру клиентского экрана.
 *
 * @param  window_name  string     Имя дочернего окна
 * @param  location_url string     URL загружаемого документа
 * @param  window_w     int        Ширина окна в пикселах
 * @param  window_h     int        Высота окна в пикселах
 * @param  scrollbar    int (bool) Отображение линеек прокрутки
 * @param  statusbar    int (bool) Отображение статусной строки
 * @access public
 */

function window_open( window_name  ,
                      location_url ,
                      window_w     ,
                      window_h     ,
                      scroolbar    ,
                      statusbar    )
{
    var sw  = screen.width;
    var sh  = screen.height;

    var wbx = Math.round((sw - window_w) / 2);
    var wby = Math.round((sh - window_h) / 2);

    var attributes = 'left='           + wbx      + ','
                   + 'top='            + wby      + ','
                   + 'directories=no,'
                   + 'width='          + window_w + ','
                   + 'height='         + window_h + ','
                   + 'location=no,'
                   + 'menubar=no,'
                   + 'resitable=0,'
                   + 'scrollbars='     + scroolbar + ','
                   + 'status='         + statusbar + ','
                   + 'toolbar=no';

    new_window = window.open( location_url ,
                              window_name  ,
                              attributes  );
    new_window.focus();

} ///;~

/**
 * Инициализация открытого дочернего окна браузера,
 * восстановление предъидущих параметров размера и
 * положения окна (если были), запуск функции контроля
 * window_controller().
 *
 * @access public
 */

function window_init()
{
    var winW = cookie_get(window.name + 'WinW');
    var winH = cookie_get(window.name + 'WinH');
    var winX = cookie_get(window.name + 'WinX');
    var winY = cookie_get(window.name + 'WinY');
    if (winW && winH) window.resizeTo(winW, winH);
    if (winX && winY) window.moveTo(winX, winY);
    window_controller();

} ///;~

/**
 * Функция контроля открытого окна браузера, периодически
 * сохраняет параметры размера и положения окна в COOKIE.
 *
 * @access public
 */

function window_controller()
{
    if (window.opener == null) window.close();
    cookie_set(window.name + 'WinW', window.outerWidth);
    cookie_set(window.name + 'WinH', window.outerHeight);
    cookie_set(window.name + 'WinX', window.screenX);
    cookie_set(window.name + 'WinY', window.screenY);
    setTimeout('window_controller()', 1000);

} ///;~
