//  AJAX LIBRARY FUNCTION

function HTML_into( url, divname, dothisatend ) {
  if ( !url ) return;
  var req = false; // use local variable to allow simultaneous calls
  // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
      //netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    } catch(e) {
      req = false;
    }
  // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        req = false;
      }
    }
  }

  function processReqChange() {
    if ( req.readyState == 4 ) {  // only if req shows "loaded"
      if ( req.status == 200 || req.status == 0 ) {  // only if "OK"
        //alert("The result is:\n" + req.responseText);
        if(divname){
          var obj = document.getElementById(divname);
          if(obj) {
            obj.innerHTML = req.responseText; // obj is exactly the second parameter
          }
        }else{
          eval(req.responseText);
        }
        if(dothisatend) dothisatend(); // call back to callee
      } else {
        if( confirm("There was a problem retrieving the XML data:\n#" + req.status + ": " + req.statusText + "\nDo you want to see response?") ) {
          var dwin = open('','');
          dwin.document.write(req.responseText);
          dwin.document.close();
        }
      }
    }
  }

  if( req ) {
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true); // yes, it's asynchronous
    req.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
    req.send("");
  }
}
function load_HTML_into( url, obj, a, b, c, d, e, f, g ) {
  if ( !url ) return;
  url += '&a=' + a; 
  url += '&b=' + b; 
  url += '&c=' + c; 
  url += '&d=' + d; 
  url += '&e=' + e; 
  url += '&f=' + f; 
  url += '&g=' + g; 
  var req = false; // use local variable to allow simultaneous calls
  // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
      //netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    } catch(e) {
      req = false;
    }
  // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        req = false;
      }
    }
  }

  function processReqChange() {
    if ( req.readyState == 4 ) {  // only if req shows "loaded"
      if ( req.status == 200 || req.status == 0 ) {  // only if "OK"
        //alert("The result is:\n" + req.responseText);
        if(obj){
          obj.innerHTML = req.responseText; // obj is exactly the second parameter
        }else{
          eval(req.responseText);
        }
      } else {
        if( confirm("There was a problem retrieving the XML data:\n#" + req.status + ": " + req.statusText + "\nDo you want to see response?") ) {
          var dwin = open('','');
          dwin.document.write(req.responseText);
          dwin.document.close();
        }
      }
    }
  }

  if( req ) {
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true); // yes, it's asynchronous
    req.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
    req.send("");
  }
}

function showPlayer(movie,w,h,uiMode,nodo) {
  var pl = '<object id="Player"'
  if(-1 != navigator.userAgent.indexOf("MSIE"))
  {
    pl += ' classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"';
  }
  else if(-1 != navigator.userAgent.indexOf("Firefox"))
  {
    pl += ' type="application/x-ms-wmp"'; 
  }         
  pl += ' width='+w+' height='+h+'>';
  pl += '<param name="url"';
  pl += ' value="'+movie+'"';
  pl += '>';
  pl += '<param name="autostart"';
  pl += ' value="true"';
  pl += '>';
  pl += '<param name="uiMode"';
  pl += ' value="'+uiMode+'"';
  pl += '>';
  pl += '<param name="enabled"';
  pl += ' value="true"';
  pl += '>';
  pl += '</object>';
  document.getElementById(nodo).innerHTML = pl;
}

function ricercaWeb(obj,idRadio){

  if(document.getElementById(idRadio).checked){
   // ricerca interna
   obj.action = obj.rInterna.value;
  } else {
   obj.action = obj.rEsterna.value;
  }
  obj.searchtext.value = obj.q.value
  obj.submit();
}

var myReq;
var stringa;
var elemento;

function AJAXReq(method,url,bool,idDiv){
 elemento = idDiv;

 if(window.XMLHttpRequest){
  myReq = new XMLHttpRequest();
 } else
  if(window.ActiveXObject){
   myReq = new ActiveXObject("Microsoft.XMLHTTP");
   if(!myReq){a
     myReq = new ActiveXObject("Msxml2.XMLHTTP");
   }
  }
  if(myReq){
  execfunc(method,url,bool,idDiv);
 }else{
  alert("Impossibilitati ad usare AJAX");
 }
}

function PreparaDati(nomeForm){
 stringa = "";
 var frm = document.forms[nomeForm];
 var numeroElementi = frm.elements.length;

 for(var i = 0; i < numeroElementi; i++){
  if(i < numeroElementi-1){
   stringa += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
 }else{
  stringa += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
 }
 }
}

function inviaDati(idDiv,nomeForm){
 PreparaDati(nomeForm);
 var urlCall = document.forms[nomeForm].action;
 AJAXReq("POST",urlCall,true,idDiv);
}

function execfunc(method,url,bool,idDiv){
 myReq.onreadystatechange = handleResponse;
 myReq.open(method,url,bool);

 /* Spiegare setRequestHeader */
 myReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
 myReq.send(stringa);
}

function handleResponse(){
 if(myReq.readyState == 4){
  if(myReq.status == 200 || myReq.status == 0 ){
   if(elemento){
     document.getElementById(elemento).innerHTML = myReq.responseText;
   }else{
     eval(myReq.responseText);
   }
  } else {
   if( confirm("There was a problem retrieving the XML data:\n#" + req.status + ": " + req.statusText + "\nDo you want to see response?") ) {
    var dwin = open('','');
    dwin.document.write(myReq.responseText);
    dwin.document.close();
   }
  } 
 }
}
 /* Funzioni Ajax e Invio Form END*/


