﻿//StringUtils
String.prototype.IsNullOrEmptyOrUndefined = function() {
    if (this == undefined || this == null || this == '')
        return true;
    else
        return false;
}

//Inicjalizacja okna dialogowego z formularzem do edycji danych
var divv;
$(function() {
    divv = $("#divEditData").css("display", "none").clone();
});
function initializeDialogEditData() {
    $("div#divEditData").dialog({
        bgiframe: true,
        autoOpen: false,
        width: 721,
        height: 'auto',
        modal: true,
        zIndex: 1000,
        title: 'Edytuj dane',
        open: function(event, id) {
            $(this).parent().appendTo("form");
            if ($("#profiledetailsPopup shape").length != 0) {
                $('#aprofilePicPopup').next().next().hide();
            }
            placeMediumAvatar("profiledetailsPopup", "profilePicPopup");
        },
        close: function() {
            //            $("#" + datePickerTextboxId).datepicker("hide",0);
            $("#ui-datepicker-div").hide();
            var dd = $("div#divEditData");
            dd.remove().parent().remove();
            dd.dialog("destroy");
            $("form").append(divv.clone());
        }
    });

}

//Sprawdza czy wypelnione jest pole z kontrolki FileUpload, nastepnie klika w odpowiedni przycisk
function CheckIfSendFile(fileFieldID, linkPostback, linkAsyncPostback) {
    var filePath = $("#" + fileFieldID).val();

    if (filePath.IsNullOrEmptyOrUndefined()) {
        ClickButton(linkAsyncPostback, 0);
    }
    else {
        ClickButton(linkPostback, 0);
    }
}

//Funkcja symulujaca klikniecie w przycisk/link
//ElementType:
//0 - this.Page.ClientScript.GetPostBackEventReference(this.btn,String.Empty)
//1 - this.btn.ClientID
function ClickButton(element, elementType) {
    if (elementType == 0 && !element.IsNullOrEmptyOrUndefined()) {
        $redirect("javascript:" + element, "ClickButton: elementType == 0 && !element.IsNullOrEmptyOrUndefined()");
        return false;
    }

    if (elementType == 1 && !element.IsNullOrEmptyOrUndefined()) {
        var buttonHref = $("#" + element).attr('href');

        if (!buttonHref.IsNullOrEmptyOrUndefined()) {
            $redirect(buttonHref, "ClickButton: !buttonHref.IsNullOrEmptyOrUndefined()");
            return false;
        }

        var buttonName = $("#" + buttonID).attr('name');

        if (!buttonName.IsNullOrEmptyOrUndefined()) {
            $redirect("javascript:__doPostBack('" + buttonName + "','')", "ClickButton: !buttonName.IsNullOrEmptyOrUndefined()");
            return false;
        }
    }
}

//Pokazuje okno dialogowe z formularzem edycji danych
function ShowEditProfile() {
    if ($("div#divEditData").dialog('isOpen') == true)
        return;
    initializeDialogEditData();
    $("div#divEditData").dialog('open');
    $("div#divEditData").siblings().filter('.ui-dialog-titlebar').addClass("fix");
    $("div#divEditData div#popupEditBottom").addClass("fix");
}

function ShowEditProfileAgain() {
    $(document).ready(function() { ShowEditProfile(); })
}

//Ukrywa okno dialogowe z formularzem edycji danych
function HideEditProfile() {
    if ($("div#divEditData").dialog('isOpen') == true)
        $("div#divEditData").dialog('close');
}

//Ustawia kalendarz
var datePickerTextboxId;
function SetDatePicker(textboxId) {
    datePickerTextboxId = textboxId;
    var inputBirth = $('#' + textboxId)
    inputBirth.datepicker({
        showOn: 'button',
        buttonImage: '/_img/calendar.gif',
        buttonImageOnly: true,
        changeMonth: true,
        changeYear: true,
        beforeShow: function() { $('#ui-datepicker-div').maxZIndex(); },
        onSelect: function(dateText, inst) { }
    });
} 

//Wczytanie zdjecia uzytkownika z Fecebook'a
function LoadUserImageFromFacebook(imageID) {

    $("#divEditData").css("height", "680px");
    FB.getLoginStatus(function(result) {
        if (result && result.status == "connected") {
            FB.api({
                method: 'fql.query',
                query: 'SELECT pic_big_with_logo FROM user WHERE uid = ' + result.authResponse.userID
            },
		    function(result, ex) {
                if (results == null || results == 'undefinied')
                    return;
                var result = results[0];
                if (result == null || result == 'undefinied')
                    return;
                if (result['pic_big_with_logo'] == null || result['pic_big_with_logo'] == 'undefinied')
                    return;
                var profilePic = $('#' + imageID);
                profilePic.attr("src", result['pic_big_with_logo'].replace(/&amp;/gi, "&"));		        
		    });
        } else {
            //console.log('FBgetLoginStatus: Nie połączony');
        }
    });
    
/*
    $("#divEditData").css("height", "680px");
    FB.ensureInit(function() {
        FB.Connect.get_status().waitUntilReady(function() {
            if (FB.ConnectState.connected) {
                FB.Facebook.apiClient.fql_query(
                        "SELECT pic_big_with_logo FROM user WHERE uid = " + FB.Connect.get_loggedInUser(),
                        function(results, ex) {
                            if (results == null || results == 'undefinied')
                                return;
                            var result = results[0];
                            if (result == null || result == 'undefinied')
                                return;
                            if (result['pic_big_with_logo'] == null || result['pic_big_with_logo'] == 'undefinied')
                                return;
                            var profilePic = $('#' + imageID);
                            profilePic.attr("src", result['pic_big_with_logo'].replace(/&amp;/gi, "&"));
                        }
                    );
            }
        });
    });
*/
};

//Wylogowanie uzytkownika z Facebook'a
function LogOutFormFacebook() {
    FB.getLoginStatus(function (response) {
        if (response && response.authResponse) {
            FB.logout(function () {
                window.location.reload();
            });
        };
    });
    
    
    /*
    FB.ensureInit(function() {
        FB.Connect.get_status().waitUntilReady(function(status) {
            if (status == FB.ConnectState.connected) {
                FB.Connect.logout();
            }
        });
    });
    */
}

