$(document).ready(function(){initProviders();})

function initProviders(){
	
	initGigyaBlocks();
    initGigyaLinks();
	
	/* var channel_path = "xd_receiver.htm";
    FB.init({
		apiKey: fApiKey,
		//status : true,
		cookie : true,
		//logging: true,
		//xfbml  : true
		channel_path:channel_path
	}); */
	//get user status
	//FB.getLoginStatus(false);
	//handleLoginStatus();
	
	$('#tlogin').click(oTLoginWindow);
	$('#flogin').click(fbLogin);
	
	$('.twitter-login').click(oTLoginWindow);
	$('.facebook-login').click(fbLogin);
}

function fbSetStatus(data,fn){
	$.post('/facebook/setstatus',{status:data},fn);
	/*FB.api({ 
			method: 'Users.setStatus',
			status: data
		},fn
	); */
}
function handleLoginStatus(response){
	if(!FB.getSession()){
		FB.login();
	}
}
function fbLogin(){
	window.open("/facebook/login", "twcWindow","width=960,height=400,left=200,top=200,scrollbar=no,resize=no");
	return false;
	/* FB.login(function(response){
		if(!response.session){
			//login failed
		}
		FB.api({
				method: 'fql.query',
				query: 'SELECT id, username, name, pic_square FROM profile WHERE id=' + FB.getSession().uid
			},function(response) {
				var user = response[0];
				var chusr_data = {
					UID:		user.id,
					provider:	'facebook',
					user:{
						firstName:	user.name,
						lastName:	'',
						nickname:	user.name,
						photoURL:	user.pic_square
					}
				};
				//$('#user-info').html('<img src="' + user.pic + '">' + user.name).show('fast');
				checkUser(chusr_data);
			}
        );
	},{perms:'status_update, offline_access'});
	return false; */
}
function fbLogout(fn){
	//console.log('in_logout');
	//use revoke for unlink from app
	//FB.api({ method: 'Auth.revokeAuthorization' },fn);
	FB.logout(function(res){alert(res);});
}

function oTLoginWindow(){
	window.open("/twitter/login", "twcWindow","width=960,height=400,left=200,top=200,scrollbar=no,resize=no");
	return false;
}
function twitterCallback(data){
	//console.log(data);
	checkUser(data);
}
function twSetStatus(data,fn){
	$.post('/twitter/setstatus',{status:data},fn);
}

function checkUser(response){
	var master_id = '';
	if($("#master-list-id").length){
		master_id =  $("#master-list-id").text();
	}
	//console.log(response);
	//response.provider = response.user.providers[1]==undefined ? response.user.providers[0] : response.user.providers[1];
	//response.provider = response.user.providers[0];
	//console.log(response.provider);
	var userData = {
		UID : response.UID,
		provider : response.provider,
		user_uid : response.user.UID,
		firstName : response.user.firstName,
		lastName : response.user.lastName,
		nickname : response.user.nickname,
		avatar : response.user.photoURL,
		mid : master_id
	};
	$.ajax({
		url: Listiki.baseUrl + "auth/check-user",
		type: "POST",
		data: userData,
		dataType: "json",
		success: function(data){
			if (!data){
				return;
			}
			if (data.user){
				Listiki.istwitter = true;
				Listiki.user = data.user;
				//var user_html = 'Welcome <a href="'+ Listiki.baseUrl + data.user.custom_route +'">'+ data.user.name +'</a> | <a href="'+ Listiki.baseUrl +'logout" id="logout">Logout</a>';
				var user_html = 'Logged in as '+data.user.name+' &sdot; <a href="'+ Listiki.baseUrl + data.user.custom_route +'">profile</a> &sdot; <a href="'+ Listiki.baseUrl +'logout" id="logout">logout</a>';
				$("#profile").html(user_html);
				//initGigyaLogout();
				
				if(data.user.invite <= 0) {
					$("#invites").addClass('invites-empty');
				}
				if(data.user.provider == "twitter") {
					$("#share-list-twitter").attr('id', 'share-list');					
				} else if (data.user.provider == "facebook") {
					$("#share-list-fc").attr('id', 'share-list');
				}
				
				viewList.provider = data.user.provider;

				$('.btn-save-list').addClass('save-own-list').removeClass('need-login');
				$("#invites").removeClass('invites-logout');
			}
			
			hideLoginUI();
			hideFader();
			
			
			//save list and go to own list
			
			if(viewList.need_save == true){
				var postData = viewList.collectListInfo();
				viewList.saveList(postData,true);
			}else if(data.personalurl!=undefined){//go to own list without saving
				$('.btn-save-list').click();
				//window.location.href = Listiki.baseUrl + data.personalurl;
			} else if (viewList.need_redirect) {
				window.location.href = viewList.need_redirect;
				viewList.need_redirect = false;
			}
			
			$.each(viewList.loginComplite, function(i, func){
				func();
			})
		}
	});
}


function initGigyaLinks(){
	//$("a.need-login").unbind('click');
    $("a.need-login").click(function(e){
	//	if($(this).parent().hasClass('create')) return true;
        if (!isLoggedIn()){
        	
        	if($(this).hasClass('redirect')) {
        		viewList.need_redirect = this.href;
        	} else {
        		viewList.need_redirect = false;        		
        	}
            e.preventDefault();
			hideFader();
            showGigyaLogin();
        }
        
        return true;
    });
	
    $("#listiki-login").click(function(e){
        e.preventDefault();
		viewList.need_save = false;
        showGigyaLogin();
    });
}

function isLoggedIn(){
    if (Listiki.user.id){
        return true;
    }
    return false;
}

function initGigyaBlocks(){
	if(!$('#fader_bg').length){
		$(document.body).append('<div id="fader_bg"> </div>');
	}
    var docHeight = $(document).height();
	$('#fader_bg').css({
		opacity: 0.75,
		height: docHeight + "px",
		display : "none"
	});

	if(!$('#gigya_login_links').length){
		$("body").append('<div id="gigya_login_links" class="popup-list"><div class="bg-list-add-item"><div class="popup-info"><div id="gigya_login_container"><p>Please Login using one of the following providers:</p><a href="#twitter-login" title="Twitter" id="tlogin"></a><a href="#facebook-login" title="Facebook" id="flogin"></a></div></div></div><div class="list-add-item-bottom">&nbsp;</div></div>');
	}
	$('#gigya_login_links').hide();
	
	$("#fader_bg").click(function(){
		 hideFader();
		 hideLoginUI();
	});
	$(document).keypress(function(e){
		if (e.keyCode == 27){
			hideFader();
			hideLoginUI();
		}
	});
	initGigyaLogout();
}

function initGigyaLogout(){
	$("#logout").click(function(e){
		e.preventDefault();
		window.location.href = Listiki.baseUrl + 'logout';
    });
}

function showFader(){
    $('#fader_bg').width($(window).width() + "px");
    $('#fader_bg').height($(document).height() + "px");
    $('#fader_bg').show();
}

function hideFader(){
    $('#fader_bg').hide();
    createList.submit = false
    $('#create-list').hide();
    $('.popup-list').hide();
    
}

function showLoginUI(){
    var winWidth = $(window).width();
    var winHeight = $(window).height();
    $("#gigya_login_links").css({
        top : winHeight/2 - 50 + $(window).scrollTop() + "px",
        left : winWidth/2 - 150 + "px"
    }).show();
}

function hideLoginUI(){
    $("#gigya_login_links").hide();
}

function showGigyaLogin(){
    showFader();
    showLoginUI();
};
