var myAjax = ajax();

function ajax(){
  var ajax = null;
  if(window.XMLHttpRequest){
    try{
      ajax = new XMLHttpRequest();
    }catch(e){}
  }
  else if(window.ActiveXObject){
    try{
      ajax = new ActiveXObject("Msxm12.XMLHTTP");
    }
    catch (e){	
      try{
        ajax = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e){
        alert("Sorry, your browser doesn't support AJAX."); 
        return false; 
      }
    }
  }
  return ajax;
}

// News management
function request_list_news(){
  myAjax.open("POST", "../include/ajax/news.php");
  myAjax.onreadystatechange = result_list_news;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=list");
}

function result_list_news(){
  if(myAjax.readyState == 4){
    document.getElementById('news_table').innerHTML = myAjax.responseText;
  }
}

function request_add_news(){
  popup();
  myAjax.open("POST", "../include/ajax/news.php");
  myAjax.onreadystatechange = result_detail;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=add");
}

function request_add_news_commit(){
  var day = document.getElementById('day').value;
  var month = document.getElementById('month').value;
  var year = document.getElementById('year').value;
  var title = document.getElementById('title').value;
  var text = document.getElementById('text').value;
  var title_uk = document.getElementById('title_uk').value;
  var text_uk = document.getElementById('text_uk').value;
  myAjax.open("POST", "../include/ajax/news.php");
  myAjax.onreadystatechange = result_news_commit;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=add_commit&day="+day+"&month="+month+"&year="+year+"&title="+title+"&text="+text+"&title_uk="+title_uk+"&text_uk="+text_uk);
}

function request_edit_news(id){
  popup();
  myAjax.open("POST", "../include/ajax/news.php");
  myAjax.onreadystatechange = result_detail;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=edit&id="+id);
}

function request_edit_news_commit(id){
  var day = document.getElementById('day').value;
  var month = document.getElementById('month').value;
  var year = document.getElementById('year').value;
  var title = document.getElementById('title').value;
  var text = document.getElementById('text').value;
  var title_uk = document.getElementById('title_uk').value;
  var text_uk = document.getElementById('text_uk').value;
  myAjax.open("POST", "../include/ajax/news.php");
  myAjax.onreadystatechange = result_news_commit;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=edit_commit&id="+id+"&day="+day+"&month="+month+"&year="+year+"&title="+title+"&text="+text+"&title_uk="+title_uk+"&text_uk="+text_uk);
}

function delete_news(id){
  if (confirm("Eliminare la news?\nL'operazione è irreversibile.")){
    myAjax.open("POST", "../include/ajax/news.php");
    myAjax.onreadystatechange = result_news_commit;
    myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    myAjax.send("mode=delete_commit&id="+id);
  }
}

function result_news_commit(){
  if(myAjax.readyState == 4){
	request_list_news();
    popup();
  }
}

// Catalog management
function request_list_catalog(type){
  myAjax.open("POST", "../include/ajax/catalog.php");
  myAjax.onreadystatechange = result_list_catalog;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=list&type="+type);
}

function result_list_catalog(){
  if(myAjax.readyState == 4){
    document.getElementById('catalog_table').innerHTML = myAjax.responseText;
  }
}

function request_add_catalog(type){
  popup();
  myAjax.open("POST", "../include/ajax/catalog.php");
  myAjax.onreadystatechange = result_detail;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=add&type="+type);
}

function request_add_catalog_commit(){
  var type = document.getElementById('type').value;
  var name_it = document.getElementById('name_it').value;
  var description_it = document.getElementById('description_it').value;
  var name_en = document.getElementById('name_en').value;
  var description_en = document.getElementById('description_en').value;
  var price = document.getElementById('price').value;
  myAjax.open("POST", "../include/ajax/catalog.php");
  myAjax.onreadystatechange = result_catalog_commit;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=add_commit&type="+type+"&name_it="+name_it+"&description_it="+description_it+"&name_en="+name_en+"&description_en="+description_en+"&price="+price);
}

function request_edit_catalog(id){
  popup();
  myAjax.open("POST", "../include/ajax/catalog.php");
  myAjax.onreadystatechange = result_detail;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=edit&id="+id);
}

function request_edit_catalog_commit(id){
  var type = document.getElementById('type').value;
  var name_it = document.getElementById('name_it').value;
  var description_it = document.getElementById('description_it').value;
  var name_en = document.getElementById('name_en').value;
  var description_en = document.getElementById('description_en').value;
  var price = document.getElementById('price').value;
  myAjax.open("POST", "../include/ajax/catalog.php");
  myAjax.onreadystatechange = result_catalog_commit;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("mode=edit_commit&id="+id+"&type="+type+"&name_it="+name_it+"&description_it="+description_it+"&name_en="+name_en+"&description_en="+description_en+"&price="+price);
}

function delete_catalog(id){
  if (confirm("Eliminare il prodotto?\nL'operazione è irreversibile.")){
    myAjax.open("GET", "../include/manage_picture.php?mode=delete&id="+id, false);                             
    myAjax.send(null);
    myAjax.open("POST", "../include/ajax/catalog.php");
    myAjax.onreadystatechange = result_catalog_commit;
    myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    myAjax.send("mode=delete_commit&id="+id);
  }
}

function result_catalog_commit(){
  if(myAjax.readyState == 4){
    var type = document.getElementById('type').value;
	request_list_catalog(type);
    popup();
  }
}

// AJAX request/result for the content of the popup
function request_detail(product_id){
  popup();  myAjax.open("POST", "../include/ajax/detail_it.php");
  myAjax.onreadystatechange = result_detail;
  myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  myAjax.send("product_id="+product_id);
}

function result_detail(){
  if(myAjax.readyState == 4){
    document.getElementById('popup').innerHTML = myAjax.responseText;
  }
}

// Shows/hides the popup
function popup(){
  var e = document.getElementById('popup_background');
  if(e.style.display == 'none'){
    document.getElementById('popup_background').style.display = '';
    document.getElementById('popup_background').style.visibility = 'visible';
    document.getElementById('popup').style.display = '';
    document.getElementById('popup').style.visibility = 'visible';
    document.onkeyup = alertkey;
  }
  else{
    document.getElementById('popup').innerHTML = "[DEBUG] Testo da rimuovere (ajax.js)";
    document.getElementById('popup_background').style.display = 'none';
    document.getElementById('popup_background').style.visibility = 'hidden';
    document.getElementById('popup').style.display = 'none';
    document.getElementById('popup').style.visibility = 'hidden';
    document.onkeyup = null;
  }
}

// _Fugly_ function to close the popup on [ESC] keypress
function alertkey(e){
  if(!e){
    if(window.event){
      //Internet Explorer
      e = window.event;
    }
    else{
      return;
    }
  }
  if(typeof(e.keyCode) == 'number'){
    //DOM
    e = e.keyCode;
    }
    else if(typeof(e.which) == 'number'){
      //NS 4 compatible
      e = e.which;
    }
    else if(typeof(e.charCode) == 'number'){
      //NS 6+, Mozilla 0.9+
      e = e.charCode;
    }
    else{
      return;
    }

    if(e == 27)
      popup();
}

