var rootUrl = 'http://' + window.location.hostname + '/';

var removeImageUrl = rootUrl + 'images/skin/remove.gif';
var addImageUrl = rootUrl + 'images/skin/cartbutton.gif';

function AddToBasket(itemid,chartimage,type,parameter) {
    if (chartimage.src == removeImageUrl) {
        
        RemoveFromBasket(itemid,chartimage,type,parameter,null,true); 
        return;
    }
    $(chartimage).attr("src", removeImageUrl);
    jQuery.ajax({
        cache:false,
        url: rootUrl + "ajaxtools/Basket.aspx?action=additem&itemid=" + itemid + "&type=" + type + "&parameter=" + parameter,
        success: function(msg) {
            AddToBasketCompleted();
        },
        error: function(xmlHttpRequest, error) {
            alert(xmlHttpRequest.status + '\n' + xmlHttpRequest.statusText + '\n' + xmlHttpRequest.responseText + '\n' + error);
        }
    });
    
    
}
function AddToBasketCompleted() 
{	
        UpdateBasket();	
}

function RemoveFromBasket(itemid,chartimage,type,parameter, elementToRemove,updateBasket)
{

    jQuery.ajax({
        url: rootUrl + "ajaxtools/Basket.aspx?action=removeitem&itemid=" + itemid + "&type=" + type + "&parameter=" + parameter,
        cache: false,
        success: function(msg) {
            RemoveFromBasketCompleted(chartimage, type, parameter, elementToRemove, updateBasket);
        },
        error: function(xmlHttpRequest, error) {
            alert(xmlHttpRequest.status + '\n' + xmlHttpRequest.statusText + '\n' + xmlHttpRequest.responseText + '\n' + error);
        }
    });
    
}
function RemoveFromBasketCompleted(chartimage, type, parameter, elementToRemove,updateBasket) {
    if(updateBasket)
        UpdateBasket();
    if (chartimage) {
        $(chartimage).attr("src", addImageUrl);
    }
    if(elementToRemove) {
        if(updateBasket)
            UpdateBasketCount();
        $('#' + elementToRemove).hide();
    }
}

function UpdateBasketCount() {
    jQuery.ajax({
        url: rootUrl + "ajaxtools/Basket.aspx?action=showbasket&type=count",
        cache: false,
        success: function(msg) {
            UpdateBasketCountCompleted(msg);
        },
        error: function(xmlHttpRequest, error) {
            alert(xmlHttpRequest.status + '\n' + xmlHttpRequest.statusText + '\n' + xmlHttpRequest.responseText + '\n' + error);
        }
    });
}

function UpdateBasketCountCompleted(msg) {
    $("#spanItemCount").innerText = msg;
}
function UpdateBasket() {
    jQuery.ajax({
        url: rootUrl+"ajaxtools/Basket.aspx?action=showbasket&type=all",
        cache: false,
        success: function(msg) {
            UpdateBasketCompleted(msg);
        },
        error: function(xmlHttpRequest, error) {
            alert(xmlHttpRequest.status + '\n' + xmlHttpRequest.statusText + '\n' + xmlHttpRequest.responseText + '\n' + error);
        }
    });
}

function UpdateBasketCompleted(msg) {
    $("#basketContent").html(msg);
}
function EmptyBasket() {
    var url=rootUrl+"ajaxtools/Basket.aspx?action=emptybasket";
    var myAjax = new Ajax.Request(url,{
	    method: 'post',
	    onFailure:function() {alert('error.');},
	    onComplete:function(transport) {EmptyBasketCompleted(transport);},
	    onException:function(transport, e){alert(e);}
    });
}
function EmptyBasketCompleted(transport) {
    UpdateBasket();
}

function getXmlHttpRequestObject() 
{	
    if (window.XMLHttpRequest) 
    {		
        return new XMLHttpRequest();	
    } 
    else if (window.ActiveXObject) 
    {
        return new ActiveXObject("Microsoft.XMLHTTP");	
    } 
    else 
    {		
        alert("Your browser does not support Ajax!");	
    }
}

function CheckAllElements(element, check) {
    $("#" + element + " INPUT[type='checkbox']").attr("checked", check);
}
function RemoveCheckedFromBasket(element) {
    var formcollection = document.getElementById(element).getElementsByTagName('INPUT');
    for (var i=0; i<formcollection.length; i++) {
        if (formcollection[i].type.toUpperCase()=='CHECKBOX')
        {
            if(formcollection[i].checked) {
                
                var name = (formcollection[i].name == null?formcollection[i].id:formcollection[i].name)
                var formName = name.replace("checkbox","hiddendiv");
                var formElement = document.getElementById(formName);
                if(formElement) {
                    var collection = formElement.getElementsByTagName('input');
                    var itemID;
                    var type;
                    var parameter;
                    var elementToRemove;
                    for (var y=0; y<collection.length; y++) {
                        if(collection[y].name == 'OxygenID')
                            elementToRemove = collection[y].value;
                        if(collection[y].name == 'type')
                            type = collection[y].value;
                        if(collection[y].name == 'Parameter')
                            parameter = collection[y].value;
                        if(collection[y].name == 'ArticleNumber')
                            itemID = collection[y].value;
                    }
                    RemoveFromBasket(itemID,null,type,parameter, elementToRemove,false)
                }
            }
        }
    }
    UpdateBasketCount();
    UpdateBasket();
}
