
jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

var usernameisvalid = false;
var fbapikey = "";
var alreadylogin = true;
function submitFB(sForm) {
    var sForms = document.getElementById("Form2");    
    sForms.hdFBLogin.value = "1";
    sForms.submit();    
}
function checkFBLogin() {
//    FB.Connect.get_status().waitUntilReady(function(status) {
//        switch (status) {
//            case FB.ConnectState.connected:
//                alert("connected");
//                alreadylogin = true;
//                FB.Connect.requireSession(promptUser, function() { alert('user cancelled operation') });
//                break;
//            case FB.ConnectState.appNotAuthorized:
//            case FB.ConnectState.userNotLoggedIn:
//                alert("not connected");
//                alreadylogin = false;
//                FB.Connect.requireSession(promptUser, function() { alert('user cancelled operation') });
//                break;
//        } //end switch
//    } //end get_status
    //    );
    try {
        if (FB.Connect.get_loggedInUser() != null) {
            alreadylogin = true;
        }
        else {
            alreadylogin = false;
        }
        FB.Connect.requireSession(promptUser, function() { alert('user cancelled operation') });
    }
    catch (err) {
        setTimeout("checkFBLogin()", 500);
    }
}
function ShowRegisterMemberIdFaceBook()
{
	var container =	$("#registermemberid_facebook");
	$("#fade").show();	
	container.css("position","absolute");
    container.css("top", ( $(window).height() - container.height() ) / 2+$(window).scrollTop() + "px");
    container.css("left", ( $(window).width() - container.width() ) / 2+$(window).scrollLeft() + "px");
	$("#registermemberid_facebook").fadeIn("slow");	
}

function CheckUserNameHasExist(usn)
{
	if (CheckFieldEmpty(document.getElementById("txtMemberIdFacebook"), "Username"))
		return false;	
	if(CheckUsername(document.getElementById("txtMemberIdFacebook"),"Username") == false )
		return false;	
	
	var lbl = $("#registermemberid_facebook_notice");	
	$.ajax({
		   type: "GET",
		   url: "facebook_login.asp",
		   data: "task=checkusername&usn=" + usn,
		   success: function(msg){						   
				if(msg.indexOf("result=yes") > -1) {
					usernameisvalid = false;
					lbl.html("<div id='errorMsg'>Username already exists. Please type another.</div>");		
				}
				else {
					usernameisvalid = true;
					lbl.html("<div id='successMsg'>Username is available.</div>")		
				}
		   }
		 });	
}

function UpdateMemberIdFaceBook()
{
	if (CheckFieldEmpty(document.getElementById("txtMemberIdFacebook"), "Username"))
		return false;	
	if(CheckUsername(document.getElementById("txtMemberIdFacebook"),"Username") == false )
		return false;

	var txtUsername = $("#txtMemberIdFacebook");
	var lbl = $("#registermemberid_facebook_notice");

	$.ajax({
	    type: "GET",
	    url: "facebook_login.asp",
	    data: postingdata + "&task=addnewmember&usn=" + txtUsername.val(),
	    success: function(msg) {
	        if (msg.indexOf("result=yes") > -1) {
	            window.location.href = "fan_update.asp";
	        }
	        else {
	            lbl.html("<div id='errorMsg'>Username already exists. Please type another.</div>");
	        }
	    }
	});	
}
  
var gLoginCode;
var postingdata = "";
getInfoComplete = function(result, exception) {
    postingdata = "fb_id=" + result[0]['uid'] + "&firstname=" + result[0]['first_name'] + "&lastname=" + result[0]['last_name'] + "&gender=" + result[0]['sex'] + "&email=" + result[0]['email'] + "&apikey=" + fbapikey;
    if (alreadylogin == false) {
        FB.Connect.logout(function() {
            $.ajax({
                type: "GET",
                url: "facebook_login.asp",
                data: postingdata + "&task=login",
                success: function(msg) {
                    if (msg.indexOf("result=yes") > -1) {
                        //window.location.reload();
                        window.location.href = window.location.href;
                        //window.location.href = "fan_update.asp";
                    }
                    else if (msg.indexOf("result=disabled") > -1) {
                        alert("Your account is diabled.Please contact with Adminitrator.");
                    }
                    else // promt user for username
                        ShowRegisterMemberIdFaceBook();
                }
            });

        });
    }
    else {
        $.ajax({
            type: "GET",
            url: "facebook_login.asp",
            data: postingdata + "&task=login",
            success: function(msg) {
                if (msg.indexOf("result=yes") > -1) {
                    //window.location.reload();
                    window.location.href = window.location.href;
                    //window.location.href = "fan_update.asp";
                }
                else if (msg.indexOf("result=disabled") > -1) {
                    alert("Your account is diabled.Please contact with Adminitrator.");
                }
                else // promt user for username
                    ShowRegisterMemberIdFaceBook();
            }
        });
    }
    //        FB.ApiClient.notifications_sendEmail(friends, "Testing proxy", "Testing proxy", "", mailSent);
};

promptUser = function() {     

    //check is user already granted for this permission or not       		
    facebook_prompt_permission('email', function(accepted) {
        if (accepted) {
            // User (already) has permission					
            //fbapikey = FB.Facebook.apiKey;
            // set Method logout
            FB.Connect._logoutMethod = "no_ui";
            uid = FB.Connect.get_loggedInUser();
            var userInfo = 'uid,first_name,last_name,sex,proxied_email,email';
            FB.Facebook.apiClient.users_getInfo(uid, userInfo, getInfoComplete);
        }
        else {
            //  User does not have permission
            alert(status + ' not granted');
        }
    });
}

//function facebook_prompt_permission(permission, callbackFunc)
//{
//	// Check if user has permission, if not invoke dialog.
//	FB.ensureInit(function() {
//		FB.Connect.requireSession(function(){
//			//check is user already granted for this permission or not
//			FB.Facebook.apiClient.users_hasAppPermission(permission,
//			function(result) {
//				// prompt offline permission
//				if (result == 0) {
//					// render the permission dialog
//					FB.Connect.showPermissionDialog(permission,
//					function(result){
//						if (null == result)
//							alert('no permissons granted');	
//						else
//							callbackFunc(true);
//					}, true, null);
//				} else {
//					// permission already granted.
//					callbackFunc(true);
//				}
//			});
//		});
//	});
//}


var is_initialized = false;

// Ensure Facebook app is initialized and call callback afterward 
function ensure_init(callback) {
    if (window.is_initialized) {
        callback();
    } else {
        FB_RequireFeatures(["XFBML"], function() {
            //FB.FBDebug.logLevel = 4;
            //FB.FBDebug.isEnabled = true;

            FB.Facebook.init(fb_apikey, 'xd_receiver.htm');

            window.is_initialized = true;
            callback();
        });
    }
}
/*
* Prompts the user to grant a permission to the application.
*/
function facebook_prompt_permission(permission, callbackFunc) {
    ensure_init(function() {
        //check is user already granted for this permission or not
        FB.Facebook.apiClient.users_hasAppPermission(permission,
     function(result) {
         // prompt offline permission
         if (result == 0) {
             // render the permission dialog
             FB.Connect.showPermissionDialog(permission, callbackFunc);
         } else {
             // permission already granted.
             callbackFunc(true);
         }
     });
    });
}
