]> code.citadel.org Git - citadel.git/blobdiff - webcit/static/wclib.js
Allow multiple addresses to be selected.
[citadel.git] / webcit / static / wclib.js
index fbe50fde5a673aa3f427d4940b7ebee76a730c04..ac8c4284bf51fff23afc7fe3dbfebc5887050168 100644 (file)
@@ -18,6 +18,11 @@ if (window.navigator.userAgent.toLowerCase().match("gecko")) {
 var ns6=document.getElementById&&!document.all;
 
 
+function CtdlRandomString()  {
+       return((Math.random()+'').substr(3));
+}
+
+
 
 // We love string tokenizers.
 function extract_token(source_string, token_num, delimiter) {
@@ -552,8 +557,7 @@ function ctdl_ts_getInnerText(el) {
 //
 function add_new_note() {
 
-       new_eid = Math.random() + '';
-       new_eid = new_eid.substr(3);
+       new_eid = CtdlRandomString();
 
        $('new_notes_here').innerHTML = $('new_notes_here').innerHTML
                + '<IMG ALIGN=MIDDLE src=\"static/storenotes_48x.gif\">'
@@ -580,6 +584,7 @@ customnav.setAttribute("class","floatcustomnav");
 floatwindow("headerscreen","pre",customnav);
 rawSwitch822(msgnum);
 }
+
 function rawSwitch822(msgnum) {
 CtdlLoadScreen("headerscreen");
 new Ajax.Updater("headerscreen", 
@@ -587,6 +592,7 @@ new Ajax.Updater("headerscreen",
  { method: 'post',parameters: 'g_cmd=MSG2 ' +msgnum  } );
 
 }
+
 function rawSwitchCitadel(msgnum) {
 CtdlLoadScreen("headerscreen");
 new Ajax.Updater("headerscreen", 
@@ -594,6 +600,7 @@ new Ajax.Updater("headerscreen",
  { method: 'post',parameters: 'g_cmd=MSG0 ' +msgnum  } );
 
 }
+
 function floatwindow(newdivid,contentelementtype,customnav) {
 var windiv = document.createElement("div");
 windiv.setAttribute("class","floatwindow");
@@ -625,29 +632,78 @@ fwindow.parentNode.removeChild(fwindow);
 // Place a gradient loadscreen on an element, e.g to use before Ajax.updater
 function CtdlLoadScreen(elementid) {
 var elem = document.getElementById(elementid);
-elem.innerHTML = "<b>Loading....</b> <img src=\"/static/gradientanim.gif\"/>";
+elem.innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br /></div>";
 }
+
+
 // Show info for a user, basically replaces showuser()
 // matt@comalies is to blame for this poorly coded masterpiece. 
 function CtdlShowUserInfoPopup(Element) {
-try {
-// hopefully no one needs to use the class attribute... could be better done 
-// with xmlns though..
-var user = Element.getAttribute("class");
-var updname = "biospace_"+user;
-if (document.getElementById(updname) == null) {
-// insert a space for the bio
-var pNode = Element.parentNode;
-var newdiv = document.createElement("div");
-newdiv.id = updname;
-newdiv.innerHTML = "Getting user info....";
-pNode.appendChild(newdiv);
-CtdlLoadScreen(updname);
-new Ajax.Updater(updname, 'showuser_ajax?who='+user, { method: 'get' } );
-}
-}
-catch(err){
-return true;
-}
-return false;
+       try {
+               // hopefully no one needs to use the class attribute... could be better done 
+               // with xmlns though..
+               var user = Element.getAttribute("class");
+               var updname = "biospace_"+user;
+               if (document.getElementById(updname) == null) {
+                       // insert a space for the bio
+                       var pNode = Element.parentNode;
+                       var newdiv = document.createElement("div");
+                       newdiv.id = updname;
+                       newdiv.innerHTML = "Getting user info....";
+                       pNode.appendChild(newdiv);
+                       CtdlLoadScreen(updname);
+                       new Ajax.Updater(updname, 'showuser_ajax?who='+user, { method: 'get' } );
+               }
+       }
+       catch(err) {
+               return true;
+       }
+       return false;
+}
+
+
+
+// Pop open the address book (target_input is the INPUT field to populate)
+
+function PopOpenAddressBook(target_input) {
+       $('address_book_popup').style.display = 'block';
+       p = 'target_input=' + target_input + '&r=' + CtdlRandomString();
+       new Ajax.Updater(
+               'address_book_popup_middle_div',
+               'display_address_book_middle_div',
+               {
+                       method: 'get',
+                       parameters: p,
+                       evalScripts: true
+               }
+       );
+       Nifty('div#address_book_popup_container_div','big transparent');
+}
+
+function PopulateAddressBookInnerDiv(which_addr_book, target_input) {
+       $('address_book_inner_div').innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br /></div>";
+       p = 'which_addr_book=' + which_addr_book
+         + '&target_input=' + target_input
+         + '&r=' + CtdlRandomString();
+       new Ajax.Updater(
+               'address_book_inner_div',
+               'display_address_book_inner_div',
+               {
+                       method: 'get',
+                       parameters: p
+               }
+       );
+}
+
+// What happens when a contact is selected from the address book popup
+// (populate the specified target)
+
+function AddContactsToTarget(target, whichaddr) {
+       while (whichaddr.selectedIndex != -1) {
+               if (target.value.length > 0) {
+                       target.value = target.value + ', ';
+               }
+               target.value = target.value + whichaddr.value;
+               whichaddr.options[whichaddr.selectedIndex].selected = false;
+       }
 }