Advertisement
terorama

fbn / test45.php

Dec 22nd, 2012
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
jQuery 39.77 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. //-----------------------------------------------
  5. //    exception and error handlers
  6. //-----------------------------------------------
  7. function exceptionHandler($e)  {
  8.  
  9.    echo '<div class="remark">Uncaught exception'.$e->getMessage().'</div>';
  10. }
  11. //----------------------
  12. function errorHandler($errno, $errstr, $errfile, $errline) {
  13.  
  14.    switch ($errno) {
  15.      
  16.       case E_ERROR:
  17.          echo '<div class="remark">';
  18.          echo 'Error: '.$errstr.'<br/>File: '.$errfile.'<br/>Line: '.$errline;
  19.          echo '</div>';
  20.          break;
  21.          
  22.       case E_WARNING:
  23.          echo '<div class="remark">';
  24.          echo 'Warning: '.$errstr.'<br/>File: '.$errfile.'<br/>Line: '.$errline;
  25.          echo '</div>';
  26.          break;
  27.          
  28.       case E_NOTICE:
  29.          echo '<div class="remark">';
  30.          echo 'Notice: '.$errstr.'<br/>File: '.$errfile.'<br/>Line: '.$errline;
  31.          echo '</div>';
  32.          break;  
  33.          
  34.       case 2048:
  35.          break;
  36.          
  37.       default:
  38.          echo '<div class="remark">';
  39.          echo   'Errno: '.$errno.'<br/>Error: '.$errstr.
  40.               '<br/>File: '.$errfile.'<br/>Line: '.$errline;
  41.          echo '</div>';
  42.          
  43.    }  
  44.    
  45.    
  46.    return true;
  47.    
  48. }
  49.  
  50. set_exception_handler('exceptionHandler');
  51.  
  52. $default_error_handler = set_error_handler('errorHandler');
  53.  
  54. //-----------------------------------------------
  55. if (strpos($_SERVER['SERVER_NAME'],'unisample')===false) {
  56.    
  57.      session_start();
  58.      }
  59.  
  60. require 'fb.inc.php';
  61.  
  62.  
  63.  
  64.  
  65.  
  66. //-----------------------------------------------
  67. //           process request
  68. //-----------------------------------------------
  69. $fb = fbManager::getInstance();
  70.  
  71.    if (!isset($_REQUEST['ajax']))
  72.       draw_form();
  73.      
  74.    else
  75.       {
  76.       //---------------------------
  77.       switch ($_REQUEST['reqtype']) {
  78.          case 'showfqlcurr':
  79.          case 'showfqlall':
  80.          case 'showfqlcurr_list':
  81.          case 'showfqlall_list':
  82.            
  83.             $tname = $_REQUEST['req'];
  84.             $tname = trim(substr($tname, strpos($tname, 'from')+4));
  85.             $tname = 'fql_'.substr($tname,0, strpos($tname,' '));          
  86.             break;
  87.          
  88.          case 'showcurr':
  89.          case 'showall':
  90.          case 'showcurr_list':
  91.          case 'showall_list':
  92.            
  93.             $tname = 'fb_'.array_pop(explode('/',$_REQUEST['req']));           
  94.             break;
  95.            
  96.          case 'showcustom':
  97.          case 'showcustomall':
  98.          case 'showcustom_list':
  99.          case 'showcustomall_list':
  100.          
  101.             $tname = $_REQUEST['req'];
  102.             break; 
  103.        }
  104.        
  105.       //---------------------------
  106.       switch ($_REQUEST['reqtype']) {
  107.      
  108.          case 'showfqlcurr':
  109.          case 'showfqlcurr_list':
  110.          case 'showcurr':
  111.          case 'showcurr_list': 
  112.          case 'showcustom':
  113.          case 'showcustom_list':   
  114.          
  115.             $tcurruser=true;
  116.             break;
  117.  
  118.          case 'showfqlall':
  119.          case 'showfqlall_list':
  120.          case 'showall':
  121.          case 'showall_list':  
  122.          case 'showcustomall':
  123.          case 'showcustomall_list':
  124.  
  125.             $tcurruser=false;        
  126.             break;
  127.       }
  128.      
  129.       //---------------------------
  130.       switch ($_REQUEST['reqtype']) {
  131.      
  132.          case 'showcurr':
  133.          case 'showall':         
  134.          case 'showfqlcurr':         
  135.          case 'showfqlall':
  136.          case 'showcustom':
  137.          case 'showcustomall':
  138.  
  139.             $tprocname='db_drawTab';
  140.             break;
  141.            
  142.          case 'showcurr_list': 
  143.          case 'showall_list':            
  144.          case 'showfqlcurr_list':
  145.          case 'showfqlall_list':
  146.          case 'showcustom_list':   
  147.          case 'showcustomall_list':
  148.          
  149.             $tprocname='db_drawList';
  150.             break;
  151.       }  
  152.        
  153.        
  154.       //---------------------------
  155.       switch ($_REQUEST['reqtype']) {
  156.      
  157.          //---------------------------------
  158.          case 'switchdebug':
  159.             echo $fb->switchDebug();
  160.             break;
  161.            
  162.          case 'cleanup':
  163.             echo $fb->cleanUpDebug();
  164.             break;
  165.  
  166.          //---------------------------------
  167.          case 'apigraph':
  168.             echo json_encode($fb->getNodeAsync($_REQUEST['req']));
  169.             break;
  170.            
  171.          case 'fql':
  172.             echo json_encode($fb->getFqlAsync($_REQUEST['req']));
  173.             break;
  174.            
  175.          //---------------------------------   
  176.          case 'getfqls':
  177.             echo json_encode(getFqls());
  178.             break;
  179.            
  180.          case 'mktab':
  181.             echo '<pre>'.print_r($fb->createNodeTable($_REQUEST['req'],true),true).'</pre>';
  182.             break;
  183.            
  184.          case 'mkfqltab':
  185.             echo '<pre>'.print_r($fb->createFqlTable($_REQUEST['req'],true),true).'</pre>';
  186.             break;
  187.          
  188.          case 'filltab':
  189.             echo '<pre>'.print_r($fb->fillNodeTable($_REQUEST['req']),true).'</pre>';
  190.             break;
  191.            
  192.          case 'fillfqltab':
  193.             echo '<pre>'.print_r($fb->fillFqlTable($_REQUEST['req']),true).'</pre>';
  194.             break;
  195.            
  196.          //---------------------------------------show info      
  197.          case 'showcurr':
  198.          case 'showall':         
  199.          case 'showfqlcurr':         
  200.          case 'showfqlall':
  201.          case 'showcustom':
  202.          case 'showcustomall':
  203.          case 'showcurr_list': 
  204.          case 'showall_list':            
  205.          case 'showfqlcurr_list':
  206.          case 'showfqlall_list':
  207.          case 'showcustom_list':   
  208.          case 'showcustomall_list':
  209.          
  210.             echo $fb->$tprocname($tname, $tcurruser);
  211.             break;
  212.      
  213.          //-------------------------------------------------
  214.            
  215.          case 'drawwidget':
  216.             echo ($fb->drawWidget($_REQUEST['req']));
  217.             break;
  218.            
  219.          //------------------------------complex
  220.          case 'relatedusers':
  221.              
  222.                  $_SESSION["step"]=1;
  223.                  $_SESSION["errorsz"]=0;
  224.                  
  225.                  header('location: '.$_SERVER['PHP_SELF'].
  226.                          '?ajax&reqtype=relatedusers_go');
  227.                  break;
  228.                  
  229.         //---------------------      
  230.         case 'relatedusers_go':
  231.  
  232.                  $fb->writeRelatedUsers();
  233.                  break;
  234.            
  235.          //----------------------------
  236.          case 'relatedusers4':
  237.            
  238.             echo '<h3>Information successfully collected</h3>'.
  239.                  '<pre>'.print_r($fb->findRelatedUsers(),true).'</pre>';
  240.             break;
  241.            
  242.          //----------------------------
  243.          case 'relatedusers5':
  244.            
  245.             echo '<h3>Result page for related users</h3>';
  246.             echo $fb->drawRelatedUsers($_REQUEST['req']);
  247.            
  248.             break;
  249.            
  250.          //----------------------------
  251.          case 'likestofql':
  252.          
  253.             $outinf =$fb->likesBasesToFqlUsers();
  254.             echo '<h3>Operation results</h3>';
  255.             echo '<pre>'.print_r($outinf,true).'</pre>';
  256.             break;
  257.            
  258.          //----------------------------
  259.          case 'apigraphfillall':
  260.             $fb->writeApiGraphTables();
  261.             break;       
  262.          }
  263.       }
  264.      
  265. //-------------------------------------------
  266. //            read fqls file
  267. //-------------------------------------------
  268. function getFqls() {
  269.  
  270.    $s = file_get_contents('fql.txt');
  271.    
  272.    $spl3=str_repeat('=',76);
  273.  
  274.    
  275.    $arr = explode($spl3,$s );
  276.    
  277.    //----------------
  278.    
  279.     function inff ($value) {
  280.    
  281.       $spl4=str_repeat('-',76);
  282.        
  283.       $inf = array();
  284.       list($nam,$val) = explode($spl4, $value);
  285.      
  286.       $nam=implode(' ',array_filter(array_map('trim',explode(' ',str_replace(array("\n","\r")," ",$nam)))));
  287.       $val=implode(' ',array_filter(array_map('trim',explode(' ',str_replace(array("\n","\r")," ",$val)))));
  288.      
  289.       $inf["name"]=$nam;
  290.       $inf["value"]=$val;
  291.      
  292.       return $inf;
  293.    }
  294.    //----------------
  295.    $arr4 = array_map('inff', $arr);
  296.    
  297.    return $arr4;
  298. }
  299.  
  300.      
  301. //-------------------------------------------
  302. //          draw page
  303. //-------------------------------------------
  304. function draw_form() {
  305.    global $fb;
  306.  
  307.    $fb->getUrls();
  308. //---------------------
  309. ?>
  310.  
  311. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  312. <html xmlns:fb="http://ogp.me/ns/fb#">
  313.  
  314. <head>
  315. <title>Check page for fb operations</title>
  316.  
  317. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  318. <meta name="description" content="Check page for fb operations" />
  319. <meta name="keywords" content="facebook, api" />
  320.  
  321. <script type="text/javascript" src="jquery.min.js"></script>
  322. <!-- ----------------------------------------- -->
  323. <style type="text/css">
  324.    * {
  325.       margin:0;
  326.       padding:0;
  327.    }
  328.    
  329.    h1 {
  330.       padding:5px;
  331.    }
  332.    
  333.    h3 {
  334.       margin:15px 0 10px 0;
  335.    }
  336.    
  337.    li {
  338.       list-style-type:none;
  339.       margin-bottom:4px;
  340.    }
  341.    
  342.    
  343.    #loginblock {
  344.       font-family: arial, tahoma, sans-serif;
  345.       font-size: 12px;
  346.       word-wrap: break-word;
  347.    }
  348.    
  349.    #loginblock a, #loginblock a:visited {
  350.       display:block;
  351.       padding:5px 0 5px 20px;
  352.       margin: 4px 4px 5px 20px;
  353.       border:solid 1px #888;
  354.       background-color: #f0f0f0;
  355.       text-decoration:none;
  356.       color:#444;
  357.       font-weight:bold;
  358.       width:200px;
  359.       font-size:150%;
  360.    }
  361.    
  362.    #loginblock a:hover {
  363.       background-color:#aaa;
  364.       color:white;
  365.    }
  366.    
  367.    #leftcolumn {
  368.       float:left;
  369.       width:400px;
  370.       background-color:#f5f5f5;
  371.       padding:10px;
  372.      
  373.       font-family: verdana, sans-serif;
  374.       font-size:18px;
  375.      
  376.    }
  377.    
  378.    #leftcolumn a, #leftcolumn a:visited {
  379.       color: #800;
  380.       text-decoration:none;
  381.      
  382.    }
  383.    
  384.    #leftcolumn a:hover {
  385.    
  386.       text-decoration: underline;
  387.    }
  388.    
  389.    #maincontent {
  390.       margin-left:450px;
  391.    }
  392.    
  393.    #ajaxcontent {
  394.       min-height:40px;
  395.       background-color:#fffff0;
  396.    }
  397.    
  398.    #ajaxcontent p {
  399.    
  400.      
  401.    }
  402.    
  403.    #ajaxstatus, #ajaxstatus3 {
  404.       /*min-height:50px;*/
  405.       margin: 5px;
  406.       border: solid 1px #999;
  407.       background-color: #eee;
  408.      
  409.    }
  410.    
  411.    #ajaxstatus p, #ajaxstatus3 p, #ajaxcontent p {
  412.       overflow:hidden;
  413.       border:solid 1px #aaa;
  414.       margin:5px;
  415.       padding:10px;
  416.    }
  417.    
  418.    .remark {
  419.       padding:10px;
  420.       font-size:16px;
  421.       border:solid 4px #888;
  422.       background-color:#f5f5f5;
  423.       margin-top:15px;
  424.       width:500px;
  425.       font-weight:bold;
  426.       word-wrap: break-word;
  427.      
  428.    }
  429.    
  430.    
  431.    #flinfo {
  432.       position:absolute;
  433.       display:none;
  434.       z-index:100;
  435.      
  436.    }
  437.    
  438.    /*--------------------------------*/
  439.    form {
  440.       font-family: tahoma, geneva, sans-serif;
  441.       font-size: 16px;
  442.       color:#926262;
  443.       padding:10px;
  444.    }
  445.    
  446.    fieldset {
  447.       border:1px solid #926262;
  448.       padding:20px;
  449.       padding-left:-1px;
  450.       -webkit-border-radius:5px;
  451.       -moz-border-radius:5px;
  452.       -border-radius:5px;
  453.       -khtml-border-radius:5px;
  454.      
  455.       margin-top:10px;
  456.       margin-bottom:5px;
  457.    }
  458.    
  459.    input[type=checkbox], input[type=radio] {
  460.       display:block;     
  461.       float:left;
  462.       margin-top:5px;
  463.       margin-right:10px;
  464.          
  465.      
  466.    }
  467.    
  468.    input[type=button] {
  469.       padding:10px;
  470.       background:#fea;
  471.       color:red;
  472.       font-weight:bold;
  473.       cursor:pointer;
  474.       border:solid 1px #800;
  475.       -border-radius:5px;
  476.       -moz-border-radius:5px;
  477.       -webkit-border-radius:5px;
  478.    }
  479.    
  480.    label {
  481.       display:block;
  482.       float:left;
  483.       width:260px;
  484.       margin-bottom:10px;
  485.       margin-right:20px;
  486.       text-align:right;
  487.      
  488.    }
  489.    
  490.    legend {
  491.       font-size:1.5em;   
  492.       color:#926262;
  493.       margin-left:20px;
  494.       padding: 5px 10px;
  495.       border: 1px solid #926262;
  496.      
  497.       -webkit-border-radius:5px;
  498.       -moz-border-radius:5px;
  499.       -border-radius:5px;
  500.       -khtml-border-radius:5px;
  501.      
  502.       text-transform:capitalize;
  503.    }
  504.    
  505.    .zrightfld p {
  506.       margin-left: 200px;
  507.    }
  508.    /*--------------------------------*/
  509.    
  510.    #debugmodestate {
  511.       margin:5px 0 10px 30px;
  512.       padding: 4px 5px 5px 10px;
  513.       background: white;
  514.       border: solid 1px #888;
  515.       font-size:0.75em;
  516.       font-family: arial, sans-serif;
  517.    }
  518.    
  519.    .accinfo {
  520.       padding:20px 0 0 40px;
  521.      
  522.    }
  523.    
  524.    .accinfo li {
  525.       clear:left;
  526.       height:60px;
  527.       line-height:40px;
  528.    }
  529.    
  530.    .accinfo img {
  531.       display: block;
  532.       float:left;
  533.       margin-right:15px;
  534.    }
  535.    
  536.    .accinfo a {
  537.       font-family: verdana, sans-serif;
  538.       font-size:15px;
  539.       font-weight:bold;
  540.       color:black!important;
  541.      
  542.    }
  543. </style>
  544.  
  545. <!-- ----------------------------------------- -->
  546. <script type="text/javascript">
  547.  
  548.  
  549.    function print_r(arr, level) {
  550.    
  551.        var print_red_text = "";
  552.        
  553.        if(!level)
  554.           level = 0;
  555.        //--------------------------------  
  556.        var level_padding = "";
  557.        
  558.        for(var j=0; j<level+1; j++)
  559.           level_padding += "    ";
  560.          
  561.        //--------------------------------
  562.        if (typeof(arr) == 'object') {
  563.          
  564.           for (var item in arr) {  
  565.          
  566.              var value = arr[item];          
  567.              if (typeof(value) == 'object') {
  568.                
  569.                 print_red_text += level_padding + "'" + item + "' :\n";
  570.                 print_red_text += print_r(value,level+1);
  571.                  
  572.                 }
  573.              else
  574.                 print_red_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  575.              }
  576.           }  
  577.        else    
  578.           print_red_text = "===>"+arr+"<===("+typeof(arr)+")";
  579.          
  580.     return '<pre>'+print_red_text+'</pre>';
  581.   }
  582.    
  583.    //---------------------------------
  584.    $(document).ready(init);
  585.    
  586.    
  587.    //----------------------------------------------
  588.    //             iframe query
  589.    //----------------------------------------------
  590.    function iframeq(param, command) {
  591.    
  592.       $('#ajaxcontent').empty();
  593.       $('#ajaxcontent').append($('<iframe/>',
  594.       {id:'ziframe', width:'700', height:'400', scrolling: 'no'}));
  595.      
  596.       $('#ziframe').css('border','solid 1px #888');
  597.       $('#ziframe').attr('src',
  598.          "<?='http://'.$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"]?>"+
  599.          "?ajax&reqtype="+command+'&req='+param);
  600.      
  601.      
  602.        
  603.        
  604.    }
  605.    
  606.    //----------------------------------------------
  607.    //          draw widget
  608.    //----------------------------------------------
  609.    function draw_widget(el) {
  610.    
  611.       var f= $(el).parents('form');
  612.       var sel = f.find('select').get(0);
  613.      
  614.       var ctype = f.find('input[name="ctype"]:checked').attr('value');
  615.      
  616.      
  617.       for (var i=0; i<(sel.options.length); i++) {
  618.      
  619.          if (sel.options[i].selected) {
  620.             var zreq =  sel.options[i].value+'_'+ctype;
  621.            
  622.             el=$('#facebook-jssdk');   
  623.             if ((el).get(0)) {
  624.                el.removeAttr('src');
  625.                el.removeAttr('id');
  626.                
  627.             }
  628.             //----------------------------------------------
  629.             if (!$('#wiframme').get(0)) {
  630.                $('#ajaxcontent').empty();
  631.                
  632.                $('#ajaxcontent').append($('<iframe/>',
  633.                {id:'wiframe', width:"500", height:"400"}));
  634.                
  635.                $('#ajaxcontent').append($('<iframe/>',
  636.                {id:'wiframe3', width:"500", height:"400"}));
  637.                }
  638.              
  639.             //----------------------------------------------  
  640.             $('#wiframe').attr('src',
  641.             "<?='http://'.$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"].
  642.             '?ajax&reqtype=drawwidget&req='?>"+zreq);
  643.            
  644.             $('#wiframe').before($('<div/>').append(           
  645.                             $('<a/>', {href   : $('#wiframe').attr('src'),
  646.                                        target : "_blank"
  647.                                      })
  648.                                  .text($('#wiframe').attr('src'))));
  649.                                  
  650.             //----------------------------------------------  
  651.             $('#wiframe3').attr('src',
  652.             "<?='http://'.$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"].
  653.             '?ajax&reqtype=drawwidget&alt3&req='?>"+zreq);
  654.            
  655.             $('#wiframe3').before($('<div/>').append(          
  656.                             $('<a/>', {href   : $('#wiframe3').attr('src'),
  657.                                        target : "_blank"
  658.                                      })
  659.                                  .text($('#wiframe3').attr('src'))));                                
  660.            
  661.             //-----------------------------
  662.             break;
  663.          }       
  664.       }
  665.    }
  666.    //----------------------------------------------
  667.    //             initialization
  668.    //----------------------------------------------
  669.    function init() {
  670.    
  671.       glTime=0;
  672.       //---------------------------
  673.       load_fql_list();
  674.    
  675.       //---------------------------widget select list
  676.      
  677.       var optarr = ['login','activity','comments','facepile','likebox',
  678.                     'likebutton','recommendbar','recommendbox',
  679.                     '_registration','sendbutton','_sharelinks','sharedactivity',
  680.                     'subscribebutton'];
  681.                    
  682.       var type_arr = ['html5','opengraph','iframe', 'link'];       
  683.      
  684.       var sel=$('form[name="fdrawwidget"] select').get(0);
  685.      
  686.       for (var i=0; i<optarr.length; i++) {
  687.          var opt = new Option (optarr[i]+' widget', optarr[i], false, false);
  688.          
  689.          try {
  690.             sel.add(opt, null);
  691.            
  692.          } catch (e) {
  693.          
  694.             sel.add(opt);
  695.          }
  696.          
  697.       }
  698.      
  699.       var frmz = $(sel).parents('form');
  700.       frmz.find('input[type=button]').before($('<fieldset/>'));
  701.       frmz.find('fieldset:last').append($('<legend/>').text('code type'));
  702.      
  703.       var tmpf = frmz.find('fieldset:last');
  704.      
  705.       for (var i=0; i<type_arr.length; i++) {
  706.      
  707.          var tmpp = tmpf.append($('<p/>').text(type_arr[i])).find('p:eq('+i+')');
  708.          tmpp.prepend($('<input/>',{type:'radio',name:'ctype',value:type_arr[i]}));
  709.       }
  710.      
  711.       tmpf.find('input[type=radio]:first').attr('checked',true);
  712.      
  713.      
  714.       //---------------------------
  715.       $('#leftcolumn h3').css({cursor:'pointer'}).click( function()
  716.          {$(this).next('ul').slideToggle('fast');}
  717.       )
  718.       //---------------------------
  719.       $('form[name=paramform] input[type="checkbox"]').change(                           
  720.               function() {                   
  721.                      var curel = this;
  722.                      
  723.                      $(this).parent().children('input').each(
  724.                         function(index) {
  725.                            
  726.                            if (this!==curel) {
  727.                               $(this).removeAttr('checked');
  728.                            }
  729.                         }
  730.                      )
  731.                   }
  732.                )
  733.                
  734.       //---------------------------
  735.       $('form[name=relusrform] input[type="checkbox"]').change(
  736.          function() {
  737.             var curel = this;
  738.            
  739.            
  740.             $(this).parent().parent().find('input').each(
  741.                function(index) {
  742.                   //alert(this.value);
  743.                   if (this!==curel) {
  744.                      $(this).removeAttr('checked');
  745.                   }
  746.                }
  747.             )
  748.          }
  749.          
  750.       )
  751.      
  752.                
  753.       //------------------------------------------------------------------     
  754.       //                  Graph API Requests
  755.       //------------------------------------------------------------------
  756.       $('#operationslist a').each(
  757.          function(i) {
  758.          
  759.             $(this).click(function() {
  760.                
  761.                var reqq = $(this).attr('rel');
  762.                var usrr = $('form[name=relusrform] input[type="checkbox"]:checked');
  763.                
  764.                if (usrr.get(0)) {
  765.                   if (reqq.indexOf('/')!=-1)
  766.                      reqq=usrr.attr('value')+reqq.slice(reqq.indexOf('/'));
  767.                   else
  768.                      reqq=usrr.attr('value');
  769.                }
  770.                  
  771.                
  772.                //-----------------------
  773.                var inp = $('form[name=paramform] input[name=crtab]');
  774.                var outtype =
  775.                   $('form[name=paramform] fieldset:last input[name="outtype"]:checked').attr('value');
  776.                            
  777.                if ((inp.attr('checked')!==undefined) && (inp.attr('checked')!==false))
  778.                
  779.                   //---------------creating table
  780.                  
  781.                   req_createtable(reqq,'mktab');
  782.                else
  783.                   //---------------------filling table
  784.                  
  785.                   if (inp.nextAll('input').first().attr('checked')==='checked')
  786.                      
  787.                      req_createtable(reqq,'filltab');
  788.                          
  789.                   else
  790.                      //------------------show table for current user
  791.                      
  792.                      if (inp.nextAll('input').eq(1).attr('checked')==='checked') {
  793.                      
  794.                         if (outtype=='zlist')                      
  795.                            req_createtable(reqq, 'showcurr_list');
  796.                         else
  797.                            req_createtable(reqq, 'showcurr' );
  798.                            
  799.                     } else                       
  800.                         //-------------------show table for all users
  801.                        
  802.                         if (inp.nextAll('input').eq(2).attr('checked')==='checked') {
  803.                        
  804.                            if (outtype=='zlist')
  805.                               req_createtable(reqq,'showall_list');
  806.                            else
  807.                               req_createtable(reqq,'showall');
  808.                              
  809.                         } else
  810.                            //-----------------graph api request
  811.                            
  812.                            ajax_request(reqq,'apigraph');
  813.                                    
  814.                return false;               
  815.                
  816.             });
  817.            
  818.             $(this).text('load '+$(this).attr('rel'));
  819.             //alert $(this);
  820.          })
  821.          
  822.          //------------------------------------------------------------------
  823.          //                        custom tables
  824.          //------------------------------------------------------------------
  825.          $('#operationslist4 a').each(
  826.             function(i) {
  827.            
  828.                $(this).click( function() {
  829.                
  830.                   var inp3 = $('form[name=paramform] input[name=showcurr]');
  831.                   var inp4 = $('form[name=paramform] input[name=showall]');
  832.                   var outtype =
  833.                      $('form[name=paramform] fieldset:last input[name="outtype"]:checked').attr('value');
  834.                  
  835.                   //--------------------------------  
  836.                   if ((inp3.attr('checked')!==undefined) && (inp3.attr('checked')!==false)) {
  837.                
  838.                      if (outtype=='zlist')
  839.                         req_createtable($(this).attr('rel'), 'showcustom_list');
  840.                      else
  841.                         req_createtable($(this).attr('rel'), 'showcustom');
  842.                   }
  843.                
  844.                   //--------------------------------  
  845.                   if ((inp4.attr('checked')!==undefined) && (inp4.attr('checked')!==false)) {
  846.                  
  847.                      if (outtype=='zlist')
  848.                         req_createtable($(this).attr('rel'), 'showcustomall_list');
  849.                      else
  850.                         req_createtable($(this).attr('rel'), 'showcustomall');
  851.                    }
  852.                })
  853.                
  854.                $(this).text('show '+$(this).attr('rel'));
  855.             }
  856.          )
  857.          
  858.          
  859.       //-----------  AjaxStart, AjaxStop, AjaxSend, AjaxSuccess, AjaxError, AjaxComplete events
  860.      
  861.       //---------------------------------------  
  862.       //     ajaxStart   
  863.       //---------------------------------------  
  864.       $('#ajaxstatus').ajaxStart(
  865.           function() {
  866.              $(this).html('Request started. Please wait...');
  867.           })
  868.          
  869.       //---------------------------------------  
  870.       //    ajaxStop
  871.       //---------------------------------------      
  872.       $('#ajaxstatus').ajaxStop(
  873.           function() {
  874.              $(this).html('Request finished');
  875.           } )    
  876.      
  877.        //---------------------------------------     
  878.        //     ajaxSend
  879.        //---------------------------------------     
  880.        $('#ajaxstatus3').ajaxSend (
  881.        
  882.           function(ev, jqXHR, options) {   
  883.          
  884.              $(this).empty();
  885.              $(this).append($('<p/>').html('<b>triggered ajaxSend</b>'));
  886.              
  887.              $(this).append($('<p/>').html('ajaxResponse: <pre>'+jqXHR.responseText+'</pre>'));
  888.              $(this).append($('<p/>').html('status: '+jqXHR.status+'<br/>ready state:'+jqXHR.readyState));
  889.              
  890.              //---------------------------
  891.              $(this).append(
  892.                 $('<p>', {class:'info'}).html('ev: <br/>'/*+print_r(ev)*/));
  893.              
  894.              $(this).append(
  895.                 $('<p>', {class:'info'}).html('jqXHR: <br/>'+print_r(jqXHR))
  896.                    .css({'height':'50px', 'cursor':'pointer'})
  897.                    .click(function() {
  898.                      
  899.                       if ($(this).height()<800)
  900.                          $(this).animate({'height':'800px'},"fast");
  901.                       else
  902.                          $(this).animate({'height':'50px'},"fast");
  903.                    }));
  904.                
  905.            
  906.              $(this).append($(document.createElement('P'))
  907.                          .html('options: <br/>' +print_r(options))
  908.                          .css({'height':'50px', 'cursor':'pointer'})
  909.                          .click(function() {
  910.                             if ($(this).height()<800)
  911.                                $(this).animate({'height':'800px'},"fast");
  912.                             else
  913.                                $(this).animate({'height':'50px'},"fast");
  914.                          }));                    
  915.           }
  916.        )
  917.        
  918.        //---------------------------------------     
  919.        //     ajaxSuccess
  920.        //---------------------------------------
  921.        $('#ajaxstatus3').ajaxSuccess(
  922.        
  923.           function (ev, jqXHR, options) {
  924.              $(this).append($('<p/>').html('<b>triggered ajaxSuccess</b>'));
  925.              
  926.               //$(this).append($('<p/>').html('ajaxResponse: <pre>'+jqXHR.responseText+'</pre>'));
  927.               $(this).append($('<p/>').html('status: '+jqXHR.status+'<br/>ready state:'+jqXHR.readyState));
  928.           }
  929.        );
  930.        
  931.        //---------------------------------------     
  932.        //     ajaxError
  933.        //---------------------------------------
  934.        $('#ajaxstatus3').ajaxError(
  935.        
  936.           function (ev, jqXHR, options, exception) {
  937.              $(this).append($('<p/>').html('<b>triggered ajaxError</b>'));
  938.              
  939.               $(this).append($('<p/>').html('ajaxResponse: <pre>'+jqXHR.responseText+'</pre>'));
  940.               $(this).append($('<p/>').html('status: '+jqXHR.status+'<br/>ready state:'+jqXHR.readyState));
  941.               $(this).append($('<p/>').html('exception: '+exception));
  942.           }
  943.        );
  944.        
  945.        
  946.        //---------------------------------------     
  947.        //     ajaxComplete
  948.        //---------------------------------------
  949.        $('#ajaxstatus3').ajaxComplete(
  950.        
  951.           function (ev, jqXHR, options) {
  952.              $(this).append($('<p/>').html('<b>triggered ajaxComplete</b>'));
  953.              
  954.               //$(this).append($('<p/>').html('ajaxResponse: <pre>'+jqXHR.responseText+'</pre>'));
  955.               $(this).append($('<p/>').html('status: '+jqXHR.status+'<br/>ready state:'+jqXHR.readyState));
  956.           }
  957.        );
  958.      
  959.      
  960.    }
  961.  
  962.    
  963.    //-------------------------------------------------------
  964.    //                 local events
  965.    //-------------------------------------------------------
  966.    //-------------------------------------------------------
  967.    //         onSuccess
  968.    //-------------------------------------------------------
  969.    function onSuccess(inf, textStatus, jqXHR) {
  970.    
  971.      var a = $('#ajaxstatus3');
  972.      
  973.      a.append($('<p/>').html('<font color="red"><b>triggered local success</b></font>'));
  974.      //a.append($('<p/>').html('ajaxResponse: <pre>'+jqXHR.responseText+'</pre>'));
  975.      a.append($('<p/>').html('status: '+jqXHR.status+'<br/>ready state:'+jqXHR.readyState));
  976.      a.append($('<p/>').html('textStatus: '+textStatus));
  977.    
  978.    
  979.       var s='';
  980.       //--------------------
  981.       function get_obj(objel, deep) {
  982.      
  983.           var s3= new Array(deep*3).join('&nbsp;');
  984.          
  985.           for (var el in objel) {
  986.            
  987.               s3+=typeof(objel[el])+' : '+el+' = '
  988.              
  989.               if (typeof(objel[el])=='object')
  990.              
  991.                   s3+=String.fromCharCode(13)+String.fromCharCode(10)+
  992.                        get_obj(objel[el], deep+1);
  993.                else {
  994.                   s3+= objel[el]+String.fromCharCode(13)+String.fromCharCode(10);
  995.                   }
  996.          }
  997.          return s3;
  998.      
  999.       }
  1000.       //--------------------
  1001.       s=get_obj(inf,0);
  1002.      
  1003.       var tnode = $('#ajaxcontent');
  1004.       tnode.empty();
  1005.      
  1006.       tnode.append($(document.createElement('P')));
  1007.       tnode.children('p').filter(':eq(0)').html('<b>'+textStatus+'</b>');
  1008.  
  1009.       tnode.append($('<p/>').html('<pre>'+s+'</pre>'));
  1010.      
  1011.       tnode.append($('<p>', {class: 'zinfo'}).html('XHR:<br/>'+print_r(jqXHR)));
  1012.      
  1013.      
  1014.    }
  1015.    
  1016.    //-------------------------------------------------------
  1017.    //         onError
  1018.    //-------------------------------------------------------
  1019.    function onError(xhr, status, exception) {
  1020.    
  1021.      var a = $('#ajaxstatus3');
  1022.      
  1023.      a.append($('<p/>').html('<font color="red"><b>triggered local error</b></font>'));
  1024.      a.append($('<p/>').html('ajaxResponse: <pre>'+xhr.responseText+'</pre>'));
  1025.      a.append($('<p/>').html('status: '+xhr.status+'<br/>ready state:'+xhr.readyState));
  1026.      a.append($('<p/>').html('textStatus: '+status));
  1027.      a.append($('<p/>').html('Exception: '+exception));
  1028.      
  1029.    }
  1030.    
  1031.    //-------------------------------------------------------
  1032.    //         onBeforeSend
  1033.    //-------------------------------------------------------
  1034.    
  1035.    function onBeforeSend(xhr, settings) {
  1036.    
  1037.      var tnode = $('#ajaxcontent');
  1038.      tnode.html('please wait...');
  1039.    
  1040.      var a = $('#ajaxstatus3');
  1041.      a.empty();
  1042.      a.append($('<p/>').html('<font color="red"><b>triggered local beforeSend</b></font>'));
  1043.      a.append($('<p/>').html('ajaxResponse: <pre>'+xhr.responseText+'</pre>'));
  1044.      a.append($('<p/>').html('status: '+xhr.status+'<br/>ready state:'+xhr.readyState));
  1045.      //a.append($('<p/>').html('settings: '+print_r(settings)));
  1046.    }
  1047.    
  1048.    //-------------------------------------------------------
  1049.    //         onComplete
  1050.    //-------------------------------------------------------
  1051.    function onComplete(xhr, status) {
  1052.    
  1053.      var a = $('#ajaxstatus3');
  1054.      
  1055.      a.append($('<p/>').html('<font color="red"><b>triggered local complete</b></font>'));
  1056.      //a.append($('<p/>').html('ajaxResponse: <pre>'+xhr.responseText+'</pre>'));
  1057.      a.append($('<p/>').html('status: '+xhr.status+'<br/>ready state:'+xhr.readyState));
  1058.      a.append($('<p/>').html('textStatus: '+status));
  1059.    }
  1060.    
  1061.    
  1062.    //-------------------------------------------------------
  1063.    //            ajax request
  1064.    //-------------------------------------------------------
  1065.    
  1066.    function ajax_request(param, reqtypeval) {
  1067.    
  1068.       $.ajaxSetup( {
  1069.      
  1070.          type: 'POST',
  1071.          url: "<?php echo $_SERVER["PHP_SELF"]?>",
  1072.          dataType: 'json',
  1073.          processData: true,
  1074.          cache: false,
  1075.          timeout: 50000,
  1076.          
  1077.          username: '',
  1078.          password: '',
  1079.          ifModified: false,
  1080.          global: true,
  1081.          crossDomain: false,
  1082.       })
  1083.      
  1084.       //----------------------------
  1085.       $.ajax (
  1086.          {
  1087.             data: {ajax:'',
  1088.                   reqtype:reqtypeval,
  1089.                   req: param},
  1090.        
  1091.             //-----------------
  1092.             beforeSend: onBeforeSend,
  1093.             success: onSuccess,
  1094.             error: onError,
  1095.            
  1096.             complete: onComplete,
  1097.            
  1098.             statusCode: {
  1099.                404: function() {
  1100.                
  1101.                   var tnode = $('#ajaxcontent');
  1102.                   tnode.html
  1103.                }
  1104.             }
  1105.            
  1106.            
  1107.          
  1108.          })
  1109.    
  1110.    }
  1111.  
  1112.    //-------------------------------------------------------
  1113.    //            load fql list
  1114.    //-------------------------------------------------------
  1115.    
  1116.    function onGetSuccess (data, status, xhr) {
  1117.       el = $('#operationslist3');
  1118.      
  1119.       $.each(data, function (i, valu) {
  1120.          var lii=$('<li/>');
  1121.          
  1122.          var a = $('<a/>');
  1123.  
  1124.          a.text(valu["name"]);
  1125.          a.attr('href','#');
  1126.          
  1127.          //-----------------------------
  1128.          a.click(
  1129.             //------------
  1130.             {fqlval: valu["value"]},
  1131.             //------------
  1132.             function(ev) {
  1133.            
  1134.                var inp = $('form[name=paramform] input[name=crtab]');
  1135.                var outtype =
  1136.                   $('form[name=paramform] fieldset:last input[name="outtype"]:checked').attr('value');
  1137.                
  1138.                
  1139.                if ((inp.attr('checked')!==undefined) && (inp.attr('checked')!==false))
  1140.                
  1141.                   //-----------------creating table    
  1142.                  
  1143.                   req_createtable(ev.data.fqlval, 'mkfqltab');               
  1144.                else
  1145.                   //----------------------filling table
  1146.                  
  1147.                   if (inp.nextAll('input').first().attr('checked')==='checked')
  1148.                                          
  1149.                      req_createtable(ev.data.fqlval,'fillfqltab');                   
  1150.                   else                   
  1151.                      //------------------------show table for current user
  1152.                      
  1153.                      if (inp.nextAll('input').eq(1).attr('checked')==='checked') {
  1154.                        
  1155.                         if (outtype=='zlist')
  1156.                            req_createtable(ev.data.fqlval, 'showfqlcurr_list');
  1157.                         else
  1158.                            req_createtable(ev.data.fqlval, 'showfqlcurr');
  1159.                            
  1160.                         }
  1161.                      else
  1162.                         //--------------------show table for all users
  1163.                        
  1164.                         if (inp.nextAll('input').eq(2).attr('checked')==='checked') {
  1165.                            
  1166.                            if (outtype=='zlist')
  1167.                               req_createtable(ev.data.fqlval, 'showfqlall_list');
  1168.                            else
  1169.                               req_createtable(ev.data.fqlval, 'showfqlall');
  1170.                         }
  1171.                         else
  1172.                            //-------------------fql request
  1173.                            
  1174.                            ajax_request(ev.data.fqlval,'fql'); 
  1175.                  
  1176.                return false;
  1177.             });
  1178.            
  1179.         //-----------------------------
  1180.         a.data('fqv',valu["value"]);
  1181.        
  1182.         a.hover (
  1183.  
  1184.          function(ev) {
  1185.             //$(this).after($('<p/>',{class:'remark'}).text($(this).data('fqv')));
  1186.             //alert (ev.clientX);
  1187.            
  1188.            
  1189.             clearTimeout(glTime);
  1190.                
  1191.             $('#flinfo').text($(this).data('fqv'))
  1192.                .clearQueue()
  1193.                .addClass('remark')
  1194.                .css('left',ev.clientX+100)
  1195.                .css('top',ev.clientY+
  1196.                   ((document.documentElement && document.documentElement.scrollTop) ||
  1197.                   (document.body && document.body.scrollTop) || 0)-100)
  1198.                .fadeIn("fast");
  1199.            
  1200.          },
  1201.          
  1202.          function(ev) {
  1203.             //$(this).next('p').remove();
  1204.             glTime= setTimeout( function() {
  1205.             $('#flinfo').fadeOut("slow")
  1206.                .queue(
  1207.                   function() {
  1208.                      $(this).removeClass('remark');
  1209.                      $(this).dequeue();
  1210.                      })}, 1000);
  1211.                      
  1212.          }
  1213.    
  1214.         )
  1215.                  
  1216.          lii.append(a);
  1217.          el.append(lii);
  1218.       });
  1219.    }
  1220.    
  1221.    //--------------------------------------------  
  1222.    function load_fql_list() {
  1223.    
  1224.       $inf = $.get( "<?php echo $_SERVER["PHP_SELF"]?>",
  1225.                     {ajax:'', reqtype:'getfqls'},
  1226.                     onGetSuccess,
  1227.                     'json');
  1228.                    
  1229.    }
  1230.    
  1231.    //------------------------------------------------------------  
  1232.    //      create table  - request
  1233.    //------------------------------------------------------------
  1234.  
  1235.    function onPostSuccess (data, status, xhr) {
  1236.    
  1237.       var tnode =$('#ajaxcontent');
  1238.      
  1239.       tnode.empty();
  1240.      
  1241.       tnode.append($('<p/>').text('status: '+status));
  1242.       tnode.append($('<p/>').html(data));
  1243.    }
  1244.    
  1245.    
  1246.    //-------------------------------------------------------
  1247.    function req_createtable (param, command) {
  1248.    
  1249.       var tnode =$('#ajaxcontent');  
  1250.       tnode.empty();
  1251.      
  1252.       $inf = $.post("<?php echo $_SERVER["PHP_SELF"]?>",
  1253.                         {ajax:'',
  1254.                          reqtype: command,
  1255.                          req: param},
  1256.                          
  1257.                          onPostSuccess,
  1258.                          'text'
  1259.                          );
  1260.    
  1261.       return $inf; 
  1262.                          
  1263.    }  
  1264.    
  1265.    //------------------------------------------------------------
  1266.    //        simple get request
  1267.    //------------------------------------------------------------
  1268.    
  1269.    function onGetSuccess4(data, status, xhr) {
  1270.    
  1271.       var tnode = $('#ajaxcontent');
  1272.      
  1273.       tnode.append($('<p/>').text('status: '+status));
  1274.       tnode.append($('<p/>').html(data));
  1275.    }
  1276.    
  1277.    //------------------------------------------------------
  1278.    function ajax_get(param, command) {
  1279.    
  1280.       var tnode = $('#ajaxcontent');
  1281.       tnode.empty();
  1282.      
  1283.       $inf = $.get("<?php echo $_SERVER["PHP_SELF"]?>",
  1284.                      { ajax:'',
  1285.                        reqtype: command,
  1286.                        req: param},
  1287.                        
  1288.                        onGetSuccess4,
  1289.                        'text');
  1290.       return $inf;             
  1291.    }
  1292.    
  1293.    //------------------------------------------------------------
  1294.    //           switch debug mode
  1295.    //------------------------------------------------------------
  1296.    function switch_debugmode() {
  1297.       $('#debugmodestate').load(
  1298.      
  1299.             "<?php echo $_SERVER["PHP_SELF"]?>",
  1300.             {ajax:'',reqtype:'switchdebug'}
  1301.       )
  1302.    }
  1303.    
  1304.    //------------------------------------------------------------
  1305.    //           cleanup debug files
  1306.    //------------------------------------------------------------
  1307.    function cleanup_debug() {
  1308.       $('#debugmodestate').load(
  1309.          
  1310.          "<?php echo $_SERVER["PHP_SELF"]?>",
  1311.          {ajax:'', reqtype:'cleanup'}
  1312.       )
  1313.    }
  1314.    
  1315. </script>
  1316. <!-- ------------------------------------------ -->
  1317.  
  1318. </head>
  1319.  
  1320. <body>
  1321.  
  1322.    <div id="flinfo">
  1323.    </div>
  1324.    <h1>Test fb operational page</h1>
  1325.    <div id="loginblock">
  1326.    <?php
  1327.     //echo '<pre>'.print_r($_SESSION,true).'</pre>';
  1328.    
  1329.     $uuu = create_function('$val','return is_string($val);');
  1330.     $fbf = create_function('$val','return substr($val,0,3)==\'fb_\';');
  1331.     $uu8 = create_function('$val','return is_scalar($val);');
  1332.  
  1333.     $arr3 = array_flip(
  1334.                             array_filter(
  1335.                                      array_flip(
  1336.                                           array_filter($_SESSION, $uuu)), $fbf));
  1337.                                          
  1338.     $arr4 = array_diff($_SESSION, $arr3);
  1339.     $arr4 = array_filter($arr4, $uu8);
  1340.  
  1341.     echo '<pre>'.print_r($arr3, true).'</pre>';
  1342.     echo '<pre>'.print_r($arr4, true).'</pre>';
  1343.  
  1344.    if (!$fb->connected()) {
  1345.       echo   "<a href=\"$fb->loginUrl\">Login</a>";
  1346.      
  1347.    }
  1348.    else {
  1349.       echo   "<a href=\"$fb->logoutUrl\">Logout</a>";
  1350.  
  1351.    }  
  1352.  
  1353.    ?>
  1354.    </div>
  1355.    
  1356.    <div id="leftcolumn">
  1357.    
  1358.    <h3>Operations</h3>
  1359.    <a href='#' onclick="iframeq('','relatedusers');return false;">Related users: collect info</a><br/>
  1360.    <a href='#' onclick="ajax_get('','relatedusers4');return false;">Related users: Show info</a><br/>
  1361.    <a href='#' onclick="ajax_get('','relatedusers5');return false;">Related users: Result page</a><br/>
  1362.    <a href='#' onclick="ajax_get('','likestofql');return false;">Service: likes:base-&gt;fb_user</a><br/><br/>
  1363.    
  1364.    <a href='#' onclick="iframeq('&start','apigraphfillall');return false;">Graph tables: fill all</a><br/>
  1365.    <a href='details.php' target="_blank">Details page</a>
  1366.    
  1367.    <h3>Information gathered</h3>
  1368.    <form name="relusrform"><ul class="accinfo">
  1369.    <?php
  1370.    
  1371.    $inf = $fb->getAcceptors();
  1372.    
  1373.    foreach ($inf as $el) {
  1374.      echo '<li><a href="#" onclick="ajax_get(\''.$el['user_id'].
  1375.         '\',\'relatedusers5\');return false;" ><img src="'
  1376.         .$el['userpic'].'" />'.$el['user_name'].'</a>';
  1377.        
  1378.     echo '<input type="checkbox" name="relusrchk'.$el['user_id'].'" value="'.$el['user_id'].'" />';
  1379.        
  1380.     echo '</li>';
  1381.    }
  1382.    
  1383.    ?>
  1384.    </ul></form>
  1385.    
  1386.    <h3>Utils</h3>
  1387.    <a href='#' onclick="ajax_request('','getfqls');return false;">list of fqls</a><br/>
  1388.    <a href='#' onclick="switch_debugmode();return false;">switch debug mode</a><br/>
  1389.    <a href='#' onclick="cleanup_debug();return false;">cleanup debug files</a>
  1390.    <div id="debugmodestate"></div>
  1391.    
  1392.    <form name="fdrawwidget">
  1393.      <fieldset>
  1394.      <legend>draw facebook widget</legend>
  1395.       <select>
  1396.       </select>
  1397.       <input type="button" onclick="draw_widget(this);" value="draw" />
  1398.       </fieldset>
  1399.    </form>
  1400.    
  1401.    <form name="paramform">
  1402.       <fieldset>
  1403.          <legend>commands</legend>
  1404.          <label for="crtab">create table for node</label>
  1405.          <input type="checkbox" name="crtab" />
  1406.          
  1407.           <label for="filltab">fill table for node</label>
  1408.           <input type="checkbox" name="filltab" />
  1409.          
  1410.           <label for="showcurr">show contents (current user) </label>
  1411.           <input type="checkbox" name="showcurr" />
  1412.          
  1413.           <label for="showall">show contents (all) </label>
  1414.           <input type="checkbox" name="showall" />
  1415.       </fieldset>
  1416.      
  1417.       <fieldset class="zrightfld">
  1418.          <p><input type="radio" name="outtype" value="ztable" checked />output table</p>
  1419.          <p><input type="radio" name="outtype" value="zlist" />output list</p>
  1420.          
  1421.       </fieldset>
  1422.    </form>
  1423.    
  1424.    <h3>Custom tables</h3>
  1425.    <ul id="operationslist4">
  1426.       <li><a href="#" rel="fbs_likes_users"></a></li>
  1427.    </ul>
  1428.    
  1429.    <h3>Api graph requests</h3>
  1430.    <ul id="operationslist">
  1431.           <li><a href="#" rel="me"></a></li>
  1432.       <li><a href="#" rel="me/accounts"></a></li>
  1433.       <li><a href="#" rel="me/achievements"></a></li>
  1434.       <li><a href="#" rel="me/activities"></a></li>
  1435.       <li><a href="#" rel="me/albums"></a></li>
  1436.       <li><a href="#" rel="me/apprequests"></a></li>
  1437.       <li><a href="#" rel="me/books"></a></li>
  1438.       <li><a href="#" rel="me/checkins"></a></li>
  1439.       <li><a href="#" rel="me/events"></a></li>
  1440.       <li><a href="#" rel="me/family"></a></li>
  1441.       <li><a href="#" rel="me/friendlists"></a></li>
  1442.       <li><a href="#" rel="me/friendrequests"></a></li>
  1443.       <li><a href="#" rel="me/friends"></a></li>
  1444.       <li><a href="#" rel="me/games"></a></li>
  1445.       <li><a href="#" rel="me/groups"></a></li>
  1446.       <li><a href="#" rel="me/home"></a></li>
  1447.       <li><a href="#" rel="me/inbox"></a></li>
  1448.       <li><a href="#" rel="me/interests"></a></li>
  1449.       <li><a href="#" rel="me/likes"></a></li>
  1450.       <li><a href="#" rel="me/links"></a></li>
  1451.       <li><a href="#" rel="me/locations"></a></li>
  1452.       <li><a href="#" rel="me/movies"></a></li>
  1453.       <li><a href="#" rel="me/music"></a></li>
  1454.       <li><a href="#" rel="me/mutualfriends"></a></li>
  1455.       <li><a href="#" rel="me/notes"></a></li>
  1456.       <li><a href="#" rel="me/notifications"></a></li>
  1457.       <li><a href="#" rel="me/outbox"></a></li>
  1458.       <li><a href="#" rel="me/payments"></a></li>
  1459.       <li><a href="#" rel="me/permissions"></a></li>
  1460.       <li><a href="#" rel="me/photos"></a></li>
  1461.       <li><a href="#" rel="me/photos/uploaded"></a></li>
  1462.       <li><a href="#" rel="me/picture"></a></li>
  1463.       <li><a href="#" rel="me/pokes"></a></li>
  1464.       <li><a href="#" rel="me/posts"></a></li>
  1465.       <li><a href="#" rel="me/questions"></a></li>
  1466.       <li><a href="#" rel="me/scores"></a></li>
  1467.       <li><a href="#" rel="me/sharedposts"></a></li>
  1468.       <li><a href="#" rel="me/statuses"></a></li>
  1469.       <li><a href="#" rel="me/subscribedto"></a></li>
  1470.       <li><a href="#" rel="me/subscribers"></a></li>
  1471.       <li><a href="#" rel="me/tagged"></a></li>
  1472.       <li><a href="#" rel="me/television"></a></li>
  1473.       <li><a href="#" rel="me/updates"></a></li>
  1474.       <li><a href="#" rel="me/videos"></a></li>
  1475.      
  1476.    </ul>
  1477.    
  1478.    <h3>Fql requests</h3>
  1479.    <ul id="operationslist3">
  1480.      
  1481.      
  1482.    </ul>
  1483.    </div>
  1484.    <div id="maincontent">
  1485.    
  1486.       <div id="ajaxcontent"></div>  
  1487.       <div id="ajaxstatus"></div>
  1488.       <div id="ajaxstatus3"></div>
  1489.    </div>
  1490. </body>
  1491. </html>
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497. <?php
  1498. //--------------------
  1499.  
  1500. }
  1501.    
  1502.  
  1503. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement