var files = []; //存储文件信息的数组
var fname = ""; //表示文件名,例如  XXXX.jpg;
var expire = 0;
var pathName = '';
var inpId = '';
var keyname = '';
var imgId='';
var isZip=1;
var qualityNum=90;
var response=';'
var UP = UP || {};
UP.isBatch=0;
UP.init = function(inputId, path,imageId,isBatch,isZipImg,quality) {
	inpId = inputId;
	pathName = path;
	imgId = imageId;
	if(typeof(isBatch) != 'undefined'){
		UP.isBatch = isBatch;
	}	
	if(typeof(isZipImg) != 'undefined'){
		// //console.log(typeof(isZipImg));
		isZip =  isZipImg;
	}
	if(typeof(quality) != 'undefined'){
		qualityNum = quality;
	}	
	
}

function send_request() {
	var xmlhttp = null;
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if (xmlhttp != null) {
		//		//console.log(dir)
		 serverUrl = qlgUrl('oss/get.php?dir=' + pathName);
		 // serverUrl = 'https://img.zgqlg.com.cn/oss/get.php?dir=' + pathName;

		xmlhttp.open("GET", serverUrl, false);
		xmlhttp.send(null);
		return xmlhttp.responseText;
	} else {
		mui.alert("Your browser does not support XMLHTTP.");
	}

}

function get_signature() {
	//可以判断当前expire是否超过了当前时间,如果超过了当前时间,就重新取一下.3s 做为缓冲
	now = timestamp = Date.parse(new Date()) / 1000;
	if (expire < now + 3) {
		body = send_request()
		var obj = eval("(" + body + ")");
		response = obj;
		// //console.log(obj);
	}
	return response;
};
// 上传文件
function upload(callback) {
	// //console.log(files);
	if (files.length <= 0) {
		mui.toast('没有添加上传文件');
		return;
	}
	var obj = get_signature();
	if (obj) {
		server = obj['host'];
		policyBase64 = obj['policy'];
		accessid = obj['accessid'];
		signature = obj['signature'];
		expire = parseInt(obj['expire']);
		callbackbody = obj['callback'];
		path = obj['dir'];
		
	} else {
		mui.toast('初始化失败');
		return;
	}

	var wt = plus.nativeUI.showWaiting();
	var task = plus.uploader.createUpload(server, {
		method: "POST"
	}, function(t, status) {
		//上传完成
		if (status == 200) {
			wt.close();
			if(1 == UP.isBatch){
				callback(t,status,keyname,server + '/'+keyname);
			}else{
				document.getElementById(inpId).value = keyname;
				var ele=document.getElementById(imgId);	
				ele.src=server + '/'+keyname;
				ele.setAttribute('data-src',keyname);
				mui.toast('上传成功');
				//至此上传成功,上传后的图片完整地址为server+testName
				//keyname
			}
			
		} else {
			wt.close();
			mui.toast('上传失败:' + status);
		}
	});
	var suffix1 = get_suffix(fname); //文件后缀  例如   .jpg
	keyname = path + new Date().getTime() + suffix1;
	task.addData("key", keyname);
	task.addData("policy", policyBase64);
	task.addData("OSSAccessKeyId", accessid);
	task.addData("success_action_status", "200");
	// task.addData("callback", callbackbody);
	task.addData("signature", signature);
	var f = files[files.length-1];
	// //console.log(f)

	task.addFile(f.path, {
		key: "file",
		name: "file",
		mime: "image/jpeg"
	});
	//files.length = 0;
	task.start();

}

//得到文件名的后缀
function get_suffix(filename) {
	var pos = filename.lastIndexOf('.');
	var suffix = '';
	if (pos != -1) {
		suffix = filename.substring(pos)
	}
	return suffix;
}
// 拍照添加文件
function appendByCamera(callback) {
	plus.camera.getCamera().captureImage(function(p) {
		uploadImg(p,callback);
	});
}
// 从相册添加文件
function appendByGallery(callback) {
	plus.gallery.pick(function(p) {
		uploadImg(p,callback);
	});
}

// 添加文件
var index = 1;
function uploadImg(p,callback){
	if(1 == isZip){
		compressImg(p,callback);
	}else{
		appendFile(p,callback)
	}
}
function appendFile(p,callback) {	
	// var fe = document.getElementById(fileId);
	var n = p.substr(p.lastIndexOf('/') + 1);
	fname = n;
	files.push({
		name: "uploadkey" + index,
		path: p
	});
	////console.log(3);
	// index++;
	upload(callback);
}
function compressImg(src,callback) {
	var filename = src.substring(src.lastIndexOf('/') + 1);
	var opions = {
		src: src,
		dst: '_doc/tmp/' + filename,
		overwrite: true,
		//width: '300px', //这里指定了宽度,同样可以修改
		format: 'jpg',
		quality: qualityNum //图片质量不再修改,以免失真
	};
	var successCB = function(evt) {
		// //console.log(JSON.stringify(evt));
 		fname = filename;
// 		files[0]={
// 			name: "uploadkey",
// 			path: evt.target
// 		};
		files.push({
			name: "uploadkey" + index,
			path: evt.target
		});
		// index++;
		//上传		
		upload(callback);
		//_this.avatar(evt.target);
	};
	var errorCB = function(err) {
		appendFile(src,callback);
		////console.log(JSON.stringify(err));
		//mui.toast("图片压缩失败");
	};
	plus.zip.compressImage(opions, successCB, errorCB);
};
function openCamera(callback) {
	plus.nativeUI.actionSheet({
		cancel: "取消",
		buttons: [{
				title: "拍照"
			},
			{
				title: "从相册中选择"
			}
		]
	}, function(e) { //1 是拍照  2 从相册中选择
		switch (e.index) {
			case 1:
				appendByCamera(callback);
				break;
			case 2:
				appendByGallery(callback);
				break;
		}
	});
	}