Advertisement
Guest User

Untitled

a guest
Feb 13th, 2013
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // JavaScript Document
  2. var isUserAuthorized = false;
  3.  
  4. (function(d){
  5.     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
  6.     if (d.getElementById(id)) {return;}
  7.     js = d.createElement('script'); js.id = id; js.async = true;
  8.     js.src = "//connect.facebook.net/et_EE/all.js";
  9.     ref.parentNode.insertBefore(js, ref);
  10. }(document));
  11.  
  12. window.fbAsyncInit = function() {
  13.  
  14.     FB.init({
  15.       appId      : '403431009745901',
  16.       status     : true,
  17.       cookie     : true,
  18.       xfbml      : true
  19.     });
  20.  
  21.     FB.Canvas.setAutoGrow();
  22.    
  23.     FB.getLoginStatus(function(response) {
  24.         if (response.status === 'connected') {
  25.             isUserAuthorized = true;
  26.             $("#currentUserId").val(response.authResponse.userID);
  27.         } else if (response.status === 'not_authorized') {
  28.             isUserAuthorized = false;
  29.         } else {
  30.             isUserAuthorized = false;
  31.         }
  32.     });
  33. };
  34.  
  35. $(document).ready(function() {
  36.  
  37.     new game();
  38.  
  39. });
  40.  
  41. function game(){
  42.  
  43.     var currentUserId = getCurrentUserId(),
  44.         isUserLiked = isUserLiked(),
  45.         is18 = is18(),
  46.         sitePath = location.protocol + '//' + location.host + '/viruvalge/kohvrikampaania';
  47.         fbAccessPolicy = {scope: 'publish_stream'},
  48.         restoreGameTimeout = 0;
  49.    
  50.     addEvents();
  51.    
  52.     function addEvents(){
  53.    
  54.         $('.rules').click(function() {
  55.             showRules();
  56.             return false;
  57.         });    
  58.        
  59.         $('body').click(function() {
  60.             if ($(this).hasClass('show-age')){
  61.                 set18();
  62.                 return false;
  63.             }
  64.         });
  65.        
  66.         $('input').click(function() {
  67.        
  68.             if (isUserLiked == true){
  69.                 if (is18){
  70.                     if(isUserAuthorized == true){
  71.                         insertPinNumber($(this));
  72.                     } else {
  73.                         authorizeUser();
  74.                     }
  75.                 } else {
  76.                     show18Warning();
  77.                 }
  78.             } else {
  79.                 showNotLikedOverlay();
  80.             }
  81.            
  82.             return false;
  83.         });
  84.        
  85.         $('.inviteFriends').click(function() {
  86.             inviteFriends();
  87.             return false;
  88.         });
  89.     }
  90.    
  91.     function set18(){
  92.    
  93.         is18 = true;
  94.         $('#is18').val('1');
  95.         $('body').removeClass('show-age').addClass('show-submit');
  96.     }
  97.    
  98.     function authorizeUser(){
  99.    
  100.         FB.login(function(response) {
  101.    
  102.             if (response.authResponse){
  103.            
  104.                 isUserAuthorized = true;
  105.                 var accessToken = response.authResponse.accessToken;
  106.                 currentUserId = response.authResponse.userID;
  107.  
  108.                 FB.api('/me', function(response) {
  109.                    
  110.                     registerUser(response);
  111.                     postPhotoToFbAlbum(accessToken);
  112.                    
  113.                 });
  114.             }
  115.            
  116.         }, fbAccessPolicy);
  117.        
  118.     }
  119.    
  120.     function postPhotoToFbAlbum(accessToken){
  121.    
  122.         var params = {};
  123.    
  124.         FB.api('/me/albums', 'post',
  125.             { name: 'Viru Valge', message: 'Viru Valge' }, function(response) {
  126.                
  127.                 params.message = 'Hei sƵber! Ma Ć¼ritan koodi Ƥra arvata. Kui see Ƶnnestub saadab Viru Valge mind Vahemere kruiisile koos kaaslasega! Tule aita mind ja vƵid ka reisile minna saada. http://www.viruvalge.ee/kohvrimang';
  128.                 params.url = sitePath + '/seinale.jpg';
  129.                 params.access_token = accessToken;
  130.                
  131.                 FB.api('/' + response.id + '/photos', 'post',
  132.                     params, function(response) {}
  133.                 );
  134.             }
  135.         );
  136.     }
  137.    
  138.     function registerUser(user){
  139.    
  140.         $.ajax({
  141.             url: sitePath + '/_ajax/register',
  142.             data: {id: currentUserId, name: user.name},
  143.             success: function (data) {
  144.             },
  145.             dataType: 'json'
  146.         });
  147.     }
  148.    
  149.     function showNotLikedOverlay(){
  150.         $('body').removeClass('show-submit').addClass('show-like');
  151.     }  
  152.    
  153.     function show18Warning(){
  154.         $('body').removeClass('show-submit').addClass('show-age');
  155.     }
  156.    
  157.     function insertPinNumber(buttonPressed){
  158.        
  159.         var pin = setPinVal(buttonPressed.val());
  160.        
  161.         if (pin.length == 6){
  162.             submitPin(pin);
  163.         }
  164.     }
  165.    
  166.     function submitPin(pin){
  167.    
  168.         $.ajax({
  169.             url: sitePath + '/_ajax/pin',
  170.             data: {id: currentUserId, pin: pin},
  171.             success: function (data) {
  172.            
  173.                 setGameStatus(data.status, data.tries);
  174.                
  175.             },
  176.             dataType: 'json'
  177.         });
  178.     }
  179.    
  180.     function setGameStatus(status, tries){
  181.    
  182.         switch (status){
  183.             case 'win':
  184.                 setGameWinStatus();
  185.             break;
  186.             case 'over':
  187.                 setGameOverStatus();
  188.             break;
  189.             case 'reset':
  190.                 setGameResetStatus();
  191.             break;
  192.             default:
  193.                 setGameRunningStatus(tries);
  194.             break;
  195.         }
  196.     }
  197.    
  198.     function setGameResetStatus(){
  199.        
  200.         setPinVal('');
  201.         $('body').attr('class', '').addClass('show-submit');
  202.     }
  203.    
  204.     function setPinVal(val){
  205.    
  206.         var pinVal = '',
  207.             pin,
  208.             pinNumber,
  209.             valSet = false;
  210.        
  211.         $('.pin').find('p').each(function(){
  212.        
  213.             pin = $(this);
  214.             pinNumber = pin.html();
  215.  
  216.             if (pinNumber == '' && !valSet && val != ''){
  217.                 pin.html(val);
  218.                 pinVal += val;
  219.                 valSet = true;
  220.             } else if (val == ''){
  221.                 pin.html('');
  222.             }
  223.            
  224.             pinVal += pinNumber;
  225.            
  226.         });
  227.        
  228.         return pinVal;
  229.     }
  230.    
  231.     function setGameRunningStatus(tries){
  232.    
  233.         clearTimeout(restoreGameTimeout);
  234.        
  235.         $('.tries_left').text(tries);
  236.  
  237.         if (tries == 1) {
  238.             $('.tries_text').text('katse jƤƤnud');
  239.         }
  240.  
  241.         $('body').removeClass('show-submit').addClass('show-wrong');
  242.  
  243.         restoreGameTimeout = setTimeout(function(){ setGameStatus('reset'); }, 3000);
  244.     }
  245.    
  246.     function setGameOverStatus(){
  247.         $('body').removeClass('show-submit').addClass('show-gameover');
  248.     }
  249.    
  250.     function setGameWinStatus(){
  251.         $('body').removeClass('show-submit').addClass('show-win');
  252.     }
  253.    
  254.     function inviteFriends(){
  255.    
  256.         $.ajax({
  257.             url: sitePath + '/_ajax/extra',
  258.             data: {id: currentUserId},
  259.             dataType: 'json'
  260.         });
  261.  
  262.         FB.ui({ method: 'apprequests',
  263.             message: 'Arva Ƥra kohvri kood ja lƤhme Vahemere kruiisile!'
  264.         });
  265.     }
  266.    
  267.     function showRules(){
  268.        
  269.         $('#rules').dialog({
  270.             autoOpen: false,
  271.             modal: true
  272.         });
  273.  
  274.         $('#rules').dialog('option', 'title', 'Kampaania reeglid');
  275.         $('#rules').dialog('option', 'width', '700');
  276.         $('#rules').dialog({
  277.             buttons: {'Sulge': function() { $(this).dialog('close'); } }
  278.         });
  279.  
  280.         $('#rules').dialog('open');
  281.     }
  282.    
  283.     function isUserLiked(){
  284.         if ($("#isUserLiked").val() == "1")
  285.             return true;
  286.         else
  287.             return false;
  288.     }
  289.    
  290.     function is18(){
  291.         if ($("#is18").val() == "1")
  292.             return true;
  293.         else
  294.             return false;
  295.     }
  296.    
  297.     function getCurrentUserId(){
  298.         return $("#currentUserId").val();
  299.     }
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement