/*
 *  adds the item in position specified by "id" to the cart
 * @param id  - the position of the item to be added to the cart
 */
function addtobag_makeRequest(id, check_size, back_order) {
    check_size = check_size || true;
    var item   = document.getElementById("item_hidden"+id).value;
    var qty    = document.getElementById("qty_select"+id).value;
    var size   = document.getElementById("size_select"+id).value;
    var color  = color_id_value[id];
    var backOrder = 0;
    if(back_order != undefined){
        backOrder = back_order;
    }
    if (check_size == 'true' && !size) {
        return alert("Please select a size");
    }
    
    var sUrl = "/cart/ajaxadd";
    var postData = "i=" + item + "&c=" + color + "&s=" + size + "&q=" + qty +
                   "&id=" + id + "&check_size=" + check_size + "&b=" + backOrder;
    var callback = {
        success: function(o) {
            if (o.responseText == undefined) 
                return;
            if (typeof quickViewPanel != 'undefined' && global_color_id[2] == undefined) {
                quickViewPanel.setBody('');    
                quickViewPanel.hide();
            };
            scroll(0,0);
            open_header_cart(o.responseText, id);
        },
        failure: function(o) {
            if (o.responseText == undefined) return;
                open_header_cart("There was an error while adding the item to your bag.", id);
        }
    };
    YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); 
}

var header_cart_timout;

/*
 *  @param text - te response gotten from the server
 *  @param id  - [1-5] specifies over which "add to cart" button display the message box
 */
function open_header_cart(text,id)
{
    old_text = document.getElementById("header_cart_last_item").innerHTML;
    if (text == '' && old_text == '') {
        window.location = '/cart';
        return;
    }

    ohc1(id);

    var backorderMessage = text.match(/<div id=\"backorder_message\">/);
    if(backorderMessage){
        document.getElementById("header_cart_last_item").innerHTML = text;
        document.getElementById('checkout_link').style.display = 'block';
    }else if (text != '' && text != "There was an error while adding the item to your bag.") {
        
        document.getElementById("header_cart_last_item").innerHTML = text;
        var regex = / (\d+) item\(s\)/;
        var match = regex.exec(text);
        document.getElementById("header_cart_status").innerHTML = '<h2>' + match[1] + '</h2>';
        document.getElementById('checkout_link').style.display = 'block';
        
        clearTimeout(header_cart_timout);
        header_cart_timout = setTimeout("close_header_cart()", 5000);
    }
    
    animate_header_cart(1);
    
    return false;   // don't follow link
}

function close_header_cart()
{
    animate_header_cart(-1);
}
function animate_header_element(id, rate, max)
{
    e = document.getElementById(id);
    
    // skip the animation for browsers that don't support max-height
    if (typeof(e.style.maxHeight) == "undefined") {
        if (rate > 0) {
            e.style.display = "block";
        } else {
            e.style.display = "none";
        }
        return false;
    }
    
    h = parseInt(e.style.maxHeight) + rate;
    if (h > max) h = max;
    if (h < 0) h = 0;
    e.style.maxHeight = h + 'px';
    
    if (h > 0) {
        e.style.display = "block";
    } else {
        e.style.display = "none";
    }
    
    return (rate > 0 && h < max) || (rate < 0 && h > 0);
}

var header_cart_timer;

function animate_header_cart(dir)
{
    if (header_cart_timer) clearTimeout(header_cart_timer);
    
    if (dir > 0) {
        if (animate_header_element("header_cart_open", dir*50, 200)) {}
        else return;
    } else {
        if (animate_header_element("header_cart_open", dir*50, 200)) {}
        else {
            clearTimeout(header_cart_timout);
            ohc2();
            return;
        }
    }
    
    header_cart_timer = setTimeout("animate_header_cart("+dir+")", 100);
}



/*
 *  Substitute a fake header_cart.
 */

var x1_overlay = null;

function ohc1(id) {
    if (x1_overlay) return;
    
    x1_overlay = new YAHOO.widget.Panel("header_cart_x1", {
        visible: true,
        zIndex: 200,
        close: false,
        width: '272px',
        underlay: 'none',
		context:['header','tr','tr']
    });
    
    var x2 = document.getElementById("header_cart_x2")
    x1_overlay.setBody(x2.innerHTML);
    x2.innerHTML = '';
    x1_overlay.render(document.body);
}

function ohc2() {
    var x2 = document.getElementById("header_cart_x2");
    var x1 = document.getElementById("header_cart_x1");
    
    x2.innerHTML = x1.innerHTML;
    x1_overlay.destroy();
    x1_overlay = null;
}
