]> git.mxchange.org Git - friendica.git/blobdiff - include/main.js
Merge pull request #146 from tobiasd/master
[friendica.git] / include / main.js
index 34045f57f2b47b5f8e259f51db4a5f343d73ab44..d17d923e42d97eb591107432131a2c79550ee861 100644 (file)
        var langSelect = false;
        var commentBusy = false;
 
-       $(document).ready(function() {
+       $(function() {
                $.ajaxSetup({cache: false});
 
                msie = $.browser.msie ;
+               
+               
+               /* setup onoff widgets */
+               $(".onoff input").each(function(){
+                       val = $(this).val();
+                       id = $(this).attr("id");
+                       $("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
+                       
+               });
+               $(".onoff > a").click(function(event){
+                       event.preventDefault(); 
+                       var input = $(this).siblings("input");
+                       var val = 1-input.val();
+                       var id = input.attr("id");
+                       $("#"+id+"_onoff ."+ (val==0?"on":"off")).addClass("hidden");
+                       $("#"+id+"_onoff ."+ (val==1?"on":"off")).removeClass("hidden");
+                       input.val(val);
+                       //console.log(id);
+               });
+               
+               /* setup field_richtext */
+               setupFieldRichtext();
+               
+               /* load tinyMCE if needed and setup field_richtext */
+               /*if(typeof tinyMCE == "undefined") {
+                       window.tinyMCEPreInit = {
+                               suffix:"",
+                               base: baseurl+"/library/tinymce/jscripts/tiny_mce/",
+                               query:"",
+                       };
+                       $.getScript(baseurl     +"/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js", setupFieldRichtext);
+               } else {
+               }*/
+               
+               
+               
+               /* nav update event  */
+               $('nav').bind('nav-update', function(e,data){;
+                       var net = $(data).find('net').text();
+                       if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
+                       $('#net-update').html(net);
+                       var home = $(data).find('home').text();
+                       if(home == 0) { home = '';  $('#home-update').hide() } else { $('#home-update').show() }
+                       $('#home-update').html(home);
+                       var mail = $(data).find('mail').text();
+                       if(mail == 0) { mail = '';  $('#mail-update').hide() } else { $('#mail-update').show() }
+                       $('#mail-update').html(mail);
+                       var intro = $(data).find('intro').text();
+                       if(intro == 0) { intro = ''; $('#notify-update').hide() } else { $('#notify-update').show() }
+                       $('#notify-update').html(intro);
+               });
+               
+               
                NavUpdate(); 
                // Allow folks to stop the ajax page updates with the pause/break key
                $(document).keypress(function(event) {
                                        $('#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;
-//                             }
-//                     }
+                       else {
+                               // any key to resume
+                               if(stopped == true) {
+                                       stopped = false;
+                                       $('#pause').html('');
+                               }
+                       }
+
                });                                     
        });
 
        function NavUpdate() {
 
-               if($('#live-network').length) { src = 'network'; liveUpdate(); }
-               if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
+               if($('#live-network').length)   { src = 'network'; liveUpdate(); }
+               if($('#live-profile').length)   { src = 'profile'; liveUpdate(); }
+               if($('#live-community').length) { src = 'community'; liveUpdate(); }
                if($('#live-display').length) { 
                        if(liking) {
                                liking = 0;
                if(! stopped) {
                        $.get("ping",function(data) {
                                $(data).find('result').each(function() {
-                                       var net = $(this).find('net').text();
-                                       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 = '';  $('#home-update').hide() } else { $('#home-update').show() }
-                                       $('#home-update').html(home);
-                                       var mail = $(this).find('mail').text();
-                                       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);
-
+                                       // send nav-update event
+                                       $('nav').trigger('nav-update', this);
                                });
                        }) ;
                }
 
                in_progress = true;
                var udargs = ((netargs.length) ? '/' + netargs : '');
-               var update_url = 'update_' + src + udargs + '?p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
+               var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0);
 
                $.get(update_url,function(data) {
                        in_progress = false;
                liking = 1;
        }
 
+       function dostar(ident) {
+               $('#like-rotator-' + ident.toString()).show();
+               $.get('starred/' + ident.toString(), function(data) {
+                       if(data.match(/1/)) {
+                               $('#starred-' + ident.toString()).addClass('starred');
+                               $('#starred-' + ident.toString()).removeClass('unstarred');
+                       }
+                       else {                  
+                               $('#starred-' + ident.toString()).addClass('unstarred');
+                               $('#starred-' + ident.toString()).removeClass('starred');
+                       }
+                       $('#like-rotator-' + ident.toString()).hide();  
+               });
+       }
+
        function getPosition(e) {
                var cursor = {x:0, y:0};
                if ( e.pageX || e.pageY  ) {
                });
        }
 
+function checkboxhighlight(box) {
+  if($(box).is(':checked')) {
+       $(box).addClass('checkeditem');
+  }
+  else {
+       $(box).removeClass('checkeditem');
+  }
+}
+
+function setupFieldRichtext(){
+       tinyMCE.init({
+               theme : "advanced",
+               mode : "specific_textareas",
+               editor_selector: "fieldRichtext",
+               plugins : "bbcode,paste",
+               theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
+               theme_advanced_buttons2 : "",
+               theme_advanced_buttons3 : "",
+               theme_advanced_toolbar_location : "top",
+               theme_advanced_toolbar_align : "center",
+               theme_advanced_blockformats : "blockquote,code",
+               paste_text_sticky : true,
+               entity_encoding : "raw",
+               add_unload_trigger : false,
+               remove_linebreaks : false,
+               force_p_newlines : false,
+               force_br_newlines : true,
+               forced_root_block : '',
+               convert_urls: false,
+               content_css: baseurl+"/view/custom_tinymce.css",
+               theme_advanced_path : false,
+       });
+}
+
+/** 
+ * sprintf in javascript 
+ *     "{0} and {1}".format('zero','uno'); 
+ **/
+String.prototype.format = function() {
+    var formatted = this;
+    for (var i = 0; i < arguments.length; i++) {
+        var regexp = new RegExp('\\{'+i+'\\}', 'gi');
+        formatted = formatted.replace(regexp, arguments[i]);
+    }
+    return formatted;
+};
+// Array Remove
+Array.prototype.remove = function(item) {
+  to=undefined; from=this.indexOf(item);
+  var rest = this.slice((to || from) + 1 || this.length);
+  this.length = from < 0 ? this.length + from : from;
+  return this.push.apply(this, rest);
+};