var WAVE_SALE = 0.50;

var cost_price = 0;
// var bw_diff = 0.00;

var denybool = false;

var newwin = null;

function generateArtist(items) {
    var artist = "";
    var artisttracker = "";
    for (i=1; i<=items; i++) {
        aval = eval('document.finalform.artist'+i).value;
        if (!artisttracker.match(eval('/.*;'+aval+';.*/i'))) {
            if (i>1) artist = artist + " / ";
            artist = artist + aval;
        }
        artisttracker = artisttracker + ";"+aval+";";
    }
    if (artist.length > 255) {
        artist = artist.substring(0,250) + "...";
    }
    document.finalform.id0_artist.value = artist;
}

function generateTitle(items) {
    var title = "";
    for (i=1; i<=items; i++) {
        title = title + eval('document.finalform.title'+i).value;
        if (i != items) title = title + " / ";
    }    
    if (title.length > 255) {
        title = title.substring(0,250) + "...";
    }
    document.finalform.id0_title.value = title;
}

function checkArtistTitle(items) {
    if(document.finalform.id0_title.value.length == 0) {
        generateTitle(items);
    }

    if(document.finalform.id0_artist.value.length == 0) {
        generateArtist(items);
    }
}

function setDeny(val) {
    denybool = val;
}

function ch(from, to) {
    var letters = eval('document.addauth.'+from+'.value.length') + 1;
    if (letters <= 4) {
        eval('document.addauth.'+from).focus();
    } else {
        eval('document.addauth.'+to).focus();
    }
}

