

function debug(data,_alert) {
   var result = "";
   if (typeof data === "object")
        $.each(data,function(key,value){
            result = result + key+": "+value+"\n";
        });
   else 
       result = data;        
   if (_alert === undefined) alert(result);
   return result;
}



var FBUser = {};

FBUser.login = function() {
   FB.login(FBUser.facebook_login_callback,{
      perms:'user_events,rsvp_event,publish_stream,offline_access,email,user_about_me,user_birthday,user_location,user_hometown'      
   }); 
   return false;
}; 


FBUser.logout = function() {
   FB.logout(FBUser.facebook_logout_callback);
};   


FBUser.facebook_login_callback = function (response) {
   if (response.session) {
       if (response.perms) {
           // user is logged in and granted some permissions.
           // perms is a comma separated list of granted permissions
           Page.refresh();  
       } else {
          // user is logged in, but did not grant any permissions          
          return false;
       }
  } else {
      // user is not logged in
  }
}


FBUser.facebook_logout_callback = function(response) {  
   Page.redirect('?logout=1');  
}


var RSVP = {};

RSVP.init = function() {      
   var widgets = $(".rsvp_widget");
   if (widgets.length == 0) return;
   
   
   /*if (window.FBInitReady) alert('FBInitReady '+window.FBInitReady);
   else alert("FBInit not read");*/   
     
   //alert("FBInitReady");
   var session = FB.getSession();   
   if (session)
      RSVP.initWidgets();
   else
      RSVP.noSession();   
   
   /*FB.getLoginStatus(function(response) {
       debug(response);       
       if (response.session) {           
           RSVP.initWidgets();
       } else {           
           RSVP.noSession();
       }
   });*/
      
};


RSVP.noSession = function() {              
    $(".rsvp_widget").live("click",function(){
          FBUser.login();
    });    
};


RSVP.initWidgets = function() {         
    $(".rsvp_widget").live("click",function(){ 
          var id = $(this).attr("id").split("_")[2]; // event_id              
          $.facebox({ div: '#rsvp_dialog_container_'+id },"rsvp_dialog");      
    });   
   // predpokladam ze ked je session tak user dal opravnenie na rsvp_event  
   
   
   $(".rsvp_dialog .buttonCancel").live("click",function(){
         $(document).trigger('close.facebox');        
   });   
   $(".rsvp_dialog .buttonConfirm").live("click",function(){
         var attending = $("#facebox ul input:checked").val();
         var event_id = $(this).attr("id").split("_")[1];                  
         $(document).trigger('close.facebox');
         if (attending == undefined) {alert('undefined'); return;}
         RSVP.attending(event_id,attending);                 
   });
   
   var event_ids = "";
   var widgets = $(".rsvp_widget");         
   widgets.each(function(key,value){
      var event_id = $(value).attr("id").split("_")[2];
      if (event_id)
         event_ids += event_id+",";
   });   
   event_ids = event_ids.substr(0,event_ids.length-1); // posledna ciarka prec
   
       
   var query = FB.Data.query('SELECT rsvp_status,eid FROM event_member WHERE uid=me() AND eid IN('+event_ids+')');           
   query.wait(function(rows) {       
       $.each(rows,function(key,value){                          
           switch (value['rsvp_status']){
              case "attending":                                                                   
                 //$(".rsvp_dialog_"+value['eid']+" .attending_option").attr("checked","checked");
                 $(".rsvp_dialog_"+value['eid']+" .attending_option").html('<input checked="checked" type="radio" value="attending" name="rsvp_status_'+value['eid']+'" >');                                                                         
              break;
              case "unsure":
                 //$(".rsvp_dialog_"+value['eid']+" .maybe_option").attr("checked","checked");                 
                 $(".rsvp_dialog_"+value['eid']+" .maybe_option").html('<input checked="checked" type="radio" value="maybe" name="rsvp_status_'+value['eid']+'" >');
              break;
              case "declined":
                 //$(".rsvp_dialog_"+value['eid']+" .declined_option").attr("checked","checked");
                 $(".rsvp_dialog_"+value['eid']+" .declined_option").html('<input checked="checked" type="radio" value="declined" name="rsvp_status_'+value['eid']+'" >');
              break;                            
           }                                                                                                                                                               
       });         
   });
 
}


RSVP.getHtmlList = function(event_id) {
   return  '<li> <span class="attending_option"><input type="radio" value="attending" name="rsvp_status_'+event_id+'" /></span> <label>Zučastní sa</label> </li> <li class="notFirst"> <span class="maybe_option"><input type="radio" value="maybe" name="rsvp_status_'+event_id+'" />  </span> <label >Možno sa zúčastnia</label> </li> <li class="notFirst"> <span class="declined_option"><input type="radio" value="declined" name="rsvp_status_'+event_id+'" />  </span><label>Nezúčastnia sa</label></li>';
}


RSVP.attending = function(event_id,attending) {
     
  /*$("#rsvp_dialog_container_"+event_id+" ul").html(RSVP.getHtmlList(event_id));                          
  $("#rsvp_dialog_container_"+event_id+" ul ."+attending+"_option").html('<input checked="checked" type="radio" value="'+attending+'" name="rsvp_status_'+event_id+'" >');*/
   FB.api('/'+event_id+"/"+attending, "POST", function(response) {        
        if (!response || response.error) {
            //alert('Error occured ');
            debug(response.error);
        } else {
           //var x = $("#rsvp_dialog_container_"+event_id+" ul input:checked").removeAttr("checked"); takto to nepojde lebo element je chovany                                 
           $("#rsvp_dialog_container_"+event_id+" ul").html(RSVP.getHtmlList(event_id));                         
           $("#rsvp_dialog_container_"+event_id+" ul ."+attending+"_option").html('<input checked="checked" type="radio" value="'+attending+'" name="rsvp_status_'+event_id+'" >');
           // mozno zmenit napis na tlacitku                    
        }
    });
   
}



