
var fbJSLoggedIn = false;
var facebookAppId = '105751029506835';

function validate(){
    var email = $("#email").val();
    var pass = $('#password').val();
    $.ajax({
        type: "POST",
        url: baseDir+"member/login",
        data: {
            email : email,
            pass:pass
        }
        ,
        success: function(data){
            if(data == 'OK')
                document.location.reload();
            else
                alert(data);
        }
    });
}

function validateDataAndRegister(){
    var gender = $("#gender").val();
    var fname = $("#fname").val();
    var lname = $("#lname").val();
    var email = $("#emailr").val();
    var country = $("#country").val();
    var city = $("#city").val();
    var pass = $("#pass").val();
    var rpass = $("#rpass").val();
    var error = false;
    
    if(fname == '')
        error = showErrorMessage('Error','You did not insert first name!');
    if(error)
        return;
    if(lname == '')
        error = showErrorMessage('Error','You did not insert last name!');
    if(error)
        return;
    if(email == '')
        error = showErrorMessage('Error','You did not insert email!');
    if(error)
        return;
    if(country == '')
        error = showErrorMessage('Error','You did not insert country!');
    if(error)
        return;
    if(city == '')
        error = showErrorMessage('Error','You did not insert city!');
    if(error)
        return;
    if(pass == '')
        error = showErrorMessage('Error','You did not insert password!');
    if(error)
        return;
    if(rpass == '')
        error = showErrorMessage('Error','You did not insert password!');
    if(error)
        return;
    if(pass != rpass)
        error = showErrorMessage('Error','Passwords did not match!');
    if(error)
        return;
    $.ajax({
        type: "POST",
        url: baseDir+"member/register",
        data: {
            first_name : fname,
            last_name : lname,
            email : email,
            gender: gender,
            country:country,
            city:city,
            pass:pass
        }
        ,
        success: function(data){
            if(data == 'OK')
                document.location.reload();
            else
                alert(data);
        }
    });
}

function showErrorMessage(title, text){
    alert(text);
    return true;
}

function showRegisterScreen(){
    //    Shadowbox.close();
    $('#loginstuff').hide();
    $('#registerstuff').show();
    $('.registrationBtn').click(validateDataAndRegister);
    $('.closeButtonLogReg').click(function(){
        Shadowbox.close();
    });
    //                        $("#loginScreen").show();
    $('.facebookLogin').click(loginWithFacebook);
    //    $('#rightlogin').html($('#hiddenrightlogin').html());
    return;
    $.ajax({
        type: "POST",
        url: baseDir+"ajax/registerscreen",
        data: null
        ,
        success: function(data){
            $('#rightlogin').html(data);
            $('.registrationBtn').click(validateDataAndRegister);
            $('.closeButtonLogReg').click(function(){
                Shadowbox.close();
            });
            //                        $("#loginScreen").show();
            $('.facebookLogin').click(loginWithFacebook);
        }
    });
}
function forgotPassword(email){
    $.ajax({
        type: "POST",
        url: baseDir+"member/forgot-password/",
        data: {
            email:email
        }
        ,
        success: function(data){
            if(data == 'OK')
                alert('Your new password has been emailed to your email adress '+email);
            else
                alert(data);
        }
    });
}

function forgotPasswordClick(){
    
}

function showLoginScreen(){
    $.ajax({
        type: "POST",
        url: baseDir+"ajax/loginscreen",
        data: null
        ,
        success: function(data){
            Shadowbox.open({
                content:    data,
                player: 'html',
                title:      " ",
                height:     600,
                width:      600,
                options: {
                    enableKeys: false,
                    onFinish:
                    function(){
                        //            $("#loginScreen").html(data);
                        $('.registerBtn').click(showRegisterScreen);
                        $('.loginBtn').click(validate);
                        $('.closeButtonLogReg').click(function(){
                            Shadowbox.close();
                        });
                        //            $("#loginScreen").show();
                        $('.facebookLogin').click(loginWithFacebook);
                        $('.forgotPass').click(function(){
                            var email = $("#email").val();
                            if(email == ''){
                                alert('Please insert e-mail');
                                return;
                            }
                            if(confirm("Do you want to reset password?"))
                                forgotPassword(email);
                        });
                    }
                }
            });
        }
    });
}

