// js for upload progress
// author: albert_e
// email: dzz@kiloboat.com

/* ------------------------------------------------*/
var xmlHttpObj = null;

var I18N_SENDING_FILE = "Sending";
var I18N_CANCEL_BTN = "Cancel";

function fetchProgressData(){
   var sendUrl = "upload.do?date="+new Date().getTime();
   if (xmlHttpObj == null) {
   	 xmlHttpObj=createHupooXmlHttpObject();
   }
   xmlHttpObj.open("GET", sendUrl, false);
   xmlHttpObj.send(null);
   return xmlHttpObj.responseText;
}

function GetProgressDetail() {
	var detail_info=fetchProgressData();
	var start=detail_info.indexOf("<detail-start>");
	var end=detail_info.indexOf("</detail-start>");
	if(start!=-1 && end!=-1){
		detail_info=detail_info.substring(start+14,end);
		var detail_info_array=detail_info.split("||");
		var fileName=detail_info_array[0];
		setUploadDetail(detail_info_array[0],detail_info_array[1],
			detail_info_array[2], detail_info_array[3], detail_info_array[4],
			detail_info_array[5], detail_info_array[6]);
	}
}

function setUploadDetail(fileName,percent, speed,readTotalSize,totalSize,remainTime,totalTime){
	if(fileName.length>20) fileName="..."+fileName.slice(fileName.length-21);
 	$("processHint").innerHTML= I18N_SENDING_FILE + " " + fileName + "... (" + percent+"%)";
	$("innerProgress").style.width=percent+"%";
}
 
var updateProgressTimer=null;

function beginUploadProgress() {
	$("uploadProcessor").innerHTML="<table style='width:100%;font-size:12px' cellpadding='0' cellspacing='0'><tr><td>"
		+ "<div id='processHint' style='position:absolute;width:300px;text-align:center'></div>"
		+ "<div style='border:1px solid #9DB0DA;background-color:#F3F6FA;width:100%;height:18px;margin:0 0 0 5px'>"
		+ "<div id='innerProgress' style='background-color:#73E64C;height:16px;width:0'></div>"
		+ "</div></td><td style='width:80px;text-align:right'><input type='button' value='" + I18N_CANCEL_BTN 
		+ "' onclick='finishUploadProgress()' style='width:70px'></td></tr></table>";
	CW_showDiv("uploadProcessor");
	CW_hideDiv("uploadFrame");
	updateProgressTimer = setInterval("GetProgressDetail()", 600);
}

function finishUploadProgress() {
	clearInterval(updateProgressTimer);
	$("uploadFrame").src="upload.jsp";
	CW_showDiv("uploadFrame");
	CW_hideDiv("uploadProcessor");
}