/*       FB.Facebook.get_sessionState().waitUntilReady(function(session) {
         var is_loggedin = session ? true : false;
         var fbu = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : 0;
         if (is_loggedin) {
           if (fb_user_exists) {
             if (!fb_user_logged_locally) fb_ajax_connect('connect','');
           }
         } else {
           if (fbu>0) FB.Connect.logoutAndRedirect('user/logout');
         }
       });
     });
   });*/



var fb_connect_fbu = null;


function fb_connect_on_connected(fbu) {
  if (fb_connect_fbu === 0) {
	// We've gone from not connected to connected.
    if (fb_user_exists) {
	 	  if (!fb_user_logged_locally) fb_ajax_connect('connect','');
    }
  }
  fb_connect_fbu = fbu;
}

function fb_connect_on_not_connected() {
  if (fb_connect_fbu > 0) {
    if (fb_user_exists) {
	 	  if (!fb_user_logged_locally) fb_ajax_connect('connect','');
    }
  }
  fb_connect_fbu = 0;
}

function fb_connect_init() {
}


function facebook_button_onclick() {
	FB.Facebook.get_sessionState().waitUntilReady(function() {
    var fbu = FB.Facebook.apiClient.get_session() ? FB.Facebook.apiClient.get_session().uid : 0;
  	if (fbu) fb_ajax_connect('connect','');
	});
	FB.Connect.requireSession();
};

function facebook_logout_button() {
  FB.Connect.logoutAndRedirect('user/logout');
}

function fb_user_control() {
		error='';
       var obj = document.getElementById('fb_username')
       username=obj.value
					 if (username!='') {
							 if (username.lenght<3) {
             error=fb_error_username_lenght
							 } else {
           rexp=/[^a-zA-Z0-9_/.]/
           if (rexp.test(username)) error=fb_user_error_allowed_char;
							 }
					 } else error=fb_no_username;

       if (error!='') alert(error);
       else fb_ajax_connect('user_exists',username);
}

function fb_ajax_connect (op,username) {
	username = (username!=''?'&username='+username:'');
	fbu      = '&fbu='+FB.Facebook.apiClient.get_session().uid;
  params   = fb_app_label+username+fbu
  $.getJSON(fb_master_url+'&op='+op+'&data='+params+'&jsoncallback=?', function(data) {
	  var op        = data.op;
		var is_logged = eval(data.is_logged);
		var fbu       = data.fbu;
		var dbg       = data.dbg;
		switch (op) {
		  case 'reload'    : window.location.reload();break;
			case 'log_user'  : centerPopup();loadPopup();break;
			case 'userexists': alert(fb_error_username_taken);break;
			case 'logout'    : FB.Connect.logoutAndRedirect('user/logout');break;
			default          : alert(fb_error_fb_trouble);
	  }
	});
}




//SETTING UP OUR POPUP
//0 means disabled; 1 means enabled;
var popupStatus = 0;
//loading popup with jQuery magic!
function loadPopup(){
  //loads popup only if it is disabled
	if(popupStatus==0){
		$('#backgroundPopup').css({'opacity': '0.7'});
		$('#backgroundPopup').fadeIn('slow');
		$('#popupContact').fadeIn('slow');
		popupStatus = 1;
  }
}
//disabling popup with jQuery magic!
function disablePopup(){
  //disables popup only if it is enabled
	if(popupStatus==1) {
		$('#backgroundPopup').fadeOut('slow');
		$('#popupContact').fadeOut('slow');
		popupStatus = 0;
	}
}
//centering popup
function centerPopup(){
  //request data for centering
	var windowWidth = document.documentElement.clientWidth;
	var windowHeight = document.documentElement.clientHeight;
	var popupHeight = $('#popupContact').height();
	var popupWidth = $('#popupContact').width();
  //centering
	$('#popupContact').css({'position': 'absolute','top': windowHeight/2-popupHeight/2,'left': windowWidth/2-popupWidth/2});
  //only need force for IE6
	$('#backgroundPopup').css({'height': windowHeight});
}

//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){
  //Click the x event!
	$('#popupFacebookClose').click(function(){disablePopup()});
  //Click out event!
	$('#backgroundPopup').click(function(){disablePopup()});
  //Press Escape event!
	$(document).keypress(function(e){if(e.keyCode==27 && popupStatus==1){disablePopup()}});
});

function revJsonEnc(txt) {
	txt.replace(/\\x3c/g,'<');
	txt.replace(/\\x3e/g,'>');
	txt.replace(/\\x26/g,'&');
  return txt;
}

function fb_feed(fb_txt) {
 	//alert(fb_tmp);
  var fb = Drupal.parseJson(fb_txt);  
  fb_feedArr(fb);
}

function fb_feedArr(fb) { 
	fb.data = (fb.data == null?{"actions":ico+' wow ', "body_short":ico+'wow', "body_full":ico+'wow',"what":ico+'wow'}:fb.data);
  if (fb.bundle_id!=null)
    if (fb.data!=null) {
			fb.data.body_full = revJsonEnc(fb.data.body_full);
			fb.data.body_short= revJsonEnc(fb.data.body_short);
			fb.data.actions   = revJsonEnc(fb.data.actions);
      FB.Connect.showFeedDialog(fb.bundle_id, fb.data, null, null, null, FB.RequireConnect.promptConnect); 
		}
}; 
