// JavaScript Document
var C_ATTRIBUTE = 0
var C_TEXT = 1
var C_DATA = 2

Number.prototype.roundTo = roundTo;
var uploadInProcess = false

var IndexFieldName = 19
var ProgressDiv = ""
var ProgressBar = ""
var UploadId = ""
var EditRedirectUrl = ""
var ValueToRedirectSend = ""
var ProgressRefresh = 2000;
var ListVal = ""
var StartProgressPath = ""
var DisplayProgressReport = true
var UploadCompleteMessage = ""
var FormName = ""
var Opacity = .25
var redirPage = ""

var progressDivWidth = 350
var divImageHeight = 60
var divBarHeight = 30
var divInfoHeight = 95

var UploadStatus = ""
var UploadTime = ""
var TotalBytes = ""
var BytesRead = ""
var PercBytesRead = ""
var PercentRest = ""
var TransferRate = ""
var RestTime = ""
var hasFile = false
var imageContainerCode = ""
var progressContainerCode = ""
var infoContainerCode = ""
var barHtmlCode = ""
var infoHtmlCode = ""
var stopButton = ""
var saveFileInfo = ""

var lastProgressPerc = 0
var totalFileSize = 0

var GoUpload
var isMAC = (navigator.userAgent.toLowerCase().indexOf("mac") != -1);
var isIE = document.all;
var isNS6 = (!document.all && document.getElementById ? true : false);
var isNS7 = (navigator.userAgent.toLowerCase().indexOf("netscape/7") != -1);
var isFF = (navigator.userAgent.toLowerCase().indexOf("firefox") != -1);
if(isFF){isMAC=false; isIE=false;isNS6=false;isNS7=false;}

function dwzAjaxUploadStart(){
		
	if(uploadInProcess){
		return
	}
	
	hasFile = hasFileToUpload()
	
	pageForm = $("form")
	for(x=0;x<pageForm.length;x++){
		if(pageForm[x].getAttribute("id") && pageForm[x].getAttribute("id").toLowerCase() == FormName.toLowerCase()){
			pageForm[x].setAttribute("target", "dwzAjaxUploadFrame")
			pageForm[x].setAttribute("method", "POST")
		}else if(pageForm[x].getAttribute("name") && pageForm[x].getAttribute("name").toLowerCase() == FormName.toLowerCase()){
			pageForm[x].setAttribute("target", "dwzAjaxUploadFrame")
			pageForm[x].setAttribute("method", "POST")
		}
	}
	
	deleteTempFiles()
	
	window.scroll(0,0)
	
	if(VerifyStartUpload()){
		if(imageContainerCode == ""){
			readXmlStructure()
		}
		uploadInProcess = true
		if(hasFile && ProgressBar != ""){
			
			if(ProgressBar.toLowerCase() == "mac"){
				progressDivWidth = 400
				divBarHeight = 50
				divInfoHeight = 0
			}			
			
			$("#"+ProgressDiv).css("width", progressDivWidth)
			if(DisplayProgressReport){
				height = divImageHeight + divBarHeight + divInfoHeight
			}else{
				height = divImageHeight + divBarHeight
			}
			$("#"+ProgressDiv).css("height", height)			
			switch(ProgressBar.toLowerCase()){
			case "Mac".toLowerCase():
				bgColor = "#FFFFFF"
				break
			case "Graphics3D".toLowerCase():
			case "WinXp".toLowerCase():
				bgColor = "#CCCCCC"
				break
			case "Graphics_Cyan_1".toLowerCase():
				bgColor = "#D4E6F9"
				break
			case "Graphics_Cyan_2".toLowerCase():
				bgColor = "#D4E6F9"
				break
			case "Graphics_Cyan_3".toLowerCase():
				bgColor = "#D4E6F9"
				break
			case "Graphics_Orange".toLowerCase():
				bgColor = "#FDCF7D"
				break
			case "Graphics_Green".toLowerCase():
				bgColor = "#6FD764"
				break
			case "Graphics_Blue".toLowerCase():
				bgColor = "#60ADFE"
				break
			default:
				bgColor = "#cecece"
				break
			}
			$("#"+ProgressDiv).css("background-color", bgColor)
			centerPoint = getCenterScreenPoint()
			
			sLeft = (centerPoint.x - (progressDivWidth / 2)).roundTo(0)
			$("#"+ProgressDiv).css("left", sLeft)
			sTop = (centerPoint.y - (height / 2)).roundTo(0)
			$("#"+ProgressDiv).css("top", sTop)
			
			if(ProgressBar.toLowerCase() == "mac"){
				html = getProgressStructureForMacBar()
				
				html = html.replace("#TotalBytes#", "0")
				html = html.replace("#UploadTo#", "")
				html = html.replace("#Bar#", "")
				html = html.replace("#BytesRead#", "0")
				html = html.replace("#TotalBytes#", "0")
				html = html.replace("#PercBytesRead#", "0")
				html = html.replace("#RestTime#", "0")
				Bar = '<Table align=left background="' + StartProgressPath + 'dwzAjaxUpload/MacBg.gif" cellpadding=0 height="12" cellspacing=0 border="0" width="300" ><tr><TD nowrap="nowrap" align=left></td></tr></table>'
				html = html.replace("#Bar#", Bar)
								
			}else{
				html = getProgressStructure()
			}
			
			$("#"+ProgressDiv).html(html)
			$("#"+ProgressDiv).css("display","block")
			$("#"+ProgressDiv).css("visibility","visible")
		}
		
		openBackGround()
				
		return true;
	}else{
		return false;
	}
}