function denyconf(check) {

    var reason = eval('document.'+check+'.value');
  
    if (denybool == true) {
        denybool = false;
        if (confirm('Are you sure you want to deny this label?')) {
            if (reason == '' || reason == 'No deny reason specified.') {
                alert('Please enter a reason for denial.');
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }

}

function confirmstart(v) {
    if (v == false) {
        alert('You must agree with the CD sale Terms and Conditions.');
    }
    return v;
}

function confirmstop() {
    if (confirm('Are you sure you want to stop selling this release as CD?')) {
        return true;
    } else {
        return false;
    }
}

function openCDTAC()	{
    // Opens the Terms & Conditions popup.
    var thewindow = window.open('http://www.chemical-records.co.uk/static_pages/cd_tac.html', 'tac', config='height=400,width=490,toolbar=no,scrollbars=yes,resizable=yes,location=no,status=yes');
}

function validateUploadForm(items) {

    // if (uploading == true) { return false; }

    if (checkWindow('newwin')) {
        alert("Files are already being uploaded. Please close the upload popup before uploading again.");
        return false;
    }

    if (checkWindow('uppop')) {
        alert("Files are already being uploaded. Please close the upload popup before uploading again.");
        return false;
    }

    var empty = true;
    for (var i=1;i<=items;i++) {
        var ctrl = eval('document.uploadform.uploadtype'+i);
        if (null != ctrl) {
            for (var j=0;j<ctrl.length;j++) {
                var el = eval('document.uploadform.uploadtype'+i+'['+j+']');
                if (el.checked == true) {

                    if (el.value == 'now') {
                        empty = false;
                        var m = eval('document.uploadform.format'+i);
                        if (m.value == 'Please Select' || m.value == 'N/A') {
                            alert('Please enter a media format for Track '+i+' or select \'Upload Later\'.');
                            return false;
                        }
                        var f = eval('document.uploadform.browse'+i);
                        if (f.value == '') {
                            alert('Please enter a file for Track '+i+' or select \'Upload Later\'.');
                            return false;
                        }
 
                        var archive = false;

                        if (f.value.match(/.*\.zip$/i)) {
                            archive = true;
                        }

                        if (f.value.match(/.*\.tar$/i)) {
                            archive = true;
                        }
                        if (!archive) {

                            if (m.value == 'BMP_IMAGE') {
                                if (!f.value.match(/.*\.bmp$/i)) {
                                    alert('Track '+i+' must be a .bmp file.');
                                    return false;
                                }
                            } else if (m.value == 'DIVX_VIDEO' || m.value == 'XVID_VIDEO') {
                                if (!f.value.match(/.*\.avi$/i)) {
                                    alert('Track '+i+' must be an .avi file.');
                                    return false;
                                }
                            } else if (m.value == 'GIF_IMAGE') {
                                if (!f.value.match(/.*\.gif$/i)) {
                                    alert('Track '+i+' must be a .gif file.');
                                    return false;
                                }
                            } else if (m.value == 'JPEG_IMAGE') {
                                if (!f.value.match(/.*\.jpe?g$/i)) {
                                    alert('Track '+i+' must be a .jpg or .jpeg file.');
                                    return false;
                                }
                            } else if (m.value.match(/^MP3_.*/i)) {
                                if (!f.value.match(/.*\.mp3$/i)) {
                                    alert('Track '+i+' must be an .mp3 file.');
                                    return false;
                                }
                            } else if (m.value == 'MPEG_VIDEO') {
                                if (!f.value.match(/.*\.mpe?g$/i)) {
                                    alert('Track '+i+' must be an .mpg or .mpeg file.');
                                    return false;
                                }
                            } else if (m.value == 'WAVE_FILE') {
                                if (!f.value.match(/.*\.wave?$/i)) {
                                    alert('Track '+i+' must be an .wav or .wave file.');
                                    return false;
                                }
                            } else if (m.value == 'FLAC_FILE') {
                                if (!f.value.match(/.*\.flac?$/i)) {
                                    alert('Track '+i+' must be an .fla or .flac file.');
                                    return false;
                                }
                            }
                        }
                    }
                }
            }
        }
        var ctrl = document.uploadform.uploadtypeart;
        if (null != ctrl) {
            for (var j=0;j<ctrl.length;j++) {
                var el = eval('document.uploadform.uploadtypeart['+j+']');
                if (el.checked == true) {
                    if (el.value == 'now') {
                        var m = document.uploadform.artformat;
                        if (m.value == 'Please Select' || m.value == 'N/A') {
                            alert('Please enter an artwork format or select \'Upload Later\'.');
                            return false;
                        }
                        var f = document.uploadform.browseart;
                        if (f.value == '') {
                            alert('Please enter an artwork file or select \'Upload Later\'.');
                            return false;
                        }

                        if (m.value == 'BMP') {
                            if (!f.value.match(/.*\.bmp$/i)) {
                                alert('Artwork must be a .bmp file.');
                                return false;
                            }
                        } else if (m.value == 'GIF') {
                            if (!f.value.match(/.*\.gif$/i)) {
                                alert('Artwork must be a .gif file.');
                                return false;
                            }
                        } else if (m.value == 'JPG') {
                            if (!f.value.match(/.*\.jpe?g$/i)) {
                                alert('Artwork must be a .jpg or .jpeg file.');
                                return false;
                            }
                        }
                        empty = false;
                    }
                }
            }
        }
    }

    if (empty == true) {
        alert( 'No files selected for upload' );
        //  document.location.href = '/sc/servlet/DigitalUploads?p=Edit';
        return false;
    }

    return true;
}

isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;

function changeGenre() {
    var ctrl = document.titleform.category;
    if (ctrl.value == 'Other...') {
        document.titleform.othercat.style.visibility = 'visible';
        document.titleform.othercat.visibility = 'visible';
    } else {
        document.titleform.othercat.style.visibility = 'hidden';
        document.titleform.othercat.visibility = 'hidden';
    }
}


function getCheckedValue(radioObj) {
    if(!radioObj)
        return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
        if(radioObj.checked)
            return radioObj.value;
        else
            return "";
    for(var i = 0; i < radioLength; i++) {
        if(radioObj[i].checked) {
            return radioObj[i].value;
        }
    }
    return "";
}

function changeCDPrice() {

    
}
   
function disableInfoMCPSEntry( track, disabled )
{
    eval( 'document.finalform.numcps' + track ).disabled=disabled;
    eval( 'document.finalform.nuiswc' + track ).disabled=disabled;
    eval( 'document.finalform.nuisrc' + track ).disabled=disabled;
}
 
function insertCostDetails( track , cost_price, bw_diff )
{
    var str = '<span >&#163;' +cost_price.toFixed(2)+' goes to you.</span>&nbsp;<a style=\"color:blue;text-decoration:underline;\" href=\"/sc/servlet/DigitalPriceBreakdown\" target=\"_blank\">?</a>';

    if (bw_diff > 0) 
    {
        str += '<br /><span style=\"font-style:italic;font-weight:normal;\">(inc. &#163;'+bw_diff.toFixed(2)+' bandwidth charge)</span>';
    }

    var divid = 'yp'+track;

    replaceInnerHTML( divid, str );
}
  
function replaceInnerHTML( divid, newInnerHTML )
{
    if (isNS4) 
    {
        objElement = document.layers[divid];
    }  
    else if (isIE4) 
    {
        objElement = document.all[divid];
    }   
    else if (isIE5 || isNS6) 
    {
        objElement = document.getElementById(divid);
    }

    objElement.innerHTML = newInnerHTML;
}

function openGlossary( faqid )	{
    // Opens the FAQ popup, passed "faqid" is used as an anchor reference on the new window
    var thewindow = window.open('http://www.chemical-records.co.uk/static_pages/DigitalGlossary.html#' + faqid, 'faq', config='height=400,width=490,toolbar=no,scrollbars=yes,resizable=yes,location=no,status=yes');
}
 
function confirmDelete(track) {
    if (confirm('Are you sure you want to delete Track #' +track+ '?')) {
        return true;
    } else {
        return false;
    }
}

function confirmDeleteAll() {
    if (confirm('Are you sure you want to delete this release? This will delete all files and information!') == true) {
        return true;
    } else {
        return false;
    }
}

function initFinalPage(items) {
    for (var i=1;i<=items;i++) {
        var ctrl = eval('document.finalform.package'+i);
        if (ctrl && ctrl.checked == true) {
            switchDiv(i);
        }
    }
} 

function initUploadPage(items) {
    for (var i=1;i<=items;i++) {
        var ctrl = eval('document.uploadform.uploadtype'+i);
        for (var j=0;j<ctrl.length;j++) {
            var el = eval('document.uploadform.uploadtype'+i+'['+j+']');
            if (el.checked == true) {
                if (el.value == 'now') {
                    var m = eval('document.uploadform.format'+i);
                    var f = eval('document.uploadform.browse'+i);
                    m.disabled = false;
                    f.disabled = false;
                }
            }
        }
    }

    var ctrl = document.uploadform.uploadtypeart;
    for (var j=0;j<ctrl.length;j++) {
        var el = eval('document.uploadform.uploadtypeart['+j+']');
        if (el.checked == true) {
            if (el.value == 'now') {
                document.uploadform.artformat.disabled = false;
                document.uploadform.browseart.disabled = false;
            }
        }
    }
}

function validateImageForm() {
    var f = document.uploadform.newpic.value;
 
    if (f == '') {
        return false;
    } 

    if (f.match(/.*\.gif$/i)) {
        return true;
    }

    if (f.match(/.*\.bmp$/i)) {
        return true;
    }

    if (f.match(/.*\.jpg$/i)) {
        return true;
    }

    if (f.match(/.*\.jpeg$/i)) {
        return true;
    }

    alert("Invalid image type detected. Please upload in gif, bmp or jpg format.");
    return false;
}


function submitImageForm() {
    //should make safari (on OS X) work - need some way to test
    document.uploadform.enctype = "multipart/form-data";
    document.uploadform.encoding = "multipart/form-data";
    var act = document.uploadform.action;
    document.uploadform.action = act+"&image=true";
    document.uploadform.submit();
    document.uploadform.action = act;
}

function submitUploadForm(items) {

    uploading = true;

    if (checkWindow('uppop')) {
        return false;
    }

    if (checkWindow('newwin')) {
        return false;
    }

    if(!(newwin && newwin.open) || newwin.closed) {
        newwin = window.open('', 'uppop', 'width=500, height=350, scrollbars,location,resizable');
        newwin.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\" />");
        newwin.document.write("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
        newwin.document.write("<head>");
        newwin.document.write("<title>Uploading and Validating Files...</title>");
        newwin.document.write("<base href=\"http://www.chemical-records.co.uk\" />");
        newwin.document.write("</head>");
        newwin.document.write("<body>");
        newwin.document.write("<iframe frameborder=\"0\" id=\"prg\" src=\"/progress.html\" width=\"99%\" height=\"300px\" scrolling=\"no\"></iframe>");
        newwin.document.write("<iframe frameborder=\"0\" id=\"upiframe\" name=\"upiframe\" width=\"95%\" height=\"300px\" scrolling=\"auto\" style=\"display:none;\"></iframe><br />");
        newwin.document.write("</body>");
        newwin.document.write("</html>");

        document.uploadform.enctype = "multipart/form-data";
        document.uploadform.encoding = "multipart/form-data";
        var act = document.uploadform.action;
        document.uploadform.action = act+"&upload=true";
        document.uploadform.target = 'upiframe';
      
        document.uploadform.submit();
        document.uploadform.action = act;

        newwin.document.close();
    }

    return newwin;
}


function getHTTPObject() { 
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
	
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
    }
 
    return false;
}

var stopprogress = false;
var progressstarted = false

function getProgress(){
    if (stopprogress) return true;
    
    var http = getHTTPObject(); 
    http.open("GET", "/sc/servlet/UploadProgress", true); 
    http.onreadystatechange = function() { 
        if (http.readyState == 4)  {     
                       
            var doc = http.responseXML.getElementsByTagName('progress');
            
            if( doc != null && doc.length >= 1 )
            {
                doc = doc[0];
            }
            else
            {
                doc = null;
            }

            var processing = false;
            if( document.getElementById("progressinner") == null )
            {
                //not loaded yet
                processing = true;
            }
            if( doc != null )
            {
                processing = true;
                var sofar = doc.getElementsByTagName('sofar')[0].getAttribute('value');
                var tot = doc.getElementsByTagName('total')[0].getAttribute('value');
                var time = doc.getElementsByTagName('time')[0].getAttribute('value');
                                
                var percent = sofar / tot;
                percent = percent * 100;    
                percent = percent.toFixed(0);
                sofar = (sofar / 1024).toFixed(0);
                tot = (tot / 1024).toFixed(0);
                //speed = (speed * 1.0).toFixed(0); 
                
                document.getElementById("progressinner").style.width = percent + "%";                                    
                
                var currText = document.getElementById("sofar").firstChild;
                if( currText == null )
                {
                    var newText = document.createTextNode( sofar + ' of ' + tot + ' KB - Estimated Upload Time: ' + time );
                    document.getElementById("sofar").appendChild( newText );
                }
                else
                {
                    currText.data = sofar + ' of ' + tot + ' KB - Estimated Upload Time: ' + time;
                }
                
                
                if (percent < 100){
                    setTimeout("getProgress()", 5000);
                } else {
                    processing = false;
                }
            }
            
            if( !processing )
            {
                top.document.getElementById("prg").style.display="none";
                top.document.getElementById("upiframe").style.display="block";
                
                stopprogress = true;
            }
        }
    }
    http.send(null);
}

function startProgress() {

    if( !progressstarted )
    {
        progressstarted = true;
        setTimeout("getProgress()", 1000);
    }
}

function stopProgress() {

}

function switchDiv(id) {

    divid = 'pr' + id;
    divid2 = 'yp' + id;

    if (isNS4) {
        objElement = document.layers[divid];
        objElement2 = document.layers[divid2];
    } else if (isIE4) {
        objElement = document.all[divid];
        objElement2 = document.all[divid2];
    } else if (isIE5 || isNS6) {
        objElement = document.getElementById(divid);
        objElement2 = document.getElementById(divid2);
    }  

    vis = objElement.style.visibility;
    vis2 = objElement2.style.visibility;

    if(isNS4){
        if(vis == "hide" || vis == "hidden") {
            objElement.visibility = "visible";
            objElement2.visibility = "visible";
        } else {
            objElement.visibility = "hidden";
            objElement2.visibility = "hidden";
        }
    } else {
        if(vis == "hide" || vis == "hidden") {
            objElement.style.visibility = "visible";
            objElement2.style.visibility = "visible";
        } else {
            objElement.style.visibility = "hidden";
            objElement2.style.visibility = "hidden";
        }
    }
} 

function switchDivTwo(id) {

    divid = 'pr' + id;

    if (isNS4) {
        objElement = document.layers[divid];
    } else if (isIE4) {
        objElement = document.all[divid];
    } else if (isIE5 || isNS6) {
        objElement = document.getElementById(divid);
    }  

    vis = objElement.style.visibility;

    if(isNS4){
        if(vis == "hide" || vis == "hidden") {
            objElement.visibility = "visible";
        } else {
            objElement.visibility = "hidden";
        }
    } else {
        if(vis == "hide" || vis == "hidden") {
            objElement.style.visibility = "visible";
        } else {
            objElement.style.visibility = "hidden";
        }
    }
}

function refreshImage(imgid) {

    var thisimg = document.getElementById(imgid);
    thisimg.src = thisimg.src+'?'+(new Date()).getTime();
    return false; 

}

function checkWindow(myName) {
    try {
        if(eval("window."+myName+".document")) {
            return true;
        }
    } catch(e) {
        return false;
    }
}
   
//check the current file selection is OK when a format option is selected
function updateFormat( fileField, formatField )
{
    if( formatField.value == '' || formatField.value == 'Please Select' )
    {
        fileField.value='';
        fileField.disabled=true;
    }
    else
    {
        fileField.disabled=false;
        if( !fileMatchesFormat( fileField, formatField.value ) && formatField.value != 'Please Select' )
        {
            fileField.value='';
        }
    }
}
   
//check the format is OK when a file is selected
function updateFile( fileField, format )
{        
    if( !fileMatchesFormat( fileField, format ) && format != 'Please Select' ){
        alert( "only " + format + " files are allowed" );
        fileField.value='';
    };
     
}
   
function fileMatchesFormat( fileField, format )
{
    //audio files may also be supplied in archive files
    var orArchives = "|.zip|.tar|.tar.gz|.tgz|.gz";
       
    var extension;
    if( format == "MP3_320KBPS" ){
        extension = ".mp3" + orArchives;
    } else if( format == "WAVE_FILE" ) {
        extension = ".wav" + orArchives;
    } else if( format == "FLAC_FILE" ) {
        extension = ".flac" + orArchives;
    } else if( format == "BMP" ) {
        extension = ".bmp";
    } else if( format == "GIF" ) {
        extension = ".gif";
    } else if( format == "JPG" ) {
        extension = ".jpe?g";
    }
     
    return fileField.value.match( eval( '/.*\\' + extension + '$/i') );
}



jQuery(document).ready(function()
{

    prepareCategorySelections();
    prepareUploads();
       
}
);

function prepareCategorySelections()
{
    jQuery('.catupdate').hide();
    jQuery('#category').change( function()
    {
        jQuery( '#subcat' ).empty();
        jQuery( '#subcat' ).append('<option class="static" value="">Please Select</option>');
        jQuery( '#subcat' ).removeAttr( 'disabled');
        jQuery( '#subsubcat' ).empty();
        jQuery( '#subsubcat' ).append('<option class="static" value="">Please Select</option>');
        jQuery( '#subsubcat' ).attr( 'disabled', 'disabled');
        jQuery.get('/sc/servlet/CategorySelect',
        {
            'gid' : $(this).attr('value')
        },
        function(data, textStatus)
        {
            jQuery(data).find('SubCategories>subcat').each( function()
            {
                jQuery( '#subcat' ).append( '<option class="content" value="' + $(this).attr('id') + '">' + $(this).attr('name') + '</option>');

            });
        }, 'xml' );
    });
    jQuery('#subcat').change( function()
    {
        jQuery( '#subsubcat' ).empty();
        jQuery( '#subsubcat' ).append('<option class="static" value="">Please Select</option>');
        jQuery( '#subsubcat' ).attr( 'disabled', 'disabled');
        jQuery.get('/sc/servlet/SubCategorySelect',
        {
            'gid' : $(this).attr('value')
        },
        function(data, textStatus)
        {
            jQuery( '#subsubcat' ).attr( 'disabled', 'disabled');
            jQuery(data).find('SubSubCategories>subsubcat').each( function()
            {
                jQuery( '#subsubcat' ).removeAttr( 'disabled');
                jQuery( '#subsubcat' ).append( '<option class="content" value="' + $(this).attr('id') + '">' + $(this).attr('name') + '</option>');

            });
        }, 'xml' );
    });
}

function prepareUploads()
{
    jQuery( '.file.audio').blur( function()
    {
        var value = $(this).attr('value');
        if( value.length > 0 )
        {

            if( ! new RegExp('.*[.]wav|.*[.]mp3|.*[.]flac?|.*[.]zip|.*[.]tar', 'i').test( value ) )
            {
                  alert( 'invalid file')  ;
            }
            else
                {

                }
        }
    });
    jQuery( '#artfile').blur( function()
    {
        var value = $(this).attr('value');
        if( value.length > 0 )
        {

            if( ! new RegExp('.*[.]gif|.*[.]png|.*[.]jpe?g|.*[.]zip|.*[.]tar', 'i').test( value ) )
            {
                  alert( 'invalid file')  ;
            }
            else
                {
                    
                }
        }
    });

    var uploadFormContents = jQuery( '#uploadform' ).contents().clone();
    jQuery( '#uploadform').remove();
    jQuery( '#upload').append( uploadFormContents );

    jQuery( '#upload .file').each( function()
    {
        var catalogIndex = jQuery('#catalogIndex').attr('value');
        var re = new RegExp( 'file(.*)' );
        var id = jQuery( this ).attr( 'id' );
        var fileID = id.replace(re, "$1");
        var uploadID = catalogIndex + '-' + fileID;
        jQuery( this ).after( '<iframe id="frame'+fileID+'" name="frame'+fileID+'" style="display:none;"></iframe>');
        jQuery(this).wrap( '<form id="form'+fileID+'" method="post" enctype="multipart/form-data" action="/sc/yousell/upload/'+uploadID+'"></form>' );
        jQuery(this).before('<input type="hidden" name="catalogIndex" value="'+catalogIndex+'"/><input type="hidden" name="uploadid" value="'+uploadID +'"/>');
    });
    jQuery('#upload .file').change( function()
    {
        var re = new RegExp( 'file(.*)' );
        var id = jQuery( this ).attr( 'id' );
        var fileID = id.replace(re, "$1");
        var form = jQuery( '#form' + fileID);
        form.attr( 'target', 'frame' + fileID );
        jQuery( this ).siblings( '.progressoutline').remove();
        jQuery( this ).after( '<div class="progressoutline" style="width:30em;height:2em;border:0.083em solid black;"><div class="progress" id="progress'+fileID+'" style="display:inline-block; width:0px; height:1.75em; font-weight:bold; background-color:red; white-space:nowrap; padding-top: 0.25em;"></div></div>');
        form.submit();
        var fn = function() { checkProgress( fileID ); }
        setTimeout( fn, 1000);
    }
    );
    jQuery( '#upload #submit').remove();
}

function stopUpload( itemID )
{
    jQuery( '#frame' + itemID).stop();
}

function checkProgress( itemID )
{
    var catalogIndex = jQuery('#catalogIndex').attr('value');
    jQuery.get( '/sc/servlet/UploadProgress', { 'uploadid' : catalogIndex +'-'+ itemID}, function( data, textStatus )
    {
        var complete = jQuery(data).find('complete').is('complete');
        if( complete )
        {
            //alert( 'complete : ' + itemID );
            //todo need to find error messages
            jQuery( '#progress' + itemID ).css( 'background-color', 'green');
            jQuery( '#progress' + itemID ).css( 'color', 'white');
            jQuery( '#progress' + itemID ).css( 'width', '30em');
            jQuery( '#progress' + itemID ).text( 'Upload complete');
        }
        else if( jQuery(data).find('error').is('error') )
        {
            jQuery( '#progress' + itemID ).css( 'background-color', 'red');
            jQuery( '#progress' + itemID ).css( 'color', 'white');
            jQuery( '#progress' + itemID ).css( 'width', '30em');
            jQuery( '#progress' + itemID ).text( 'Error: ' + jQuery(data).find('error').attr( 'value' ) );
        }
        else
        {
            if( jQuery(data).find('notfound').is('notfound') )
            {
               jQuery( '#progress' + itemID ).css( 'background-color', 'red');
               jQuery( '#progress' + itemID ).css( 'color', 'white');
               jQuery( '#progress' + itemID ).css( 'width', '30em');
               jQuery( '#progress' + itemID ).text( 'Upload failed');
            }
            else
            {
                
                var bytesSoFar = jQuery(data).find('sofar').attr( 'value' );
                var bytesTotal = jQuery(data).find('total').attr( 'value' );
                var items = jQuery(data).find('items').attr( 'value' ); //TODO remove - should be 1
                var speed = jQuery(data).find('speed').attr( 'value' );
                var estimatedTime = jQuery(data).find('time').attr( 'value' );

                jQuery( '#progress' + itemID ).css( 'width', (bytesSoFar * 30 / bytesTotal) + 'em' );
                var fn = function() { checkProgress( itemID ); }
                setTimeout(fn, 1000);
            }

        }

        }, 
        'xml'
    );

    
}
   
