var g_orderId = 0;
var g_cartName = "";

var checkedCarts = new Array();


// Onload
$(document).ready(function(){
   
    resizeHeight2("#activeBucket", "#myBuckets");
    resizeHeight2("#orderHistory", "#myWishLists");
    
});


// Resize two boxes height to be the same
function resizeHeight2(selector_a, selector_b) {
    if (!$.browser.safari) {
        if ( parseInt($(selector_a).css('height')) > parseInt($(selector_b).css('height')) ) {
            $(selector_b).css("height", $(selector_a).css('height') );
        } else if ( parseInt($(selector_b).css('height')) > parseInt($(selector_a).css('height')) ) {
            $(selector_a).css("height", $(selector_b).css('height') );
        } 
    } else {
        // Nothing
    }
}
/*
function resizeHeight(selector_a, selector_b) {
    //alert("A " + Ext.get(selector_a).getHeight())
    //alert("B " + Ext.get(selector_b).getHeight())
    if ( Ext.get(selector_a).getHeight() > Ext.get(selector_b).getHeight() ) {
        Ext.get(selector_b).setHeight(Ext.get(selector_a).getHeight() );
    } else if ( Ext.get(selector_b).getHeight() > Ext.get(selector_a).getHeight() ) {
        Ext.get(selector_a).setHeight(Ext.get(selector_b).getHeight() );
    } 
}

*/
// Show New Cart Dialog
function showNewCartDialog() {
    Ext.MessageBox.prompt( "New Cart Name", "Please a new name for that cart:", createCart );
}

// Create a cart
function createCart(btn, text) {
    if ( btn == "ok" ) {
        $.get("myshopping.asp",
            { cmd: "createCart", cart_name: text },
            function(data){
                $('div.bucketFadeable').fadeOut("normal", function() {
                    ar = data.split("+++")
                    $('#activeBucket div').html(ar[0]);
                    $('#myBuckets div').html(ar[1]);
                });
                $('div.bucketFadeable').fadeIn("normal", function() {
                    resizeHeight2("#activeBucket", "#myBuckets");
                });
            }
        );
    }
}


// Check to ensure we only have two checked carts, removing the oldest
function checkCheckedCarts(current) {
    
    // Did we just uncheck this one?
    if (!current.checked) {
        var pos = $.inArray(current.value, checkedCarts);
        checkedCarts = checkedCarts.splice(pos, 1);
    } else if (checkedCarts.length == 2) {
        checkedCarts.push(current.value);
        checkedCarts.shift();
        var good_1 = current.value;
        var good_2 = checkedCarts.slice(0, 1);
        
        // Uncheck any non-current carts
        var boxes = $('#mycarts :checked')
        for (var i=0; i < boxes.length; i++) {
            if (boxes[i].value != good_1 && boxes[i].value != good_2) {
                boxes[i].checked = false;
            }
        }
    } else {
        checkedCarts.push(current.value);
    }
    
    console.log(checkedCarts);    
}

// Merge Carts
function mergeCheckedCarts() {
    var carts = $('#mycarts :checked');
    
    if (carts.length < 2) {
        alert("You must select 2 carts.");
    } else if (carts.length > 2) {
        alert("You may select 2 carts to merge at any one time.");
    } else {
        $.get("myshopping.asp", 
            { cmd: "merge_carts", source_cart: checkedCarts.slice(0, 1), target_cart: checkedCarts.slice(1, 2) },
            function(data) {
                $('div.bucketFadeable').fadeOut("normal", function() {
                    ar = data.split("+++")
                    $('#activeBucket div').html(ar[0]);
                    $('#myBuckets div').html(ar[1]);
                    if ( ar.length > 2 ) {
                        $('#headerItemsInBucket').html(ar[2]);
                    }
                    if ( ar.length > 3 ) {
                        $('#headerCartTotal').html(ar[3])
                    }
                });
                $('div.bucketFadeable').fadeIn("normal", function() {
                    resizeHeight2("#activeBucket", "#myBuckets");
                });
            }
        );
    }
}

// Activate a Cart
function activateCart(orderId) {
    $.get("myshopping.asp",
        { cmd: "activate_cart", order_id: orderId },
        function(data){
            $('div.bucketFadeable').fadeOut("normal", function() {
                ar = data.split("+++")
                $('#activeBucket div').html(ar[0]);
                $('#myBuckets div').html(ar[1]);
                if ( ar.length > 2 ) {
                    $('#headerItemsInBucket').html(ar[2]);
                }
                if ( ar.length > 3 ) {
                    $('#headerCartTotal').html(ar[3])
                }
            });
            $('div.bucketFadeable').fadeIn("normal", function() {
                resizeHeight2("#activeBucket", "#myBuckets");
            });
        }
    );
}


// Show cart delete confirmation
function showDeleteCartDialog(orderID, cartName) {
    g_orderId = orderID;
    g_cartName = cartName;
    Ext.MessageBox.confirm( "Confirm", "Are you sure you wish to delete the cart \"" + cartName + "\"?", processCartDelete );
}

// Delete a cart
function processCartDelete (btn) {
    
    if ( btn == "yes" ) {
        $.get("myshopping.asp", { cmd: "delete_cart", order_id: g_orderId },
            function(data) {
                $('#myBuckets .bucketFadeable').fadeOut("normal", function() {
                    $("#myBuckets .bucketFadeable").html(data);
                });
                $("#myBuckets .bucketFadeable").fadeIn("normal", function() {
                    resizeHeight2("#activeBucket", "#myBuckets");
                });
            }
        );
    }
}

// Show Cart Name Change Dialog
function showNameChangeDialog(orderID) {
    g_orderId = orderID;
    Ext.MessageBox.prompt( "New Cart Name", "Please a new name for that cart:", processCartNameChange );
}

// Process a cart name change
function processCartNameChange (btn, text) {
    
    if ( btn == "ok" ) {
        $.get("myshopping.asp", { cmd: "rename_cart", order_id: g_orderId, name: text },
            function(data) {
                $('#myBuckets .bucketFadeable').fadeOut("normal", function() {
                    $("#myBuckets .bucketFadeable").html(data);
                });
                $("#myBuckets .bucketFadeable").fadeIn("normal");
            }
        );
    }
}


// Remove a recommended product
function removeRecommended(product_id, gpg) {
    
    $.get("myshopping.asp",
        { cmd: "removeRecommended", product_id: product_id, gpg: gpg },
        function(data){
            $("#myRecommendedProducts").html(data)
        }
    );   
}

// Get all Orders in History
function getOrderHistory() {
    
    $.get("myshopping.asp",
        { cmd: "getOrderHistory" },
        function(data){
            $('#orderHistory .ordersFadeable').fadeOut("normal", function() {
                $("#orderHistory .ordersFadeable").html(data)
            });
            $('#orderHistory .ordersFadeable').fadeIn("normal");
        }
    );   
}

function Querystring(qs) {
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') 
	
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}
