1 	var YXHRPost = function(url){
  2 		var xhrscope=this;
  3 		this.laststring="";
  4 		var XUnit=function(formData,type,onload,onprogress,dataz){
  5 			var xuscope=this;
  6 			this.loaded		= false;
  7 			var xhr			= new XMLHttpRequest();
  8 			xhr.open('POST',url);
  9 			xhr.onload = function() {
 10 				xuscope.loaded		= true;
 11 				xhrscope.laststring	= this.responseText;
 12 				var result = this.responseText;
 13 				if(result.indexOf("xdebug-error")>0){
 14 					var strerr = "PHP Error :<br/><br/>"+result;
 15 					document.body.innerHTML+=strerr;
 16 				}else if(type=="js"){
 17 					try{
 18 						this.result=result;
 19 						eval("this.result = "+this.result+";");
 20 						result=this.result;
 21 					}catch(e){
 22 						var strerr = "reponse php->js:\n\n"+result;
 23 						alert(strerr);
 24 					};
 25 				}
 26 				if(typeof(onload)=="function")onload(result,dataz);
 27 			};
 28 			if("upload" in new XMLHttpRequest){
 29 				xhr.upload.onprogress = function(event) {
 30 					if (event.lengthComputable) {
 31 						var perc = event.loaded / event.total;
 32 						if(typeof(onprogress)=="function")onprogress(perc,dataz);
 33 					}
 34 				};
 35 			}
 36 			xhr.send(formData);
 37 		};
 38 		this.upload=function(file,datas,onload,onprogress,dataz){
 39 			if(!file||!file.join)	file=[file];
 40 			var formData	= new FormData();
 41 			formData.append("file",file);
 42 			for(var i in file)if(file[i] instanceof File)formData.append("file",file[i]);
 43 			else throw("YXHRPost.upload Error:\nfile["+i+"]="+file[i]+"\nmust be instanceof File.");
 44 			for(var i in datas)formData.append(""+i,""+datas[i]);
 45 			this.sendform(formData,"file",onload,onprogress,dataz);
 46 		};
 47 		this.sendform=function(formData,type,onload,onprogress,dataz){
 48 			new XUnit(formData,type,onload,onprogress,dataz);
 49 		};
 50 		this.req=function(datas,type,onload,onprogress,dataz){
 51 			var formData	= new FormData();
 52 			for(var i in datas)formData.append(""+i,""+datas[i]);
 53 			this.sendform(formData,type,onload,onprogress,dataz);
 54 		};
 55 		
 56 	};
 57