var img_dialog;
var text_dialog;
var form_dialog;
//контейнер кнопки, которая вызывает окно confirm
var myconfirmdlg_btn;

//показываем обыкновенное окно
function openWindow(dialog) {
    form_dialog = dialog.control;
    dialog.control.show();
}
//закрываем обыкновенное окно
function closeWindow(dialog) {
    form_dialog = dialog.control;
    dialog.control.hide();
}
//применяется для редактирование картинок
function closeWindowIMG(dialog, imgSet, imgGet, hiSet, hiGet) {
    form_dialog = dialog.control;
    //имя картинки
    if (imgSet != null)
        document.getElementById(imgSet).src = document.getElementById(imgGet).src;
    //ключ картинки
    if (hiSet != null)
        document.getElementById(hiSet).value = document.getElementById(hiGet).value;
    dialog.control.hide();
}
//сохраняем текст     
function closeWindowText(dialog, txtSet,text) {
    text_dialog = dialog.control;
    document.getElementById(txtSet).value = text;
    dialog.control.hide();
}
//вызываем мини форму и сохраняем текст в текстовом редакторе из основной формы
//dialog - окно
//txtSet - контейнер, принимающий текст
//txtGet - контейнер, передающий текст
//hiValue - поле, хранящее ключ записи
function openWindowText(dialog, txtSet, txtGet, hiValue) {
    text_dialog = dialog.control;
    var txtGet2 = document.getElementById(txtGet);
    txtSet.control.focus();
    //тупо гасим исключение
    try {
        txtSet.control.set_text(txtGet2.innerText);
    }
    catch (Exception) {}
    dialog.control.show();
}
//показываем модальное окно
function showModalDialog(dialog) {
    try{
      form_dialog = dialog.control;
      dialog.control.showModal(dialog);
    }
    catch (Exception) { } 
}
//показываем модальное окно
//dialog - кодификатор окна
//btn - конструктор кнопки инициатора исполнения метода на сервере
//url - признак - загружать содержимое окна из внешнего источника или из собственного iFram
//content - содержимое окна
//width = ширина окна
//height - высота окна
function ConfirmBodyIfram(dialog, btn, btnID, url, content, width, height,title) {
    form_dialog = dialog.control;
    //назначаем глобальное переменной значение
    myconfirmdlg_btn = btn;
    var w = dialog.control;
    if (title != null)
        w.set_text(title);
    try
      {
    if (url)
        w.setUrl(content);
    else
        w.setHtml(content);
    w.get_style().width = width;
    w.get_style().height = height;
    var ct = document.getElementById(btnID);
    if (ct)
      w.move(250, getOffsetRect(ct).top);    
          w.showModal(dialog);
    }
    catch (Exception){ }       
}
//находит точки X and Y у контейнера elem
function getOffsetRect(elem) {
    var box = elem.getBoundingClientRect();
    var body = document.body;
    var docElem = document.documentElement;
    var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
    var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;
    var clientTop = docElem.clientTop || body.clientTop || 0;
    var clientLeft = docElem.clientLeft || body.clientLeft || 0;
    var top = box.top + scrollTop - clientTop;
    var left = box.left + scrollLeft - clientLeft;
    return { top: Math.round(top), left: Math.round(left) }
}
//Размер документа по горизонтали
function getDocumentWidth() {
    return (document.body.scrollWidth > document.body.offsetWidth) ?
       document.body.scrollWidth :
     document.body.offsetWidth;
}
function getBodyScrollLeft() {
    return self.pageXOffset ||
      (document.documentElement && document.documentElement.scrollLeft) ||
       (document.body && document.body.scrollLeft);
}
//Координаты центра окна с учетом скроллинга
function getClientCenterX() {
    return parseInt(getDocumentWidth() / 2) + getBodyScrollLeft();
}

//сохраняем текст в текстовом редакторе, если редактор лежит на основной форме
function SaveTextBody(vcontrol) {
    vcontrol.control.focus();
    vcontrol.control.get_text();
}
//Настраиваемое местоположение меню
function PositionMenu(menu, container) {
    var ct = document.getElementById(container);
    c1c_showContextMenu(menu, getOffsetRect(ct).left, getOffsetRect(ct).top);
}
//Хранит адрес картинки и передает его другому контейнеру
function ImageGet(imgSet, imgGet) {
    try {
        document.getElementById(imgSet).src = document.getElementById(imgGet).src;
    }
    //тупо гасим исключение и забываем про эту хрень...
    catch (Exception){ }
}
//Хранит адрес картинки и ключь и передает их другим контейнерам
function ImageGetKey(imgSet, imgGet, hiSet, hiGet) {
    try {

        document.getElementById(imgSet).src = document.getElementById(imgGet).src;
        document.getElementById(hiSet).value = document.getElementById(hiGet).value;
    }
    catch (Exception){ }
}
//загрузка графических образов по команде
function GetImage(img, file) {
    {
        try {
            var imgID = document.getElementById(img);
            imgID.src = file;
        }
        catch (Exception) { }
    }
}
//в текстовый редактор вставляем ссылку на HTML IMG
function DoInsertHTML(vcontrol, img) {
    //insertHTML set_text
    var sIMG = document.getElementById(img).src;
    vcontrol.control.focus();
  vcontrol.control.insertHTML("<img src= '" + sIMG + "' style='width:30px;' />");
}

