]> git.mxchange.org Git - friendica.git/blobdiff - include/main.js
doc updates - connecting to services
[friendica.git] / include / main.js
index 3b6528ee9502abb6cb138e168f3683bde3aba7aa..e3e56fa0b44f67f6bad494bec06cdeaa4fd511b8 100644 (file)
       document.getElementById(theID).style.display = "none" 
   }
 
-       function commentOpen(obj,id) {
-               if(obj.value == 'Comment') {
-                       obj.value = '';
-                       obj.className = "comment-edit-text-full";
-                       openMenu("comment-edit-submit-wrapper-" + id);
-               }
-       }
-       function commentClose(obj,id) {
-               if(obj.value == '') {
-                       obj.value = 'Comment';
-                       obj.className="comment-edit-text-empty";
-                       closeMenu("comment-edit-submit-wrapper-" + id);
-               }
-       }
-
+       
        var src = null;
        var prev = null;
        var livetime = null;
        var stopped = false;
        var timer = null;
        var pr = 0;
+       var liking = 0;
+       var in_progress = false;
+       var langSelect = false;
+       var commentBusy = false;
 
        $(document).ready(function() {
                $.ajaxSetup({cache: false});
+
                msie = $.browser.msie ;
                NavUpdate(); 
-               sparkler();
                // Allow folks to stop the ajax page updates with the pause/break key
                $(document).keypress(function(event) {
                        if(event.keyCode == '19') {
                                        $('#pause').html('');
                                }
                        }
+                       // F8 - show/hide language selector
+                       if(event.keyCode == '119') {
+                               if(langSelect) {
+                                       langSelect = false;
+                                       $('#language-selector').hide();
+                               }
+                               else {
+                                       langSelect = true;
+                                       $('#language-selector').show();
+                               }
+                       }               
+
+// this is shift-home on FF, but $ on IE, disabling until I figure out why the diff.
+// update: incompatible usage of onKeyDown vs onKeyPress
+//                     if(event.keyCode == '36' && event.shiftKey == true) {
+//                             if(homebase !== undefined) {
+//                                     event.preventDefault();
+//                                     document.location = homebase;
+//                             }
+//                     }
                });                                     
        });
 
