
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("formFB");    
    sForms.hdFBLogin.value = "1";
    sForms.submit();    
}
function checkFBLogin() {
    try {
        if (FB.Connect.get_loggedInUser() != null) {
            alreadylogin = true;
        }
        else {
            alreadylogin = false;
        }
        FB.Connect.requireSession(promptUser, function() {  });
    }
    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 HideRegisterMemberIdFaceBook() {    
    $("#fade").hide();    
    $("#registermemberid_facebook").fadeOut("slow");
}

function CheckUserNameHasExist() {

    var registerurl = "facebook_login.asp";
    if (window.RegisterDomain) {
        registerurl = RegisterDomain + registerurl;
    }

	var re = $.ajax({
	    type: "GET",
	    url: registerurl,
	    async: false,
	    data:
	    {
	        "task":"checkusername",
	        "usn":$("#Txt_Control_1_FB").val()
	    }
	    }).responseText;
	    
	    if(re.indexOf("result=yes") > -1)
        {
            alert("Screen name already existed.Please type another screen name.");
            return false;
        }
        else
            return true;
}

function CheckEmailHasExist() {

    var registerurl = "facebook_login.asp";
    if (window.RegisterDomain) {
        registerurl = RegisterDomain + registerurl;
    }

    var re = $.ajax({
        type: "GET",
        url: registerurl,
        async: false,
        data:
	    {
	        "task": "checkemail",
	        "email": $("#Txt_Email_FB").val()
	    }
	    }).responseText;
    if(re.indexOf("result=yes") > -1)
    {
        alert("Email already existed.Please type another email.");
        return false;
    }
    else
        return true;
}



function GetExtraInfo_FB() {
    var no = $("[id^='sOpt_FB_']").length;
    var re = "";
    for (var i = 0; i < no; i++) {
        if ($("[id^='sOpt_FB_']").get(i).value != "") {
            re += $("[id^='sOpt_FB_']").get(i).id.substr(8) + "-" + $("[id^='sOpt_FB_']").get(i).value;
            re += "|";
        }
    }
    return re;
}
function GetInterest_FB() {
    return $("#DivInterest_FB input:checked").val();
}

function UpdateMemberIdFaceBook()
{
    if (!validateOnRegistering_FB())
        return false;

	var txtUsername = $("#txtMemberIdFacebook");
	var lbl = $("#registermemberid_facebook_notice");

	var usertype = "", username = "", password = "", email = "", fname = "", lname = "", country = "", state = "", howheard = "", gender = "", age = "", extrainfo = "", interest = "", companyname = "", contactphone = "", contactfax = "",suggestInterest = "";

	usertype = $("#Sltc_UserType_FB").val();
	username = $("#Txt_Control_1_FB").val();
	password = $("#Txt_Control_2_FB").val();
	email = $("#Txt_Email_FB").val();
	fname = $("#Txt_FirstName_FB").val();
	lname = $("#Txt_LastName_FB").val();
	country = $("#Slct_Country_FB").val();
	suggestInterest = $("#txtSuggestInterest_FB").val();
	
	if(country == "US")
	    state = $("#Slct_State_FB").val();
	else
	    state = $("#Txt_Province_FB").val();

	howheard = $("#Slct_HowHeard_FB").val();

	if (usertype == "fan") {
	    gender = document.getElementById("Radio_Gender_female").checked?"f":"m";
	    age = $("#Slct_AgeGrp_FB").val();
	    extrainfo = "";	//GetExtraInfo_FB();
	    interest = $("#Chk_InterestCat_FB").val(); //GetInterest_FB();
	}
	else {
	    companyname = $("#Txt_CompanyName_FB").val();
	    contactphone = $("#Txt_contactPhone_FB").val();
	    contactfax = $("#Txt_ContactFax_FB").val();
	}

    var postData = {
	        "task": "addnewmember",
	        "fb_id": fb_uid,
	        "usertype": usertype,
	        "usn": username,
	        "password": password,
	        "firstname": fname,
	        "lastname": lname,
	        "email": email,
	        "country": country,
	        "state": state,
	        "howheard": howheard,
	        "gender": gender,
	        "age": age,
	        "extrainfo": extrainfo,
	        "intereset": interest,
	        "companyname": companyname,
	        "contactphone": contactphone,
	        "contactfax": contactfax,
	        "suggestInterest": suggestInterest
	    }

	if (window.IsInFacebook) {
	    postData.lan = fbuserLang;
	}

	var registerurl = "facebook_login.asp";
	if (window.RegisterDomain) {
	    registerurl = RegisterDomain + registerurl;
    }

	$.ajax({
	    type: "GET",
	    url: registerurl,
	    data: postData,
	    success: function (msg) {
	        if (msg.indexOf("result=yes") > -1) {
	            //alert("Step 4: Update Profile Successful."); //MK alter
	            if (window.IsInFacebook) {
	                $("#hdMemberId").val(username);

	                if (document.getElementById("uploadControl") != null && uploadControl.fn_HasFile && uploadControl.fn_HasFile()) {
	                    FUUpload();
	                }
	                else {
	                    $("#dvFBRegister_Container").hide();
	                    $("#dvMyProfile").show();
	                    ShowVideo();
	                    ShowIntruction();
	                }
	            }
	            else if (window.IsInSurvey) {
	                $("#hdMemberId").val(username);
	                alert("Thank for your registration.");
	            }
	            else {
	                window.location.href = "fan_update.asp";
	            }
	        }
	        else {
	            alert(msg);
	        }
	    }
	});
}
var fb_uid = "";
function FillInfoRegister(re) {
    fb_uid = re[0]['uid'];
    $("#Txt_Email_FB").val(re[0]['email']);
    $("#Txt_Email2_FB").val(re[0]['email']);
    $("#Txt_FirstName_FB").val(re[0]['first_name']);
    $("#Txt_LastName_FB").val(re[0]['last_name']);
    if (re[0]['sex'] == 'male')
        document.getElementById("Radio_Gender_male").checked = true;
    else
        document.getElementById("Radio_Gender_female").checked = true;   
}
  
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;

    //alert("Step 1: get info complete."); //MK alter
    FillInfoRegister(result);
    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();
                        //alert("Step 2: logged in."); //MK alter
                        if (window.location.href.indexOf("fan_register.asp") > -1)
                            window.location.href = "my_stuffs.asp";
                        else
                            window.location.href = window.location.href;
                    }
                    else if (msg.indexOf("result=disabled") > -1) {
                        alert("Your account is diabled.Please contact with Adminitrator.");
                    }
                    else // promt user for username
                    {
                        //alert("Step 3: Register."); //MK alter
                        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();
                    //alert("Step 2: logged in."); //MK alter
                    if (window.location.href.indexOf("fan_register.asp") > -1)
                        window.location.href = "my_stuffs.asp";
                    else
                        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
                {
                    //alert("Step 3: Register."); //MK alter
                    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';
            //,affiliations,locale
            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);
         }
     });
    });
}
