
var myRequest = new Array(100);

function CreateXmlHttpReq(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}


function myHandler(req,idr,post_function) {
    if (myRequest[idr].readyState == 4 && myRequest[idr].status == 200) {
		 var msg_ret=myRequest[idr].responseText;
		 
		 if(req!=""){
       e = document.getElementById(req);
			// alert(msg_ret);
			// msg_ret = execJS(msg_ret);
			// alert(msg_ret);
       e.innerHTML = msg_ret;
		 }
		 if(post_function!="")
		    eval(post_function);
    }
}


function startSend(req,nomeform,file_post,idr,post_function) {
		// Recupero di tutti i parametri del form
    var body=getParams(nomeform);
		 if(req!=""){
  	  e = document.getElementById(req);
      e.innerHTML = "<font class='waiting'>&nbsp;&nbsp;<img src='img/gauge.gif' border='0'></font>";
		 }

//alert(idr+' '+req+' '+file_post+' ['+post_function+']-->'+body);				
	  myRequest[idr]=CreateXmlHttpReq(function(){myHandler(req,idr,post_function)});
    myRequest[idr].open("POST",file_post,true);
    myRequest[idr].setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
    myRequest[idr].setRequestHeader("Content-length", body.length);
    myRequest[idr].setRequestHeader("Connection", "close");
    myRequest[idr].send(body);
}

function startSendNoWait(req,nomeform,file_post,idr,post_function) {
		// Recupero di tutti i parametri del form
    var body=getParams(nomeform);
//alert(idr+' '+req+' '+file_post+' -->'+body);				
	  myRequest[idr]=CreateXmlHttpReq(function(){myHandler(req,idr,post_function)});
    myRequest[idr].open("POST",file_post,true);
    myRequest[idr].setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
    myRequest[idr].setRequestHeader("Content-length", body.length);
    myRequest[idr].setRequestHeader("Connection", "close");
    myRequest[idr].send(body);
}


function startSendFile(req,nomeform,file_post,idr,post_function){
	 if(req!=""){
  	  e = document.getElementById(req);
      e.innerHTML = "<font class='waiting'>attendere... &nbsp;&nbsp;<img src='../../_images/gauge.gif' border='0'></font>";
		 }

		nome="nome";
  	var boundaryString = 'capitano';
  	var boundary = '--' + boundaryString;
  	var requestbody = boundary + '\n' 
  	+ 'Content-Disposition: form-data; name="myfile"; filename="' 
  		+ nome + '"' + '\n' 
  	+ 'Content-Type: application/octet-stream' + '\n' 
  	+ '\n'
  	+ escape(binary.readBytes(binary.available()))
  	+ '\n'
  	+ boundary;
		
		myRequest[idr].open('POST', file_post, true);
		myRequest[idr].setRequestHeader("Content-type", "multipart/form-data; \boundary=\"" + boundaryString + "\"");
    myRequest[idr].setRequestHeader("Connection", "close");
    myRequest[idr].setRequestHeader("Content-length", requestbody.length);
    myRequest[idr].send(requestbody);
}


function getParams(nomeform){
 count=0;
 eval("num_param=document."+nomeform+".elements.length;");
 sep="";
 strRet="";
 while(count < num_param){
   eval("obj=document."+nomeform+".elements[count]");
	 switch(obj.type){
	   case 'radio':
		      if(obj.checked){
					    eval("strRet=strRet+sep+obj.name+ \"=\" + obj.value;");
					}
					break;
	   case 'checkbox':
		      if(obj.checked){
					    eval("strRet=strRet+sep+obj.name+ \"=\" + obj.value;");
					}
					break;
	   default:
		      if((obj.type!='radio')&&(obj.type!='checkbox')){
					    eval("strRet=strRet+sep+obj.name+ \"=\" + obj.value;");
					}
					break;
	 }
	 
	 /*
	 else{
	 if(obj.type!='radio')
    //eval("strRet=strRet+sep+document."+nomeform+".elements[count].name + \"=\" + document."+nomeform+".elements[count].value;");
    eval("strRet=strRet+sep+obj.name+ \"=\" + obj.value;");
	 }*/
   sep="&";
   count++;
 }

// alert(strRet);
return(strRet);
}

function execJS(t)
{
    var p1 = 0, p2 = 0, p3 = 0, p4 = 0;
    p1 = t.indexOf("<" + "script", 0);
    if(p1 == -1) return t;
    
    p2 = t.indexOf(">", p1 + 7) + 1;
    p3 = t.indexOf("<" + "/script>", p2);
    p4 = p3 + 9;
    
    var c = t.substring(p2, p3);
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.text = c;
    document.getElementsByTagName("head")[0].appendChild(s);
    
    t = t.substring(0, p1) + t.substr(p4);
    return execJS(t);
}






