
function ShoppingCartBuyButton( rcid, divId ) {
	this.id = divId;
	this.rcid = rcid;
	this.divId = divId;
	this.altText = "";
	this.variant = "";
	this.recSrc = "";
	this.albumOnly = false;
	this.albumOnlyId = "";
	this.albumPreorderAvailable = false;
	this.price = null;
}

function __shoppingCartManager() {
	this.isFulfillmentFlow = false;
	this.NEVER_DO_OVERLAY = false;
	this.statusDivName = null;
	this.statusDivShowIfEmpty = false;
	this.shoppingCart = null;
	this.updatedCartCallbacks = []; // Any callbacks on the page that should be notified on cart changes...
	this.buttonsById = []; // Maps from Button IDs to ShoppingCartBuyButton objects...
	this.buttonsByRcid = []; // Maps from RCIDs to an Array of ShoppingCartBuyButton objects...
	
	this.playlistJustAddedToCart = ""; //special case for playlists, since one isn't really in your cart, we track it per page instance.
	
	this.url = "/webservice/json/shoppingcart";
	
	this.setIsFulfillmentFlow = function( value ) {
		SHOPPING_CART_MANAGER.isFulfillmentFlow = value;
	};
	
	this.registerCartStatusDiv = function( divName, divShow ) {
		SHOPPING_CART_MANAGER.statusDivName = divName;
		SHOPPING_CART_MANAGER.statusDivShowIfEmpty = divShow;
		SHOPPING_CART_MANAGER.getCart( SHOPPING_CART_MANAGER.updateStatusDiv );
	};
	
	this.registerUpdatedCartCallback = function( fn ) {
		// if we already got it, just call the sucker right away...
		if( SHOPPING_CART_MANAGER.shoppingCart ){ fn(SHOPPING_CART_MANAGER.shoppingCart); }
		SHOPPING_CART_MANAGER.updatedCartCallbacks.push( fn );
	};
	
	this.updateStatusDiv = function( responseData ) {
		if( !responseData.totalCount ) { responseData.totalCount = 0; }
		if( !responseData.success ) {
			var theAction = ( typeof responseData.action != 'undefined' )?responseData.action:'default';
			
			if( ( responseData.actionFailure != 'geoblocked' ) || ( ( responseData.actionFailure == 'geoblocked' ) && theAction != 'default' ) ){
				var sendFailureEvent = function(){
					RhapsodyTracking.sendLinkEvent( { eVar17: 'C: Err: scFailure: ' + theAction + ': ' + responseData.actionFailure, prop18: 'E: C: Err: scFailure' }, { type: 'custom', linkName: 'Error', events: 'event21' } );
				};
				if( RhapsodyDom.bodyLoaded ){ sendFailureEvent(); }
				else { RhapsodyUtility.addLoadEvent( sendFailureEvent ); }
			}
			SHOPPING_CART_MANAGER.showAddUI( responseData );
		}
	
		SHOPPING_CART_MANAGER.shoppingCart = responseData;
		for( var i=0 ; i < SHOPPING_CART_MANAGER.updatedCartCallbacks.length ; i++ ) {
			try { SHOPPING_CART_MANAGER.updatedCartCallbacks[i](responseData); } catch(e) { }
		}
		
		var downloadReminderHtml = '';
		if( responseData.hasRemainingDownloads && !SHOPPING_CART_MANAGER.isFulfillmentFlow ) {
			RhapsodyUtility.addLoadEvent( function(){
				var downloadReminderHtml = 'You have '+responseData.remainingDownloadCount+' items awaiting download. <a href="'+storeUrl+'/mydownloads.html">Click here<\/a> to review and download these items.';
				var theCartReminderDiv = document.getElementById("cartReminderDiv");
				if(theCartReminderDiv){
					theCartReminderDiv.style.display = 'block';
					/* removing to see if it fixes 220903 RhapsodyUtility.doFadein( 'cartReminderDiv', 100, .5 ); */
					theCartReminderDiv.style.position = 'relative';
					theCartReminderDiv.innerHTML = downloadReminderHtml;
				}
			} );
		}
		if( responseData.action == "add" && responseData.add ) {
			if(responseData.add.indexOf( "ply." ) == 0){
				SHOPPING_CART_MANAGER.playlistJustAddedToCart = responseData.add;	
			}
			SHOPPING_CART_MANAGER.updateBuyButtons(responseData.add);
			SHOPPING_CART_MANAGER.updateBuyButtons(responseData.addTrackIds);
			SHOPPING_CART_MANAGER.showAddUI( SHOPPING_CART_MANAGER.shoppingCart );
			if( responseData.createdCart && typeof responseData.createdCart != 'undefined' ){
				RhapsodyTracking.sendLinkEvent( { eVar17: 'C: scOpen', prop18: 'E: C: scOpen' }, { type: 'custom', linkName: 'Commerce', events: 'scOpen' } );
			}
		} else if( responseData.action == "addPreorder" && responseData.addPreorder ){
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.addPreorder );
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.addPreorderTrackIds );
			SHOPPING_CART_MANAGER.showAddUI( SHOPPING_CART_MANAGER.shoppingCart );
		}
		if( !( responseData.action == "addPreorder" || responseData.addPreorder ) && !( responseData.action == "removePreorder" || responseData.removePreorder ) ){
			SHOPPING_CART_MANAGER.pulseCartDiv();
			if( SHOPPING_CART_MANAGER.statusDivName === null ) { return; } // Do something more responsible here???
			if( SHOPPING_CART_MANAGER.statusDivShowIfEmpty || ( !SHOPPING_CART_MANAGER.statusDivShowIfEmpty && responseData.totalCount > 0 ) ){
				var mHtml = '<div id="ShoppingCartManagerDiv">' +
					SHOPPING_CART_MANAGER.getDebugSettingsDiv() +
					'<a href="' + cartUrl + '" class="shoppingCartAnchor">Cart (' + responseData.totalCount + ')<\/a><\/div>';
				document.getElementById(SHOPPING_CART_MANAGER.statusDivName).style.display = 'block';
				document.getElementById( 'topNavTopRowMessaging' ).style.paddingTop = '2px';
				document.getElementById( 'topNavTopRowMessaging' ).style.height = '55px';
				document.getElementById(SHOPPING_CART_MANAGER.statusDivName).innerHTML = mHtml;
			}
		}
		if( responseData.action == "remove" && responseData.remove ){
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.remove );
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.removeTrackIds );
			RhapsodyShoppingCartFlyout.destroy();
		} else if( responseData.action == "removePreorder" && responseData.removePreorder ){
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.removePreorder);
			SHOPPING_CART_MANAGER.updateBuyButtons( responseData.removePreorderTrackIds );
			RhapsodyShoppingCartFlyout.destroy();
		}
		SHOPPING_CART_MANAGER.shoppingCart.add = ''; // (might be able to remove after ABC testing...)
		SHOPPING_CART_MANAGER.shoppingCart.remove = ''; // (might be able to remove after ABC testing...)
		
		// If this is part of an "auto add-to-cart" request, add the sucker...
		var mAutoAdd = CookieManager.getCookie("autoAddToCart");
		if( mAutoAdd ) {
			SHOPPING_CART_MANAGER.autoAddToCart(mAutoAdd.toLowerCase());
			CookieManager.actuallyDeleteCookie("autoAddToCart");
		}
	};
	this.autoAddToCart = function( rcid ) {
		
		// special case: if we want to add all the tracks in the querystring,
		// the value will be "alltracks"...

		if( rcid=="alltracks" ) {
			var dummyButton = new ShoppingCartBuyButton( getQsParam("tracks"), "autoadd_dummy_Div_Id" );
			SHOPPING_CART_MANAGER.registerButton(dummyButton);
			SHOPPING_CART_MANAGER.add(dummyButton.id);
			return;
		}
		
		var buttonObjectList = SHOPPING_CART_MANAGER.buttonsByRcid[rcid];
		if( !buttonObjectList || !buttonObjectList.length ) {
			setTimeout( "SHOPPING_CART_MANAGER.autoAddToCart('"+rcid+"')", 100 );
		}
		else {
			var firstButtonObject = buttonObjectList[0];
			if( !firstButtonObject.albumOnly ){ 
				if( firstButtonObject.albumPreorderAvailable ) {
					SHOPPING_CART_MANAGER.add(firstButtonObject.id,"preorder");
				}
				else {
					SHOPPING_CART_MANAGER.add(firstButtonObject.id);
				}
			}
		}
	};
	this.doDebug = function( val ) {
		document.cookie = "cartDebug=" + val + "; path=/;";
		SHOPPING_CART_MANAGER.updateStatusDiv( SHOPPING_CART_MANAGER.shoppingCart );
	};
	this.getDebugSetting = function() {
		var mSetting = 'b';
		
		if( document.cookie.indexOf("cartDebug=a")>0 ){ mSetting = 'a'; }
		if( document.cookie.indexOf("cartDebug=b")>0 ){ mSetting = 'b'; }
		if( document.cookie.indexOf("cartDebug=c")>0 ){ mSetting = 'c'; }

		return mSetting;
	};
	this.getDebugSettingsDiv = function() {
	
		return ""; // Comment this out to actually see the debug thingie...
	
		var mSetting = SHOPPING_CART_MANAGER.getDebugSetting();
		
		var mReturn = '<div style="float:left; z-index:100;">';
		
		if( mSetting=='a' ) { mReturn += '<span style="font-weight:bold;">A<\/span>'; }
		else { mReturn += '<a style="padding:0; margin:0; background-image:none; color:#000000;" href="javascript:SHOPPING_CART_MANAGER.doDebug(\'a\')">A<\/a>'; }
		
		if( mSetting=='b' ) { mReturn += '<span style="font-weight:bold;">B<\/span>'; }
		else { mReturn += '<a style="padding:0; margin:0; background-image:none; color:#000000;" href="javascript:SHOPPING_CART_MANAGER.doDebug(\'b\')">B<\/a>'; }
		
//		if( mSetting=='c' ) { mReturn += "<span style='font-weight:bold;'>C</span>"; }
//		else { mReturn += "<a style='padding:0; margin:0; background-image:none; color:#000000;' href=\"javascript:SHOPPING_CART_MANAGER.doDebug('c')\">C</a>"; }
		
		return mReturn + '<\/div>';
	
	};
	this.neverDoOverlay = function(){ this.NEVER_DO_OVERLAY = true; };
	
	this.pulseCartDiv = function(){
		if( SHOPPING_CART_MANAGER.shoppingCart.success && ( SHOPPING_CART_MANAGER.shoppingCart.action=="add" || SHOPPING_CART_MANAGER.shoppingCart.action=="remove" ) ) {
			for( var i=0 ; i<13 ; i+=2 ){
				var c = i + "";
				if( i==10 ){ c='a'; }
				if( i==11 ){ c='b'; }
				if( i==12 ){ c='c'; }
				var f;
				if( i<3 ){ f='f'; }
				else if( i<6 ){ f='e'; }
				else if( i<9 ){ f='d'; }
				else { f='c'; }
				setTimeout( "document.getElementById('ShoppingCartManagerDiv').style.backgroundColor='#" + f+f+f+f+c+c + "';", i * 75 );
			}
			setTimeout( function(){ document.getElementById('ShoppingCartManagerDiv').style.backgroundColor='transparent'; }, 15 * 75 );
		}	
	};
	this.showAddUI = function( passedData ){	
		if( !SHOPPING_CART_MANAGER.NEVER_DO_OVERLAY ) {
			RhapsodyShoppingCartFlyout.init( passedData );
		}
	};
	this.alreadyInCart = function( rcid ) {
		if( !SHOPPING_CART_MANAGER.shoppingCart ){ return false; }
		if( !SHOPPING_CART_MANAGER.shoppingCart.items ){ return false; }
	
		for( var i=0 ; i < SHOPPING_CART_MANAGER.shoppingCart.items.length ; i++ ) {
			if( SHOPPING_CART_MANAGER.shoppingCart.items[i].rcid == rcid ) { return true; }
		}

		return false;
	};
	this.alreadyInCartInPackage = function( rcid ) {
		if( !SHOPPING_CART_MANAGER.shoppingCart ) { return false; }
		if( !SHOPPING_CART_MANAGER.shoppingCart.trackIds ) { return false; }
	
		// Tracks might be in the cart as part of other objects (albums, playlists, etc.)...
		if( rcid.indexOf("tra.")==0 ) {
			for( var i=0 ; i < SHOPPING_CART_MANAGER.shoppingCart.trackIds.length ; i++ ) {
				if( SHOPPING_CART_MANAGER.shoppingCart.trackIds[i] == rcid ) { return true; }
			}
		}
		return false;
	};
	this.alreadyPreordered = function( rcid ) {
		if( !SHOPPING_CART_MANAGER.shoppingCart ) { return false; }
		if( !SHOPPING_CART_MANAGER.shoppingCart.preorderitems ) { return false; }
		for( var i=0 ; i < SHOPPING_CART_MANAGER.shoppingCart.preorderitems.length ; i++ ) {
			if( SHOPPING_CART_MANAGER.shoppingCart.preorderitems[i].rcid == rcid ) { return true; }		
		}
		return false;
	};
	this.registerButton = function( theButton ) {
		var buttonObjectList = SHOPPING_CART_MANAGER.buttonsByRcid[theButton.rcid];
		if( !buttonObjectList ) {
			buttonObjectList = [];
			SHOPPING_CART_MANAGER.buttonsByRcid[theButton.rcid] = buttonObjectList;
		}
		buttonObjectList.push( theButton );		

		SHOPPING_CART_MANAGER.buttonsById[ theButton.id ] = theButton;
		
		SHOPPING_CART_MANAGER.updateBuyButtons( theButton.rcid );
	};
	this.thePlaylistJustAdded = function( rcid ){
		if( SHOPPING_CART_MANAGER.playlistJustAddedToCart == rcid) {
			return true;
		}
	};
	this.updateBuyButtons = function( rcid ) {
		if( typeof( rcid ) == "object" ) {
			for( var i=0 ; i < rcid.length ; i++ ) { SHOPPING_CART_MANAGER.updateBuyButtons( rcid[i] ); }
			return;
		}
		
		if( !SHOPPING_CART_MANAGER.shoppingCart ) {
			setTimeout( "SHOPPING_CART_MANAGER.updateBuyButtons('" + rcid + "')", 100 );
			return;
		}	
		
		var buttonObjectList = SHOPPING_CART_MANAGER.buttonsByRcid[rcid];
		if( !buttonObjectList ){ return; }
		var needToRetry = false;		

		var theDivHtml = '';
		for( var j=0 ; j < buttonObjectList.length ; j++ ) {
			var thisButtonObject = buttonObjectList[j];
			if( document.getElementById( thisButtonObject.divId ) ){
				/* make this the already preordered condition */
				if( this.alreadyInCart( rcid ) || this.alreadyInCartInPackage( rcid ) || this.thePlaylistJustAdded( rcid ) ){
					theDivHtml = '<div class="cartButton cartButtonInCart' + thisButtonObject.variant + '"><\/div>';
				}
				else if( this.alreadyPreordered( rcid ) ){
					theDivHtml = '<div class="cartButton cartButtonPreordered' + thisButtonObject.variant + '"><\/div>';
				}
				else if( thisButtonObject.albumOnly ) {
					if(thisButtonObject.albumOnlyId){
						theDivHtml = '<a href="/goto?rcid='+thisButtonObject.albumOnlyId+'" style="font-weight:normal;">Album&nbsp;Only<\/a>';
					} else {
						theDivHtml = 'Album&nbsp;Only';
					}
				}
				else if( thisButtonObject.albumPreorderAvailable ){
					theDivHtml = '<a class="cartButton cartButtonPreorder' + thisButtonObject.variant + '" ' +
						'href="javascript: SHOPPING_CART_MANAGER.add( \'' + thisButtonObject.id + '\', \'preorder\' );"' +
						' title="' + thisButtonObject.altText + '"><\/a>';
				}
				else {
					theDivHtml = '<a class="cartButton cartButtonAdd' + thisButtonObject.variant + '" ' +
						'href="javascript: SHOPPING_CART_MANAGER.add( \'' + thisButtonObject.id + '\' );"' +
						' title="' + thisButtonObject.altText + '"><\/a>';
				}
				// some extra steps to make sure it will work consitently in IE
				var newdiv = document.createElement( "DIV" );
				newdiv.innerHTML = theDivHtml;
				var container = document.getElementById( thisButtonObject.divId );
				while (container.firstChild) {
					container.removeChild( container.firstChild );
				}
				container.appendChild( newdiv );
			}
			else {
				needToRetry = true;
			}
		}
		if( needToRetry ) {
			setTimeout( "SHOPPING_CART_MANAGER.updateBuyButtons('"+rcid+"')", 500 );
		}
	};
	this.getCart = function( handler ){
    	var queryStringParams = ".r=" + ( new Date().valueOf() );
		var callback = function (data){
			handler(data);
		};
    	this.sendMessage( rhapsodyURL + this.url, queryStringParams, callback);	
	};
	this.add = function( buttonId, modifier ){
		var theButton = SHOPPING_CART_MANAGER.buttonsById[buttonId];
		if( modifier == 'preorder' ){ SHOPPING_CART_MANAGER.addPreorderRcid( theButton.rcid, theButton.recSrc ); }
		else{ SHOPPING_CART_MANAGER.addRcid( theButton.rcid, theButton.recSrc, theButton.price ); }
	};
	this.addRcid = function( rcid, recSrc, price ){
		var handler = SHOPPING_CART_MANAGER.updateStatusDiv;
		var queryStringParams = "action=add&rcid=" + rcid + "&price=" + price + "&.r=" + ( new Date().valueOf() );
		var callback = function( data ){ handler( data ); };
    	this.sendMessage( rhapsodyURL + this.url, queryStringParams, callback );
    	RhapsodyTracking.sendLinkEvent( { eVar17: 'C: scAdd', prop18: 'E: C: scAdd', eVar29: recSrc, prop29: recSrc }, { type: 'custom', linkName: 'Commerce', events: 'scAdd' } );
	};
	this.removeRcid = function( rcid, modifier, passedHandler ){
		var handler = passedHandler || SHOPPING_CART_MANAGER.updateStatusDiv;
		var theAction = ( modifier === 'preorder' )?'removePreorder':'remove';
		var queryStringParams = "action=" + theAction + "&rcid=" + rcid + "&.r=" + ( new Date().valueOf() );
		var callback = function( data ){ handler( data ); };
    	this.sendMessage( rhapsodyURL + this.url, queryStringParams, callback );
    	if( modifier != 'preorder' ){
    		RhapsodyTracking.sendLinkEvent( { eVar17: 'C: scRemove', prop18: 'E: C: scRemove' }, { type: 'custom', linkName: 'Commerce', events: 'scRemove' } );
    	} else {
			RhapsodyTracking.sendLinkEvent( { eVar17: 'Nav: Click: Remove MP3Preorder', prop18: 'E: Nav: Click: Remove MP3Preorder' }, { type: 'custom', linkName: 'Navigation',  events: 'event8' } );
    	}
	};
	this.addPreorderRcid = function( rcid, recSrc ){
		if( (typeof rhapsodyMember != 'undefined' ) && rhapsodyMember.isLoggedIn && !rhapsodyMember.isAnonymousUser ){
			var handler = SHOPPING_CART_MANAGER.updateStatusDiv;
			var queryStringParams = "action=addPreorder&rcid=" + rcid + "&.r=" + ( new Date().valueOf() );
			var callback = function( data ){ handler( data ); };
			this.sendMessage( rhapsodyURL + this.url, queryStringParams, callback );
			RhapsodyTracking.sendLinkEvent( { eVar17: 'Nav: Click: Add MP3Preorder', prop18: 'E: Nav: Click: MP3Preorder', eVar29: recSrc, prop29: recSrc }, { type: 'custom', linkName: 'Navigation',  events: 'event8' } );
		}
		else {
			var successEvent = function() {
				alert("Hey, it's successful!");
			}
			var awesomeMessage = "To sign up for alerts, you must first sign in or create an account.  This is placeholder text, since the text has not been specified, nor has its position or layout.  Yippie!";
			SignInAccountCreationDialog.showOverlay(awesomeMessage, successEvent);
		}
	};
		
	this.sendMessage = function( url, queryStringParams, callback ){
		if( rhapsodyURL.indexOf( window.location.host ) < 0 ){ return; }
		if( SHOPPING_CART_MANAGER.isFulfillmentFlow ) {
			if( queryStringParams ) { queryStringParams += "&isFulfillmentFlow=true"; }
			else { queryStringParams = "isFulfillmentFlow=true"; }
		}
		var CURRENTINSTANCE = this;
		var wrappedCallback = function( requestObj, emptyData ){
			var data;
			if( requestObj.status == 200 ){
				var text = requestObj.responseText;
				if( text.substring(0,2) == "[{" ){
					data = eval(text);
				} else {
					data = eval('('+text+')');
				}
				callback( data );
			} else {
				data = [];
				data.exception = [];
				data.exception.message = "Bad response from ajax request. ";
				data.exception.code = requestObj.status;
				callback( data );
				return;
			}
		};
		var theRequest = new Ajax.Request( url,{
			onSuccess: wrappedCallback,
			method: 'get',
			parameters: queryStringParams }
		);
	};
	
	this.reloadCallback = function(){
		window.location.reload();
	};
}

