
function Cart_UpdateQty(itemId, qty){
    Photocore.Modules.WebApi.Cart_UpdateQty(itemId, qty, Cart_UpdateQty_callback);
    var cost = $get('span_unitcost_' + itemId).innerHTML;
    $get('span_qty_' + itemId).innerHTML = qty;
    $get('span_cost_' + itemId).innerHTML = '$' + (qty * cost);
}

function Cart_UpdateQty_callback(val){
    // val should be array {subtotal, readytocheckout}
    if(val){
        $get('cart_subtotal').innerHTML = val[0];
        
        // if ready to checkout, show button
        if(val[1]=='true')
            $get(checkoutLinkId).style.display = 'block';
            
    } else {
        alert('error while saving');
    }
}

function Cart_DuplicateItem(itemId){
    Photocore.Modules.WebApi.Cart_DuplicateItem(itemId);
    window.location.reload();
}

function Cart_SetLicensingSize(itemId, licensingOptionId){
    Photocore.Modules.WebApi.Cart_SetLicensingSize(itemId, licensingOptionId, Cart_SetLicensingSize_callback, Cart_Failed_callback, itemId);
}

function Cart_SetLicensingSize_callback(val, itemId){
    if(val){
        // this should be a printSizeOption json object
        
        // set price
        $get('span_unitcost_' + itemId).innerHTML = val.Price;
        
        // update qty for one licensing item only
        Photocore.Modules.WebApi.Cart_UpdateQty(itemId, 1, Cart_UpdateQty_callback);
        $get('span_cost_' + itemId).innerHTML = '$' + val.Price;
        
        // show total
        $get('div_total_' + itemId).style.visibility = 'visible';
    } else {
        alert('error.');
    }
}

function Cart_SetPrintSize(itemId, printOptionId){
    Photocore.Modules.WebApi.Cart_SetPrintSize(itemId, printOptionId, Cart_SetPrintSize_callback, Cart_Failed_callback, itemId);
}

function Cart_SetPrintSize_callback(val, itemId){
    if(val){
        // this should be a printSizeOption json object
        
        // set price
        $get('span_unitcost_' + itemId).innerHTML = val.Price;
        
        // update qty
        Cart_UpdateQty(itemId, $get('span_qty_' + itemId).innerHTML);
        
        // show total
        $get('div_total_' + itemId).style.visibility = 'visible';
        
        // DISABLED FOR 1.0 RELEASE - show crop options 
        //var sizeArgs = val.Size.Width + 'x' + val.Size.Height;
        if(val.Size){
            var ratio = val.Size.Height / val.Size.Width;
            var sizeArgs = ratio.toString().substr(0,ratio.toString().indexOf('.')+3);
            if(sizeArgs.indexOf('.')<0)
                sizeArgs += '.00';
            Cart_ShowCrops(itemId, sizeArgs);
        }
        
    } else {
        alert('error.');
    }
}

function Cart_SetCrop(itemId, cropAlign){       
        
    Photocore.Modules.WebApi.Cart_SetCrop(itemId, cropAlign, Cart_SetCrop_callback, Cart_Failed_callback, cropAlign);
}

function Cart_SetCrop_callback(val, cropAlign){
    if(val!=null){
        var itemId = val.ItemId;
    
        var cropL = $get('cropImg_' + itemId + '_L');
        var cropC = $get('cropImg_' + itemId + '_C');
        var cropR = $get('cropImg_' + itemId + '_R');
        
        cropL.className = '';
        cropC.className = '';
        cropR.className = '';
            
        if(cropAlign.toLowerCase()=='l')
            cropL.className = 'selectedCrop';
        else if(cropAlign.toLowerCase()=='c')
            cropC.className = 'selectedCrop';
        else if(cropAlign.toLowerCase()=='r')
            cropR.className = 'selectedCrop';
    
    }
}

function Cart_ShowCrops(itemId, sizeArgs){    
    var imgs = $get('crops_' + itemId).getElementsByTagName('img');
    
    for(i=0;i<imgs.length;i++){
        var src = imgs[i].longDesc;
    
        while(src.indexOf('[ratio]')>0)
            src = src.replace('[ratio]', sizeArgs);
            
        while(src.indexOf('%5Bratio%5D')>0)
            src = src.replace('%5Bratio%5D', sizeArgs);   
            
        imgs[i].src = src;
    }
    //$get('crops_' + itemId).innerHTML = html;
    
    $get('crops_' + itemId).style.visibility = 'visible';
}

function Cart_DeleteItem(itemId){
    Photocore.Modules.WebApi.Cart_DeleteItem(itemId, Cart_DeleteItem_callback);
    $get('cartItem_' + itemId).style.display = 'none';
}

function Cart_DeleteItem_callback(val){
    if(val<=0){
        // cart is empty, go home now
        alert('You don\'t have anything left in your cart, returning you to the main page.');
        window.location.href = '/';
    }else{
        $get('mycart_count').innerHTML = val;
        $get('link_mycart').style.display = 'block';
    } 
}

function Cart_Failed_callback(val){
    alert('error.');
}

function Cart_AddPrint(link, pictureId){    
    Photocore.Modules.WebApi.Cart_AddPrint(pictureId, Cart_AddPrint_callback);
    
    // highlight the link we just pressed
    if(link){
        var parent = link.parentNode;
        if(parent){
            if(parent.className!='menuRow')
                parent = parent.parentNode;
            
            if(parent.className=='menuRow'){
                var oldcolor = parent.style.backgroundColor;
                parent.style.borderBottom = 'solid thin #ff7f00';
                parent.style.borderTop = 'solid thin #ff7f00';
                parent.style.marginTop = '3px';
                parent.innerHTML = 'Added to Cart';     
            }
        }
    }
}

function Cart_AddPrint_callback(val){
    if(val){             
        if(val>0)
            $get('mycart_count').innerHTML = val;
            $get('link_mycart').style.display = 'block';
    }else{
        alert('Error adding to your cart');
    }
}

function Cart_AddLicense(link, pictureId){    
    Photocore.Modules.WebApi.Cart_AddLicense(pictureId, Cart_AddLicense_callback);
    
    // highlight the link we just pressed
    var parent = link.parentNode;
    if(parent){
        if(parent.className!='menuRow')
            parent = parent.parentNode;
        
        if(parent.className=='menuRow'){
            var oldcolor = parent.style.backgroundColor;
            parent.style.borderBottom = 'solid thin #ff7f00';
            parent.style.borderTop = 'solid thin #ff7f00';
            parent.style.marginTop = '3px';
            parent.innerHTML = 'Added to Cart';     
        }
    }
}

function Cart_AddLicense_callback(val){
    if(val){             
        if(val>0)
            $get('mycart_count').innerHTML = val;
            $get('link_mycart').style.display = 'block';
    }else{
        alert('Error adding to your cart');
    }
}

function Cart_Empty(){
    Photocore.Modules.WebApi.Cart_Empty(Cart_Empty_callback);
}

function Cart_Empty_callback(val){
    if(val)
        window.location.href = '/';
}