
SliceHandler.prototype.setSelectedSlice = SliceHandler_setSelectedSlice;
SliceHandler.prototype.getSelectedSlice = SliceHandler_getSelectedSlice;

SliceHandler.prototype.getSliceById = SliceHandler_getSliceById;

SliceHandler.prototype.setMainImageUrl = SliceHandler_setMainImageUrl;
SliceHandler.prototype.showEnhanced = SliceHandler_showEnhanced;

SliceHandler.prototype.isValid = SliceHandler_isValid;

function SliceHandler()
{
    this.selectedSliceId = "productColor0";
}

function SliceHandler_setSelectedSlice(id)
{
    var selectedSlice = this.getSelectedSlice();
    if(selectedSlice)
    {
        selectedSlice.setSelected(false);
    }
    var slice = this.getSliceById(id);
    this.selectedSliceId = id;
    slice.setSelected(true);
    this.setMainImageUrl(slice.getMainImageUrl());
}

function SliceHandler_getSelectedSlice()
{
    var slice = sliceMap[this.selectedSliceId];
    return slice;
}

function SliceHandler_getSliceById(id)
{
    return sliceMap[id];
}

function SliceHandler_setMainImageUrl(url)
{
    var el = document.getElementById("image_main");
    el.src = url;
}

function SliceHandler_showEnhanced()
{
    var slice = this.getSelectedSlice();
    window.open(slice.getEnhancedUrl(), "enhanced", "width=560,height=585,top=0,left=0,resizable=yes");
}

function SliceHandler_isValid()
{
    var hasSelection = false;
    for(var s in sliceMap)
    {
        var slice = sliceMap[s];
        if(!slice.isValid())
        {
            return false;
        }
        if(slice.hasSelection())
        {
            hasSelection = true;
        }
    }
    if(hasSelection)
    {
        return true;
    }
    else
    {
        alert("You must select a color/size and enter a quantity.");
        return false;
    }
}
