/**
 * FacebookRegisterModule Module
 * @author Peter Hale
 * Facebook Register dialog box
 * @dependencies
 * DialogControl
 * CookieUtil
 * getUrlParam
 */
function FacebookRegisterModule()
{
	/** name of this module */
	this._name = FacebookRegisterModule.NAME;
	this._checkedServerForId = false;

	/**  external page object   */
	this.external_page=null;

	/**
	 * true if this module is on external page. In that case,
	 * login/register should redirect to the AG home page
	 */
	this.setExternal = function() {
		this._isExternal = true;
	};
	this.updateEmailFromPermissions = function() {
		// update the server to update the email
		var params = {};
		var facebookId = com.ag.loginFB.uid;
		if (facebookId) params.facebookId = facebookId;
		params.uuid = LoginModule.getSessionUserUuid();
		this._makeRestRequest("/facebook/updateEmail", "POST", params, this.returnFromUpdateEmail);
	};

	this.returnFromUpdateEmail = function(response) {
		// available to do something after updating email permissions
	};

	// called after the AJAX comes back
	this._handleLogin = function(res){
		if (res.returnCode == "Ok"){
			if(this._redirect){
				window.location = this._redirect;
			}
			this._pageLoginModule._onLogIn();
			this._enableForm();
			AgEvent.LOGIN.publish();

			// send my request to do the mapping after login
			com.ag.loginFB.updateFacebookConnect();
		}
	};

	// this is called after the user logs in (from anywhere)
	this.updateAndGetLoginChangeRequests = function() {

		// update the login area with potential facebook updates
		com.ag.showFBLoggedIn.init();	// is this all we need to do?
		return [];
	};

	/** @return list of request actions that can be handled by this module */
	this.getPageActionNames = function() {
		return [ "showFBPopup" ];
	};

	this.handlePageAction = function(action, params){
		if (action == "showFBPopup") {
		   this._redirect = $(document).getUrlParam("redirect");
		   com.ag.loginFB.facebookConnect();
		}
	};
}
FacebookRegisterModule.NAME = "FacebookRegisterModule";
FacebookRegisterModule.prototype = new Module();

FacebookRegisterModule.facebookShareGame = function(shareCode, title, description, callback) {


	var contentBaseUrl = "http://dev.addictinggames.com";
	

	var imageUrl = "/gamefiles/" + gameKeyword + "/" + gameKeyword + "-" + shareCode + ".png";
	var linkUrl = "/" + gameKeyword + ".html?event=" + shareCode;

	var localImageUrl = imageUrl;
	var localLinkUrl = linkUrl;
	if (localImageUrl.substr(0,4) != 'http')
	{
		localImageUrl = contentBaseUrl + localImageUrl;
	}
	if (localLinkUrl.substr(0,4) != 'http')
	{
		localLinkUrl = contentBaseUrl + localLinkUrl;
	}
	console.log("imageUrl: " + localImageUrl);

	hideFlashObjects();
	FB.login(function(response) {
		if (response.session) {
			var attachment = {
				'media': [{'type':'image',
						 'src':localImageUrl,
						 'href':localLinkUrl}],
				'name':title,
				'description':description,
				'href': localLinkUrl
			};

			var actionLinks = [{ "text": "Play Now", "href": localLinkUrl}];

			var json = {
					method: 'stream.publish',
					message: '',
					attachment: attachment,
					action_links: actionLinks,
					user_prompt_message: prompt
				   };

			FB.ui( json, function(response) {
				if (response && response.post_id) {
					callShowInviteCallback(callback, 'success');
					showFlashObjects();

				}
				else
				{
					callShowInviteCallback(callback, 'cancelled');
					showFlashObjects();
				}
			});
		} else {
			callShowInviteCallback(callback, 'cancelled');
			showFlashObjects();
		}
	});
}