function closeScreen(){
    $("#loginScreen").html('');
    $("#loginScreen").hide();
}

function array2json(arr) {
    var parts = [];
    var is_list = (Object.prototype.toString.apply(arr) === '[object Array]');

    for(var key in arr) {
        var value = arr[key];
        if(typeof value == "object") { //Custom handling for arrays
            if(is_list) parts.push(array2json(value)); /* :RECURSION: */
            else parts[key] = array2json(value); /* :RECURSION: */
        } else {
            var str = "";
            if(!is_list) str = '"' + key + '":';

            //Custom handling for multiple data types
            if(typeof value == "number") str += value; //Numbers
            else if(value === false) str += 'false'; //The booleans
            else if(value === true) str += 'true';
            else str += '"' + value + '"'; //All other things
            // :TODO: Is there any more datatype we should be in the lookout for? (Functions?)

            parts.push(str);
        }
    }
    var json = parts.join(",");
    
    if(is_list) return '[' + json + ']';//Return numerical JSON
    return '{' + json + '}';//Return associative JSON
}

function goFace(response){
    
    FB.api('/me', function(response) {
        $.ajax({
            type: "POST",
            url: baseDir+"member/registerfb",
            async:false,
            data: {
                'id':response.id,
                'first_name':response.first_name,
                'last_name':response.last_name,
                'gender':response.gender,
                'timezone':response.timezone,
                'email':response.email
            },
            success: function(data){
                var fqlQuery = 'SELECT uid, name FROM user';
                fqlQuery += ' WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = '+response.id+')';
                fqlQuery += ' AND is_app_user = 1';
                if(data == 'OK'){
                    FB.api(
                    {
                        method: 'fql.query',
                        query: fqlQuery
                    }
                    , function(response) {
                        var result = response.data;
                        var i = 0;
                        var datas = new Array();
                        $.each(response, function(index, value){
                            //                            alert(value['uid']);
                            datas[i] = value['uid'];
                            //                            alert(datas[i]);
                            //                            alert(i);
                            i++;
                        });
                        $.ajax({
                            type: "POST",
                            url: baseDir+"member/friendslistupdate",
                            async:false,
                            data: {
                                data:array2json(datas)
                            },
                            success: function(data){
                                if(data == 'OK')
                                    document.location.reload();
                            }
                        });
                                    document.location.reload();
                    //                        document.location.reload();
                    });
//                    document.location = 'http://golfoon.com/';
                }
                
            }
        });
    });
}
function loginWithFacebook(){
    //@todo !!!!
    FB.getLoginStatus(function(response){
        if (response.session){
            goFace(response);
        }
        else {
            FB.login(goFace, 
            {
                scope:'read_stream,publish_stream,email'
            }
            );
        }
    });
    
}
function handleLoginStatus(){
//nesto ovde?
}
$(function(){
    
    window.fbAsyncInit = function() {
        FB.init({
            appId   : facebookAppId,
            status  : true,
            cookie  : true,
            xfbml   : true,
            oauth: true
        });
        FB.Canvas.setSize({
            width: 680, 
            height: 1850
        });
        
        FBLoaded = true;
//        loginWithFacebook();
        FB.Canvas.setAutoResize();
        FB.getLoginStatus(handleLoginStatus);
        FB.Event.subscribe('auth.statusChange', handleLoginStatus); 
        FB.getLoginStatus(function(response) {
            if (response.authResponse) {
                if(!loggedIn) {
                    fbJSLoggedIn = true;
                }
            } else {
        }
        });
    };
    $('#facebookConnect').click(function(){
        loginWithFacebook();
    });
    $('#loginLink').click(showLoginScreen);
    $('.courseInputW').live('keyup',searchw);
});
