var cartUrlPrefix = "/ags/HLACart-war/";
function xsetHLACartFrame() {
    //new Ajax.Request('WhoAmI.jsp',{ method:'get', onSuccess: gotUser, onFailure: gotError});
    new Ajax.Updater('hlacart', cartUrlPrefix+'CartCount.jsp', { 
        method: 'get'
    });
    if (top != window && top.setHLACartFrame) {
        top.setHLACartFrame();
    }
}
function setHLACartFrame() {
    //new Ajax.Request('WhoAmI.jsp',{ method:'get', onSuccess: gotUser, onFailure: gotError});
    new Ajax.Updater('hlacart', cartUrlPrefix+'CartCount.jsp', {
        method: 'get',
        onSuccess: setCartClass
    });
    if (top != window && top.setHLACartFrame) {
        top.setHLACartFrame();
    }
}
function setCartClass(transport) {
    var el = document.getElementById("hlacart");
    var s = transport.responseText;
    if (el && s) {
        if (s.toLowerCase().indexOf(", 0 kb") >= 0) {
            el.className = "empty";
        } else {
            el.className = "full";
        }
    }
}
var cartwhere;
function showCart(where) {
    if (where != null) cartwhere = where;
    new Ajax.Updater(cartwhere, cartUrlPrefix+'CartDisplay.jsp', { 
        method: 'get'
    });
}
function closeCart() {
    setHLACartFrame();
}
function toggleMarked(item){
    var what = item.name;
    var marked = item.checked;
    new Ajax.Request(cartUrlPrefix+'ToggleMarked.jsp',{
        method:'get',
        parameters: {
            itemName: what ,
            mark: marked
        },
        onFailure: errorMarked
    });
}

function errorMarked() {
    alert("Error changing status with server");
    showCart();
}


function testCartItems() {
    cartItems = [["name1","meta1","fname1","furl1","fdesc1","10"],["name2","meta2","fname2","furl2","fdesc2","20"]];
    dadsItems = [["dname1","dmeta1"],["dname2","dmeta2"]];
    addCartItems(cartItems,dadsItems);
}

function addCartItems(arrayOfHLAItems, arrayOfDADSItems) {

    new Ajax.Request(cartUrlPrefix+"AddItemsToCart.jsp",{ 
        method:'post',
        parameters: {
            cartItems: arrayOfHLAItems,
            dadsItems: arrayOfDADSItems
        },
        onSuccess: setHLACartFrame,
        onFailure: errorMarked
    });

}

function addCartItem(itemName,metadata,fname,furl,fdesc,fsize) {
    new Ajax.Request(cartUrlPrefix+"AddItemToCart.jsp",{ 
        method:'get',
        parameters: {
            itemName: itemName,
            meta: metadata,
            name: fname,
            url: furl,
            fileDescription: fdesc,
            fileSize: fsize
        },
        onSuccess: setHLACartFrame,
        onFailure: errorMarked
    });
    
}

function addDADSItem(itemName, metadata) {
    new Ajax.Request(cartUrlPrefix+"AddDADSItemToCart.jsp",{ 
        method:'get',
        parameters: {
            itemName: itemName,
            meta: metadata
        },
        onSuccess: setHLACartFrame,
        onFailure: errorMarked
    });

}
function deleteCartItem(item) {
    var what = item.name;
    var doit = confirm("Remove " + what + " from Cart?");
    if (doit) new Ajax.Request(cartUrlPrefix+'DeleteItem.jsp',{
        method:'post',
        parameters:{
            itemName: what
        },
        onSuccess: refreshCart,
        onFailure: errorMarked
    });
    
}

function deleteCartFile(item) {
    var what = item.name;
    var fname = what.split("/",2);
    var doit = confirm("Remove File " + fname[1] + " from collection " + fname[0] + "?");
    
    if (doit) new Ajax.Request(cartUrlPrefix+'DeleteFile.jsp',{ 
        method:'post',
        parameters:{
            itemName: fname[0],
            fileName: fname[1]
            },
        onSuccess: refreshCart,
        onFailure: errorMarked
    });
    
}

var hlabutton;
var dadsbutton;

function downloadHLA(response) {
    if (response.responseText == "true") {
        hlabutton.submit();
    }
}

function downloadDADS(response) {
    if (response.responseText == "true") {
        dadsbutton.submit();
    //var win1 = window.open(cartUrlPrefix+"DADSCartRetrieval.jsp","Forwarding to MAST Retrieval");
    }
    refreshCart();
    new Ajax.Request(cartUrlPrefix+"HasHLA.jsp",{
        method:'get',
        onSuccess: downloadHLA,
        onFailure: refreshCart
    });
}

function initDADSWindow() {
    window.focus();
    document.mastform.submit();
}


function downloadCart() {
    //new Ajax.Request(cartUrlPrefix+"WhenDone",{ method:'get',onSuccess: realDownloadCart, onFailure: realDownloadCart});
    //var win1 = window.open("/ags/HLACart-war/DADSCartRetrieval.jsp","Forwarding to MAST Retrieval");
    hlabutton = document.HLASub;
    dadsbutton = document.DADSSub;
    new Ajax.Request(cartUrlPrefix+"HasDADS.jsp",{
        method:'get',
        onSuccess: downloadDADS,
        onFailure: downloadCart2
    });
}

function downloadCart2() {
    new Ajax.Request(cartUrlPrefix+"HasHLA.jsp",{
        method:'get',
        onSuccess: downloadHLA,
        onFailure: refreshCart
    });

}

function spud() {
    alert("Download Complete");
    refreshCart();
}

function spudErr() {
    refreshCart();
}

function clearCart() {
    var doit = confirm("Clear all cart contents?");
    if (doit) new Ajax.Request(cartUrlPrefix+'ClearCart.jsp',{ 
        method:'get',
        onSuccess: refreshCart,
        onFailure: errorMarked
    });
}

function refreshCart() {
    setHLACartFrame();
    showCart();
}

function getContainerName(datasetname) {
    if (datasetname.search(/^HST_/) != -1) {
    
        var splits = datasetname.split("_");
        if ( splits.length >= 3) {
            return splits[0]+"_"+splits[1]+"_"+splits[2];
        }
    }
    if (datasetname.search(/^HNG_/) != -1) {
    
        splits = datasetname.split("_");
        if ( splits.length >= 3) {
            return splits[0]+"_"+splits[1];
        }
    }
    
    if (datasetname.length == 9) {
        return datasetname.substring(0,4)+"xxxxx";
    }
    
    return datasetname;
}