text: function MyAjax() {
  	this.serverdata = this.erromsg = this.timeout = this.stop = this.xmlhttp = !1, this.transit = !0
  }
  MyAjax.prototype.handle = function(d, f) {
  	if(4 == d.readyState) {
  		if(this.stop === !0) {
  			return
  		}
  		if(this.transit = !0, f.timeout && f.async && (clearTimeout(this.timeout), this.timeout = !1), 200 == d.status) {
  			var e = this.serverdata = d.responseText.replace(/(^\s*)|(\s*$)/g, "");
  			"function" == typeof f.success && f.success(e)
  		} else {
  			this.erromsg = d.status, "function" == typeof f.error && f.error(d.status)
  		}
  	} else {
  		if(0 == d.readyState) {
  			if(this.stop === !0) {
  				return
  			}
  			f.timeout && f.async && (clearTimeout(this.timeout), this.timeout = !1), this.erromsg = d.readyState, this.transit = !0, "function" == typeof f.error && f.error(d.readyState)
  		}
  	}
  }, MyAjax.prototype.out = function(b) {
  	this.transit = !0, this.erromsg = 504, this.stop = !0, "function" == typeof b.error && b.error(504)
  }, MyAjax.prototype.carry = function(j) {
  	var i, h, g, l;
  	if(j.lock && !this.transit) {
  		return !1
  	}
  	this.transit = !1, this.stop = this.erromsg = !1, i = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"), j.type = j.type.toUpperCase(), h = function() {}, "string" == typeof j.data ? (j.data = j.data.replace(/(^\s*)|(\s*$)/g, ""), h = function() {
  		i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  	}) : "[object FormData]" !== Object.prototype.toString.call(j.data) ? (j.data = "", h = function() {
  		i.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  	}) : ("function" == typeof j.progress && i.upload.addEventListener("progress", j.progress, !1), j.type = "POST"), g = "" == j.data ? [null, ""] : [j.data, "?" + j.data], l = this, "function" == typeof j.complete && j.complete(), j.timeout && j.async && (this.timeout = setTimeout(function() {
  		l.out(j)
  	}, j.timeout)), j.async === !0 && (i.onreadystatechange = function() {
  		l.handle(i, j)
  	});
  	try {
  		switch(j.type) {
  			case "POST":
  				i.open("POST", j.url, j.async), h();
  				break;
  			default:
  				i.open("GET", j.url + g[1], j.async), j.cache === !0 || i.setRequestHeader("If-Modified-Since", "0")
  		}
  	} catch(k) {
  		return this.erromsg = 505, j.timeout && j.async && (clearTimeout(this.timeout), this.timeout = !1), this.transit = !0, "function" == typeof j.error && j.error(505), void 0
  	}
  	i.send(g[0]), j.async === !1 && l.handle(i, j)
  };
  
  function UploadStart(d) {
  	var a = function(e) {
  		this.uptype = e.UpType;
  		this.url = e.url;
  		this.oldurl = e.url;
  		this.filessize = e.FilesSize, this.MaxUpNum = e.MaxUpNum, this.str = new MyAjax();
  		this.file_input = document.getElementById("file_input");
  		this.opt = document.getElementById("opt");
  		this.up = document.getElementById("up");
  		this.up_box = document.getElementById("up_box");
  		this.filesalllength = this.FilesArrayLength = this.up_box_li = FileProgress = 0;
  		this.FilesArray = new Array();
  		this.num = 0
  	};
  	a.prototype = {
  		SelectFile: function() {
  			if(this.FilesArrayLength === 0) {
  				this.up_box.innerHTML = "";
  				this.un()
  			}
  			var h = this.file_input.files,
  				e, g, f = h.length;
  			if(this.filesalllength + f > this.MaxUpNum) {
  				f = this.MaxUpNum - this.filesalllength;
  				layer.msg(lan.get('update_num',[this.MaxUpNum]), {
  					icon: 5
  				})
  			}
  			for(var j = 0; j < f; j++) {
  				e = h[j];
  				g = e.name.split(".");
  				g = Object.prototype.toString.call(g) === "[object Array]" ? g[g.length - 1] : "";
  				if(d) {
  					if(g != "sql" && g != "zip" && g != "gz" && g != "tgz") {
  						layer.msg(lan.upload.file_type_err, {
  							icon: 5
  						});
  						return
  					}
  				}
  				if(!e) {
  					this.up_box.insertAdjacentHTML("beforeEnd", "<li>" + e.name + "<em style='color: red;'>"+lan.upload.file_err+"</em></li>")
  				} else {
  					if(this.uptype.length > 0 && this.uptype.indexOf(g.toLowerCase()) === -1) {
  						this.up_box.insertAdjacentHTML("beforeEnd", "<li>" + e.name + "<em style='color: red;'>"+lan.upload.file_type_err+"</em></li>")
  					} else {
  						if(e.size <= 0) {
  							this.up_box.insertAdjacentHTML("beforeEnd", "<li>" + e.name + "<em style='color: red;'>"+lan.upload.file_err_empty+"</em></li>")
  						} else {
  							this.up_box.insertAdjacentHTML("beforeEnd", "<li><span class='filename'>" + e.name + "</span><span class='filesize'>" + (ToSize(e.size)) + "</span><em>"+lan.upload.up_sleep+"</em></li>");
  							this.FilesArray.push([e, (this.filesalllength - 1 < 0 ? 0 : this.filesalllength) + j])
  						}
  					}
  				}
  			}
  			this.filesalllength += f;
  			this.FilesArrayLength = this.FilesArray.length
  		},
  		read: function() {
  			if(this.filesalllength == 0) {
  				layer.msg(lan.upload.select_file, {
  					icon: 5
  				});
  				return
  			}
  			this.url = this.oldurl + "&codeing=" + document.getElementById("fileCodeing").value;
  			if(this.FilesArrayLength > 0) {
  				this.opt.disabled = true;
  				this.up.disabled = true;
  				this.file_input.disabled = true;
  				this.up_box_li = this.up_box.getElementsByTagName("li");
  				this.ready(this.FilesArray, 0, this.FilesArrayLength - 1)
  			} else {
  				layer.msg(an.upload.select_empty, {
  					icon: 5
  				})
  			}
  		},
  		un: function() {
  			this.opt.disabled = this.up.disabled = this.file_input.disabled;
  			this.filesalllength = this.FilesArrayLength = this.up_box_li = 0;
  			this.FilesArray = new Array()
  		},
  		ready: function(i, f, h) {
  			if(f > h) {
  				this.un();
  				return
  			}
  			try {
  				var g = new FormData();
  				g.append("zunfile", i[f][0])
  			} catch(e) {
  				this.opt.disabled = true;
  				this.up.disabled = true;
  				this.file_input.disabled = true;
  				layer.msg(lan.upload.ie_err, {
  					icon: 5
  				})
  			}
  			if(i.length > 1) {
  				$("#totalProgress").html("<p>"+lan.upload.up_the+ this.num + "/" + i.length + "</p><progress value='" + this.num + "' max='" + i.length + "' ></progress>");
  				$(".cancel").css("visibility", "hidden")
  			}
  			this.send(g, i, f, h)
  		},
  		SetTxt: function(f, g, h) {
  			var e = this.up_box_li[f].getElementsByTagName("em")[0];
  			e.style.color = h;
  			e.innerHTML = g
  		},
  		send: function(f, i, e, g) {
  			if(!this.up_box_li[e].getElementsByTagName("em")[0]) {
  				this.ready(i, e + 1, g);
  				this.num++;
  				return
  			}
  			var h = this;
  			this.FileProgress = 0;
  			this.str.carry({
  				url: this.url,
  				data: f,
  				type: "get",
  				timeout: 86400000,
  				async: true,
  				lock: true,
  				complete: false,
  				progress: function(j) {
  					h.FileProgress = Math.floor(j.loaded / j.total * 100) + "%";
  					if(h.FileProgress == "100%") {
  						h.FileProgress = lan.upload.up_save
  					}
  					h.SetTxt(i[e][1], lan.upload.up_speed + h.FileProgress, "#005100")
  				},
  				success: function(j) {
  					h.str.serverdata = false;
  					h.SetTxt(i[e][1], lan.upload.up_ok, "#005100");
  					h.ready(i, e + 1, g);
  					h.num++;
  					if(i.length > 1) {
  						var k = (h.num == i.length) ? lan.upload.up_ok_1 : lan.upload.up_ok_2;
  						$("#totalProgress").html("<p>" + k + h.num + "/" + i.length + "</p><progress value='" + h.num + "' max='" + i.length + "' ></progress>")
  					}
  					if(h.num == i.length) {
  						c.opt.disabled = false;
  						c.up.disabled = false;
  						c.file_input.disabled = false;
  						h.num = 0
  					}
  					if(!d) {
  						GetFiles(getCookie("Path"))
  					}
  				},
  				error: function(j) {
  					h.SetTxt(i[e][1], lan.upload.up_err, "red");
  					h.str.serverdata = false;
  					h.ready(i, e + 1, g)
  				},
  				cache: false
  			})
  		}
  	};
  	try {
  		var c = new a({
  			UpType: new Array(),
  			FilesSize: 5242880000,
  			MaxUpNum: 100,
  			url: "/files?action=UploadFile&path=" + document.getElementById("input-val").value
  		});
  		c.opt.addEventListener("click", function() {
  			c.file_input.click()
  		}, false);
  		c.up.addEventListener("click", function() {
  			c.read()
  		}, false);
  		c.file_input.addEventListener("change", function() {
  			c.SelectFile()
  		}, false)
  	} catch(b) {
  		c.opt.disabled = true;
  		c.up.disabled = true;
  		c.file_input.disabled = true;
  		layer.msg(lan.upload.ie_err, {
  			icon: 5
  		})
  	}
  };