//показываем окно confirm
//dialog - конструктор окна
//btn - конструктор кнопки инициатора исполнения метода на сервере
//btnID - кодификатор кнопки
//title - текст заголовка
//body - текст окна
//mycdcnsl - кодификатор кнопки отмены
function openConfirm(dialog, btn, btnID, title, body, mycdcnsl) {
    form_dialog = dialog.control;
    //назначаем глобальное переменной значение
    myconfirmdlg_btn = btn;
    try{
    if (title != null)
    dialog.control.set_text(title);
    if (body != null)
      dialog.control.setHtml(body);
    dialog.control.show(dialog);
    var ct = document.getElementById(btnID);    
    dialog.control.move((document.body.offsetWidth / 2) - (dialog.offsetWidth / 2), getOffsetRect(ct).top);
    if (mycdcnsl != null)
      document.getElementById(mycdcnsl).focus();
    }
    catch (Exception) { }     
    return false;
}

//эта процедура обрабатывает событие onclick в окне confirm
//ok - если true, то выполняем проседуру
function MyConfirm_dlg_Click(ok) 
{
    form_dialog.hide();
    if (myconfirmdlg_btn == null)
        return false;
    //здесь начинается главное ok - кнопка
    if (ok) 
    {
      var tmp = myconfirmdlg_btn.onclick;
      myconfirmdlg_btn.onclick = null;
      if (myconfirmdlg_btn.tagName.toLowerCase() == 'a') 
        {
          if (myconfirmdlg_btn.target == '_blank')
            window.open(myconfirmdlg_btn.href, myconfirmdlg_btn.target);
          else
          if (myconfirmdlg_btn.target == '_top')
            self.parent.location = myconfirmdlg_btn.href;
          else
            location.href = myconfirmdlg_btn.href;
        }
        else 
         myconfirmdlg_btn.click();
       myconfirmdlg_btn.onclick = tmp;
    }
    myconfirmdlg_btn.focus();
    form_dialog = null;
    return ok;
}

//var imgwidth = 0;
function ImageChange(slider, image, dialog, heightTrue) 
{
    form_dialog = dialog.control;
    var Slider1 = document.getElementById(slider);
    var Image1 = document.getElementById(image);
    var imgwidth = Image1.width;
    imgwidth = Slider1.value;
    Image1.style.width = imgwidth + 'px';
    if (heightTrue == 'True')
        Image1.style.height = imgwidth + 'px';
    else {
        if (imgwidth > 599) {
            var html = '<img align=\"middle\" class=\"imageDialog\" src=\"' + Image1.src + '\"/>';
            dialog.control.setHtml(html);
            dialog.control.show(); ;
        }
    }
}
//эта функция предназначена для подстановки значений в компонент AutoCompleteExtender
// Cache the size and setup the initial size
 function MayAutoCompleteEx(AutoCompleteExID)
 {
   var behavior = $find(AutoCompleteExID);
   if (!behavior._height) {
       var target = behavior.get_completionList();
       behavior._height = target.offsetHeight - 2;
       target.style.height = '0px';
   }
}
//для работы с картинками
function sizeIt(x, size) {
    //var control = document.getElementById(x);
    var oldWidth = document.getElementById(x).width;
    var oldHeight = document.getElementById(x).height;
    if (oldWidth > size) {
        document.getElementById(x).width = size;
        }
    /*if (oldHeight > size) {
        document.getElementById(x).height = size; 
        }*/
    }
    
    /*$(document).ready(function() {
        //equalHeight($(".column"));
        //$('#headercontent').fadeIn("slow");
        //$('#HeaderMenu').fadeIn("slow");
        //$('#footercontent').fadeIn("slow");  
        //var loader1 = new Loader("#headercontent", { userCallback: showContent, showProgress: true, showProgressText: true, textSize: 15 }); loader1.Start();
        //var loader2 = new Loader("#footercontent", {userCallback:showContent, showProgress:true, showProgressText:true, textSize:15}); loader2.Start();
    });*/