function deleteTempFiles(){
	postData = "DeleteTempFile=yes&UploadId=" + UploadId
	urlPage = StartProgressPath + "dwzAjaxUpload/ReadProgress.asp"
	var objXml
	var html = $.ajax({
		url: urlPage,
		dataType:"xml",
		data: postData,
		type: "GET",
		success:function(xml){objXml = xml;},
		async: false
	}).responseText;
	
	if(!objXml){
		win = window.open("")
		win.document.open()
		win.document.write(html)
		win.document.close()
		return
	}
	
}

function readXmlStructure(){
	
	urlPage = (StartProgressPath + "dwzAjaxUpload/ProgressBar.xml")
		
	var objXml
	var html = $.ajax({
		url: urlPage,
		dataType:"xml",
		type: "GET",
		success:function(xml){objXml = xml;},
		async: false
	}).responseText;
	
	if(objXml){		
		imageContainerCode = getXmlValue(objXml, 'imageContainerCode', C_DATA)
		progressContainerCode = getXmlValue(objXml, 'progressContainerCode', C_DATA)
		infoContainerCode = getXmlValue(objXml, 'infoContainerCode', C_DATA)
		barHtmlCode = getXmlValue(objXml, 'barHtmlCode', C_DATA)
		infoHtmlCode = getXmlValue(objXml, 'infoHtmlCode', C_DATA)
		stopButton = getXmlValue(objXml, 'stopButton', C_DATA)
		saveFileInfo = getXmlValue(objXml, 'saveFileInfo', C_DATA)
	}
	if(!objXml){
		win = window.open("")
		win.document.open()
		win.document.write(html)
		win.document.close()
		return
	}
}

function getCenterScreenPoint(){
				
	var point = new Object()
	size = getWindowSize()
	
	W = (size.width / 2).roundTo(0)
	H = 200
	
	point.x = W
	point.y = H
	return point
}

function getProgressStructureForMacBar(){
	code = '<table><tr><td height="10"></td></tr></table>'
	code += '<Table class="Testo12N" width=100% border=0 align="center" cellpadding=0 cellspacing=0 height="50" >'
	code += '  <tr>'
	code += '  	<td rowspan="3" width="40" valign="middle" align="center"><img src="' + StartProgressPath + 'dwzAjaxUpload/MacSx.gif" width="28" height="34" /></td>'
	code += '  	<td>Uploading:&nbsp;#TotalBytes#&nbsp;to&nbsp;#UploadTo# ...</td>'
	code += '  </tr>'
	code += '  <tr>'
	code += '    <td valign="middle" align="left">#Bar#</td>'
	code += '  </tr>'
	code += '  <tr>'
	code += '  	<td>Progress:&nbsp;#BytesRead#&nbsp;of&nbsp;#TotalBytes#&nbsp;(#PercBytesRead#%)&nbsp;-&nbsp;About&nbsp;#RestTime#</td>'
	code += '  </tr>'
	code += '</table>'
	
	return code	
}