var SHOPPING_CART_MANAGER = new __shoppingCartManager();

var RhapsodyShoppingCartFlyout = {
	scfDialogBoxInstance: null,
	init: function( data ){
		var rcids = "";
		var lastRcid = "";
		var isError = false;
		
		var appropriateItems = data.items || data.preorderitems;
		for( var i=0; i < appropriateItems.length; i++ ) {
			if( i ){ rcids += ","; }
			rcids += appropriateItems[i].rcid;
			lastRcid = appropriateItems[i].rcid;
		}

		if( data.action == "add" ){
			lastRcid = data.add;
		} else if( data.action == "addPreorder" ){
			lastRcid = data.addPreorder;
		} 
		
		if( data.priceChange ) {
			if( data.priceChange > 0 ) {
//				alert("We're sorry to say that the price\nhas increased from $" + data.priceChangeOriginal + " to $" + data.priceChangeCurrent + "." );
			}
			else {
//				alert("Hey, guess what!\nThe price has gone down from $" + data.priceChangeOriginal + " to $" + data.priceChangeCurrent + "!\nLooks like today's your lucky day!" );
			}
		}
		var theAjaxUrl;
		if( !data.success ) {
			theAjaxUrl = rhapsodyURL + "/errorCartOverlay.html?error=" + data.actionFailure + "&country=" + data.geoblockCountry;
			isError = true;
		}
		else {
			theAjaxUrl = rhapsodyURL + "/viewCartCenterFlyout.html?.r=" + new Date().valueOf() + "&rcids=" + rcids + "&thercid=" + lastRcid + "&cartAction=" + data.action;
		}
		
		if( this.scfDialogBoxInstance ){ this.destroy(); }
		
		this.scfDialogBoxInstance = new DialogBox( {
			width: '290px',
			elementClassName: 'cartOverlay',
			srcUrl: theAjaxUrl
		} );
		
		try{
			var thisScfDialogBoxInstance = this.scfDialogBoxInstance;
			if( thisScfDialogBoxInstance ){
				if( isError ){
					thisScfDialogBoxInstance.centerInPage(); 
					thisScfDialogBoxInstance.setMask( true );
					Event.observe( window, 'scroll', function(e){
						thisScfDialogBoxInstance.centerInPage();
						thisScfDialogBoxInstance.setMask( true );
					} );
					Event.observe( window, 'resize', function(e){
						thisScfDialogBoxInstance.centerInPage();
						thisScfDialogBoxInstance.setMask( true );
					} );
				} else {
					thisScfDialogBoxInstance.centerInPage( 0.47,1.48 );
					thisScfDialogBoxInstance.setShadow( true );
					RhapsodyUtility.addEvent( window, 'scroll', function(e){ thisScfDialogBoxInstance.centerInPage( 0.47,1.48 ); } );
					RhapsodyUtility.addEvent( window, 'resize', function(e){ thisScfDialogBoxInstance.centerInPage( 0.47,1.48 ); } );
					thisScfDialogBoxInstance.registerOuterClickListener( this.destroy );
				}
				thisScfDialogBoxInstance.toggleMeddlesomeElements();
				return thisScfDialogBoxInstance;
			}
		} catch(e){}
			
		
	},
	destroy: function(){
		if( RhapsodyShoppingCartFlyout.scfDialogBoxInstance ){
			Event.unloadCache();
			RhapsodyShoppingCartFlyout.scfDialogBoxInstance.toggleMeddlesomeElements();
			RhapsodyShoppingCartFlyout.scfDialogBoxInstance.destroy();
			RhapsodyShoppingCartFlyout.scfDialogBoxInstance = null;
		}
	}
};