var wallPostCallback = null;
FacebookRegisterModule.facebookPostToWall = function(postType, gameId, ratingReview) {

	// exit if postType is game rating and this is review-only posting (for simultaneous rating and review submit)
	if ( postType && postType == 'GameRating' && facebookPostReviewOnly ) {
		return;
	}

	var isPrefDisabled =  FacebookRegisterModule.getFacebookPrefsCookie(postType);

	if (!g_page.useFacebook) {
		return;
	}

	if (isPrefDisabled && isPrefDisabled == 'true') {
		return;
	}
	var playNowGameLink = null;
	var attachment = null;
	var actionLinks = null;

	var facebookId = LoginModule.getSessionFacebookId();
	var contentBaseUrl = "http://www.addictinggames.com";
	var isFacebookAutoPublish = LoginModule.getSessionFacebookHasAutoPublish();
	var gameId = parseInt(gameId);
	if (facebookId && facebookId > 0 && gameId && gameId > 0) {
		var imageSrc = contentBaseUrl + '/fimages/' + gameId + '.jpg';

		//var gameLinkBaseUrl = contentBaseUrl + '/' + gameKeyword + '.html?s=fb&p=' + postType;
		var gameLinkBaseUrl = window.location + '?s=fb&p=' + postType;
		var imageGameLink = gameLinkBaseUrl + '&c=picon';
		var nameGameLink = gameLinkBaseUrl + '&c=game';
		var playNowGameLink = gameLinkBaseUrl + '&c=playnow';
		var facebookName = LoginModule.getSessionFacebookName();
		if (facebookName.indexOf("\"") > -1) facebookName = facebookName.substring(1, facebookName.length - 1);
		var facebookFirstName = facebookName;
		if (facebookFirstName.indexOf(" ") > -1) facebookFirstName = facebookFirstName.substring(0, facebookFirstName.indexOf(" "));
		var gameDescription = $("#game-description").html();
		var title = "";
		var description = "";
		if (postType == 'GameRating') {
			var rating = "thumbs up";
			if ( ratingReview != null && ratingReview == 'B' ) rating = "thumbs down";
			title = facebookFirstName + " rated " + gameDisplayName + " and gave it a " + rating + "!";
			description =  gameDescription;
		}
		if (postType == 'GameReview') {
			title = facebookFirstName + " just reviewed " + gameDisplayName + " on AddictingGames.com.";
			description = facebookFirstName + " says \"" + ratingReview + "\"";
		}
		if (postType == 'GameFavorite') {
			title = facebookFirstName + " added " + gameDisplayName + " to their favorites on AddictingGames.com.";
			description = gameDescription;
		}
		var attachment = {
			'media': [{'type':'image',
					 'src':imageSrc,
					 'href':imageGameLink}],
			'name':title,
			'description':description,
			'href': nameGameLink
		};

		actionLinks = [{ "text": "Play Now", "href": playNowGameLink}];

		postingType = postType;

        var json = {
				method: 'stream.publish',
				message: '',
				attachment: attachment,
				action_links: actionLinks,
				user_prompt_message: 'Post to your wall?'
			   };
		if (isFacebookAutoPublish) {
			var json = {
					message: '',
					picture: imageSrc,
					link: nameGameLink,
					description: description,
					name: title
				   };
			var url = '/me/feed';
			FB.api(url, 'post', json, FacebookRegisterModule.facebookWallPostCallback);
		} else {
			var json = {
					method: 'stream.publish',
					message: '',
					attachment: attachment,
					action_links: actionLinks,
					user_prompt_message: 'Want to post to Facebook?'
				   };
			FB.ui( json, FacebookRegisterModule.facebookWallPostCallback );
		}

		if ( isFacebookAutoPublish == "true" ) {
			sendLinkEvent('fbc_share_' + postType); // post to omniture: faceball wall share
		} else {
			hideFlashObjects();
		}
	}
};

var postingType = "";

FacebookRegisterModule.facebookWallPostCallback = function(post_id, exception) {
	if (post_id) {
		sendLinkEvent('fbc_share_' + postingType + '_prompt' );  // post to omniture: faceball wall share
	}
	showFlashObjects();
};
FacebookRegisterModule.getFacebookPrefsCookie = function(pref) {
	var key = "disableFacebook" + pref;
	return LoginModule.loginCookie.cookie(key);
};