-       var spark = false;
-       function sparkler() {
-               if(spark) { 
-                       $('.sparkle').css({cursor: 'pointer'});
-                       spark = false;
-               }
-               else {
-                       $('.sparkle').css({cursor: 'crosshair'});
-                       spark = true;
-               }
-               setTimeout(sparkler,500);
-       }
-       
-
        function NavUpdate() {
 
                if($('#live-network').length) { src = 'network'; liveUpdate(); }
                if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
+               if($('#live-display').length) { 
+                       if(liking) {
+                               liking = 0;
+                               window.location.href=window.location.href 
+                       }
+               }
+               if($('#live-photos').length)  { 
+                       if(liking) {
+                               liking = 0;
+                               window.location.href=window.location.href 
+                       }
+               }
 
                if(! stopped) {
                        $.get("ping",function(data) {
                                $(data).find('result').each(function() {
                                        var net = $(this).find('net').text();
-                                       if(net == 0) { net = ''; }
+                                       if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
                                        $('#net-update').html(net);
                                        var home = $(this).find('home').text();
-                                       if(home == 0) { home = ''; }
+                                       if(home == 0) { home = '';  $('#home-update').hide() } else { $('#home-update').show() }
                                        $('#home-update').html(home);
                                        var mail = $(this).find('mail').text();
-                                       if(mail == 0) { mail = ''; }
+                                       if(mail == 0) { mail = '';  $('#mail-update').hide() } else { $('#mail-update').show() }
                                        $('#mail-update').html(mail);
                                        var intro = $(this).find('intro').text();
+                                       var register = $(this).find('register').text();
                                        if(intro == 0) { intro = ''; }
+                                       if(register != 0 && intro != '') { intro = intro+'/'+register; }
+                                       if(register != 0 && intro == '') { intro = '0/'+register; }
+                                       if (intro == '') { $('#notify-update').hide() } else { $('#notify-update').show() }
                                        $('#notify-update').html(intro);
+
                                });
                        }) ;
                }
                timer = setTimeout(NavUpdate,30000);
-
        }
 
        function liveUpdate() {
                if((src == null) || (stopped) || (! profile_uid)) { $('.like-rotator').hide(); return; }
-               if($('.comment-edit-text-full').length) {
+               if(($('.comment-edit-text-full').length) || (in_progress)) {
                        livetime = setTimeout(liveUpdate, 10000);
                        return;
                }
                prev = 'live-' + src;
 
-               $.get('update_' + src + '?p=' + profile_uid + '&msie=' + ((msie) ? 1 : 0),function(data) {
+               in_progress = true;
+               var udargs = ((netargs.length) ? '/' + netargs : '');
+               var update_url = 'update_' + src + udargs + '?p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
+
+               $.get(update_url,function(data) {
+                       in_progress = false;
+                       $('.ccollapse-wrapper',data).each(function() {
+                               var ident = $(this).attr('id');
+                               var is_hidden = $('#' + ident).is(':hidden');
+                               if($('#' + ident).length) {
+                                       $('#' + ident).replaceWith($(this));
+                                       if(is_hidden)
+                                               $('#' + ident).hide();
+                               }
+                       });
                        $('.wall-item-outside-wrapper',data).each(function() {
                                var ident = $(this).attr('id');
                                if($('#' + ident).length == 0) { 
-                                        $('img',this).each(function() {
-                                                $(this).attr('src',$(this).attr('dst'));
-                                        });
+                                       $('img',this).each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
                                        $('#' + prev).after($(this));
                                }
                                else { 
                                        $('#' + ident + ' ' + '.wall-item-comment-wrapper').replaceWith($(this).find('.wall-item-comment-wrapper'));
                                        $('#' + ident + ' ' + '.wall-item-like').replaceWith($(this).find('.wall-item-like'));
                                        $('#' + ident + ' ' + '.wall-item-dislike').replaceWith($(this).find('.wall-item-dislike'));
-                                        $('#' + ident + ' ' + '.my-comment-photo').each(function() {
-                                                $(this).attr('src',$(this).attr('dst'));
-                                        });
-
-
+                                       $('#' + ident + ' ' + '.my-comment-photo').each(function() {
+                                               $(this).attr('src',$(this).attr('dst'));
+                                       });
                                }
                                prev = ident; 
                        });
                        $('.like-rotator').hide();
+                       if(commentBusy) {
+                               commentBusy = false;
+                               $('body').css('cursor', 'auto');
+                       }
                });
-
-       }
-
-       function confirmDelete() { 
-               return confirm("Delete this item?");
        }
 
        function imgbright(node) {
-               $(node).attr("src",$(node).attr("src").replace('hide','show'));
-               $(node).css('width',24);
-               $(node).css('height',24);
+               $(node).removeClass("drophide").addClass("drop");
        }
 
        function imgdull(node) {
-               $(node).attr("src",$(node).attr("src").replace('show','hide'));
-               $(node).css('width',16);
-               $(node).css('height',16);
+               $(node).removeClass("drop").addClass("drophide");
        }
 
-       // Since ajax is asynchronous, we will give a few seconds for
-       // the first ajax call (setting like/dislike), then run the
-       // updater to pick up any changes and display on the page.
+       // Since our ajax calls are asynchronous, we will give a few 
+       // seconds for the first ajax call (setting like/dislike), then 
+       // run the updater to pick up any changes and display on the page.
        // The updater will turn any rotators off when it's done. 
        // This function will have returned long before any of these
        // events have completed and therefore there won't be any
                $.get('like/' + ident.toString() + '?verb=' + verb );
                if(timer) clearTimeout(timer);
                timer = setTimeout(NavUpdate,3000);
+               liking = 1;
+       }
+
+       function getPosition(e) {
+               var cursor = {x:0, y:0};
+               if ( e.pageX || e.pageY  ) {
+                       cursor.x = e.pageX;
+                       cursor.y = e.pageY;
+               }
+               else {
+                       if( e.clientX || e.clientY ) {
+                               cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
+                               cursor.y = e.clientY + (document.documentElement.scrollTop  || document.body.scrollTop)  - document.documentElement.clientTop;
+                       }
+                       else {
+                               if( e.x || e.y ) {
+                                       cursor.x = e.x;
+                                       cursor.y = e.y;
+                               }
+                       }
+               }
+               return cursor;
+       }
+
+       var lockvisible = false;
+
+       function lockview(event,id) {
+               event = event || window.event;
+               cursor = getPosition(event);
+               if(lockvisible) {
+                       lockviewhide();
+               }
+               else {
+                       lockvisible = true;
+                       $.get('lockview/' + id, function(data) {
+                               $('#panel').html(data);
+                               $('#panel').css({ 'left': cursor.x + 5 , 'top': cursor.y + 5});
+                               $('#panel').show();
+                       });
+               }
        }
+
+       function lockviewhide() {
+               lockvisible = false;
+               $('#panel').hide();
+       }
+
+       function post_comment(id) {
+               commentBusy = true;
+               $('body').css('cursor', 'wait');
+               $.post(  
+             "item",  
+             $("#comment-edit-form-" + id).serialize(),
+                       function(data) {
+                               if(data.success) {
+                                       $("#comment-edit-wrapper-" + id).hide();
+                                       $("#comment-edit-text-" + id).val('');
+                               var tarea = document.getElementById("comment-edit-text-" + id);
+                                       if(tarea)
+                                               commentClose(tarea,id);
+                                       if(timer) clearTimeout(timer);
+                                       timer = setTimeout(NavUpdate,10);
+                               }
+                               if(data.reload) {
+                                       window.location.href=data.reload;
+                               }
+                       },
+                       "json"  
+         );  
+         return false;  
+       }
+
+
+    function bin2hex(s){  
+        // Converts the binary representation of data to hex    
+        //   
+        // version: 812.316  
+        // discuss at: http://phpjs.org/functions/bin2hex  
+        // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)  
+        // +   bugfixed by: Onno Marsman  
+        // +   bugfixed by: Linuxworld  
+        // *     example 1: bin2hex('Kev');  
+        // *     returns 1: '4b6576'  
+        // *     example 2: bin2hex(String.fromCharCode(0x00));  
+        // *     returns 2: '00'  
+        var v,i, f = 0, a = [];  
+        s += '';  
+        f = s.length;  
+          
+        for (i = 0; i<f; i++) {  
+            a[i] = s.charCodeAt(i).toString(16).replace(/^([\da-f])$/,"0$1");  
+        }  
+          
+        return a.join('');  
+    }  
+
+       function groupChangeMember(gid,cid) {
+               $('body .fakelink').css('cursor', 'wait');
+               $.get('group/' + gid + '/' + cid, function(data) {
+                               $('#group-update-wrapper').html(data);
+                               $('body .fakelink').css('cursor', 'auto');                              
+               });
+       }
+
+       function profChangeMember(gid,cid) {
+               $('body .fakelink').css('cursor', 'wait');
+               $.get('profperm/' + gid + '/' + cid, function(data) {
+                               $('#prof-update-wrapper').html(data);
+                               $('body .fakelink').css('cursor', 'auto');                              
+               });
+       }
+