function getProgressStructure(){
	retStr = ""
	image = StartProgressPath + 'dwzAjaxUpload/'
	switch(ProgressBar.toLowerCase()){
	case "Graphics_Cyan_1".toLowerCase():
		image += "Cyan_1.gif"
		break
	case "Graphics_Cyan_2".toLowerCase():
		image += "Cyan_2.gif"
		break
	case "Graphics_Cyan_3".toLowerCase():
		image += "Cyan_3.gif"
		break
	case "Graphics_Orange".toLowerCase():
		image += "Orange.gif"
		break
	case "Graphics_Green".toLowerCase():
		image += "Green.gif"
		break
	case "Graphics_Blue".toLowerCase():
		image += "Blue.gif"
		break
	default:
		image += "Transfer.gif"
		break
	}

	tmp = imageContainerCode
	tmp = tmp.replace(/#progressDivWidth#/gi,progressDivWidth.toString())
	tmp = tmp.replace(/#divImageHeight#/gi,divImageHeight.toString())
	tmp = tmp.replace(/#image#/gi,image.toString())
	retStr += tmp
	
	tmp = progressContainerCode
	tmp = tmp.replace(/#progressDivWidth#/gi,progressDivWidth.toString())
	tmp = tmp.replace(/#divBarHeight#/gi,divBarHeight.toString())
	retStr += tmp

	if(DisplayProgressReport){
		tmp = infoContainerCode
		tmp = tmp.replace(/#progressDivWidth#/gi,progressDivWidth.toString())
		tmp = tmp.replace(/#divInfoHeight#/gi,divInfoHeight.toString())
		retStr += tmp
	}
	
	return retStr
}

function Test(){
	
	urlPage = (StartProgressPath + "dwzAjaxUpload/ProgressBar.xml")
		
	var objXml
	var html = $.ajax({
		url: urlPage,
		dataType:"xml",
		type: "GET",
		success:function(xml){objXml = xml;},
		async: false
	}).responseText;
	
	
	doc = objXml.getElementsByTagName("parameter")
	
	alert(doc[1].childNodes[1].data)
	
}

function StopUpload(){
	
	postData = "StopUpload=yes&UploadId=" + UploadId
	urlPage = StartProgressPath + "dwzAjaxUpload/ReadProgress.asp"
	var objXml
	var html = $.ajax({
		url: urlPage,
		dataType:"xml",
		data: postData,
		type: "GET",
		success:function(xml){objXml = xml;},
		async: false
	}).responseText;
	
	if(!objXml){
		win = window.open("")
		win.document.open()
		win.document.write(html)
		win.document.close()
		return
	}
	
}

function AjaxProgress(){
		
	postData = "UploadId=" + UploadId
	urlPage = (StartProgressPath + "dwzAjaxUpload/ReadProgress.asp")
	
	var objXml
	var html = $.ajax({
		url: urlPage,
		dataType:"xml",
		data: postData,
		type: "GET",
		success:function(xml){objXml = xml;},
		async: false
	}).responseText;
	
	if(objXml){
		UploadStatus = getXmlValue(objXml, 'UploadStatus', C_ATTRIBUTE)
		UploadTime = getXmlValue(objXml, 'UploadTime', C_ATTRIBUTE)
		TotalBytes = getXmlValue(objXml, 'TotalBytes', C_ATTRIBUTE)
		BytesRead = getXmlValue(objXml, 'BytesRead', C_ATTRIBUTE)
		PercBytesRead = getXmlValue(objXml, 'PercBytesRead', C_ATTRIBUTE)
		PercentRest = getXmlValue(objXml, 'PercentRest', C_ATTRIBUTE)
		TransferRate = getXmlValue(objXml, 'TransferRate', C_ATTRIBUTE)
		RestTime = getXmlValue(objXml, 'RestTime', C_ATTRIBUTE)
		
		switch(UploadStatus){
			case 'WAIT_START':
				setTimeout("AjaxProgress()", ProgressRefresh)
			break;
			case 'WORKING':
				PercBytesRead = parseInt(PercBytesRead, 10)
				PercentRest = parseInt(PercentRest, 10)
				lastProgressPerc = PercBytesRead
				CreateProgress()
				setTimeout("AjaxProgress()", ProgressRefresh)
			break
			case "STOPPED":
				PercBytesRead = parseInt(PercBytesRead, 10)
				PercentRest = parseInt(PercentRest, 10)
				lastProgressPerc = PercBytesRead
				EndUpload()
			break
			case "SAVEFILE":
				PercBytesRead = parseInt(PercBytesRead, 10)
				PercentRest = parseInt(PercentRest, 10)
				lastProgressPerc = PercBytesRead
				CreateProgress()
				setTimeout("AjaxProgress()", ProgressRefresh)
			break
			case "ERROR":
				EndUpload()
				break
			case 'DONE':
				if(lastProgressPerc == 0){
					t = TotalBytes.replace(/,/gi,".").replace(/kb/gi,"").replace(/mb/gi,"").replace(/b/gi,"")
					if(!isNaN(t)){
						totalFileSize = parseFloat(t, 10)
					}else{
						totalFileSize = 0
					}
					SimulateProgress()
				}else{
					PercBytesRead = 100
					PercentRest = 0
					CreateProgress()
					EndUpload()
				}
			break
		}
	}else{
		win = window.open("")
		win.document.open()
		win.document.write(html)
		win.document.close()
		return
	}
}

function SimulateProgress(){
	if(lastProgressPerc < 100){
		lastProgressPerc += 10
		PercBytesRead = parseInt(lastProgressPerc, 10)
		PercentRest = parseInt(100 - lastProgressPerc, 10)
		totalTime = 2000
		ms = totalTime / 100 * PercBytesRead
		ms = .001 * ms
		UploadTime = (ms / 60).roundTo(1).toString() + ":" + (ms % 60).roundTo(2).toString() + "s"
		ms = 2000 - (totalTime / 100 * PercBytesRead)
		ms = .001 * ms
		RestTime = (ms / 60).roundTo(1).toString() + ":" + (ms % 60).roundTo(2).toString() + "s"
		BytesRead = FormatSize(totalFileSize / 100 * PercBytesRead)
		CreateProgress()
		setTimeout("SimulateProgress()", 125)
	}else{
		EndUpload()
	}	
}

function FormatSize(size){	
	if(size > 1000000){
		size = (size / 1000000).roundTo(1) + " MB" 
	}else if(size > 1024){
		size = (size / 1024).roundTo(1) + " Kb" 
	}else{
		size = size.roundTo(0) + " B" 
	}
	return size
}

function EndUpload(){
	if(UploadCompleteMessage != "" && UploadStatus != "STOPPED" && UploadStatus != "ERROR"){
		alert(UploadCompleteMessage)
	}else if(UploadStatus == "STOPPED"){
		alert("Upload stopped")
	}
	
	redirPage = ""
	if(EditRedirectUrl != ""){
		redirPage = EditRedirectUrl
		queryString = getQueryString()
		if(queryString != ""){
			redirPage += "?" + queryString
		}
	}
	
	if(FormName != ""){
		pageForm = $("form")
		for(x=0;x<pageForm.length;x++){
			if(pageForm[0].getAttribute("id") && pageForm[0].getAttribute("id").toLowerCase() == FormName.toLowerCase()){
				pageForm[0].reset()
			}else if(pageForm[0].getAttribute("name") && pageForm[0].getAttribute("name").toLowerCase() == FormName.toLowerCase()){
				pageForm[0].reset()
			}
		}
	}
	$("#"+ProgressDiv).css("display","none")
	$("#"+ProgressDiv).css("visibility","hidden")
	$("#"+ProgressDiv).html("")
	$("#"+ProgressDiv).css("left", 1)
	$("#"+ProgressDiv).css("top", 1)
	$("#"+ProgressDiv).css("width", 1)
	$("#"+ProgressDiv).css("height", 1)				
	uploadInProcess = false
	lastProgressPerc = 0
	closeBackGround()	
}


function getQueryString(){
	if(ValueToRedirectSend==""){
		return ""
	}
	retStr = ""
	list = ValueToRedirectSend.split("|")
	for(x=0; x<list.length;x++){
		field = Dwz_findObj(list[x])
		value = ""
		if(!field.length){
			switch(field.tagName.toUpperCase()){
			case "INPUT":
				switch(field.type.toUpperCase()){
				case "TEXT":
				case "HIDDEN":
					value = field.value
					break
				case "CHECKBOX":
					if(field.checked == true){						
						value = field.value
					}
					break
				case "RADIO":
					if(field.checked == true){
						value = field.value
					}
					break
				}
				break
			case "TEXTAREA":
				value = field.value
				break
			}
		}else if(field.length){
			if(field.tagName && field.tagName.toUpperCase() == "SELECT"){
				value = field.options[field.selectedIndex].value
			}else{			
				switch(field[0].tagName.toUpperCase()){
				case "INPUT":
					switch(field[0].type.toUpperCase()){
					case "TEXT":
					case "HIDDEN":
						for(y=0;y<field.length;y++){
							if(value!=""){
								value += ","
							}
							value += field[y].value
						}					
						break
					case "CHECKBOX":
						for(y=0;y<field.length;y++){
							if(field[y].checked){
								if(value!=""){
									value += ","
								}
								value += field[y].value
							}
						}
						break
					case "RADIO":
						for(y=0;y<field.length;y++){
							if(field[y].checked){
								if(value!=""){
									value += ","
								}
								value += field[y].value
							}
						}
						break
					}
					break
				case "TEXTAREA":
					for(y=0;y<field.length;y++){
						if(value!=""){
							value += ","
						}
						value += field[y].value
					}
					break
				}
			}
		}
		if(retStr != ""){
			retStr += "&"
		}
		retStr += list[x] + "=" + escape(value)
	}
	return retStr
}

function closeBackGround(){
	//$("#dwzBackGround").fadeOut(1500);
	$("#dwzBackGround").fadeTo(1500,0,removeBgLayer);
}

function removeBgLayer(){
	$("#dwzBackGround").width("0")
	$("#dwzBackGround").height("0")
	$("#dwzBackGround").css("display","none")
	if(redirPage!=""){
		location.href = redirPage
	}
}

function getWindowSize(){
	var size = new Object()
	size.width = 0
	size.height = 0
	if (window.innerWidth) {
        size.width = window.innerWidth;
   	    size.height = window.innerHeight;
		
	}else if(document.documentElement && document.documentElement.clientWidth){
		size.width = document.documentElement.clientWidth;
		size.height = document.documentElement.clientHeight;
		
	} else if (document.body.clientWidth) {
		size.width = document.body.clientWidth;
		size.height = document.body.clientHeight;
		
	} else {
		size.width = body.offsetWidth;
		size.height = body.offsetHeight;
	}

	return size
}

function openBackGround(){
	size = getWindowSize()
	
	$("#dwzBackGround").css("top",0)
	$("#dwzBackGround").css("left",0)
	$("#dwzBackGround").css("width", size.width)
	$("#dwzBackGround").css("height", size.height)	
	$("#dwzBackGround").fadeTo(1500, Opacity, AjaxProgress);	
}


function CreateBar(){
	Bar = ""
	imageBar = StartProgressPath + 'dwzAjaxUpload/'
		
	switch(ProgressBar.toLowerCase()){
	case "Mac".toLowerCase():
		imageBar += "MacBar.gif"
		break
	case "WinXp".toLowerCase():
		imageBar += "3D_Bar.gif"
		break	
	case "Graphics3D".toLowerCase():
		imageBar += "3D_Bar.gif"
		break
	case "Graphics_Cyan_1".toLowerCase():
		imageBar += "Bar_Cyan.gif"
		break
	case "Graphics_Cyan_2".toLowerCase():
		imageBar += "Bar_Cyan.gif"
		break
	case "Graphics_Cyan_3".toLowerCase():
		imageBar += "Bar_Cyan.gif"
		break
	case "Graphics_Orange".toLowerCase():
		imageBar += "Bar_Orange.gif"
		break
	case "Graphics_Green".toLowerCase():
		imageBar += "Bar_Green.gif"
		break
	case "Graphics_Blue".toLowerCase():
		imageBar += "Bar_Blue.gif"
		break
	}
	
	switch(ProgressBar.toLowerCase()){
	case "BigBar".toLowerCase():
		TDsread = repeatString(0.25*PercBytesRead, "<TD BGColor=blue > </TD>")
		TDsRemain = repeatString(0.25*PercentRest, "<TD > </TD>")
		Bar = '<Table cellpadding=0 height=20 cellspacing=0 border=1 width=100% style="border:1px inset white" ><tr>' + TDsread + TDsRemain + '</tr></table>'
		break
	case "BigBar2".toLowerCase():
		TDsread = repeatString(0.25*PercBytesRead, "<TD BGColor=blue > </TD>")
		TDsRemain = repeatString(0.25*PercentRest, "<TD > </TD>")
		Bar = '<Table cellpadding=0 height=20 cellspacing=2 border=0 width=100% ><tr>' + TDsread + TDsRemain + '</tr></table>'
		break
	case "LittleBar".toLowerCase():
		TDsread = repeatString(0.5*PercBytesRead, "<TD BGColor=blue > </TD>")
		TDsRemain = repeatString(0.5*PercentRest, "<TD > </TD>")
		Bar = '<Table cellpadding=0 height=20 cellspacing=0 border=1 width=100% style="border:1px inset white" ><tr>' + TDsread + TDsRemain + '</tr></table>'
		break
	case "LittleBar2".toLowerCase():
		TDsread = repeatString(0.5*PercBytesRead, "<TD BGColor=blue > </TD>")
		TDsRemain = repeatString(0.5*PercentRest, "<TD > </TD>")
		Bar = '<Table cellpadding=0 height=20 cellspacing=1 border=0 width=100% ><tr>' + TDsread + TDsRemain + '</tr></table>'
		break
	case "Graphics3D".toLowerCase():
	case "Graphics_Cyan_1".toLowerCase():
	case "Graphics_Cyan_2".toLowerCase():
	case "Graphics_Cyan_3".toLowerCase():
	case "Graphics_Orange".toLowerCase():
	case "Graphics_Green".toLowerCase():
	case "Graphics_Blue".toLowerCase():		
		Bar = "<Table align=center cellpadding=0 height=21 cellspacing=0 border='1' width='337' ><tr><TD align=left>"
		Bar += "<img src='" + imageBar + "' width=" + (3.35 * PercBytesRead).roundTo(0).toString() + " border='0' height='21' /></TD></tr></table>"		
		break
	case "WinXp".toLowerCase():
		qty = 40
		TDsread = '<img src="' + StartProgressPath + 'dwzAjaxUpload/Trasparente.gif" width="6" height="21" />'
		t = (qty / 100 * parseFloat(PercBytesRead)).roundTo(0)
		for(x=0;x<t;x++){
			TDsread += '<img src="' + StartProgressPath + 'dwzAjaxUpload/BarraWinXp.gif" border="0" />'
		}
		Bar = '<table align="center" width="331" height="23" border="0" cellpadding="0" cellspacing="0"'
		Bar += 'background="' + StartProgressPath + 'dwzAjaxUpload/BgWinXp.gif"><tr><td align="left" valign="middle">' + TDsread + '</td></tr></table>'
		break;
	case "Mac".toLowerCase():		
		Bar = '<Table align=left background="' + StartProgressPath + 'dwzAjaxUpload/MacBg.gif" cellpadding=0 height="12" cellspacing=0 border="0" width="300" ><tr><TD nowrap="nowrap" align=left>'
		qty = 43
		t = (qty / 100 * parseFloat(PercBytesRead)).roundTo(0)
		for(x=1; x<=t; x++){
			Bar += '<img src="' + StartProgressPath + 'dwzAjaxUpload/MacBar.gif" width="7" border="0" height="12" />'
		}		
		Bar += '</td></tr></table>'		
		break
	default:
		TDsread = repeatString(0.5*PercBytesRead, "<TD BGColor=blue > </TD>")
		TDsRemain = repeatString(0.5*PercentRest, "<TD > </TD>")
		Bar = '<Table cellpadding=0 height=20 cellspacing=0 border=0 width=100% ><tr>' + TDsread + TDsRemain + '</tr></table>'
		break
	}
	return Bar	
}

function repeatString(repeat, str){
	retStr = ""
	for(x=0; x<repeat; x++){
		retStr = retStr + str
	}
	return retStr
}


function CreateProgress(){
	if(ProgressBar.toLowerCase() == "mac"){
		html = getProgressStructureForMacBar()
		html = html.replace(/#Bar#/gi, CreateBar())	
		
		html = html.replace(/#BytesRead#/gi, BytesRead.toString())
		html = html.replace(/#TotalBytes#/gi, TotalBytes.toString())
		html = html.replace(/#PercBytesRead#/gi, PercBytesRead.toString())
		html = html.replace(/#UploadTime#/gi, UploadTime.toString())
		html = html.replace(/#TransferRate#/gi, TransferRate.toString())
		html = html.replace(/#RestTime#/gi, RestTime.toString())
		$("#"+ProgressDiv).html(html)
		return
		
	}else{
		html = barHtmlCode
	}
	
	html = html.replace(/#Bar#/gi, CreateBar())	
	$("#dwzProgressBarDiv").html(html)
	if(DisplayProgressReport){
		html = infoHtmlCode
		html = html.replace(/#BytesRead#/gi, BytesRead.toString())
		html = html.replace(/#TotalBytes#/gi, TotalBytes.toString())
		html = html.replace(/#PercBytesRead#/gi, PercBytesRead.toString())
		html = html.replace(/#UploadTime#/gi, UploadTime.toString())
		html = html.replace(/#TransferRate#/gi, TransferRate.toString())
		html = html.replace(/#RestTime#/gi, RestTime.toString())	
		
		if(UploadStatus == "SAVEFILE"){
			html = html.replace(/#LastRowInfo#/gi, saveFileInfo.toString())
		}else if(UploadStatus == "DONE"){
			html = html.replace(/#LastRowInfo#/gi, "&nbsp;")
		}else{
			html = html.replace(/#LastRowInfo#/gi, stopButton.toString())
		}
		$("#dwzProgressInfoDiv").html(html)
	}		
}

function getXmlValue(objXml, name, sType){
	//http://www.w3schools.com/dom/default.asp
	doc = objXml.getElementsByTagName("parameter")
	retStr = ""
	for ( i = 0; i < doc.length; i++ ) 
	{
		if(doc[i].getAttribute("key").toLowerCase() == name.toLowerCase()){
			switch(sType){
			case C_ATTRIBUTE:
				retStr = doc[i].getAttribute("value")
				break
			case C_TEXT:
				retStr = doc[i].text
				break
			case C_DATA:
				if(doc[i].hasChildNodes() && doc[i].childNodes[0]){
					if(doc[i].childNodes[1] && doc[i].childNodes[1].data){
						retStr = doc[i].childNodes[1].data
					}else{
						retStr = doc[i].childNodes[0].text
					}
				}
				break
			}
		}
	}
	return retStr	
}


function hasFileToUpload(){
	retVal = false
	if(ListVal!=""){
		var tmp = ListVal.split("@_@_@")
		FieldListVal = tmp[0].split("|")
		for(i=0;i<FieldListVal.length;i++){
			FieldVal = FieldListVal[i].split(";")
			var FileName = "file:///"+Dwz_findObj(FieldVal[IndexFieldName]).value
			if(FileName!="file:///"){
				field = Dwz_findObj(FieldVal[IndexFieldName])
				if(field.value.length > 0){
					retVal = true
					break
				}
			}
		}
	}
	return retVal
}


function VerifyStartUpload(){
			
	GoUpload = true
	
	if(ListVal!=""){
		var tmp = ListVal.split("@_@_@")
		FieldListVal = tmp[0].split("|")
		for(i=0;i<FieldListVal.length;i++){
			FieldVal = FieldListVal[i].split(";")
			var FileName = "file:///"+Dwz_findObj(FieldVal[IndexFieldName]).value
			if(FileName!="file:///"){
				field = Dwz_findObj(FieldVal[IndexFieldName])
				if(field){
					VerifyFile(field, FieldVal[12], FieldVal[13], FieldVal[4], FieldVal[3])
				}
			}
		}
	}
	
	if(!GoUpload){
		alert("Upload Aborted")
		return false
	}
					
	return true
}

function dwz_setEvent(field,evt){
	if(isNS7){
		if(evt=="click"){
			dwz_getImageDimensions(field)
		}
	}else if(isNS6){
		if(evt=="click"){
			dwz_getImageDimensions(field)
		}
	}else{
		if(evt=="change"){
			dwz_getImageDimensions(field)
		}
	}
}

function dwz_getImageDimensions(field){
	field.imageSize = -1
	field.imageWidth = -1
	field.imageHeight = -1
	field.imageExt = "-1"
	if(field.value==""){
		return
	}
	ext = field.value.substring(field.value.lastIndexOf(".")).toLowerCase()
	field.imageExt = ext
	if(ext==".gif" || ext==".jpg" || ext==".jpeg" || ext==".png" || ext==".bmp"){
		var myImage = null
		if(isFF || (isMAC && isIE)){
			myImage = document.createElement('IMG');
			myImage.name = 'myVoidImage';
		}else{
			myImage = new Image();
		}
		myImage.field = field
		myImage.onload = setImageDimensions
		myImage.src = "file:///" + field.value.replace(/:\\/gi,'|/');
	}
}
function setImageDimensions(myImage){
	var img = (myImage && !isNS6 ? myImage : this);
	img.field.imageWidth = img.width
	img.field.imageHeight = img.height
	img.field.imageSize = img.fileSize
}

function VerifyFile(field, maxW, maxH, maxSize, extension){
	var errorMsg="";
	//Verify extension
	if(extension!=""){
		extension = extension.toLowerCase()
		ext = extension.split(",")
		var ris = false
		for(g=0;g<ext.length;g++){
			ext[g] = Trim(ext[g])
			if(ext[g].charAt(0)!="."){
				ext[g] = "." + ext[g]
			}
			if(field.imageExt.toLowerCase()==ext[g]){
				ris = true
				break
			}
		}
		if(ris==false){
			errorMsg+="File extension allowed for this file is: "+extension+" Actual extension is "+field.imageExt+"\n";
		}
	}
	if(field.imageExt==".gif" || field.imageExt==".jpg" || field.imageExt==".jpeg" || field.imageExt==".png" || field.imageExt==".bmp"){
		//Verify Size
		if(maxSize!="" && ((parseInt(field.imageSize)/1000) > parseInt(maxSize))){	
			errorMsg+="Maximum size allowed for this file is: "+maxSize+" Kb - Actual size is "+parseInt(field.imageSize/1000)+" Kb\n";
		}		
		//Verify With
		if(maxW!="" && parseInt(field.imageWidth)>parseInt(maxW)){
			errorMsg+="Maximum width allowed for this image is: "+maxW+" pixels - Actual width is "+field.imageWidth+" pixels\n";
		}
		//verify height
		if(maxH!="" && parseInt(field.imageHeight)>parseInt(maxH)){
			errorMsg+="Maximum height allowed for this image is: "+maxH+" pixels - Actual height is "+field.imageHeight+" pixels\n";
		}
	}
	if(errorMsg!=""){alert(field.value.replace("file:///","")+"\n\n"+errorMsg);}
	if(errorMsg!=""){GoUpload=false}
}

function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return "";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	return TRIM_VALUE;
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return "";
	}
	var iTemp = v_length -1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	} //End While
	return strTemp;

} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
	}else{
		strTemp = VALUE.substring(iTemp,v_length);
		break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

function Dwz_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function roundTo(decimalpositions)
{
    var i = this * Math.pow(10,decimalpositions);
    i = Math.round(i);
    return i / Math.pow(10,decimalpositions);
}