$(document).ready( function () {
	//namespace old modules
	this._pageLoginModule = g_page.getModule("LoginModule");

	if(window.external_page){
		com.ag.loginFB.external_page = window.external_page;
	}

	if ( g_page.useFacebook ) {
		if ( window.external_page && com.ag.loginFB.external_page.page_status==1 ) {
			$('.facebookConnectLink').attr( {href:com.ag.loginFB.external_page.fb_connect_link, target:"_top"} );
			$('.btnFacebook').attr( {href:com.ag.loginFB.external_page.fb_connect_link, target:"_top"} );
		} else {
			$(".facebookConnectLink, .fbIcon").click(com.ag.loginFB.facebookConnect);
			$(".btnFacebook").click(com.ag.loginFB.facebookConnect);
			$("#login_module .btnFacebook").click( function () {
				LoginModule._loginHide();
			});
		}
	}

	var e = document.createElement('script');
	e.async = true;
	e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
	document.getElementById('fb-root').appendChild(e);

	// AG's application ID
	// this needs to be in a window.fbAscyncInit so that it gets call AFTER the all.js above gets called
	window.fbAsyncInit = function() {
		com.ag.loginFB.init();
	};
	// Event Listeners

});
com.ag.loginFB = {
	uid: 0,
	key: '38b747c244f9a8910ee774ee8337d254',
	loginObject: '',
	isFBLoggedIn: false,
	external_page: null,
	init: function () {
	    FB.init({appId: com.ag.loginFB.key, status: true, cookie: true, xfbml: true});
		FB.getLoginStatus(function (response) {
			if (response.session) {
				com.ag.loginFB.uid = response.session.uid;
				com.ag.loginFB.isFBLoggedIn = true;
			} else {
				com.ag.loginFB.uid = 0;
			}
			var sessionFacebookId = LoginModule.getSessionFacebookId();

			if (sessionFacebookId > 0 && sessionFacebookId != com.ag.loginFB.uid) {
				// get my mapping again
				com.ag.loginFB.updateFacebookConnect();
			} else {
				if (sessionFacebookId == 0 && com.ag.loginFB.uid > 0 && !LoginModule.isUserLoggedIn()) {
					com.ag.loginFB.updateFromFacebookAutoConnect();
				}
				g_page.updateForLoginChange();
			}
		});
	},
	facebookConnect: function () {
				FB.login(function(response) {

					if (this._isExternal) {
						top.location="/?pageAction=showFBPopup&redirect="
								+ top.location.pathname;
					} else {
						if (response.session)
						{
							com.ag.loginFB.uid = response.session.uid;
							com.ag.loginFB.updateFacebookConnect();
						}
						else {
							com.ag.FBConfirmCancelModal.init();
						}
					}

				}, {perms:'publish_stream,email,user_birthday'});
				return false;

	},
	updateFacebookConnect: function () {
		// called after the user hits FB connect and logs in
		if (g_page.useFacebook) {
			var facebookId = com.ag.loginFB.uid;
			var uuid = LoginModule.getSessionUserUuid();

			var postUrl = "/dynamic/rest/facebook/get";
			var params = {};
			if (facebookId) {
				params.facebookId = facebookId;
			}
			if (uuid){
				params.uuid = uuid;
			}
			$.ajax({
				url: postUrl,
				data: params,
				type: 'post',
				dataType: 'json',
				success: function (data) {
					com.ag.loginFB.loginObject = data;
					com.ag.loginFB.updateFacebookConnectCallback();
				}
			});
		}
	},
	updateFacebookConnectCallback: function () {
		var response = com.ag.loginFB.loginObject;

		// the callback from the server when registering/hitting connect/logging in
		if (response.clearFacebookId)
		{
			com.ag.loginFB.uid = 0 ;
			return;
		}
		if (response.hasAuthentication)
		{
			com.ag.loginFB.uid = response.authentication.authenticationId;
		}
		if (response.needsLogin) {
			LoginModule._onLogIn();
		} else {
			if (response.needsAuthentication) {

				// check for a potential hash email
				if (response.emailFromHash) {
					var ans = confirm("You appear to have an existing account with the email " + response.emailFromHash + ", do you want to use that?");
					if (ans) {
						var params = {};
						var facebookId = com.ag.loginFB.uid;
						if (facebookId) params.facebookId = facebookId;
						params.emailHash = response.emailHash;
						this._makeRestRequest("/facebook/mapFromEmailHash", "POST", params, com.ag.loginFB.updateFacebookConnectCallback);
					} else {
						com.ag.FBLinkAccountModal.init();
					}
				} else {
					com.ag.FBLinkAccountModal.init();
				}
			} else {
				g_page.updateForLoginChange();
			}
		}
		if (response.justCreatedAuthentication) {

			hideFlashObjects();

			sendLinkEvent( "fbc_regoverlay_success" );	// send omniture event for FB reg success

			// if the user started facebook connect from the friend invite dialog, return them ther
			if ( com.ag.siteInvite.fbConnecting ) {
				SiteInviteModule._facebookConnecting = false;
				SiteInviteModule._showInputDialog();

			// otherwise show them the standard success screen
			} else {
				com.ag.FBShowSuccessModal.init();
			}
		}
	},
	showLoginOrRegister: function (){
		com.ag.FBLinkAccountModal.init();

		// send omniture event for opening FB reg overlay
		sendLinkEvent( "fbc_regoverlay" );

		return false;
	},
	updateFromFacebookAutoConnect: function () {
			// called after the user hits FB connect and logs in
			if (g_page.useFacebook) {
				var params = {};
				var facebookId = com.ag.loginFB.uid;
				if (facebookId) params.facebookId = facebookId;
				alert('fix this');
				this._makeRestRequest("/facebook/getMappingOnly", "POST", params, com.ag.loginFB.updateFacebookConnectCallback);
			}
			sendLinkEvent( "fbc_regoverlay_linked" );
			return false;
	}
};
com.ag.showFBLoggedIn = {
	init: function () {
		var uid = LoginModule.getUserId();
		if (uid) {
			var facebookId = LoginModule.getSessionFacebookId();
			if (facebookId && facebookId > 0) {

				var facebookIcon = '<span class="fbIcon">&#160;</span>';
				var uimGreeting = $("#uimGreeting").html();

				// only reason this would be -1 is if we have a race condition where the profile was updated first then
				// the mapping retrieved, so update the profile image while we're at it.
				if (uimGreeting.indexOf("fbIcon") == -1) {
					uimGreeting = facebookIcon + uimGreeting;
					$("#uimProfileImg").attr("src", ProfileUtil.getImg({userId: uid,size:"mini",userPicSet: false}));
				}
				$("#uimGreeting").html(uimGreeting);

				$(".facebookConnectLink, #uimAddFacebookLink, .logout_actions .fbIcon").hide();
				$("#playWithFriends #loggedOut, #playWithFriends #loggedIn").hide();
				$("#playWithFriends #loggedInFB").show();
			} else {
				$("#uimAddFacebookLink, .facebookConnectLink, .fbIcon").show();
			}
		} else {
			$(".facebookConnectLink, .fbIcon").show();
		}
	}
};
com.ag.FBLinkAccountModal = {
	newModal: '',
	returnCode: '',
	fieldErrors: '',
	submitRecaptcha: false,
	loginAttempts: 0,
	init: function () {
		com.ag.FBLinkAccountModal.createModal();
		com.ag.FBLinkAccountModal.showModal();
		com.ag.FBLinkAccountModal.loadContent();
		sendLinkEvent( "fbc_regoverlay" );
	},
	createModal: function () {
		com.ag.FBLinkAccountModal.newModal = new com.ag.ModalOverlay('<div id="facebookRegisterModal">Loading...</div>',{'headerText': 'Almost Done!','closeCancel':'cancel','width':760,'callback':'function () {}'});
	},
	showModal: function () {
		com.ag.FBLinkAccountModal.newModal.show();
	},
	closeModal: function (timeout) {
		com.ag.FBLinkAccountModal.newModal.close(timeout);
	},
	loadContent: function () {
		$('#facebookRegisterModal').load('/static/html/FBLinkAccountModal.html', function () {
			com.ag.FBLinkAccountModal.attachEventListeners();
		});
	},
	attachEventListeners: function () {
		$('#facebook_register_modalForm').submit( function() {
			com.ag.FBLinkAccountModal.createNewAccount();
			com.ag.FBLinkAccountModal.clearErrors();
			return false;
		});
		$('#linkExistingAccount').click( function () {
			com.ag.FBLinkAccountModal.displayLinkExistingAccount();
		});
		$('#facebook_login_modalForm').submit( function() {
			com.ag.FBLinkAccountModal.linkExistingAccount();
			com.ag.FBLinkAccountModal.clearErrors();
			return false;
		});
		$('#facebook_login_modalForm #facebook_register_forgotPassword').click( function () {
			com.ag.FBLinkAccountModal.resendPassword();
			return false;
		});
		$("#facebook_register_cancelLogin").click( function (){
			$.ajax({
				url: "/dynamic/rest/facebook/cancelConnect",
				data: {},
				type: 'post',
				dataType: 'json',
				success: function () {
					LoginModule.deleteCookies();
					sendLinkEvent( "fbc_regoverlay_cancel" );
				}
			});
		});
	},
	createNewAccount: function () {
		var postUrl = "/dynamic/rest/facebook/create";
		var params = {};
			params.userName = $("#facebook_register_modalForm #facebook_register_username").val();
			params.termsAccepted = $("#facebook_register_modalForm #fb_tos_checkbox:checked").size();
			params.subscribe = $('#facebook_register_modalForm #fb_register_subscribe:checked').val() != undefined;
			params.facebookId = com.ag.loginFB.uid;
		$.ajax({
			url: postUrl,
			data: params,
			type: 'post',
			dataType: 'json',
			success: function (data) {
				com.ag.loginFB.loginObject = data;
				com.ag.FBLinkAccountModal.createNewAccountSuccess();
			},
			error: function (data) {
				var obj = JSON.parse(data.responseText);
				com.ag.FBLinkAccountModal.returnCode = obj.returnCode;
				com.ag.FBLinkAccountModal.fieldErrors = obj.fieldErrors;
				if(com.ag.FBLinkAccountModal.returnCode === 'ValidationError') {
					com.ag.FBLinkAccountModal.createNewAccountError();
				}
			}
		});
		sendLinkEvent( "fbc_regoverlay_fbonly" );	// send omniture event for FB-only reg
	},
	createNewAccountSuccess: function () {
		com.ag.ModalOverlay.callback =  com.ag.FBShowSuccessModal.init;
		com.ag.FBLinkAccountModal.closeModal(500);
		com.ag.loginFB.updateFacebookConnectCallback();
	},
	createNewAccountError: function () {
		for(var i=0; i < com.ag.FBLinkAccountModal.fieldErrors.length; i++ ){
			$('#facebook_register_modalForm .errorMsg').append('<div>' + com.ag.FBLinkAccountModal.fieldErrors[i].message + '</div>' );
			$('#facebook_register_modalForm .errorMsg').css('display', 'block');
		}
	},
	displayLinkExistingAccount: function () {
		$('#linkExistingAccount').css('display','none');
		$('#existingAccountPanel').css('display','block');
	},
	linkExistingAccount: function () {
		var postUrl = "/dynamic/rest/user/login";
		var params = {};
			params.username = $("#facebook_login_modalForm #facebook_register_usernameEmail").val();
			params.password = $("#facebook_login_modalForm #facebook_register_password").val();
		if(com.ag.recaptcha.submitRecaptcha) {
			params.recaptcha_challenge_field = $("#recaptcha_fb #recaptcha_challenge_field").val();
			params.recaptcha_response_field = $("#recaptcha_fb #recaptcha_response_field").val();
		}
		$.ajax({
			url: postUrl,
			data: params,
			type: 'post',
			dataType: 'json',
			success: function () {
				com.ag.FBLinkAccountModal.linkExistingAccountSuccess();
			},
			error: function (data) {
				var obj = JSON.parse(data.responseText);
				com.ag.FBLinkAccountModal.returnCode = obj.returnCode;
				com.ag.FBLinkAccountModal.fieldErrors = obj.fieldErrors;
				com.ag.FBLinkAccountModal.linkExistingAccountErrors();

			}
		});
	},
	linkExistingAccountSuccess: function () {
		//com.ag.loginFB.updateFacebookConnectCallback();
		com.ag.loginFB.updateFacebookConnect();
		com.ag.showFBLoggedIn.init();
		com.ag.FBLinkAccountModal.closeModal();
	},
	linkExistingAccountErrors: function () {
		if(com.ag.FBLinkAccountModal.returnCode === 'ValidationError') {
			for(var i=0; i < com.ag.FBLinkAccountModal.fieldErrors.length; i++ ){
				try {
					$('#facebook_login_modalForm .errorMsg').append('<div>' + com.ag.FBLinkAccountModal.fieldErrors[i].message + '</div>' );
					$('#facebook_login_modalForm .errorMsg').css('display', 'block');
				}
				catch (e) { }
			}
			com.ag.FBLinkAccountModal.loginAttempts += 1;
			if(com.ag.FBLinkAccountModal.loginAttempts >= 4){
				com.ag.FBLinkAccountModal.showRecaptcha();
			}
		}
	},
	showRecaptcha: function () {
		com.ag.recaptcha.submitRecaptcha = true;
		com.ag.recaptcha.recaptchaElement = 'recaptcha_fb';
		com.ag.recaptcha.init();
	},
	clearErrors: function (){
		$('#facebook_register_modalForm .errorMsg').css('display','none');
		$('#facebook_register_modalForm .errorMsg').html('');
		$('#facebook_login_modalForm .errorMsg').css('display','none');
		$('#facebook_login_modalForm .errorMsg').html('');
	},
	resendPassword: function () {
		com.ag.FBLinkAccountModal.clearErrors();

		var params = {};
			params.username = $("#facebook_login_modalForm #facebook_register_usernameEmail").val();
		$.ajax({
			url: "/dynamic/rest/user/sendPassword",
			data: params,
			type: 'post',
			dataType: 'json',
			success: function (data) {
				if(JSON.parse(data.returnCode == "Ok")) {
					com.ag.FBLinkAccountModal.fieldErrors[0].message = 'An email has been sent to the account you signed up with. Please check this e-mail for your password.';
					com.ag.FBLinkAccountModal.linkExistingAccountErrors();
					com.ag.recaptcha.recaptchaElement.css('display','none');
				}
			},
			error: function (data) {
				var obj = JSON.parse(data.responseText);
				//com.ag.FBLinkAccountModal.returnCode = obj.returnCode;
				com.ag.FBLinkAccountModal.fieldErrors = obj.fieldErrors;
				com.ag.FBLinkAccountModal.linkExistingAccountErrors();
			}
		});
	}
};
com.ag.FBShowSuccessModal = {
	newModal: '',
	init: function () {
		com.ag.FBShowSuccessModal.createModal();
		com.ag.FBShowSuccessModal.showModal();
		com.ag.FBShowSuccessModal.loadContent();
	},
	createModal: function () {
		com.ag.FBShowSuccessModal.newModal = new com.ag.ModalOverlay('<div id="fbShowSuccessModal">Loading...</div>',{'headerText': 'You\'re Connected!','closeCancel':'none','width':600});
	},
	showModal: function () {
		com.ag.FBShowSuccessModal.newModal.show();
	},
	loadContent: function () {
		$('#fbShowSuccessModal').load('/static/html/FBShowSuccessModal.html', function () {
			com.ag.FBShowSuccessModal.attachEventListeners();
		});
	},
	closeModal: function () {
		com.ag.FBShowSuccessModal.newModal.close();
	},
	attachEventListeners: function () {
		$('#facebook_register_success_cancel').click(function () {
			com.ag.FBShowSuccessModal.closeModal();
			return false;
		});
		$('#fbSucccessSiteInviteModLink').click(function () {
			com.ag.FBShowSuccessModal.closeModal();
			// TODO: Replace when siteInviteModule is replaced
			$("#siteInviteModLink").click();
		});
	}
};
com.ag.FBConfirmCancelModal = {
	newModal: '',
	init: function () {
		com.ag.FBConfirmCancelModal.createModal();
		com.ag.FBConfirmCancelModal.showModal();
		com.ag.FBConfirmCancelModal.loadContent();
	},
	createModal: function () {
		com.ag.FBConfirmCancelModal.newModal = new com.ag.ModalOverlay('<div id="fbCancelConfirmModal" style="width:760px;">Loading...</div>',{'headerText': 'Are you sure?','closeCancel':'cancel','width':760});
	},
	showModal: function () {
		com.ag.FBConfirmCancelModal.newModal.show();
	},
	loadContent: function () {
		$('#fbCancelConfirmModal').load('/static/html/FBCancelConfirmModal.html', function () {
			com.ag.FBConfirmCancelModal.attachEventListeners();
		});
	},
	closeModal: function () {
		com.ag.FBConfirmCancelModal.newModal.close();
	},
	attachEventListeners: function () {
		$("#popup_facebook").click( function() {
			com.ag.FBConfirmCancelModal.closeModal();
			com.ag.loginFB.facebookConnect();
		});
		$("#popup_registernow").click( function() {
			com.ag.FBConfirmCancelModal.closeModal();
			RegisterModule.showRegister();
		});
		$('.closeCancel').unbind('click');
		$('.closeCancel').click( function () {
			sendLinkEvent('fbc_regoverlay_alt_close');
			com.ag.FBConfirmCancelModal.closeModal();
		});
	}
};
com.ag.recaptcha = {
	submitRecaptcha: false,
	recaptchaElement: '',
	init: function () {
		com.ag.recaptcha.submitRecaptcha = true;
		$.getScript("http://api.recaptcha.net/js/recaptcha_ajax.js",
				function() {
					Recaptcha.create(
							"6Lc_SAcAAAAAAGx9bjOU-srubELeT3EyyHR5S9sp",
							com.ag.recaptcha.recaptchaElement, {
								theme : "red",
								callback : function() {
									Recaptcha.focus_response_field();
								}
							});
				});
	}
};

