var customerInfo;
function Address(key, nickname) {
    this.addressKey = key;
    this.nickname = nickname;
}
function Customer() {
    this.addressList = new Array();
    this.addAddress = function (newAddress) {
    	this.addressList.push(newAddress);
	};
    this.getNumAddress = function () {
    	return this.addressList.length;
	};
    this.getAddressList = function () {
    	return this.addressList;
	};
	this.setAddressList = function(newAddressList) {
		this.addressList = newAddressList;
	};
}
function initBasicCustomerInfo() {
    doDebug("inside initBasicCustomerInfo()");
    cInfo = new Customer();
    var address = new Address(-1, shipToMeText);
    cInfo.addAddress(address);
    return cInfo;
}
// load the basic customer information via from a cookie if available
function loadBasicCustomerData() {    
    var addrData = getCookie("shp2");   // if no cookie is found, initialize to the default, basic customer info.
    if (addrData === "") {
        customerInfo = initBasicCustomerInfo();
    } else {
    	doDebug("before addressData = " + addrData);
    	addrData = decodeURI(unescape(addrData));
    	doDebug("after addressData = " + addrData);
    	var addressDataList = addrData.split("|");     
        var addressIndex = 1;
        var addressList = [];
        for (var i=0; i < addressDataList.length-1; i=i+2) {
            var addr = new Address(addressDataList[i], addressDataList[i+1]);
            if (trim(addr.nickname).toLowerCase() === trim(shipToMeText).toLowerCase()) {
            	addressList[0] = addr;
            } else if (addr.nickname !== "" && addr.addressKey !== "") {
            	addressList[addressIndex] = addr;
            	addressIndex++;
            	doDebug("i=" + i + " addressKey=" + addr.addressKey + " nickname = " + addr.nickname);
            }
        }  
        if (addressList[0] === undefined) {
        	addressList[0] = new Address(-1,shipToMeText);
        } 
        customerInfo = new Customer();
        customerInfo.setAddressList(addressList);
    }
}