﻿// --- AJAX INIT ------------------------------------------

function initAjax()
{
  if (!window.XMLHttpRequest&&window.ActiveXObject) {
    try {
      // test si les ActiveX sont autorises
      new ActiveXObject("Microsoft.XMLHTTP");
      // definie le constructeur
      window.XMLHttpRequest = function() {
        var result = null;
        try {
          result = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (exc) {
          try {
            result = new ActiveXObject("Microsoft.XMLHTTP");            
          }
          catch (exc) {}
        }
        return result;
      }
    }
    catch (exc) {}
  }
}

function checkAjax()
{
  initAjax();
  if (window.XMLHttpRequest) { return true; }
  return false;
}

// --- COPY CHECKING ------------------------------------------

function wantCopy(print)
{ 
  if (checkAjax()) {    
    var url = "ajax?action=copy";
    if (print) { url += "&print=true"; }
    // get selection length
    var len = -1;
    if (document.getSelection)   { len = document.getSelection().length; }
    else if (document.selection) { len = document.selection.createRange().text.length; }   
    if (len>=0) { url += "&length="+len; } 
    // get scroll top
    var iebody = ((document.compatMode&&(document.compatMode!="BackCompat"))?document.documentElement:document.body);
    var stop = (document.all?iebody.scrollTop:pageYOffset);  
    if (stop>=0) { url += "&stop="+stop; }     
    // get document length          
    var size = -1;
    if (print) { 
      size = (document.all?iebody.innerText.length:document.body.textContent.length); 
    } else { 
      var div = document.getElementById("scroll");
      size = (document.all?div.innerText.length:div.textContent.length); 
    }
    url += "&size="+size;
    // send ajax request
    var request = new XMLHttpRequest();
    request.open("GET",url,true);
    request.onreadystatechange = function() {
      if ((request.readyState==4)&&(request.status==200)) {
        //alert("Copie du fond documentaire protégée")
      }
    }
    request.send(""); 
  }  
}

// --- PRINT MANAGEMENT ------------------------------------------

function doPrint(pdf) 
{   
  if (checkAjax()) {
    var url = "ajax?action=print";
    if (pdf) { url += "&mode=pdf"; }
    // get scroll top
    var iebody = ((document.compatMode&&(document.compatMode!="BackCompat"))?document.documentElement:document.body);
    var stop = (document.all?iebody.scrollTop:pageYOffset);  
    if (stop>=0) { url += "&stop="+stop; }     
    // send ajax request    
    var request = new XMLHttpRequest();
    request.open("GET",url,true);
    request.send("");
  }  
}

// --- TIMER MANAGEMENT ------------------------------------------

var t_appli = "";

function startTimer(appli) 
{
  t_appli = appli;
  setTimeout("runTimer()",2*60*1000);  // 2 minutes
}

function stopTimer() { clearTimeout(); }

function runTimer() 
{
  if (checkAjax()) {
    var url = "ajax?action=ping";
    // get scroll top
    var stop = scrollPosition();
    if (stop>=0) { url += "&stop="+stop; }
    url += "&xapp="+t_appli;
    // send ajax request    
    var request = new XMLHttpRequest();
    request.open("GET",url,true);
    request.send("");
  }  
  startTimer(t_appli);
}

// --- SUGGEST IMPLEMENTATION ------------------------------------------

/*
function HttpSuggest(idField,getValuesUrl,maxSuggestNumber) {
  this.url = getValuesUrl;
  if (this.url.indexOf("?")==-1) {
    this.url += "?";
  } else {
    this.url += "&";
  }
  this.request = new XMLHttpRequest();
  Sugget.prototype.init.call(this,idField,maxSuggestNumber);
}

HttpSuggest.prototype = new Suggest();

HttpSuggest.prototype.setOptions = function() {
  try {
    this.request.abort();
  }
  catch (exc) {}
  try {
    var url = this.url+"search="+encodeURIComponent(this.source.value)+"&size="+this.maxSuggestNumber;
    this.request = new XMLHttpRequest();
    this.request.open("GET",url,true);
    var suggest = this;
    this.request.onreadystatechange = function() {
      try {
        if ((request.readyState==4)&&(request.status==200)) {
          var values = suggest.request.responseText.split("\n");
          suggest.popup.setOptions(values);            
        }
      }
      catch (exc) {
        Log.error("exception onreadystatechange");
      }
    }
    this.request.send(null);
  }
  catch (exc) {
    Log.error(exc);
  }
}
*/


