var req;
var id;
// XMLHttpRequest OR Microsoft.XMLHTTP ?
function createRequestObject()
{
 if (window.XMLHttpRequest) 
 {
  var obj = new XMLHttpRequest();
 }
 else
 {
  var obj = new ActiveXObject('Msxml2.XMLHTTP');
  if(!obj) { var obj = new ActiveXObject('Microsoft.XMLHTTP'); }
 }
 return obj;
}

// Send data to the server 
function loadXMLDoc(data) 
{
        req = createRequestObject();
        req.onreadystatechange = processReqChange;
        req.open('POST', 'ajax.php', true);
        req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        req.send(data);
}


// watch for Request Chenge Process
function processReqChange() {
	if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200)
        {
         response=req.responseText.split('=>');
 
         if (response['0'] == "error")
         {
           alert(response['1']);
         }
         else if (response['0'] == "loginerror")
         {
          if (confirm("Время действия админской сессии истекло.\r\n Хотите ввести логин и пароль повторно?"))
          {
           blockPage();
           document.getElementById('login').style.display = "";
          }
         }
         else if (response['0'] == "login")
         {
          loginReservedContent = document.getElementById('login').innerHTML;
          document.getElementById('login').style.background = '#f5ffdc';
          document.getElementById('login').style.height = '20';
          document.getElementById('login').innerHTML = '<center><b>Вход успешно выполнен!</b></center>';
          setTimeout("loginAbort()", 1000);
          setTimeout("resetLoginBlock()", 2000);
         }
         else if (response['0'] == "editTheme")
         {
           document.getElementById(response['1']).innerHTML = response['2'];
           var testvar = "form_" + response['1'];
           if (document.getElementById(testvar))
           {
            document.getElementById(testvar).focus();
           }
         }
         else if (response['0'] == "addTheme")
         {
           document.getElementById('theme_new').innerHTML += response['1'];
         }
         else if (response['0'] == "deleteTheme")
         {
           document.getElementById(response['1']).innerHTML = "";
           document.getElementById(response['1']).style.display = "none";
           document.getElementById(response['1']).id = "trash_t" + getrandom();
         }
         else if (response['0'] == "editAlbum")
         {
           document.getElementById(response['2']).innerHTML = response['3'];
           if ((response['1'] == "End") && (response['4'] != 0))
           {
            id = response['2'];
            albumdivContent = response['4'];
            changeColor(1);
            setTimeout("refreshAlbums()", 2000);
           }
         }
         else if(response['0'] == "editAlbumChangeImage")
         {
          document.getElementById("form_"+response['1']+"_thumb").value=response['2'];
          document.getElementById("thumb_"+response['1']).src = response['3'];
         }
         else if(response['0'] == "addAlbum")
         {
          document.getElementById("albums_body").innerHTML += response['1'];
          editAlbumEnd(response['2'], response['3']);
          document.getElementById('form_albumnew').reset();
         }
         else if(response['0'] == "deleteAlbum")
         {
          document.getElementById(response['1']).innerHTML = "";
          document.getElementById(response['1']).style.display = "none";
          document.getElementById(response['1']).id = "trash_a" + getrandom();
         }
         else if(response['0'] == "closeAlbum") // (upd #35)
         {
          if (response['2'] == '1')
          {
           var newtext = 'Закрыть';
           var status = 'открыт';
           document.getElementById('close_icon_' + response['1']).style.display = 'none';
          }
          else
          {
           var newtext = 'Открыть';
           var status = 'закрыт';
           document.getElementById('close_icon_' + response['1']).style.display = '';
          }
          document.getElementById('closebutton_'+response['1']).value = newtext;
          alert('Альбом был успешно ' + status + '. Теперь он будет виден только администратору.');
         }
         else if(response['0'] == "movePhoto")
         {
          if (response['1'] != 0 && response['2'] != 0)
          {
           var tmp = document.getElementById(response['2']).innerHTML;
           document.getElementById(response['2']).innerHTML = document.getElementById(response['1']).innerHTML;
           document.getElementById(response['1']).innerHTML = tmp;
           document.getElementById(response['2']).id = 'photo_tmp';
           document.getElementById(response['1']).id = response['2'];
           document.getElementById("photo_tmp").id = response['1'];
          }
         }
         else if(response['0'] == "editPhotoFastStart")
         {
          document.getElementById(response['1']).style.zIndex = "100";
          document.getElementById(response['1']).innerHTML += response['2'];
          var testvar = "form_" + response['1'];
          if (document.getElementById(testvar))
          {
           document.getElementById(testvar).focus();
          }
         }
         else if(response['0'] == "editPhotoFastEnd")
         {
          editPhotoFastAbort(response['1']);
          document.getElementById('img_photo_'+response['1']).title = response['2'];          
          document.getElementById('img_photo_'+response['1']).alt = response['2'];
         }
         else if(response['0'] == "deletePhoto")
         {
          document.getElementById(response['1']).innerHTML = "";
          document.getElementById(response['1']).style.display = "none";
          document.getElementById(response['1']).id = "trash_p" + getrandom();
          refreshPhotoList(response['2'], response['3']);
         }
         else if (response['0'] == "refreshPhotoList")
         {
          document.getElementById("photos_body").innerHTML = response['1'];
          unblockPage();
         }
         else if (response['0'] == "editDescription")
         {
          document.getElementById("description").innerHTML = response['1'];
         }
         else if (response['0'] == "editPageText")
         {
          document.getElementById("pagetext").innerHTML = response['1'];
         }
         
         else
         {
          alert(req.responseText);
         }
         
       }
    }  
}
//рандомное число
function blockPage(id)
{
 document.getElementById('darkBg').style.height = document.getElementsByTagName('body')[0].clientHeight;
 document.getElementById('darkBg').style.width = document.getElementsByTagName('body')[0].clientWidth;
 if (id)
 {
  document.getElementById('loadBar').style.display = "";
 }
}
function unblockPage()
{
 document.getElementById('darkBg').style.height = 0;
 document.getElementById('darkBg').style.width = 0;
 document.getElementById('loadBar').style.display = "none";
}
function getrandom() {
    var min_random = 100;
    var max_random = 999;

    max_random++;

    var range = max_random - min_random;
    var n=Math.floor(Math.random()*range) + min_random;

    return n;
}
//мигающий фон альбома
function changeColor(set)
{
 if (set == '1')
 {
  if (document.getElementById(id))
  {
   document.getElementById(id).style.background = "#f5f5dc";
  }
  timerID = setTimeout("changeColor(0)", 300);
 }
 else
 {
  if (document.getElementById(id))
  {
   document.getElementById(id).style.background = "none";
  }
  timerID = setTimeout("changeColor(1)", 300);
 }
}
//мигающий фон альбома - прекращаем мигание
function stopChangeColor()
{
 clearTimeout(timerID);
 document.getElementById(id).style.background = "none";
}
// Функции редактирования темы
function editThemeStart(id)
{
 loadXMLDoc("do=editThemeStart&id=" + id);
}
function editThemeEnd(id)
{
 var text = escape(document.getElementById('form_'+id).value);
 loadXMLDoc("do=editThemeEnd&id=" + id + "&text=" + text);
}
function editThemeAbort(id)
{
 loadXMLDoc("do=editThemeAbort&id=" + id);
}
// Функция добавления темы
function addTheme()
{
 var text = escape(document.getElementById('form_theme_new').value);
 loadXMLDoc("do=addTheme&text=" + text);
}
// Функция удаления темы
function deleteTheme(id)
{
 document.getElementById(id).style.background = "#FFEEEE";
 if (confirm("Вы уверены, что хотите удалить эту тему?"))
 {
  loadXMLDoc("do=deleteTheme&id=" + id);
 }
 else
 {
  document.getElementById(id).style.background = "none";
 }
}
// Функции редактирования альбома
function editAlbumStart(t, id)
{
  loadXMLDoc("do=editAlbumStart&t=" + t + "&id=" + id);
}
function editAlbumEnd(t, id)
{
  var desc = escape(document.getElementById('form_'+id+'_desc').value);
  var name = escape(document.getElementById('form_'+id+'_name').value);
  var date = escape(document.getElementById('form_'+id+'_date').value);
  var thumb = escape(document.getElementById('form_'+id+'_thumb').value);
  var olddate = escape(document.getElementById('form_'+id+'_olddate').value);
  loadXMLDoc("do=editAlbumEnd&t=" + t + "&id="+id+"&desc=" + desc + "&name=" + name + "&date=" + date + "&olddate=" + olddate + "&thumb=" + thumb);
}
function editAlbumAbort(t, id)
{
 loadXMLDoc("do=editAlbumAbort&t=" + t + "&id="+id);
}
function editAlbumChangeImage(t, a, param)
{
 var currentThumb = document.getElementById("form_"+a+"_thumb").value;
 loadXMLDoc("do=editAlbumChangeImage&t=" + t + "&a=" + a + "&param=" + param + "&id="+currentThumb);
}
// Функция добавления альбома
function addAlbum(id)
{
 var text = escape(document.getElementById('form_albumnew_desc').value);
 var name = escape(document.getElementById('form_albumnew_name').value);
 var date = document.getElementById('form_albumnew_date').value;
 if (text == 'undefined' || date == 'undefined' || name == 'undefined')
 {
  alert('Заполните все поля формы');
 }
 else
 {
  loadXMLDoc("do=addAlbum&id="+id+"&desc=" + text + "&name=" + name + "&date=" + date); 
 }
}
// Функция удаления альбома
function deleteAlbum(t, id)
{
 document.getElementById(id).style.background = "#FFEEEE";
 if (confirm("Вы уверены, что хотите удалить этот альбом?"))
 {
  loadXMLDoc("do=deleteAlbum&t="+t+"&id=" + id);
 }
 else
 {
  document.getElementById(id).style.background = "none";
 }
}
// Функция закрытия/открытия альбома  (upd #35)
function closeAlbum(t, id)
{
 loadXMLDoc("do=closeAlbum&t="+t+"&id=" + id);
}
//Обновляем список альбомов
function refreshAlbums()
{
 document.getElementById("albums_body").innerHTML = albumdivContent;
 setTimeout("stopChangeColor()", 2000);
}
//Функции редактирования фотографии в списке альбомов
function editPhotoFastStart(t, a, id)
{
 if (document.getElementById('photo_tooltip'))
 {
  var editing_id = document.getElementById('editing_photo_id').value;
  editPhotoFastAbort(editing_id);
 }
 
 cashphoto = document.getElementById('photo_'+id).innerHTML;
 loadXMLDoc("do=editPhotoFastStart&t=" + t + "&a=" + a +"&id=" + id);
}
function editPhotoFastEnd(t, a, id)
{
 var text = escape(document.getElementById('form_photo_'+id).value);
 loadXMLDoc("do=editPhotoFastEnd&t=" + t + "&a=" + a +"&id=" + id + "&text=" + text);
}
function editPhotoFastAbort(id)
{
 document.getElementById('photo_'+id).style.zIndex = "1";
 document.getElementById('photo_'+id).innerHTML = cashphoto; 
}
function deletePhotoFast(t, a, id)
{
 document.getElementById('photo_tooltip').style.background = "#FFEEEE";
 if (confirm("Вы уверены, что хотите удалить это фото?"))
 {
  blockPage(1);
  loadXMLDoc("do=deletePhoto&t=" + t + "&a=" + a + "&id=" + id);
 }
 else
 {
  document.getElementById('photo_tooltip').style.background = "#f5f5dc";
 } 
}
//Обновляем список фотографий после заказчки новой
function refreshPhotoList(t, a)
{
 loadXMLDoc("do=refreshPhotoList&t=" + t + "&a=" + a);
}
// Функция перемещения фотографии
function movePhoto(t, a, id, place)
{
 loadXMLDoc("do=movePhoto&t=" + t + "&a=" + a +"&id=" + id + "&place=" + place);
}
// Функция редактирования описания фото
function editDescriptionStart(t, a, id)
{
 loadXMLDoc("do=editDescriptionStart&t=" + t + "&a=" + a +"&id=" + id);
}
function editDescriptionEnd(t, a, id)
{
 var text = escape(document.getElementById('edit_desc_textarea').value);
 loadXMLDoc("do=editDescriptionEnd&t=" + t + "&a=" + a +"&id=" + id + "&text=" + text);
}
function doLogin() 
{
 var login = escape(document.getElementById('login_login').value);
 var passw = escape(document.getElementById('login_passw').value);
 alert(login);
 loadXMLDoc("do=login&passw=" + passw + "&login=" + login);
}
function loginAbort()
{
 document.getElementById('login').style.display = "none";
 unblockPage();
}
function resetLoginBlock()
{
 document.getElementById('login').style.background = '#f5f5dc';
 document.getElementById('login').style.height = '100';
 document.getElementById('login').innerHTML = loginReservedContent;
 loginReservedContent = '';         
}
function editPageTextStart()
{
 loadXMLDoc("do=editPageTextStart");       
}
function editPageTextEnd() 
{
 var text = escape(document.getElementById('pagetext_textarea').value);
 loadXMLDoc("do=editPageTextEnd&text=" + text);
}
function editPageTextAbort() 
{
 loadXMLDoc("do=editPageTextAbort");
}

