﻿function UpdateFormBar()
{
    var form = document.forms[0];
    var action = form.action;
    
    var re = new RegExp('&?GramUploadStat=[^&]*');
    if (action.match(re)) action = action.replace(re, '');
    
    var delim;
    if (action.indexOf('?') == action.length-1) 
    {
         delim = '';
    }
    else 
    {
        delim = '?';
        if (action.indexOf('?') > -1) delim = '&';
    }
    action += delim + 'GramUploadStat=' + document.getElementById('IDProgressBar').value;
    form.action = action
}

function GramSetProgress(progress)
{
    var el = document.getElementById('IdInnerProgressBar');
    el.style.width = progress+'%';
}

var xhttp;
var awaitingResult = false;

function GramDrawBar(progress)
{   
    if (awaitingResult) return;
	awaitingResult = true;
	
	if (typeof(XMLHttpRequest) != 'undefined')
	{
		xhttp = new XMLHttpRequest();
	}
	else if (typeof(ActiveXObject) != 'undefined')
	{
		xhttp = new ActiveXObject('Microsoft.XMLHTTP');
	}
	else return;

	xhttp.onreadystatechange = GramProgressRes;
	
	var ts = new Date().getTime(); // Time stamp to stop caching
	xhttp.open('GET', 'gramUploadProgress.ashx?' + 'GramUploadStat=' + // Kaller tilbake til IIS og
	document.getElementById('IDProgressBar').value + '&ts=' + ts, true);// ender opp i cs koden som sender tilbake
	xhttp.send('');                                                     // status i querystring
}

function GramProgressRes()
{
    if (xhttp.readyState == 4)
    {
        var label = document.getElementById('GramloadLabel');
        
        if (xhttp.status == 200)
        {
            var res = xhttp.responseXML;
            if (res.documentElement.getAttribute('empty') == 'true')
            {
                GramSetProgress(0);
                label.innerHTML = 'Ready to upload';
            }
            else
            {
                var progress = parseInt(res.documentElement.getAttribute('progress'));
                GramSetProgress(progress);
                
                label.innerHTML = "Uploaded " + res.documentElement.getAttribute('progress') + 
                "% of " + res.documentElement.getAttribute('size') + " bytes<br/>"
                    + "Now uploading " + res.documentElement.getAttribute('file');
            }
        }
        else
        {
            label.innerText = 'Error updating progress bar';
        }
	    awaitingResult = false;
    }
}