
// Variabel untuk mencatat waktu terakhir suatu Interaksi AJAX
var lastchupdate = "";
var lastrfupdate = "";

// Fungsi Tambahan saja untuk mengkonversi angka menjadi dua digit
// misalnya nilai 2 menjadi 02. 14 nilainya tetap 14.
function twodigits(dig)
{
  var dig1 = "";
  if (dig < 10)
  { dig1 = "0"+dig;}
  else
  { dig1 = dig; }
  return dig1;
}

// Fungsi AJAX yg berfungsi dalam menciptakan objek request
function newXMLHttpRequest() {

  var xmlreq = false;

  // Create XMLHttpRequest object in non-Microsoft browsers
  if (window.XMLHttpRequest) {
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
      
    } catch (e1) {

      // Failed to create required ActiveXObject
      
      try {
        // Try version supported by older versions
        // of Internet Explorer
      
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest by any means
        xmlreq = false;
      }
    }
  }

  return xmlreq;
}

// Fungsi AJAX yg berfungsi dalam menangkap objek response dr server
function getReadyStateHandler(req, responseXmlHandler) {

   // Return an anonymous function that listens to the XMLHttpRequest instance
   return function () {

     if (req.readyState == 4) {
       if (req.status == 200) {
         //alert(req.responseText); //show xml output
         if (responseXmlHandler=="addCart") {
           feedChat(req.responseXML);
         }
         if (responseXmlHandler=="getCart") {
           feedChat(req.responseXML);
         }
         if (responseXmlHandler=="delCart") {
           feedChat(req.responseXML);
         }         
       }
     }
   
   }
}  

// Fungsi AJAX yg berfungsi dalam mengirimkan request ke server secara post method
function callServer(calltype, callvalue1, callvalue2, callvalue3, callvalue4
                    , callvalue5 , callvalue6 , callvalue7,  callvalue8
                    , callvalue9 , callvalue10, callvalue11, callvalue12
                    , callvalue13, callvalue14) {
  
  if (callvalue1.length==0) {callvalue1="_";}
  if (callvalue2.length==0) {callvalue2="_";}
  if (callvalue3.length==0) {callvalue3="_";}
  if (callvalue4.length==0) {callvalue4="_";}
  if (callvalue5.length==0) {callvalue5="_";}
  if (callvalue6.length==0) {callvalue6="_";}
  if (callvalue7.length==0) {callvalue7="_";}
  if (callvalue8.length==0) {callvalue8="_";}
  if (callvalue9.length==0) {callvalue9="_";}
  if (callvalue10.length==0) {callvalue10="_";}
  if (callvalue11.length==0) {callvalue11="_";}
  if (callvalue12.length==0) {callvalue12="_";}
  if (callvalue13.length==0) {callvalue13="_";}
  if (callvalue14.length==0) {callvalue14="_";}
  
  var tm = new Date();
  var req = newXMLHttpRequest();
  req.onreadystatechange = getReadyStateHandler(req,calltype);
  req.open("post","server.php",true);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  //[modepencarian] [nilaiid] [nilailain] [editkembalian]
  req.send(
  "action="+calltype+
  "&callvalue1="+escape(callvalue1) +
  "&callvalue2="+escape(callvalue2) +
  "&callvalue3="+escape(callvalue3)+
  "&callvalue4="+escape(callvalue4)+
  "&callvalue5="+escape(callvalue5)+
  "&callvalue6="+escape(callvalue6)+
  "&callvalue7="+escape(callvalue7)+
  "&callvalue8="+escape(callvalue8)+
  "&callvalue9="+escape(callvalue9)+
  "&callvalue10="+escape(callvalue10)+
  "&callvalue11="+escape(callvalue11)+
  "&callvalue12="+escape(callvalue12)+
  "&callvalue13="+escape(callvalue13)+
  "&callvalue14="+escape(callvalue14));
}

// Fungsi perubahan yg diperoleh dari si pengirim message setelah mengirimkan message
// Perubahan adalah penambahan message-nya pada layer HTML chat
function feedChat(TextXML) {
  
  var ref = TextXML.getElementsByTagName("KertasKerja")[0];
  var gen = ref.getAttribute("generate");
  var isi = "<table class=text3>";
  var chatrecs = ref.getElementsByTagName("barang");
  for(var i=0;i<chatrecs.length;i++) {
    var idbarang = chatrecs[i].getElementsByTagName("idbarang")[0].firstChild.nodeValue;
    var nama =   chatrecs[i].getElementsByTagName("nama")[0].firstChild.nodeValue;
    var jumlah = chatrecs[i].getElementsByTagName("jumlah")[0].firstChild.nodeValue;
    var autoid = chatrecs[i].getElementsByTagName("autoid")[0].firstChild.nodeValue;
    var iddpemesanan = chatrecs[i].getElementsByTagName("iddpemesanan")[0].firstChild.nodeValue;
    
    isi = isi + "<tr>";
    isi = isi + "<td valign=top><small>" + idbarang + "</small></td>"+
                "<td valign=top><small>" + nama + "</small></td>"+
                "<td valign=top><small>" + jumlah + "</small></td>";    
    isi = isi + "<td valign=top><a href='javascript:deleteCart(\"" + iddpemesanan + "\")'> <small>Del</small> </a> </td>";
    isi = isi + "</tr>"; 
  }  
  isi = isi+"</table>";
  if (chatrecs.length>0){
    isi = isi+" <a href=cekout.html> <img border=0 src=gambar/checkout.gif> </a> ";
  }
  
  document.getElementById("divpesan").innerHTML = isi;

}


// Fungsi perubahan yg diperoleh akibat dari proses request refreshing suatu layer chat
// Setelah melakukan perubahan, fungsi ini juga mengaktifkan timer untuk refreshing / update
// data chat terbaru
function deleteCart(iddpemesanan) {
  //alert(iddpemesanan);
  callServer("delCart",
               iddpemesanan,
               "_",
               "_",
               "_",
               "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_",
			         "_");

  
}



