var fbAfterLoginControlId = ''; var fbAfterLogoutControlId = ''; var fbRedirectTo = ''; $(document).ready(function () { var e = document.createElement('script'); e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; e.async = true; document.getElementById('fb-root').appendChild(e); var butt = $('div.facebookOffline a:first'); if (butt.length > 0) { var dirty = butt.attr('href'); fbRedirectTo = dirty.split('"').join('\''); fbRedirectTo = fbRedirectTo.split('javascript:').join(''); butt.attr('href', '#'); } }); window.fbAsyncInit = function () { var appId = document.getElementById("FBAPPID").innerHTML; FB._https = (window.location.protocol == "https:"); FB.init({ appId: appId, status: true, cookie: true, xfbml: true }); // hack for https problems if (document.location.protocol == 'https:' && !!FB && !!FB._domain && !!FB._domain.staticfb) { FB._domain.staticfb = FB._domain.staticfb.replace('http://static.ak.facebook.com/', 'https://s-static.ak.fbcdn.net/'); } FB.Canvas.setAutoResize(); FB.Canvas.scrollTo(0,0); FB.Event.subscribe('auth.login', function (response) { if (response.status === 'connected') { facebookOnline(); facebookRegister(); } }); FB.Event.subscribe('auth.logout', function (response) { facebookOffline(); }); FB.getLoginStatus(function (response) { if (response.status === 'connected') { facebookOnline(); facebookRegister(); } else if (response.status === 'not_authorized') { // the user is logged in to Facebook, but not connected to the app facebookOffline(); } else { // the user isn't even logged in to Facebook. facebookOffline(); } }); }; function facebookOnline() { $(".facebookOffline").hide(); $(".facebookOnline").show(); $('#btnFBlogin').hide(); FB.api('/me', function (response) { var facebookId = response.id; var email = response.email; if (!isLoggedIn) { if (facebookIdExits(facebookId, email)) { if (fbAfterLoginControlId.length > 0) { //eval($("#" + fbAfterLoginControlId).attr('href').replace('javascript:', '')); var fbItem = $("#" + fbAfterLoginControlId); //eval(fbItem.attr('href').replace('javascript:', '')); eval(fbRedirectTo); fbAfterLoginControlId = ''; } else { window.location = "/handlers/facebookLogin.ashx"; } } else { $(".loginErrorFacebook").show(); } } }); } function facebookOffline() { $(".facebookOffline").show(); $(".facebookOnline").hide(); if (isLoggedIn && currentFacebookId) { if (fbAfterLogoutControlId.length > 0) { eval($("#" + fbAfterLogoutControlId).attr('href').replace('javascript:', '')); fbAfterLogoutControlId = ''; } else { window.location = "/handlers/logout.ashx"; } } } function facebookRegister() { FB.api('/me', function (response) { if (!isLoggedIn) { // Facebook radionbutton set to false if ($("#Register .useFacebookCheck input:radio:checked").val() == '0') { $('#Register .initials .input .textbox').val(''); $('#Register .firstname .input .textbox').val(''); $('#Register .lastname .input .textbox').val(''); $('#Register .username .input .textbox').val(''); $('#Register .email .input .textbox').val(''); $('#Register .password').show(); $('#Register .repeatPassword').show(); $('#Register .password .input .textbox').val(''); $('#Register .repeatPassword .input .textbox').val(''); return; } $('#Register .initials .input .textbox').val(response.first_name.substring(0, 1)); $('#Register .firstname .input .textbox').val(response.fist_name); $('#Register .lastname .input .textbox').val(response.last_name); $('#Register .username .input .textbox').val(response.email); $('#Register .email .input .textbox').val(response.email); fbHandleBirthday(response.birthday); // Fill in password $('#Register .password').hide(); $('#Register .repeatPassword').hide(); $('#Register .password .input .textbox').val(response.id); $('#Register .repeatPassword .input .textbox').val(response.id); } }); } function facebookIdExits(facebookId, email) { var result = false; if (facebookId) { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: currentPageSubsiteUrl + "/Webservices/User.asmx/FacebookIdExists", dataType: "json", async: false, data: '{"facebookid":"' + facebookId + '", "email":"'+ email + '"}', error: function (objXMLHttpRequest, textStatus, errorThrown) { debugger; }, success: function (data) { result = data.d; } }); } return result; } function fbHandleBirthday(birthday) { if (!birthday) { return; } var splitBirthday = birthday.split("/"); if (parseInt(splitBirthday[0], 10) < 13) { // MONTH $('.age.input .standard.month').val(parseInt(splitBirthday[0], 10)); } if (parseInt(splitBirthday[1], 10) < 32) { // DAY $('.age.input .standard.day').val(parseInt(splitBirthday[1], 10)); } if (splitBirthday[2]) { // YEAR if (parseInt(splitBirthday[2], 10) > 1900) { $('.age.input .standard.year').val(parseInt(splitBirthday[2], 10)); } } } function facebookLogoff(controlId) { if (!currentFacebookId) { return true; } fbAfterLogoutControlId = controlId; FB.logout(); return false; } function facebookLogin(controlId) { fbAfterLoginControlId = controlId; FB.login(function (response) { if (response.authResponse) { return true; } else { return false; } }, { scope: 'email,user_birthday,publish_stream' }); return false; }