(function($) {
	if(typeof(CG) === 'undefined') {
		CG = {};
	}
		
	CG.Commerce = {
		openWindow: function(href) {
			if (FB) {
				FB.ensureInit(function() {
		                 FB_RequireFeatures(["Payments"], function() {
		            });
		        });
			}
			
			var href = href, options = {
					srcType: 'iframe',
					// modal: true,
					overlay: 75,
					height: 510,
					width: 535,
					top: 50,
					left: ($(window).width() - 535) / 2
				},

				modal = new CG.Modal(href, options),
				closebutton = $('<a href="#" class="payment_close"><img src="/commerce/css/img/newcommerce/close.png" /></a>').css({
					position: 'absolute',
					top: '-5px',
					right: '-5px',
					zIndex: '1000'
				}).prependTo(modal.getContainerElement());
			CG.Commerce.events.open.fire();
		},
		
		closeWindow: function() {
			CG.Modal.closeAll();
			CG.CGBar.CoinBalance.update();
			CG.Commerce.events.close.fire();
		},
		
		openCoins: function() {
			CG.Commerce.openWindow('/commerce/coins');
		},
		
		handleMessage: function(message) {
			switch(true)
			{
				case (/^facebook\_credits\_open/.test(message)):
					var id = message.replace(/facebook\_credits\_open/, ''); 
					CG.Commerce.closeWindow();
					CG.FacebookHelper.openPayment(id);
					break;
				case (message == 'open_earncoins'):
					CG.Commerce.closeWindow();
					$('#cgbar_free_coins_button').click();
					break;
				case (message == 'close_window'):
					CG.Commerce.closeWindow();
					break;
			}
		},
		
		events: {
			open: new CG.Event(),
			close: new CG.Event()
		}
	};	
	
	var init = function() {
			$('.cg-commerce').live('click', onCommerceClick);
			$('.payment_close').live('click', onCloseClick);
		},
	
		onCommerceClick = function(e) {				
			CG.Commerce.openWindow($(this).attr('href'));
			return false;
		},
		
		onCloseClick = function(e) {
			CG.Commerce.closeWindow();
			return false;
		};
	
	init();
})(jQuery);
