/**
 * RUZEE.ShadedBorder 0.6.1
 * (c) 2006 Steffen Rusitschka
 *
 * RUZEE.ShadedBorder is freely distributable under the terms of an MIT-style license.
 * For details, see http://www.ruzee.com/
 */

var RUZEE = window.RUZEE || {};

RUZEE.ShadedBorder = {

create: function(opts) {
  var isie = /msie/i.test(navigator.userAgent) && !window.opera;
  var isie6 = isie && !window.XMLHttpRequest;
  function sty(el, h) {
    for(k in h) {
      if (/ie_/.test(k)) {
        if (isie) el.style[k.substr(3)]=h[k];
      } else el.style[k]=h[k];
    }
  }
  function crdiv(h) {
    var el=document.createElement("div");
    el.className = "sb-gen";
    sty(el, h);
    return el;
  }
  function op(v) {
    v = v<0 ? 0 : v;
    if (v>0.99999) return "";
    return isie ? " filter:alpha(opacity=" + (v*100) + ");" : " opacity:" + v + ';';
  }

  var sr = opts.shadow || 0;
  var r = opts.corner || 0;
  var bor = 0;
  var bow = opts.border || 0;
  var boo = opts.borderOpacity || 1;
  var shadow = sr != 0;
  var lw = r > sr ? r : sr;
  var rw = lw;
  var th = lw;
  var bh = lw;
  if (bow > 0) {
    bor = r;
    r = r - bow;
  }
  var cx = r != 0 && shadow ? Math.round(lw/3) : 0;
  var cy = cx;
  var cs = Math.round(cx/2);
  var iclass = r > 0 ? "sb-inner" : "sb-shadow";
  var sclass = "sb-shadow";
  var bclass = "sb-border";
  var edges = opts.edges || "trlb";
  if (!/t/i.test(edges)) th=0;
  if (!/b/i.test(edges)) bh=0;
  if (!/l/i.test(edges)) lw=0;
  if (!/r/i.test(edges)) rw=0;
  
  var applyPosition = opts.position;

  var p = { position:"absolute", left:"0", top:"0", width:lw + "px", height:th + "px", 
            ie_fontSize:"1px", overflow:"hidden", margin:"0", padding:"0" }; var tl = crdiv(p);
  delete p.left; p.right="0"; p.width=rw + "px"; var tr = crdiv(p);
  delete p.top; p.bottom="0"; p.height=bh + "px"; var br = crdiv(p);
  delete p.right; p.left="0"; p.width=lw + "px"; var bl = crdiv(p);

  var tw = crdiv({ position:"absolute", width:"100%", height:th + "px", ie_fontSize:"1px",
                   top:"0", left:"0", overflow:"hidden", margin:"0", padding:"0" });
  var t = crdiv({ position:"relative", height:th + "px", ie_fontSize:"1px",
                  margin:"0 "+ rw + "px 0 " + lw + "px", overflow:"hidden", padding:"0" });
  tw.appendChild(t);

  var bw = crdiv({ position:"absolute", left:"0", bottom:"0", width:"100%", height:bh + "px", 
                   ie_fontSize:"1px", overflow:"hidden", margin:"0", padding:"0" });
                   
  var b = crdiv({ position:"relative", height:bh + "px", ie_fontSize:"1px",
                  margin:"0 "+ rw + "px 0 " + lw + "px", overflow:"hidden", padding:"0" });
                  
  bw.appendChild(b);

  var mw = crdiv({ position:"absolute", top:(-bh)+"px", left:"0", width:"100%", height:"100%",
                   overflow:"hidden", ie_fontSize:"1px", padding:"0", margin:"0" });

  function corner(el,t,l) {
    var w = l ? lw : rw;
    var h = t ? th : bh;
    var s = t ? cs : -cs;
    var dsb = []; var dsi = []; var dss = [];
    
    var xp=0; var xd=1; if (l) { xp=w-1; xd=-1; }
    for (var x=0; x<w; ++x) {
      var yp=h-1; var yd=-1; if (t) { yp=0; yd=1; }
      var finished=false;
      for (var y=h-1; y>=0 && !finished; --y) {
        var div = '<div style="position:absolute; top:' + yp + 'px; left:' + xp + 'px; ' +
                  'width:1px; height:1px; overflow:hidden; margin:0; padding:0;';

        var xc = x - cx; var yc = y - cy - s;
        var d = Math.sqrt(xc*xc+yc*yc);
        var doShadow = false;

        if (r > 0) {
          // draw border
          if (xc < 0 && yc < bor && yc >= r || yc < 0 && xc < bor && xc >= r) {
            dsb.push(div + op(boo) + '" class="' + bclass + '"></div>');
          } else
          if (d<bor && d>=r-1 && xc>=0 && yc>=0) {
            var dd = div;
            if (d>=bor-1) {
              dd += op((bor-d)*boo);
              doShadow = true;
            } else dd += op(boo);
            dsb.push(dd + '" class="' + bclass + '"></div>');
          }
          
          // draw inner
          var dd = div + ' z-index:2;' + (t ? 'background-position:0 -' + (r-yc-1) + 'px;' : 'background-image:none;');
          var finish = function() {
            if (!t) dd = dd.replace(/top\:\d+px/, "top:0px");
            dd = dd.replace(/height\:1px/, "height:" + (y+1) + "px");
            dsi.push(dd + '" class="' + iclass + '"></div>');
            finished = true;
          };
          if (xc < 0 && yc < r || yc < 0 && xc < r) {
            finish();
          } else
          if (d<r && xc>=0 && yc>=0) {
            if (d>=r-1) {
              dd += op(r-d);
              doShadow = true;
              dsi.push(dd + '" class="' + iclass + '"></div>');
            } else {
              finish();
            }
          } else doShadow = true;
        } else doShadow = true;
        
        // draw shadow
        if (sr > 0 && doShadow) {
          d = Math.sqrt(x*x+y*y);
          if (d<sr) {
            dss.push(div + ' z-index:0; ' + op(1-(d/sr)) + '" class="' + sclass + '"></div>');
          }
        }
        yp += yd;
      }
      xp += xd;
    }
    el.innerHTML = dss.concat(dsb.concat(dsi)).join('');
  }
  
  function mid(mw) {
    var ds = [];

    ds.push('<div style="position:relative; top:' + (th+bh) + 'px; height:2048px; ' +
            ' margin:0 ' + (rw-r-cx) + 'px 0 ' + (lw-r-cx) + 'px; ' +
            ' padding:0; overflow:hidden;' +
            ' background-position:0 ' + (th > 0 ? -(r+cy+cs) : '0') + 'px;"' +
            ' class="' + iclass + '"></div>');

    var dd = '<div style="position:absolute; width:1px;' +
        ' top:' + (th+bh) + 'px; height:2048px; padding:0; margin:0;';
    if (sr>0) {
      for (var x=0; x<lw-r-cx; ++x) {
        ds.push(dd + ' left:' + x + 'px;' + op((x+1.0)/lw) + 
            '" class="' + sclass + '"></div>');
      }

      for (var x=0; x<rw-r-cx; ++x) {
        ds.push(dd + ' right:' + x + 'px;' + op((x+1.0)/rw) + 
            '" class="' + sclass + '"></div>');
      }
    }

    if (bow > 0) {
      var su = ' width:' + bow + 'px;' + op(boo) + '" class="' + bclass + '"></div>';
      ds.push(dd + ' left:' + (lw-bor-cx) + 'px;' + su);
      ds.push(dd + ' right:' + (rw-bor-cx) + 'px;' + su);
    }

    mw.innerHTML = ds.join('');
  }

  function tb(el, t) {
    var ds = [];
    var h = t ? th : bh;
    var dd = '<div style="height:1px; overflow:hidden; position:absolute; margin:0; padding:0;' +
        ' width:100%; left:0px; ';
    var s = t ? cs : -cs;
    for (var y=0; y<h-s-cy-r; ++y) {
      if (sr>0) ds.push(dd + (t ? 'top:' : 'bottom:') + y + 'px;' + op((y+1)*1.0/h) + 
          '" class="' + sclass + '"></div>');
    }
    if (y >= bow) {
      ds.push(dd + (t ? 'top:' : 'bottom:') + (y - bow) + 'px;' + op(boo) +
          ' height:' + bow + 'px;" class="' + bclass + '"></div>');
    }

    ds.push(dd + (t ? 'background-position-y:0; top:' : 
                      'background-image:none; bottom:') + y + 'px;' +
        ' height:' + (r+cy+s) + 'px;" class="' + iclass + '"></div>');

    el.innerHTML = ds.join('');
  }

  corner(tl, true, true); corner(tr, true, false);
  corner(bl, false, true); corner(br, false, false);
  mid(mw); tb(t, true); tb(b, false);

  return {
    render: function(el) {
      if (typeof el == 'string') el = document.getElementById(el);
      if (el.length != undefined) {
        for (var i=0; i<el.length; ++i) this.render(el[i]);
        return;
      }
      el.className += " sb";
      
      if( typeof(applyPosition) != 'undefined' && applyPosition != null && applyPosition == false )
      	sty(el, { background:"transparent" });
      else
      	sty(el, { position:"relative", background:"transparent" });

      // remove generated children
      var node = el.firstChild;
      while (node) {
        var nextNode = node.nextSibling;
        if (node.nodeType == 1 && node.className == 'sb-gen')
          el.removeChild(node);
        node = nextNode;
      }

      var iel = el.firstChild;

      var twc = tw.cloneNode(true);
      var mwc = mw.cloneNode(true);
      var bwc = bw.cloneNode(true);
      
      el.insertBefore(tl.cloneNode(true), iel); el.insertBefore(tr.cloneNode(true), iel);
      el.insertBefore(bl.cloneNode(true), iel); el.insertBefore(br.cloneNode(true), iel);
      el.insertBefore(twc, iel); el.insertBefore(mwc, iel);
      el.insertBefore(bwc, iel);

      if (isie6) {
        el.onmouseover=function() { this.className+=" hover"; }
        el.onmouseout=function() { this.className=this.className.replace(/ hover/,""); }
      }
      if (isie) {
        function resize() {
          twc.style.width = bwc.style.width = mwc.style.width = el.offsetWidth + "px";
          mwc.firstChild.style.height = el.offsetHeight + "px";
        }
        el.onresize=resize;
        resize();
      }
    }
  };
}
}

// add our styles to the document
document.write('\
  <style type="text/css">\
  .sb, .sbi, .sb *, .sbi * { position:relative; z-index:1; }\
  * html .sb, * html .sbi { height:1%; }\
  .sbi { display:inline-block; }\
  .sb-inner { background:#ddd; }\
  .sb-shadow { background:#000; }\
  .sb-border { background:#bbb; }\
  </style>\
');

tangler.cache.CacheManager=function(){var _1a9=new Ext.util.MixedCollection();return {isMessageCacheEmpty:function(){return _1a9.getCount()==0;},addMessageToCache:function(_1aa){_1a9.add(_1aa.globalId,_1aa);},removeMessageFromCache:function(_1ab){return _1a9.removeKey(_1ab.globalId);},removeFromCache:function(_1ac){return _1a9.removeKey(_1ac);},getMessageCache:function(){return _1a9.getRange();},getMessage:function(id){return _1a9.get(id);},clearMessageCache:function(){_1a9.clear();},insertMessageCache:function(_1ae,_1af){_1a9.insert(_1ae,_1af.globalId,_1af);}};}();
tangler.widget.WindowWrapper=function(_847){this._defaultWidth=550;this._defaultHeight=350;this._defaultRefreshOnClose=true;var _848=tangler.util.Options.getOptionalArgument("width",_847,this._defaultWidth);var _849=tangler.util.Options.getOptionalArgument("height",_847,this._defaultHeight);var _84a=tangler.util.Options.getOptionalArgument("closable",_847,false);this._url=tangler.util.Options.getOptionalArgument("url",_847,"");this._title=tangler.util.Options.getOptionalArgument("title",_847);this._iframe=null;this._loading=tangler.util.Element.createLoadingElement("iframeLoading");this._loading.style.zIndex=1000;this._template=new Ext.Template("<div id=\"iframeDialog\" style=\"visibility:hidden;position:absolute;top:0;\">","\t<div id=\"dlgIFrame\" class=\"x-window-body\">","\t\t<iframe id=\"centerFrame\" name=\"centerFrame\" frameborder=\"no\" style=\"border:0px none;\" scrolling=\"no\" src=\"{url}\" width=\"100%\" height=\"100%\"><div class=\"loader\"><p>","       Loading...","       </p></div></iframe>","\t</div>","</div>");this._template.append(document.body,{url:this._url});if(Ext.isIE){window.frames["centerFrame"].location.href=this._url;}this._window=new tangler.widget.DialogWrapper("iframeDialog",{autoDestroy:false,resizable:false,draggable:false,width:_848,height:_849,autoCreate:true,closable:_84a});};tangler.widget.WindowWrapper.prototype={showWindow:function(_84b){var _84c=tangler.util.Options.getOptionalArgument("refreshOnClose",_84b,this._defaultRefreshOnClose);var _84d=tangler.util.Options.getOptionalArgument("destroyFunction",_84b,null);if(_84c){_84d=tangler.info.Page.refreshPage;}if(_84d!=null){this._window.addListener("hide",_84d);}this._window.setTitle(this._title);this._window.showDialog();},onIFrameLoaded:function(_84e){return function(){var w=tangler.util.Element.getEl(_84e);w.select("div").elements[0].style.display="none";w.select("div").elements[0].style.zIndex=0;w.select("iframe").elements[0].style.visibility="visible";w.select("iframe").elements[0].style.zIndex=1000;};},closeWindow:function(){tangler.util.Element.removeChildNodes("dlgIFrame");this._window.hide();},closeAndDestroy:function(){tangler.util.Element.removeChildNodes("dlgIFrame");this._window.closeAndDestroy(true);this._window=null;},destroy:function(){this._window.destroy(true);},resize:function(_850,_851){this._window.setContentSize(_850,_851);},destroyFunctionHandler:function(_852,_853){return function(_854,win){if(win==_852){_853();}};}};tangler.widget.DialogWrapper=function(_856,_857){Ext.useShims=true;this._dialogId=_856;this._dialog=null;var _858=tangler.util.Options.getOptionalArgument("width",_857,500);var _859=tangler.util.Options.getOptionalArgument("height",_857,300);var _85a=tangler.util.Options.getOptionalArgument("minWidth",_857,300);var _85b=tangler.util.Options.getOptionalArgument("minHeight",_857,300);var _85c=tangler.util.Options.getOptionalArgument("underlay",_857,"none");var _85d=tangler.util.Options.getOptionalArgument("resizable",_857,true);var _85e=tangler.util.Options.getOptionalArgument("draggable",_857,true);var _85f=tangler.util.Options.getOptionalArgument("modal",_857,true);var _860=tangler.util.Options.getOptionalArgument("closable",_857,false);var _861=tangler.util.Options.getOptionalArgument("BasicDialog",_857,true);var _862=tangler.util.Options.getOptionalArgument("autoCreate",_857,false);var _863=tangler.util.Options.getOptionalArgument("autoHeight",_857,false);var _864=tangler.util.Options.getOptionalArgument("shadow",_857,true);var _865=tangler.util.Options.getOptionalArgument("acceptLabel",_857,null);var _866=tangler.util.Options.getOptionalArgument("declineLabel",_857,null);var _867=tangler.util.Options.getOptionalArgument("acceptFunction",_857,null);var _868=tangler.util.Options.getOptionalArgument("declineFunction",_857,null);var _869=tangler.util.Options.getOptionalArgument("defaultFocus",_857,null);if(_865){if(_867==null){alert("Please set acceptFunction");return;}}if(_866){if(_868==null){alert("Please set declineFunction");return;}}var _86a=tangler.util.Helper.getBrowserSize();if(_858>_86a.width){_858=_86a.width-50;}if(_859>_86a.height){_859=_86a.height-50;}var _86b=null;var _86c=[];if(_865){_86c[0]={text:_865,handler:_867,id:"acceptButton"};}if(_866){_86c[1]={text:_866,handler:_868,id:"declineButton"};}if(_869&&_869==_865){_86b="acceptButton";}else{if(_869&&_869==_866){_86b="declineButton";}}if(!_869){this._dialog=new Ext.Window({applyTo:_856,width:_858,height:_859,minWidth:_85a,minHeight:_85b,constraintoviewport:true,underlay:_85c,resizable:false,draggable:false,modal:_85f,shim:true,collapsible:false,closable:_860,fixedCenter:true,autoHeight:_863,shadow:_864,buttons:_86c});}else{this._dialog=new Ext.Window({applyTo:_856,width:_858,height:_859,minWidth:_85a,minHeight:_85b,constraintoviewport:true,underlay:_85c,resizable:false,draggable:false,modal:_85f,shim:true,collapsible:false,closable:_860,fixedCenter:true,autoHeight:_863,shadow:_864,buttons:_86c,defaultButton:_86b});}if(_865){this._dialog.addButton({text:_865,handler:_867});}if(_866){this._dialog.addButton({text:_866,handler:_868});}this._dialog.anchorTo(document.body,"c-c?");this._dialog.on("show",function(id){var div=tangler.util.Element.getEl(id.el);div.setStyle("overflow","auto");var text=div.select(".ext-mb-textarea",true);if(!text.item(0)){text=div.select(".ext-mb-text",true);}if(text.item(0)){text.item(0).dom.select();}},this._dialogId);};tangler.widget.DialogWrapper.prototype={getDialog:function(){return this._dialog;},setContentSize:function(_870,_871){if(this._dialog==null){return;}this._dialog.resizeTo(_870,_871);this._dialog.setContentSize(_870,_871);this._dialog.center();},showDialog:function(_872){if(this._dialog==null){return;}var elem=tangler.util.Options.getOptionalArgument("element",_872);var _874=tangler.util.Options.getOptionalArgument("anchor",_872,"");if(elem){this._dialog.alignTo(elem,_874);}var _875=tangler.util.Helper.getBrowserSize();if(this._dialog.maximumWidth>_875.width){this._dialog.maximumWidth=(_875.width-50);}this._dialog.show();},isVisible:function(){return (this._dialog!=null&&this._dialog.isVisible());},closeAndDestroy:function(_876){if(this._dialog==null){return;}this._dialog.hide();this._dialog.destroy(_876);},destroy:function(_877){this._dialog.destroy(_877);},hide:function(){if(this._dialog==null){return;}this._dialog.hide();},addListener:function(_878,fn,_87a){if(this._dialog==null){return;}this._dialog.on(_878,fn,this,_87a);},setTitle:function(_87b){if(this._dialog==null){return;}this._dialog.setTitle(_87b);}};
tangler.view.MessageMode={Nothing:0,Chat:1,Post:2};tangler.view.GroupState=function(){var _87c=function(){this.isGroupSubscribed=false;this.isGroupWatched=false;this.currentTopic=null;this.isTopicWatched=false;this.groupInitialised=false;this.messageMode=tangler.view.MessageMode.Post;this.addEvents({"groupSubscribtionChanged":true,"preGroupWatchedChanged":true,"groupWatchedChanged":true,"preTopicWatchedChanged":true,"topicWatchedChanged":true,"topicViewed":true,"messageModeChanged":true});_87c.superclass.constructor.call(this);};Ext.extend(_87c,Ext.util.Observable,{setGroupInitialised:function(_87d){this.groupInitialised=_87d;},isGroupInitialised:function(){return this.groupInitialised;},isMessagePostMode:function(){return this.messageMode==tangler.view.MessageMode.Post;},setMessageMode:function(mode){this.messageMode=mode;this.fireEvent("messageModeChanged");},getMessageMode:function(){return this.messageMode;},setTopicWatched:function(_87f,_880){var _881=this.isTopicWatched!=_87f;this.isTopicWatched=_87f;this.fireEvent("preTopicWatchedChanged");if(_881){this.fireEvent("topicWatchedChanged",_880);}},getTopicWatched:function(){return this.isTopicWatched;},setCurrentTopic:function(_882){this.currentTopic=_882;this.fireEvent("topicViewed");},getCurrentTopic:function(){return this.currentTopic;},setGroupWatched:function(_883){var _884=this.isGroupWatched!=_883;this.isGroupWatched=_883;this.fireEvent("preGroupWatchedChanged");if(_884){this.fireEvent("groupWatchedChanged");}},getGroupWatched:function(){return this.isGroupWatched;},setGroupSubscribed:function(_885){if(_885==this.isGroupSubscribed){return;}this.isGroupSubscribed=_885;this.fireEvent("groupSubscribtionChanged");},getGroupSubscribed:function(){return this.isGroupSubscribed;}});return new _87c();}();tangler.view.Group=function(){return {toggleChatPostMode:function(){tangler.view.GroupEmbed.toggleChatPostMode();},submitMessage:function(){tangler.view.GroupEmbed.submitMessage();},onMessageEvent:function(_886){tangler.view.GroupEmbed.onMessageEvent(_886);},onTopicEvent:function(_887){tangler.view.GroupEmbed.onTopicEvent(_887);}};}();tangler.view.TopicLifecycleConvertor=function(){var _888=null;return {setTopicLifecycle:function(_889){_888=_889;},getTopicLifecycle:function(){return _888;},getDetail:function(){return _888.detail.topicDetail;},getWatched:function(){return _888.detail.watched;},getPermissions:function(){return _888.permissions;},getAuditHistory:function(){return _888.auditHistory;}};}();tangler.view.GroupEmbed=function(){var _88a=tangler.view.GroupState;var _88b=tangler.view.TopicLifecycleConvertor;var _88c={Init:0,Showing:1,Creating:2};var _88d={Normal:0,ContactChat:1};var _88e=0;var _88f=0;var _890=false;var _891=_88c.Init;var _892=null;var _893=null;var _894=null;var _895=null;var _896=null;var _897=0;var _898=_88d.Normal;var _899=0;var _89a=null;var _89b=0;var _89c=0;var _89d=null;var _89e=null;var _89f=null;var _8a0=null;var _8a1=null;var _8a2=null;var _8a3=false;var _8a4=false;var _8a5=0;var _8a6=0;var _8a7=0;var _8a8=null;var _8a9=0;var _8aa=new Ext.Template("<p class=\"{contactClass}\" id=\"{id}\">","<a class=\"imgLink\" title=","CLICK_TO_VIEW_PROFILE"," href=\"{href}\">","<img src=\"{img}\" height=\"48\" width=\"48\">","</a>","<a href=\"{href}\">{name}</a>","</p>");var _8ab=new Ext.Template("<div id=\"topicHeaderDefault\">","<a id=\"topicWatchTag\" href=\"#\" onclick=\"tangler.view.GroupEmbed.onWatchTopic(tangler.info.Session.getTopicId());return false;\"><img style=\"{watchStyle}\" src=\"{watchImageSource}\"/></a>","<h2 id=\"topicTitle\">{topicTitle}</h2>","<div class=\"topicOptions\">","<span>","<a id=\"topicEditTag\" href=\"#\" title=\"Edit topic name\" onclick=\"tangler.view.GroupEmbed.onEditTopic(tangler.info.Session.getTopicId());return false;\" style=\"visibility:hidden\"><img src=\"{editImageSource}\" alt=\"Edit topic name\"/></a>","<a id=\"topicDeleteTag\" href=\"#\" title=\"Delete topic\" onclick=\"tangler.view.GroupEmbed.onDeleteTopic(tangler.info.Session.getTopicId());return true;\" style=\"visibility:hidden\"><img src=\"{deleteImageSource}\" alt=\"Delete topic\"/></a>","</span>","<a id=\"topicLink\" href=\"{topicHref}\" title=\"{topicHref}\">Link to this topic</a>","</div>","</div>");var _8ac=new Ext.Template("<div id=\"topicHeaderCreate\">","<input id=\"newTopicName\" type=\"text\" name=\"newTopicName\" maxlength=\"128\"","onkeypress=\"tangler.util.Helper.returnOnEnter(event, tangler.view.GroupEmbed.onCreateTopicClicked);return true;\"","onkeyup=\"return tangler.view.GroupEmbed.checkField()\"","onfocus=\"tangler.view.GroupEmbed.onCreateTopicInputFocused();return false;\" value=\"{topicCreateValue}\"/>","<div>","<input id=\"createTopicButton\" type=\"button\" value=\"","CREATE","\" class=\"defaultAction\"","onclick=\"tangler.view.GroupEmbed.onCreateTopicClicked();\" disabled/>","<a id=\"cancelCreateTopic\" href=\"#\" class=\"seconadryAction\"","onclick=\"tangler.view.GroupEmbed.onCancelCreateTopic();return false;\">","CANCEL","</a>","</div>","<br/>","<br/>","<p id=\"topicError\" class=\"error\"/>","</div>");var _8ad=new Ext.Template("<a href=\"{resourceUrl}\">{resourceName}</a>","<p class=\"link\">{resourceUrl}</p><br />");var _8ae=new Ext.Template("<a href=\"#\" onclick=\"tangler.view.GroupEmbed.loadAndOpenTopicCallback({topicid});return false;\">{topicname}</a>","<span>Last message by <a href=\"{userurl}\">{username}</a>, {timespan}</span>");var _8af=null;var _8b0=null;var _8b1=null;var _8b2=null;var _8b3=null;var _8b4=null;var _8b5=null;var _8b6=null;var _8b7=null;var _8b8=false;var _8b9=false;var _8ba=false;var _8bb=null;var _8bc=null;var _8bd=false;var _8be={chatSize:70,dwrTimeout:30000,messageInput:"messageInput",topicList:"topicList",topicMessageList:"topicMessageList",topicMessageView:"topicMessageView",topicResources:"topicResources",topicMessageWaiting:"topicMessageWaiting",topicView:"topicViewContainer",topicHeaderCreate:"topicHeaderCreate",topicHeaderDefault:"topicHeaderDefault",topicWaiting:"topicWaiting",topicEditButton:"topicEditTag",topicDeleteButton:"topicDeleteTag",newTopicInput:"newTopicName",createTopicError:"topicError",createTopicButton:"createTopicAction",nonParticipatedList:"nonParticipatedList",participatedList:"participatedList",participatedActivity:"participatedActivity",groupOnlineSubscriberList:"groupOnlineSubscriberList",groupOfflineSubscriberList:"groupOfflineSubscriberList",groupOptions:"groupActions",groupSubscriberCount:"groupSubscriberCount",editMessageInput:"editMessageInput",notAuthenticated:"msgAuthBox",resourceTab:"resTab",messageTab:"msgTab",topicLink:"topicLink",groupContainer:"groupContainer",groupTopicListContainer:"topicListContainer",groupHomeContainer:"groupHomeContainer",groupDiscussContainer:"groupDiscussContainer",groupParticipantsContainer:"groupSubscribersContainer",topicContainer:"topicViewContainer",topicMessageContainer:"topicMessagesContainer",topicLinksContainer:"topicResourcesContainer",topicEmptyContainer:"topicEmptyContainer",groupHeaderPanel:"groupHeaderContainer",groupHomePanel:"groupHome",groupDiscussStartPanel:"groupDiscussStart",groupParticipantsPanel:"groupSubscribers",groupTopicListHeaderPanel:"topicListHeader",groupTopicListBodyPanel:"topicListBody",groupTopicListFooterPanel:"topicListFooter",topicMessageListPanel:"topicMessageList",topicMessageEditorPanel:"topicMessageControl",topicLinksPanel:"topicResources",topicEmptyPanel:"topicEmpty",topicHeaderPanel:"topicHeader"};function incrementTopicCount(){_8a6=_8a6+1;var _8bf=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];var _8c0=tangler.util.Element.getEl(_8bf).select("li").elements.length;setCurrentTopicCount(_8c0);}function decrementTopicCount(){_8a6=_8a6-1;var _8c1=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];var _8c2=tangler.util.Element.getEl(_8c1).select("li").elements.length;setCurrentTopicCount(_8c2);}function createTopicObject(_8c3){var a=tangler.util.Element.getEl("tList-"+_8c3);if(a==null){return null;}var _8c5=a.select("span.topicData").elements[0];var t={id:_8c3,name:a.dom.name,topicData:_8c5.innerHTML};return t;}function showTopic(t,_8c8){if(_891==_88c.Creating){removeTopic("new");}_891=_88c.Showing;var _8c9=tangler.util.Options.getOptionalArgument("getMessages",_8c8,true);setTopicCurrentlyViewed(t);_88a.setTopicWatched(tangler.util.Options.getOptionalArgument("isWatched",_8c8,false),{send:false});_88b.setTopicLifecycle(t);var _8ca=_88b.getDetail();var _8cb=_88b.getPermissions();_8c8.group=_8ca.group;_8bb.showInput();if(_8c9){tangler.info.Session.setMessageLastViewedDate(0);showMessageWaiting();getMessages();}}function sendTopicLastMessageViewed(_8cc){if(tangler.info.Session.getSecurity().isAuthenticated()){if(_8cc==0){return;}var _8cd=tangler.info.Session.getMessageLastViewedDate();var dt=tangler.util.formatter.getDateObject(_8cd);DWRTopicHandler.setTopicLastMessageViewed(_8cc,tangler.util.formatter.getDateObject(_8cd));}}function removeTopic(_8cf){var _8d0=tangler.util.Element.getEl("tList-"+_8cf);if(_8d0!=null){tangler.util.Element.getEl(_8d0.dom.parentNode).remove();}var ul=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];if(tangler.util.Element.getEl(ul).select("li").elements.length==0){showTopicCreateHint();return false;}return true;}function hideTopicHeader(){tangler.util.Element.hideElements([_8be.topicHeaderCreate,_8be.topicHeaderDefault],true);}function showTopicView(){showMessagePanel();}function showTopicCreateHint(){if(tangler.info.Session.getSecurity().isAuthenticated()){tangler.util.Element.removeChildNodes(_8be.topicList);var href=tangler.util.Element.createNode("a",{attributes:[["href","#"]],children:[document.createTextNode("create a new topic")]});Ext.EventManager.addListener(href,"click",tangler.view.GroupEmbed.showCreateTopic);var p=tangler.util.Element.createNode("p",{children:[document.createTextNode("This group currently has no topics. Why not "),href,document.createTextNode(".")]});tangler.util.Element.getEl(_8be.topicList).dom.appendChild(p);}else{tangler.util.Element.removeChildNodes(_8be.topicList);var p=tangler.util.Element.createNode("p",{children:[document.createTextNode("This group currently has no topics.")]});tangler.util.Element.getEl(_8be.topicList).dom.appendChild(p);}}function showMessageWaiting(){showTopicView();tangler.util.Element.removeChildNodes(_8be.topicMessageListPanel);tangler.util.Element.getEl(_8be.topicMessageListPanel).dom.appendChild(tangler.util.Element.createSmallLoadingElement());}function showTopicBlank(){showTopicView();_8bb.hideInput();}function showTopicHeaderCreate(_8d4){tangler.util.Element.removeChildNodes(_8be.topicMessageList);showMessagePanel();hideMessagePanel();tangler.util.Element.hideElement(_8be.topicMessageWaiting,true);_8ac.overwrite(_8be.topicHeaderPanel,{topicCreateValue:_8d4});tangler.util.Element.getEl(_8be.newTopicInput).dom.select();tangler.util.Element.getEl(_8be.newTopicInput).dom.focus();}function showTopicMessageView(){showTopicView();_8bb.showInput();}function updateNewTopic(t){tangler.domain.TopicElementFlyweight.setContext(t.detail.topicDetail,t.permissions,t.auditHistory);tangler.domain.TopicElementFlyweight.setContextWatched(t.detail.watched);tangler.domain.TopicElementFlyweight.addTopic({showWatchedStar:!_88a.getGroupWatched(),fromCreate:true,topicClickCallback:tangler.view.GroupEmbed.openTopicCallback});showTopic(t,{showGroup:false,getMessages:false,isWatched:true});_899=0;showTopicMessageView();incrementTopicCount();_8bb.focusInput();topic=null;}function createTopicRequest(_8d6){var _8d7=tangler.util.Element.getEl("createTopicButton").dom.value;if(_8d7.indexOf(PROCESSING)!=-1){return;}var _8d8=tangler.util.Options.getOptionalArgument("groupId",_8d6,tangler.info.Session.getGroupId());var _8d9=tangler.util.Element.getEl(_8be.newTopicInput).dom.value;if(_8d9.indexOf(ENTER_TOPIC_NAME)!=-1||_8d9.trim().length==0){tangler.util.Element.getEl(_8be.newTopicInput).dom.focus();tangler.util.Element.removeChildNodes(_8be.createTopicError);tangler.util.Element.getEl(_8be.createTopicError).dom.appendChild(document.createTextNode(ENTER_TOPIC_NAME+"."));return;}var _8da=tangler.util.Options.getOptionalArgument("callback",_8d6,updateNewTopic);var url=tangler.util.Options.getOptionalArgument("url",_8d6,"");tangler.util.Element.getEl("createTopicButton").dom.value=PROCESSING;tangler.util.Element.getEl("cancelCreateTopic").hide();DWRTopicHandler.createTopic(_8d9.trim(),_8d8,url,{callback:_8da,errorHandler:createTopicFailed});}function createTopicFailed(_8dc){tangler.util.Element.getEl("createTopicButton").dom.value=CREATE;tangler.util.Element.getEl("cancelCreateTopic").show();tangler.util.Element.getEl("createTopicButton").set({disabled:false});tangler.util.Element.removeChildNodes(_8be.createTopicError);tangler.util.Element.getEl(_8be.createTopicError).dom.appendChild(document.createTextNode("An error has occured, please try again"));tangler.util.Element.getEl(_8be.newTopicInput).dom.select();}function openTopicAndMessagesSuccessful(_8dd){_899=0;showTopic(_8dd.topic,{isWatched:_8dd.topic.detail.watched,showGroup:false,clearMessages:true,getMessages:false});tangler.info.Session.setMessageLastViewedDate(0);showMessages(_8dd.messages,{lastRead:_8dd.lastRead});}function getMessages(){var _8de=tangler.info.Session.getTopicId();if(_8de=="0"){return;}_899=0;DWRTopicHandler.getMessages(_8de,{callback:showMessages,errorHandler:messageErrorCallback,timeout:_8be.dwrTimeout});}function retryGetMessages(){showMessageWaiting();getMessages();return false;}function messageErrorCallback(_8df){tangler.util.Element.getEl(_8be.topicMessageList).dom.innerHTML="";var _8e0=tangler.util.Element.createNode("a",{attributes:[["href","#"]],children:[document.createTextNode("Try again")]});Ext.EventManager.addListener(_8e0,"click",retryGetMessages);var li=tangler.util.Element.createNode("li",{attributes:[["class","error"]],children:[document.createTextNode("An error occured while retrieving messages."),tangler.util.Element.createNode("br"),_8e0]});li.className="error";tangler.util.Element.getEl(_8be.topicMessageList).dom.appendChild(li);showTopicMessageView();}function setTopicMessageCount(_8e2,_8e3){var _8e4=tangler.util.Element.getEl("topicUnreadCount-"+_8e2);if(tangler.util.Element.getEl("tList-"+_8e2)!=null){var _8e5=tangler.util.Element.getEl("tList-"+_8e2).dom.className.indexOf("selected")!=-1?"selected":"";if(_8e3>0){_8e5=_8e5+" newmessage";}tangler.util.Element.getEl("tList-"+_8e2).dom.className=_8e5;}if(_8e4){tangler.util.Element.removeChildNodes("topicUnreadCount-"+_8e2);if(_8e3>0){_8e4.dom.appendChild(document.createTextNode(" ("+_8e3+")"));}}}function unsuccessfulDeleteTopic(_8e6){alert("Failed to remove topic");}function successfulDeleteTopic(){removeTopic(_894);tangler.info.Session.setTopicId(0);_891=_88c.Init;decrementTopicCount();}function deleteTopicAccepted(){_893.hide();DWRTopicHandler.removeTopic(_894,{callback:successfulDeleteTopic,errorHandler:unsuccessfulDeleteTopic});}function deleteTopicDeclined(){_893.hide();}function editTopicAccept(){if(tangler.util.Element.getEl("editTopicInput").dom.value.trim().length==0){return;}DWRTopicHandler.modifyTopic(editTopicId,tangler.util.Element.getEl("editTopicInput").dom.value.trim(),{callback:editTopicSuccessful,errorHandler:editTopicFailed});}function editTopicDecline(){_892.hide();}function editTopicFailed(_8e7){_892.hide();alert("The topic failed to update");}function editTopicSuccessful(_8e8){_892.hide();setTopicCurrentlyViewed(_8e8,{clearMessages:false});}function showTopicFromBucket(_8e9){var dom=document.createDocumentFragment();addOrUpdateTopic(_8e9,{dom:dom});var ul=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];var _8ec=tangler.util.Element.getEl(ul).select("li").elements;if(_8ec==null||_8ec.length==0){ul.appendChild(dom);}else{ul.insertBefore(dom,_8ec[0]);}tangler.util.Helper.setSelectedLink(_8be.topicList,"tList-"+_8e9.topicDetail.globalId);tangler.view.GroupEmbed.getTopic(_8e9.topicDetail.globalId);}function createFrontPageTopicItem(_8ed,_8ee){var _8ef=_8ee.topicDetail.name+(_8ee.newMessages>0?" ("+_8ee.newMessages+")":"");var li=tangler.util.Element.createNode("li");var _8f1=tangler.util.formatter.formatElapsedDate(_8ee.lastMessagePosted,true);var _8f2=_8ee.topicDetail.name+(_8ee.newMessages>0?" ("+_8ee.newMessages+")":"");_8ae.append(li,{topicname:_8ef,topicid:_8ee.topicDetail.globalId,userurl:tangler.info.Page.wrapContextUrl("/people/id/"+_8ee.lastMessageAuthor.globalId),username:_8ee.lastMessageAuthor.screenName,timespan:_8f1});tangler.util.Element.getEl(_8ed).dom.appendChild(li);}function setCreateMessageEventArguments(_8f3,_8f4){_8f3.onModifyMouseOver=tangler.view.GroupEmbed.highlight(_8f4.detail.globalId);_8f3.onModifyMouseOut=tangler.view.GroupEmbed.removeHighlight(_8f4.detail.globalId);_8f3.onDeleteMouseOver=tangler.view.GroupEmbed.highlight(_8f4.detail.globalId);_8f3.onDeleteMouseOut=tangler.view.GroupEmbed.removeHighlight(_8f4.detail.globalId);_8f3.onDeleteClick=tangler.view.GroupEmbed.onDeleteMessage(_8f4.detail.globalId);_8f3.onEditMouseOver=tangler.view.GroupEmbed.highlight(_8f4.detail.globalId);_8f3.onEditMouseOut=tangler.view.GroupEmbed.removeHighlight(_8f4.detail.globalId);_8f3.onEditClick=tangler.view.GroupEmbed.onEditMessage(_8f4.detail.globalId);_8f3.onTimespanMouseOver=tangler.view.GroupEmbed.highlight(_8f4.detail.globalId);_8f3.onTimespanMouseOut=tangler.view.GroupEmbed.removeHighlight(_8f4.detail.globalId);return _8f3;}function buildMessageItem(_8f5,_8f6){var _8f7=tangler.info.Session.getMessageLastViewedDate();var utc=_8f5.detail.created.toUTCString();var _8f9=new Date();var _8fa=tangler.util.Options.getOptionalArgument("lastRead",_8f6,0);var dom=tangler.util.Options.getOptionalArgument("fragment",_8f6,tangler.util.Element.getEl(_8be.topicMessageList));if(_8f5.detail.globalTopicId==tangler.info.Session.getTopicId()){var msg=new tangler.domain.MessageElement(_8f5.detail,_8f5.permissions,_8f5.auditHistory);if(_899!=_8f5.detail.author.globalId){msg.createMessageAuthor(dom,{hasLink:false});}_8f6=setCreateMessageEventArguments(_8f6,_8f5);var _8fd=msg.createMessage(dom,_8f6);_899=_8f5.detail.author.globalId;delete msg;}}function buildMessageItems(_8fe,_8ff){var _900=0;var _901=0;for(var i=0;i<_8fe.length;++i){buildMessageItem(_8fe[i],_8ff);var _903=tangler.util.formatter.formatDateTime(_8fe[i].detail.lastModified);if((_900==0&&i==0)||(_903<_900)){_901=_8fe[i].detail.globalId;}if(_903>tangler.info.Session.getMessageLastViewedDate()){tangler.info.Session.setMessageLastViewedDate(_903);}}return _901;}function showMessages(_904,_905){var _906=tangler.util.Options.getOptionalArgument("lastRead",_905,0);var _907=tangler.util.Options.getOptionalArgument("scrollToBottom",_905,(_906!=0?true:false));var _908=_904.length>0;if(_89a==null){_89a=new tangler.util.Pane(_8be.topicMessageList);}var _909=document.createDocumentFragment();var _90a=buildMessageItems(_904,{lastRead:_906,fragment:_909});tangler.util.Element.getEl(_8be.topicMessageList).dom.innerHTML="";tangler.util.Element.getEl(_8be.topicMessageList).dom.appendChild(_909);var _90b=false;if(!tangler.util.Element.showingElement(_8be.topicResources)){_90b=showTopicMessageView();}if(_908){var _90c=tangler.info.Session.getMessageLastViewedDate();var _90d=tangler.util.formatter.formatDateTime(_906);if(_90d==0||(_90d!=_90c)){sendTopicLastMessageViewed(tangler.info.Session.getTopicId());}if(_907){_89a.activeScroll();}}if(_90b){_8bb.focusInput();}}function sendMessageFailed(_90e){if(_89e!=null&&_89e.isVisible()){_89e.hide();}alert("We were unable to send your message, please try again");_8bb.setInputContent(_89d);_8bb.focusInput();}function createMessageCallback(_90f){if(_89e!=null&&_89e.isVisible()){_89e.hide();}buildMessageItem(_90f,{lastRead:new Date(),ignoreLastRead:true});tangler.info.Session.setMessageLastViewedDate(tangler.util.formatter.formatDateTime(_90f.detail.lastModified));_88a.setTopicWatched(true,{send:false});if(_89a==null){_89a=new tangler.util.Pane(_8be.topicMessageList);}_89a.activeScroll();}function deleteMessageDeclined(){_895.hide();_8bb.focusInput();}function deleteMessageAccepted(){_895.hide();if(_89b!=null&&_89b!=0){DWRTopicHandler.removeMessage(_89b,{callback:deleteMessageCallback,errorHandler:deleteMessageFailed});}}function deleteMessageFailed(_910){alert("Failed to remove message");_8bb.focusInput();}function deleteMessageCallback(_911){var _912=new tangler.domain.MessageElement(_911.detail,_911.permissions,_911.auditHistory);_912.removeElement();delete _912;_8bb.focusInput();}function editMessageAccepted(){var _913=_8bc.getInputContent(_8be.messageInput);if(_913.length==0){return;}_896.hide();if(_89c!=null&&_89c!=0){if(_913.length>1000){if(_89e==null){_89e=new tangler.widget.DialogWrapper("sending-dlg",{width:150,height:105});}_89e.showDialog();}DWRTopicHandler.modifyMessage(_89c,_913,{callback:editMessageCallback,errorHandler:editMessageFailed});}}function editMessageDeclined(){_896.hide();}function editMessageFailed(_914){if(_89e!=null&&_89e.isVisible()){_89e.hide();}alert("Failed to edit message");}function editMessageCallback(_915){if(_89e!=null&&_89e.isVisible()){_89e.hide();}_89c=0;var _916=new tangler.domain.MessageElement(_915.detail,_915.permissions,_915.auditHistory);var _917={};_917=setCreateMessageEventArguments(_917,_915);_916.updateElement(_917);delete _916;}function getEmbedImage(_918){var _919=_918.replace(/<object\b[^>]*>(.*?)<\/object>/,function(_91a){var re=new RegExp("<embed\\b[^>]*>");var m=re.exec(_91a);if(m==null){return null;}var _91d=tangler.util.Helper.parseAttributes(m[0]);var _91e="";var _91f="";var _920="high";var _921=_91d["width"]==null?"450":_91d["width"];var _922=_91d["height"]==null?"350":_91d["height"];_91e+="<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"";_91e+=" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\"";_91e+=" width=\""+_921+"\" height=\""+_922+"\">";_91e+="<param name=\"movie\" value=\""+_91d["src"]+"\" />";_91e+="<param name=\"menu\" value=\"false\" />";_91e+="<param name=\"quality\" value=\""+_920+"\" />";_91e+="<param name=\"wmode\" value=\""+_91f+"\" />";_91e+="<embed src=\""+_91d["src"]+"\" wmode=\""+_91f+"\" quality=\""+_920+"\" menu=\"false\""+"\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" ";if(_91d["flashvars"]!=null){_91e+="flashvars=\""+_91d["flashvars"]+"\" ";}_91e+="width=\""+_921+"\" height=\""+_922+"\"></embed></object>";var html="<img src=\""+(tinyMCE.getParam("theme_href")+"/images/spacer.gif")+"\" mce_src=\""+(tinyMCE.getParam("theme_href")+"/images/spacer.gif")+"\" "+"width="+_921+"height="+_922+" "+"border=\"0\" alt=\""+escape(_91e)+"\" title=\""+escape(_91e)+"\" class=\"tanglerMediaItem\" />";return html;});return _919;}function updateGroupOnlineCount(_924){var _925=tangler.util.Element.getEl("groupParticipantCount");tangler.util.Element.removeChildNodes("groupParticipantCount");tangler.util.Element.removeChildNodes("tSubscribers");var _926;var _927=0;var text;var _929;if(_924==null){_926=0;}else{if(_924.participationCount==null){_926=_924;}else{_926=_924.monitoringCount;_927=_924.onlineSubscriberCount;}}_929=_927+" Online";text=_926+" Online";_925.dom.appendChild(document.createTextNode(_929));_8a9=_926;if(_926>0){_8b1.setTitle("Participants ("+text+")");}else{_8b1.setTitle("Participants");}}function registerGroupCallback(_92a){updateGroupOnlineCount(_92a);}function deregisterGroup(){DWRGroupHandler.deregisterGroup();sendTopicLastMessageViewed(tangler.info.Session.getTopicId());}function addOrUpdateTopic(_92b,_92c){var dom=tangler.util.Options.getOptionalArgument("dom",_92c,null);tangler.domain.TopicElementFlyweight.setContext(_92b.topicDetailCountSummary.topicDetail,null,null,_92b.topicDetailCountSummary.countSummary);tangler.domain.TopicElementFlyweight.setContextWatched(_92b.watched);tangler.domain.TopicElementFlyweight.addOrUpdateTopic({showWatchedStar:!_88a.getGroupWatched(),fromCreate:false,topicClickCallback:tangler.view.GroupEmbed.openTopicCallback,dom:dom});if(_92b.topicDetailCountSummary.topicDetail.type=="CONTACT_CHAT"&&_88f==0){_88f=_92b.topicDetailCountSummary.topicDetail.globalId;}if(_8a1==null||tangler.util.compare.isDateGreater(tangler.domain.TopicElementFlyweight.getTopicLastAction(),_8a1)){_8a1=tangler.domain.TopicElementFlyweight.getTopicLastAction();}if(_8a2==null||tangler.util.compare.isDateLesser(tangler.domain.TopicElementFlyweight.getTopicLastAction(),_8a2)){_8a2=tangler.domain.TopicElementFlyweight.getTopicLastAction();}}function addTopicFromBucketError(_92e){_8a3=false;var _92f=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];var _930=tangler.util.Element.getEl(_92f).select("li").elements.length;if(_930>0){setCurrentTopicCount(_930);}else{tangler.util.Element.getEl("topicListFooter").dom.innerHTML="<a href='#' onclick='tangler.view.GroupEmbed.loadTopicList();return false;'>"+RETRY+"</a>";}}function addTopicFromBucket(_931){if(!_890){_890=true;if(_931.length==0){showTopicCreateHint();tangler.util.Element.showElement(_8be.createTopicButton);return;}}var dom=document.createDocumentFragment();var _933=false;var _934=0;Ext.each(_931,function(_935,_936,list){if(_88f!=_935.topicDetailCountSummary.topicDetail.globalId||!_933){addOrUpdateTopic(_935,{dom:dom});if(_88f==_935.topicDetailCountSummary.topicDetail.globalId){_933=true;}}});var _938=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];_938.appendChild(dom);setCurrentTopicCount(tangler.util.Element.getEl(_938).select("li").elements.length);if(_88f!=0){setTopicMessageCount(_88f,0);tangler.util.Helper.setSelectedLink(_8be.topicList,"tList-"+_88f);tangler.view.GroupEmbed.getTopic(_88f);_88f=0;}tangler.util.Element.showElement(_8be.createTopicButton);_8a3=false;}function setCurrentTopicCount(_939){_8a7=_939;var _93a=SHOWING_TOPICS.replace("{0}",_8a7).replace("{1}",_8a6);tangler.util.Element.getEl("topicListFooter").dom.innerHTML=_93a;tangler.util.Element.showElement("topicListFooter");}function clearGroupMessagesCallback(){var _93b=tangler.util.Element.getEl(_8be.topicList);if(_93b==null){return;}var ul=_93b.select("ul").elements[0];var _93d=tangler.util.Element.getEl(ul).select("li").elements;Ext.each(_93d,function(_93e,_93f,list){var a=tangler.util.Element.getEl(_93e).select("a").elements[0];var sp=new Array();sp=a.id.split("tList-");setTopicMessageCount(sp[1],0);});}function updateGroupSubscriberCount(){var _943=_897.toString()+SUBSCRIBER;var _944=tangler.util.Element.getEl(_8be.groupSubscriberCount);if(_944!=null){_944.dom.innerHTML=_943;}}function getIncommingResourceCallback(_945){tangler.util.Element.removeChildNodes(_8be.topicResources);Ext.each(_945,function(_946,_947,list){_8ad.append(_8be.topicResources,{resourceUrl:_946.url,resourceName:_946.name});});setResourceCount(_945.length);}function setResourceCount(_949){if(_949>0){_8b6.setTitle("Links ("+_949+")");}else{_8b6.setTitle("Links");}}function showTopicHeaderName(_94a){var _94b=tangler.util.Element.getEl("tList-"+_94a);if(_94b==null){return;}if(!tangler.util.Element.getEl("topicTitle")){return;}var _94c=(_94b.dom.name==null|_94b.dom.name.length==0)?"General Conversation":_94b.dom.name;tangler.util.Element.removeChildNodes("topicTitle");tangler.util.Element.getEl("topicTitle").dom.appendChild(document.createTextNode(_94c));}function getAuthenticationTokenSuccessful(_94d){if(_94d!=null){var _94e=tangler.util.Element.getEl("disabledMessage");tangler.util.Element.removeChildNodes("disabledMessage");_94e.dom.appendChild(document.createTextNode("Your are now verified.  Please wait while we log you in."));_89f=_94d;setTimeout("tangler.view.GroupEmbed.reloadAuthenticatedPage();",2000);}else{tangler.info.Page.onLoginClicked();}}function checkAuthentication(){DWRRegistrationHandler.getAuthenticationTokenFromRegistrationId(tangler.info.Session.getRegistrationId(),{callback:getAuthenticationTokenSuccessful});}function showMessagePanel(){_8b7.getRegion("center").getTabs().stripWrap.setDisplayed(true);_8b7.getRegion("north").resizeTo(20);_8b7.getRegion("center").hidePanel(_8b4);_8b7.getRegion("center").showPanel(_8b2);setResourceCount(0);_8bb.showInput();}function hideMessagePanel(){_8b7.getRegion("center").getTabs().stripWrap.setDisplayed(false);_8b7.getRegion("north").resizeTo(40);_8b7.getRegion("center").showPanel(_8b4);}function onTopicResourcesClicked(){if(_8b8){DWRTopicHandler.getIncommingResources(tangler.info.Session.getTopicId(),{callback:getIncommingResourceCallback});}}function onTopicMessagesClicked(){}function showTopicHeader(_94f){var _950=tangler.util.Options.getOptionalArgument("clearMessages",_94f,true);var _951=_8a8.detail.topicDetail.name;var _952=_951==null?"General Conversation":_951;var _953="http://"+window.location.host+tangler.info.Page.wrapContextUrl("/embed/topic/"+tangler.info.Session.getTopicId());var _954=tangler.util.Helper.getCnameValue("/images/webview/pencil_12.gif");var _955=tangler.util.Helper.getCnameValue("/images/webview/pencil_12.gif");var _956="";if(Ext.isIE){var htc=tangler.info.Page.wrapContextUrl("/css/iepngfix.htc");_956="behavior: url('"+htc+"');";}_8ab.overwrite(_8be.topicHeaderPanel,{topicTitle:_952,topicHref:_953,watchImageSource:tangler.util.Helper.getWatchImage(_88a.getTopicWatched()),editImageSource:tangler.info.Page.wrapCnameContextUrl("/images/webview/pencil_12.gif",_954),deleteImageSource:tangler.info.Page.wrapCnameContextUrl("/images/webview/cross_12.gif",_955),watchStyle:_956});tangler.util.Element.hideElements([_8be.topicEditButton,_8be.topicDeleteButton],true);var _958=_8a8.permissions;if(_958.modifiable){tangler.util.Element.showElement(_8be.topicEditButton,"block");}if(_958.deletable&&!tangler.info.Page.isEmbed()){tangler.util.Element.showElement(_8be.topicDeleteButton,"block");}if(_950){tangler.util.Element.removeChildNodes(_8be.topicMessageList);}}function setTopicCurrentlyViewed(_959,_95a){_8a8=_959;tangler.info.Session.setTopicId(_959.detail.topicDetail.globalId);showTopicHeader(_95a);_88a.setCurrentTopic(_959);}function buildDiscussLayout(){if(_8ba){return;}_8b7=new Ext.BorderLayout(_8be.topicContainer,{north:{initialSize:20},center:{tabPosition:"top"}});_8b2=new Ext.BorderLayout(_8be.topicMessageContainer,{center:{minSize:100},south:{split:tangler.info.Session.getSecurity().isAuthenticated(),initialSize:100,minSize:70,maxSize:500}});_8b3=new Ext.BorderLayout(_8be.topicLinksContainer,{center:{}});_8b4=new Ext.BorderLayout(_8be.topicEmptyContainer,{center:{}});_8b7.beginUpdate();_8b2.beginUpdate();_8b3.beginUpdate();_8b4.beginUpdate();_8b3.add("center",new Ext.ContentPanel(_8be.topicLinksPanel,{fitToFrame:true,autoScroll:true}));_8b7.add("north",new Ext.ContentPanel(_8be.topicHeaderPanel,{fitToFrame:true,autoScroll:false,closable:false}));var _95b=new Ext.NestedLayoutPanel(_8b2,{title:"Messages",closable:false});_8b7.add("center",_95b);_8b6=new Ext.NestedLayoutPanel(_8b3,{title:"Links",closable:false});_8b7.add("center",_8b6);_8b4.add("center",new Ext.ContentPanel(_8be.topicEmptyPanel,{fitToFrame:true,autoScroll:true}));_8b7.add("center",new Ext.NestedLayoutPanel(_8b4,{title:"Empty",closable:false}));_8b7.getRegion("center").hidePanel(_8b4);_8b7.getRegion("center").showPanel(_8b2);_8b2.add("center",new Ext.ContentPanel(_8be.topicMessageListPanel,{fitToFrame:true,autoScroll:true}));_8b2.add("south",new Ext.ContentPanel(_8be.topicMessageEditorPanel,{fitToFrame:true,autoScroll:false,closable:false}));_8b2.endUpdate();_8b3.endUpdate();_8b4.endUpdate();_8b7.endUpdate();_95b.on("activate",onTopicMessagesClicked);_8b6.on("activate",onTopicResourcesClicked);_8b2.getRegion("south").on("resized",function(_95c,_95d){var _95e=_8b2.getRegion("south").getPanel(_8be.topicMessageEditorPanel).getEl().getHeight();if(_88a.isMessagePostMode()){_88e=_95e;}if(tangler.info.Session.getSecurity().isAuthenticated()){DWRGroupHandler.setMessageHeight(_95e);}if(tangler.util.Element.getEl("messageInputWidgIframe")){tangler.util.Element.getEl("messageInputWidgIframe").setHeight(_95d-tangler.util.Element.getEl("messageInputWidgToolbar").getHeight());}});_8b9=true;_8ba=true;_88e=_8b2.getRegion("south").getPanel(_8be.topicMessageEditorPanel).getEl().getHeight();if(tangler.info.Session.getSecurity().isAuthenticated()){DWRGroupHandler.getMessageHeight({callback:function(_95f){_8b2.getRegion("south").resizeTo(_95f);}});}}function drawWatchStar(tag,_961){var _962=tangler.util.Element.getEl(tag);if(!_962){return;}_962.select("img").elements[0].src=tangler.util.Helper.getWatchImage(_961);}function checkTopicWatchedDisplay(){if(tangler.info.Session.getTopicId()!=0&&_898!=_88d.ContactChat&&tangler.info.Session.getSecurity().isAuthenticated()&&((!_88a.getGroupSubscribed()||(_88a.getGroupSubscribed()&&!_88a.getGroupWatched())))){tangler.util.Element.showElement("topicWatchTag");Ext.QuickTips.tips({target:Ext.get(Ext.get("topicWatchTag").select("img").elements[0]),text:(_88a.getTopicWatched()?UNWATCH_TOPIC:WATCH_TOPIC),autoHide:true});drawWatchStar("topicWatchTag",_88a.getTopicWatched());}else{tangler.util.Element.hideElement("topicWatchTag");}}function onTopicWatchedChanged(_963){if(tangler.util.Element.showingElement("topicWatchTag")){var send=tangler.util.Options.getOptionalArgument("send",_963,true);if(send){DWRGroupHandler.toggleWatchTopic(tangler.info.Session.getTopicId(),_88a.getTopicWatched());}}}function onMessageModeChanged(){if(tangler.info.Session.getSecurity().isAuthenticated()){tangler.util.Element.getEl("messageChatPostButton").dom.innerHTML=_88a.isMessagePostMode()?POST_MODE:CHAT_MODE;tangler.util.Element.getEl("messageChatPostButton").dom.title=_88a.isMessagePostMode()?CLICK_TO_SEND_OR_NEWLINE:ENTER_TO_SEND;if(_8b2){if(_88a.isMessagePostMode()){_8b2.getRegion("south").resizeTo(_88e);}else{_8b2.getRegion("south").resizeTo(_8be.chatSize);}_8bb.toggleChatMode(!_88a.isMessagePostMode());DWRGroupHandler.setMessageMode(_88a.isMessagePostMode()?"post":"chat");}}}return {init:function(_965,_966){tangler.info.Page.setView(tangler.info.ViewType.GroupEmbed);DWRGroupHandler.registerGroup(_965,{callback:registerGroupCallback});Ext.QuickTips.init();_88a.on("preTopicWatchedChanged",checkTopicWatchedDisplay);_88a.on("topicWatchedChanged",onTopicWatchedChanged);_88a.on("messageModeChanged",onMessageModeChanged);tangler.util.Helper.ellipsis(30,"groupHeaderContainer");tangler.util.Helper.ellipsis(50,"linkedUrls");_88a.setGroupSubscribed(tangler.util.Options.getOptionalArgument("isSubscribed",_966,false));var _967=tangler.util.Options.getOptionalArgument("groupCreatorId",_966,0);_897=tangler.util.Options.getOptionalArgument("subscriberCount",_966,0);_8a6=tangler.util.Options.getOptionalArgument("topicCount",_966,0);_898=tangler.util.Options.getOptionalArgument("groupType",_966,"normal")=="normal"?_88d.Normal:_88d.ContactChat;_88a.setGroupWatched(tangler.util.Options.getOptionalArgument("isWatched",_966,false));_8aa.compile();_8ab.compile();_8ac.compile();_8ad.compile();_8ae.compile();_8bb=new tangler.view.Message(_8be.messageInput,{isChat:!_88a.isMessagePostMode()});_8bb.setSubmitFunction(tangler.view.GroupEmbed.sendMessage);_8bc=new tangler.view.Message(_8be.editMessageInput);_8bc.setSubmitFunction(editMessageAccepted);_88a.setMessageMode(tangler.util.Options.getOptionalArgument("messageMode",_966,"post")=="post"?tangler.view.MessageMode.Post:tangler.view.MessageMode.Chat);_88a.setGroupInitialised(true);var _968=tangler.util.Options.getOptionalArgument("topicId",_966);tangler.view.GroupEmbed.getTopic(_968);},initGroupLayout:function(_969){buildDiscussLayout();_8b8=true;},shutdown:function(){deregisterGroup();},loadAndOpenTopicCallback:function(_96a){_88f=_96a;if(_890){if(tangler.util.Element.getEl("tList-"+_88f)){tangler.view.GroupEmbed.getTopic(_88f);}else{DWRTopicHandler.getTopicFromBucket(_88f,{callback:showTopicFromBucket});}_88f=0;}return false;},setGroupSubscriberCount:function(_96b){_897=_96b;},getTopicLoaded:function(){return _890;},highlight:function(_96c){return function(){tangler.util.Element.getEl("mList-"+_96c).dom.className+=" highlight";};},removeHighlight:function(_96d){return function(){tangler.util.Element.getEl("mList-"+_96d).dom.className=tangler.util.Element.getEl("mList-"+_96d).dom.className.replace(new RegExp(" highlight\\b"),"");};},isPostMode:function(){return (_88a.isMessagePostMode());},toggleChatPostMode:function(){if(_88a.isMessagePostMode()){_88a.setMessageMode(tangler.view.MessageMode.Chat);}else{_88a.setMessageMode(tangler.view.MessageMode.Post);}_8bb.focusInput();},setTopicToOpen:function(_96e){_88f=_96e;},getTopic:function(tId,_970){var _971=tangler.util.Options.getOptionalArgument("forceUpdate",_970,false);var _972=tangler.util.Options.getOptionalArgument("showGroupDetail",_970,false);showMessageWaiting();showTopicHeaderName(tId);showMessagePanel();DWRTopicHandler.openTopicAndMessages(tId,{callback:openTopicAndMessagesSuccessful,errorHandler:messageErrorCallback,timeout:_8be.dwrTimeout});},openTopicCallback:function(_973){return function(){tangler.view.GroupEmbed.getTopic(_973);return false;};return false;},onTopicEvent:function(_974){_88b.setTopicLifecycle(_974);tangler.domain.TopicElementFlyweight.setContext(_88b.getDetail(),_88b.getPermissions(),_88b.getAuditHistory());tangler.domain.TopicElementFlyweight.setContextWatched(_88b.getWatched());if(tangler.domain.TopicElementFlyweight.isElementModified()){if(tangler.info.Session.getTopicId()==_88b.getDetail().globalId){setTopicCurrentlyViewed(_974,{clearMessages:false});}}else{if(tangler.domain.TopicElementFlyweight.isElementDeleted()){if(tangler.info.Session.getTopicId()==_88b.getDetail().globalId){if(_892!=null&&_892.isVisible()){_892.hide();}if(_893!=null&&_893.isVisible()){_893.hide();}alert("The topic you are viewing "+_88b.getDetail().name+" has just been removed by "+_88b.getAuditHistory().modifyingUser.screenName);}removeTopic(_88b.getDetail().globalId);decrementTopicCount();}else{}}},onCreateTopicClicked:function(_975){var _976=tangler.util.Element.getEl(_8be.newTopicInput).getValue();if(_976.toUpperCase()!=ENTER_TOPIC_NAME){createTopicRequest(null);}},onCancelCreateTopic:function(){removeTopic("new");var tId=tangler.info.Session.getTopicId();if(tId!=0){_891=_88c.Showing;tangler.view.GroupEmbed.getTopic(tId,{forceUpdate:true});}else{_891=_88c.Init;}},onCreateTopicInputFocused:function(){tangler.util.Element.getEl(_8be.newTopicInput).dom.select();},onDeleteTopic:function(_978){if(_893==null){_893=new tangler.widget.DialogWrapper("deleteTopic-dlg",{minHeight:100,height:120,width:330,draggable:false,resizable:false,acceptLabel:YES,acceptFunction:deleteTopicAccepted,declineLabel:NO,declineFunction:deleteTopicDeclined});}if(_893!=null&&_893.isVisible()){return;}_894=_978;tangler.util.Element.getEl("deleteTopic").dom.innerHTML="'"+tangler.util.Helper.escapeHtml(unescape(tangler.util.Element.getEl("tList-"+_978).dom.name))+"'?";_893.showDialog();},onWatchTopic:function(_979){if(tangler.info.Session.getSecurity().isAuthenticated()&&!_88a.getGroupWatched()){_88a.setTopicWatched(!_88a.getTopicWatched());}},onWatchGroup:function(){if(tangler.info.Session.getSecurity().isAuthenticated()){_88a.setGroupWatched(!_88a.getGroupWatched());_88a.setTopicWatched(false,{send:false});}},onEditTopic:function(_97a){if(_892==null){_892=new tangler.widget.DialogWrapper("editTopic-dlg",{minHeight:100,height:100,width:330,acceptLabel:UPDATE,acceptFunction:editTopicAccept,declineLabel:CANCEL,declineFunction:editTopicDecline});}if(_892!=null&&_892.isVisible()){return;}editTopicId=_97a;var _97b=tangler.util.Element.getEl("editTopicInput");_97b.dom.value=unescape(_88a.getCurrentTopic().detail.topicDetail.name);_97b.dom.select();_892.showDialog();},onEditTopicKeyPress:function(_97c){tangler.util.Helper.returnOnEnter(_97c,editTopicAccept);},onMessageInput:function(_97d){if(_97d.type=="keypress"){if(tinyMCE.selectedInstance.formTargetElementId!=_8be.messageInput){return true;}if(_97d&&_97d.keyCode){var _97e=_97d.keyCode==13&&_97d.shiftKey;if(_88a.getMesageMode()==tangler.view.MessageMode.Chat){_97e=_97d.keyCode==13&&!_97d.shiftKey;}if(_97e){tangler.util.Helper.stopEvent(_97d);tangler.view.GroupEmbed.sendMessage();return false;}}}return true;},onMessageEvent:function(_97f){if(_97f.detail.globalTopicId==tangler.info.Session.getTopicId()){var _980=tangler.util.Element.getEl("mList-"+_97f.detail.globalId);if(_980==null){buildMessageItem(_97f,{lastRead:new Date(),ignoreLastRead:true});}else{var msg=new tangler.domain.MessageElement(_97f.detail,_97f.permissions,_97f.auditHistory);msg.updateElement();delete msg;}var _982=tangler.util.formatter.formatDateTime(_97f.detail.lastModified);if(_982>tangler.info.Session.getMessageLastViewedDate()){tangler.info.Session.setMessageLastViewedDate(_982);sendTopicLastMessageViewed(tangler.info.Session.getTopicId());}}if(_97f.auditHistory==null){if(_89a==null){_89a=new tangler.util.Pane(_8be.topicMessageList);}_89a.activeScroll();}_8bb.focusInput();},onDeleteMessage:function(_983){return function(){if(_895==null){_895=new tangler.widget.DialogWrapper("deleteMessage-dlg",{minHeight:100,width:330,height:130,draggable:false,resizable:false,acceptLabel:YES,acceptFunction:deleteMessageAccepted,declineLabel:NO,declineFunction:deleteMessageDeclined});}if(_895.isVisible()){return;}var _984=tangler.util.Element.getEl("mList-"+_983);var _985=tangler.util.Element.getElementsByClassName(_984,"div",["msgBody"])[0];if(!_895){delete _895;}_89b=_983;_895.showDialog();};},onEditMessage:function(_986){return function(){if(_896==null){_896=new tangler.widget.DialogWrapper("editMessage-dlg",{height:250,resizable:false,draggable:false,acceptLabel:UPDATE,acceptFunction:tangler.view.GroupEmbed.submitEditMessage,declineLabel:CANCEL,declineFunction:editMessageDeclined});_896.addListener("beforeHide",function(_987){_8bc.resetInput();_8bc.hideInput();_8bb.focusInput();});}if(_896.isVisible()){return;}var _988=tangler.util.Element.getEl("mList-"+_986);var _989=tangler.util.Element.getElementsByClassName(_988,"div",["msgBody"])[0];_896.showDialog();_8bc.showInput();_8bc.setInputContent(_989.innerHTML);tangler.util.Element.getEl("editMessageInputWidgIframe").setHeight(_896.getDialog().body.getBox().height-tangler.util.Element.getEl("messageInputWidgToolbar").getHeight());_89c=_986;};},loadTopicList:function(){if(!_890){tangler.util.Element.hideElement(_8be.createTopicButton);DWRGroupHandler.getGroupTopicBucket(tangler.info.Session.getGroupId(),_88f,null,{callback:addTopicFromBucket,timeout:20000,errorHandler:addTopicFromBucketError});}},submitMessage:function(){_8bb.submit();},submitEditMessage:function(){if(_8bc){_8bc.submit();}},sendMessage:function(){_89d=_8bb.getInputContent();var _98a=_89d.replace(/&nbsp;/g,"");_98a=_98a.replace(/<p>/g,"");_98a=_98a.replace(/<\/p>/g,"");if(_98a.length==0){return;}var _98b=tangler.info.Session.getTopicId();_8bb.resetInput();if(_89d.length>1000){if(_89e==null){_89e=new tangler.widget.DialogWrapper("sending-dlg",{width:150,height:105});}_89e.showDialog();}DWRTopicHandler.createMessage(_98b,_89d,{callback:createMessageCallback,errorHandler:sendMessageFailed});},showCreateTopic:function(){if(_891==_88c.Creating){return;}_891=_88c.Creating;tangler.domain.TopicElementFlyweight.setContext();tangler.domain.TopicElementFlyweight.createTemporaryNewTopic();showTopicHeaderCreate(ENTER_TOPIC_NAME);topic=null;},onMarkAllTopicsAsRead:function(){DWRGroupHandler.clearGroupMessages(tangler.info.Session.getGroupId(),{callback:clearGroupMessagesCallback});},onInviteToGroup:function(){var _98c=new tangler.util.Helper.createIframeWindow({url:tangler.info.Page.wrapContextUrl("/group/inviteToGroup.action?gId="+tangler.info.Session.getGroupId()),width:370,height:435});_98c.showWindow({refreshOnClose:false});},checkRegistrationVerification:function(){if(tangler.info.Session.getRegistrationId()!=null&&tangler.info.Session.getRegistrationId().length>0){var _98d=tangler.util.Element.getEl("disabledMessage");tangler.util.Element.removeChildNodes("disabledMessage");var href=tangler.util.Element.createNode("a",{attributes:[["href",tangler.info.Page.wrapContextUrl("/login")]],children:[document.createTextNode(SIGNIN)]});_98d.dom.appendChild(document.createTextNode(MSG_ONE));_98d.dom.appendChild(tangler.util.Element.createNode("br"));_98d.dom.appendChild(document.createTextNode(MSG_TWO));_98d.dom.appendChild(href);}},reloadAuthenticatedPage:function(){var url="/group/"+tangler.info.Session.getGroupId();if(tangler.info.Session.getTopicId()!=0){url+="/topic/"+tangler.info.Session.getTopicId();}url+="/auth="+_89f;window.location=tangler.info.Page.wrapContextUrl(url);},onTopicListScrolled:function(){if(_8a0==null){return;}if(_8a3){return;}if(_8a0.dom.scrollTop>_8a5){_8a3=true;var _990=_8a0.dom.scrollHeight;var _991=Math.abs(_8a0.dom.clientHeight*0.2);var pos=_8a0.dom.scrollTop+_8a0.dom.clientHeight;if((pos+_991)>=_990){tangler.util.Element.getEl("topicListFooter").dom.innerHTML=RETRIEVING_TOPICS;tangler.util.Element.showElement("topicListFooter");DWRGroupHandler.getGroupTopicBucket(tangler.info.Session.getGroupId(),null,_8a2,{callback:addTopicFromBucket,timeout:20000,errorHandler:addTopicFromBucketError});}else{_8a3=false;}}_8a5=_8a0.dom.scrollTop;},getMaxTopicActivityDate:function(){return _8a1;},updateTopicBucket:function(_993){var dom=document.createDocumentFragment();Ext.each(_993,function(_995,_996,list){addOrUpdateTopic(_995,{dom:dom});});var ul=tangler.util.Element.getEl(_8be.topicList).select("ul").elements[0];var _999=tangler.util.Element.getEl(ul).select("li").elements;if(_999==null||_999.length==0){ul.appendChild(dom);}else{ul.insertBefore(dom,_999[0]);}},checkField:function(){return tangler.util.Helper.checkEmptyField("newTopicName","createTopicButton");}};}();tangler.view.Message=function(_99a,_99b){this._inputId=_99a;this._editor=null;this._submitFunction=null;this._isChat=tangler.util.Options.getOptionalArgument("isChat",_99b,false);this._setContent=null;};tangler.view.Message.prototype={setSubmitFunction:function(_99c){this._submitFunction=_99c;},toggleChatMode:function(_99d){this._isChat=_99d;if(this._editor){this._editor.toggleChatMode(_99d);}},showInput:function(){if(!this._editor){widgConfig.imagePath=tangler.info.Page.wrapContextUrl("/js/RTEditor/images/");widgConfig.pluginsPath=tangler.info.Page.wrapContextUrl("/js/RTEditor/plugins/");widgConfig.widgStylesheet=tangler.info.Page.wrapContextUrl("/js/RTEditor/css/widgContent.css");widgButtons={bold:{className:"widgButtonBold",title:BOLD,action:onclickBold,image:widgConfig.imagePath+"button_bold.gif"},italic:{className:"widgButtonItalic",title:ITALIC,action:onclickItalic,image:widgConfig.imagePath+"button_italic.gif"},underline:{className:"widgButtonUnderline",title:UNDERLINE,action:onclickUnderline,image:widgConfig.imagePath+"button_underline.gif"},strikethrough:{className:"widgButtonStrikethrough",title:STRIKETHROUGH,action:onclickStrikethrough,image:widgConfig.imagePath+"button_strikethrough.gif"},unordered:{className:"widgButtonUnordered",title:UNORDERED_LIST,action:onclickUnorderedList,image:widgConfig.imagePath+"button_unordered.gif"},ordered:{className:"widgButtonOrdered",title:ORDERED_LIST,action:onclickOrderedList,image:widgConfig.imagePath+"button_ordered.gif"}};widgConfig.toolbarButtons=[widgButtons.bold,widgButtons.italic,widgButtons.underline,widgButtons.strikethrough,"colour",widgButtons.unordered,widgButtons.ordered,"anchor","emoticons","image","video"];this._editor=new widgEditor(this._inputId);if(this._submitFunction){this._editor.setSubmit(this._submitFunction);}if(this._setContent){this._editor.selectAll();this._editor.insertHTML(this._setContent);this._setContent=null;}}this._editor.show();this.toggleChatMode(this._isChat);},submit:function(){if(this._editor){this._editor.submit();}},hideInput:function(_99e){if(this._editor){this._editor.hide();}},resetInput:function(){if(this._editor){this._editor.reset();this._editor.focus();}},focusInput:function(){if(this._editor){this._editor.focus();}},setInputContent:function(_99f){if(this._editor){this._editor.reset();var self=this;setTimeout(function(){self._editor.insertHTML(_99f);},1);}else{this._setContent=_99f;}},getInputContent:function(){if(this._editor){return this._editor.input.value;}else{return null;}}};
tangler.domain.Element=function(_316,_317,_318){this._summary=_316;this._permission=_317;this._audit=_318;};tangler.domain.Element.prototype={isElementDeleted:function(){return (this._audit!=null&&this._audit.operation=="DELETE");},isElementModified:function(){return (this._audit!=null&&this._audit.operation=="MODIFY");}};
tangler.domain.MessageElement=function(_5d0,_5d1,_5d2){tangler.domain.MessageElement.superclass.constructor.call(this,_5d0,_5d1,_5d2);this.createOptionElement=function(_5d3,_5d4,_5d5,_5d6){var _5d7=tangler.util.Element.createNode("img",{attributes:[["src",_5d4],["alt",_5d5],["title",_5d6]]});var _5d8=tangler.util.Element.createNode("a",{attributes:[["href","javascript:void(0);"]],children:[_5d7]});_5d8.className=_5d3;return _5d8;};this.attachOptionEvents=function(_5d9,_5da,_5db,_5dc,_5dd){var _5de=tangler.util.Options.getOptionalArgument(_5da,_5dd,null);var _5df=tangler.util.Options.getOptionalArgument(_5db,_5dd,null);var _5e0=tangler.util.Options.getOptionalArgument(_5dc,_5dd,null);if(_5de!=null){Ext.EventManager.addListener(_5d9,"click",_5de,null,{preventDefault:true});}if(_5df!=null){Ext.EventManager.addListener(_5d9,"mouseover",_5df);}if(_5e0!=null){Ext.EventManager.addListener(_5d9,"mouseout",_5e0);}};this.createMessageEditOption=function(_5e1){if(this._permission==null){return null;}var _5e2=null;if(this._permission.modifiable){var _5e3=tangler.util.Helper.getCnameValue("/images/buttons/pencil_12.gif");var _5e4=tangler.info.Page.wrapCnameContextUrl("/images/buttons/pencil_12.gif",_5e3);_5e2=this.createOptionElement("msgEdit",_5e4,"Edit message","Edit message");this.attachOptionEvents(_5e2,"onEditClick","onEditMouseOver","onEditMouseOut",_5e1);}return _5e2;};this.createMessageQuoteOption=function(_5e5){if(this._permission==null){return null;}var _5e6=null;if(this._permission.quotable){var _5e7=tangler.util.Helper.getCnameValue("/images/buttons/quote_12.gif");var _5e8=tangler.info.Page.wrapCnameContextUrl("/images/buttons/quote_12.gif",_5e7);_5e6=this.createOptionElement("msgQuote",_5e8,"Quote message","Quote message");this.attachOptionEvents(_5e6,"onQuoteClick","onQuoteMouseOver","onQuoteMouseOut",_5e5);}return _5e6;};this.createMessageRepostOption=function(_5e9){var _5ea=null;var _5eb=tangler.util.Helper.getCnameValue("/images/buttons/repost_12.gif");var _5ec=tangler.info.Page.wrapCnameContextUrl("/images/buttons/repost_12.gif",_5eb);var _5ea=this.createOptionElement("msgRepost",_5ec,"Re-post this message","Re-post this message");this.attachOptionEvents(_5ea,"onRepostClick","onRepostMouseOver","onRepostMouseOut",_5e9);return _5ea;};this.createMessageDeleteOption=function(_5ed){if(this._permission==null){return null;}var _5ee=null;if(this._permission.deletable){var _5ef=tangler.util.Helper.getCnameValue("/images/buttons/cross_12.gif");var _5f0=tangler.info.Page.wrapCnameContextUrl("/images/buttons/cross_12.gif",_5ef);_5ee=this.createOptionElement("msgDelete",_5f0,"Delete message","Delete message");this.attachOptionEvents(_5ee,"onDeleteClick","onDeleteMouseOver","onDeleteMouseOut",_5ed);}return _5ee;};this.createMessageOptionsElement=function(_5f1){var _5f2=tangler.util.Element.createNode("span",{children:[this.createMessageQuoteOption(_5f1),this.createMessageEditOption(_5f1),document.createTextNode(" "),this.createMessageDeleteOption(_5f1)]});_5f2.className="msgOptions";return _5f2;};this.createModifiedElement=function(_5f3){var _5f4=null;if(tangler.domain.Element.prototype.isElementModified.call(this)){var _5f5=tangler.util.formatter.formatElapsedDate(this._audit.modified,true);var _5f6=tangler.util.Helper.getCnameValue("/images/buttons/edited_12.gif");var _5f7=tangler.info.Page.wrapCnameContextUrl("/images/buttons/edited_12.gif",_5f6);_5f4=this.createOptionElement("msgModified",_5f7,"Edited","Edited "+_5f5+" by "+this._audit.modifyingUser.screenName);this.attachOptionEvents(_5f4,null,"onModifyMouseOver","onModifyMouseOut",_5f3);}return _5f4;};this.createMessageAttribElement=function(_5f8){if(typeof (this._summary.showAttribs)!="undefined"&&!this._summary.showAttribs){var _5f9=tangler.util.Element.createNode("div",{});_5f9.className="spacer";var _5fa=tangler.util.Element.createNode("span",{children:[_5f9]});_5fa.className="msgOptions";var _5fb=tangler.util.Element.createNode("div",{children:[_5fa]});_5fb.className="msgAttribs";return _5fb;}var _5fc=tangler.util.formatter.formatDateTimeReadable(this._summary.created);var _5fd="Message sent "+tangler.util.formatter.formatDateTime(this._summary.created,"d F Y, g:i A");var _5fe=tangler.util.Element.createNode("span",{attributes:[["class","msgTime"],["title",_5fd]],children:[document.createTextNode(_5fc)]});this.attachOptionEvents(_5fe,null,"onTimespanMouseOver","onTimespanMouseOut",_5f8);_5fe.className="msgTime";var _5fb=tangler.util.Element.createNode("div",{children:[this.createModifiedElement(_5f8),this.createMessageOptionsElement(_5f8),_5fe]});_5fb.className="msgAttribs";return _5fb;};this.createDeletedMessageElement=function(_5ff){var _600=tangler.util.Element.createNode("a",{attributes:[["href",tangler.info.Page.wrapContextUrl("/people/id/"+this._audit.modifyingUser.globalId)]],children:[document.createTextNode(this._audit.modifyingUser.screenName)]});var _601="MESSAGE_REMOVED_BY ";var _602=tangler.util.formatter.formatElapsedDate(this._audit.modified,true);var _603=tangler.util.Element.createNode("div",{children:[document.createTextNode(_601),_600,document.createTextNode(_601),document.createTextNode(" "+_602)]});_603.className="msgDeleted";var _604=tangler.util.Element.createNode("div",{attributes:[["id","message-"+this._summary.globalId]],children:[_603]});_604.className="msg";return _604;};this.createMessageElement=function(_605){var _606=tangler.util.Element.createNode("div");_606.className="msgBody";var re=/id="[^"\r\n]*"/g;var body=this._summary.body.replace(re,"");_606.innerHTML=body;var _609=_606.getElementsByTagName("a");Ext.each(_609,function(_60a){if(!Ext.isIE7){if(_60a.href){if(_60a.href.indexOf("http://www.tangler.com")!=-1||_60a.href.indexOf("http://tangler.com")!=-1){if(tangler.info.Page.isEmbed()){_60a.target="_blank";}else{_60a.target="_self";}}else{_60a.target="_blank";}}}else{_60a.target="_blank";}});var _60b=tangler.util.Element.createNode("div",{attributes:[["id","message-"+this._summary.globalId]],children:[this.createMessageAttribElement(_605),_606]});_60b.className="msg";return _60b;};this.getMessageElement=function(_60c){var _60d=null;if(tangler.domain.Element.prototype.isElementDeleted.call(this)){}else{var _60e=tangler.util.Options.getOptionalArgument("lastRead",_60c,0);var _60f=tangler.util.Options.getOptionalArgument("ignoreLastRead",_60c,false);var _610=tangler.util.Options.getOptionalArgument("modified",_60c,false);_60d=this.createMessageElement(_60c);var _611=(_60e&&_60e!=0)?tangler.util.formatter.formatDateTime(_60e):0;var _612=tangler.util.formatter.formatDateTime(this._summary.created);if(_610){_60d.className="msg modifiedMsg";}else{if(!_60f){if(_611==0||_612>_611){_60d.className="msg unreadMsg";}}}}return _60d;};this.getQuoteMessageElement=function(_613,_614){var _615="";var _616=null;if(!tangler.util.StringUtil.isEmpty(_613)){_613=tangler.util.StringUtil.getQuoteMessageOrMessageBody(_613,true);var _617=_613.substring(0,_613.indexOf(":")+1);var _618=_613.substring(_613.indexOf(":")+1,_613.length);var qMsg=tangler.util.Element.createNode("span",{});qMsg.innerHTML=_618;_616=tangler.util.Element.createNode("div",{attributes:[["id","quoteMessage-"+_614],["class","quoteMessage"]],children:[tangler.util.Element.createNode("p",{attributes:[["class","p"]],children:[tangler.util.Element.createNode("strong",{children:[document.createTextNode(_617)]}),tangler.util.Element.createNode("br"),qMsg]})]});_616.className="quoteMessage";return _616;}return null;};this.requiresMessageAuthor=function(_61a){var _61b=_61a.nextSibling;var sp=_61a.id.split("message-");var id=sp[1];var _61e=tangler.cache.CacheManager.getMessage(id);if(_61b){var _61f=null;if(_61b.className.indexOf("author")!=-1){_61f=_61b.nextSibling;if(_61f==null){return false;}}else{_61f=_61b;}var _620=_61f.id.split("message-")[1];if(_620==null||_620=="undefined"){_620=_61f.id.split("quoteMessage-")[1];}var _621=tangler.cache.CacheManager.getMessage(_620);if(this._summary.anonymousDetail!=null&&_621.anonymousDetail!=null){return this._summary.anonymousDetail.anonymousScreenName!=_621.anonymousDetail.anonymousScreenName;}return this._summary.author.globalId!=_621.author.globalId;}else{if(this._summary.anonymousDetail!=null&&_61e.anonymousDetail!=null){return this._summary.anonymousDetail.anonymousScreenName!=_61e.anonymousDetail.anonymousScreenName;}return this._summary.author.globalId!=_61e.author.globalId;}};this.onAuthorMouseOver=function(){var _622=this.author.screenName=="anonymousUser"?-1:this.author.globalId;tangler.manager.AuthorState.setFocusAuthor(_622,this.authorTag,this.anonymousDetail);tangler.manager.AuthorState.setFocusAuthorScreenName(this.author.screenName=="anonymousUser"?this.anonymousDetail.anonymousScreenName:this.author.screenName);};this.onAuthorMouseOut=function(){tangler.manager.AuthorState.setFocusAuthor(0,null);};};Ext.extend(tangler.domain.MessageElement,tangler.domain.Element);tangler.domain.MessageElement.prototype={createMessageAuthor:function(dom,_624){var _625=tangler.util.Helper.getCnameValue("/images/defaulticons/contact_18.png");var _626=tangler.info.Page.wrapCnameContextUrl("/images/defaulticons/contact_18.png",_625);if(this._summary.anonymousDetail==null&&this._summary.author.avatar!=null){_626=tangler.util.Avatar.getAvatarUrl(this._summary.author.avatar);}var _627=tangler.util.Options.getOptionalArgument("hasLink",_624,true);var _628="";if(!_627){_628="_blank";}if(tangler.info.Page.isEmbed()){_628="_blank";}var img=tangler.util.Element.createNode("img",{attributes:[["class","avatar"],["src",_626],["width","18"],["height","18"]]});img.className="avatar";var _62a="/user/"+this._summary.author.screenName;var a=null;var _62c="";var _62d=0;var _62e=this._summary.author.globalId;if(this._summary.author.screenName=="anonymousUser"&&this._summary.anonymousDetail!=null){_62c=this._summary.anonymousDetail.anonymousScreenName;a=tangler.util.Element.createNode("a",{attributes:[["href","#"],["target",_628]],children:[img,tangler.util.Element.createNode("span",{attributes:[["style","color:#999"]],children:[document.createTextNode("Guest : ")]}),document.createTextNode(this._summary.anonymousDetail.anonymousScreenName)]});_62d=1;}else{_62c=this._summary.author.screenName;a=tangler.util.Element.createNode("a",{attributes:[["href",tangler.info.Page.wrapContextUrl(_62a)],["target",_628]],children:[img,document.createTextNode(this._summary.author.screenName)]});_62d=0;}this._summary.authorTag=a;var _62f=tangler.util.Element.getEl("messages").select("div.author").elements;var _630=_62f.length+1;var _631="author-"+_630+"@"+_62c+"|"+_62e;var div=tangler.util.Element.createNode("div",{attributes:[["id",_631],["class","ellipsis"],],children:[a]});div.className="author";if(tangler.info.Session.getUserId()==this._summary.author.globalId){div.className+=" meAuthor";}tangler.util.Element.getEl(a).on({"mouseover":{fn:this.onAuthorMouseOver,scope:this._summary},"mouseout":{fn:this.onAuthorMouseOut,scope:this._summary}});var _633=tangler.util.Options.getOptionalArgument("insertAfter",_624);if(_633){tangler.util.Element.insertAfter(dom,div,_633);}else{dom.appendChild(div);}return div;},createMessage:function(dom,_635){var _636=null;if(this._summary.parentMessageId!=null&&this._summary.parentMessageId!=0){_636=this.getQuoteMessageElement(this._summary.body,this._summary.globalId);this._summary.body=tangler.util.StringUtil.getQuoteMessageOrMessageBody(this._summary.body,false);}var _637=this.getMessageElement(_635);if(_637==null){return;}var _638=this._summary.anonymousDetail==null?this._summary.author.screenName:this._summary.anonymousDetail.anonymousScreenName;var _639=true;if(_639){var _63a=tangler.cache.CacheManager.getMessageCache();var _63b=null;var _63c=null;var _63d;var id;if(_63a==null||_63a.length==0){var auth=this.createMessageAuthor(dom,{insertAfter:_63c});dom.appendChild(auth);if(_636!=null){dom.appendChild(_636);}dom.appendChild(_637);}else{for(var i=_63a.length-1;i>=0;--i){_63b=_63a[i];if(this._summary.created>=_63b.created){var _641=tangler.util.Element.getEl("message-"+_63b.globalId);if(_641){_63c=_641.dom;}else{continue;}if(this.requiresMessageAuthor(_63c)){var auth=this.createMessageAuthor(dom,{insertAfter:_63c});dom.appendChild(auth);if(_636!=null){dom.appendChild(_636);}dom.appendChild(_637);}else{if((i+1)>=_63a.length){var _642="*";if(this._summary.anonymousDetail!=null){_642=this._summary.anonymousDetail.anonymousScreenName;}else{_642=this._summary.author.screenName;}if(_636!=null){dom.appendChild(_636);}dom.appendChild(_637);}else{var _643=false;var snm="";if(_63b.anonymousDetail!=null&&this._summary.anonymousDetail!=null){_643=_63b.anonymousDetail.anonymousScreenName==this._summary.anonymousDetail.anonymousScreenName;snm=_63b.anonymousDetail.anonymousScreenName;}else{_643=_63b.author.globalId==this._summary.author.globalId;snm=_63b.author.screenName;}if(_643){if(_636!=null){tangler.util.Element.insertAfter(dom,_636,_63c);tangler.util.Element.insertAfter(dom,_637,_636);}else{tangler.util.Element.insertAfter(dom,_637,_63c);}}else{var auth=this.createMessageAuthor(dom,{insertAfter:_63c});dom.appendChild(auth);if(_636!=null){dom.appendChild(_636);}dom.appendChild(_637);}}}break;}}}}else{dom.appendChild(_637);}tangler.cache.CacheManager.addMessageToCache(this._summary);},createOlderMessage:function(dom,_646,_647){var _648=false;var _649=this._summary.anonymousDetail==null?this._summary.author.screenName:this._summary.anonymousDetail.anonymousScreenName;var _64a=true;var _64b=null;if(this._summary.parentMessageId!=null&&this._summary.parentMessageId!=0){_64b=this.getQuoteMessageElement(this._summary.body,this._summary.globalId);this._summary.body=tangler.util.StringUtil.getQuoteMessageOrMessageBody(this._summary.body,false);}var _64c=this.getMessageElement(_646);if(_64c==null){return;}if(_64a){var _64d=tangler.cache.CacheManager.getMessageCache();var _64e=null;var _64f=null;var _650;var id;var i=0;if(_647>0){i=_647-1;}for(i;i<_64d.length;i++){_64e=_64d[i];if(this._summary.created>=_64e.created){var _653=tangler.util.Element.getEl("message-"+_64e.globalId);if(_653){_64f=_653.dom;}else{continue;}var _654=false;var snm="";if(_64e.anonymousDetail!=null&&this._summary.anonymousDetail!=null){_654=_64e.anonymousDetail.anonymousScreenName==this._summary.anonymousDetail.anonymousScreenName;snm=_64e.anonymousDetail.anonymousScreenName;}else{_654=_64e.author.globalId==this._summary.author.globalId;snm=_64e.author.screenName;}if(_654){if(_64b!=null){tangler.util.Element.insertAfter(dom,_64b,_64f);tangler.util.Element.insertAfter(dom,_64c,_64b);}else{tangler.util.Element.insertAfter(dom,_64c,_64f);}}else{var _656=_64f.previousSibling;var _657=this.createMessageAuthor(dom,{insertBefore:_64f});tangler.util.Element.insertAfter(dom,_657,_64f);if(_64b!=null){tangler.util.Element.insertAfter(dom,_64b,_657);tangler.util.Element.insertAfter(dom,_64c,_64b);}else{tangler.util.Element.insertAfter(dom,_64c,_657);}}break;}else{_64e=_64d[i];_648=true;var _653=tangler.util.Element.getEl("quoteMessage-"+_64e.globalId);if(_653==null){_653=tangler.util.Element.getEl("message-"+_64e.globalId);}if(_653){_64f=_653.dom;}else{continue;}var _658=false;var snm="";if(_64e.anonymousDetail!=null&&this._summary.anonymousDetail!=null){_658=_64e.anonymousDetail.anonymousScreenName==this._summary.anonymousDetail.anonymousScreenName;snm=_64e.anonymousDetail.anonymousScreenName;}else{_658=_64e.author.globalId==this._summary.author.globalId;snm=_64e.author.screenName;}if(_658){if(_64b!=null){tangler.util.Element.insertBefore(dom,_64b,_64f);tangler.util.Element.insertAfter(dom,_64c,_64b);}else{tangler.util.Element.insertBefore(dom,_64c,_64f);}}else{var _659=_64f.previousSibling;var _65a=this.createMessageAuthor(dom,{insertBefore:_659});tangler.util.Element.insertBefore(dom,_65a,_659);if(_64b!=null){tangler.util.Element.insertAfter(dom,_64b,_65a);tangler.util.Element.insertAfter(dom,_64c,_64b);}else{tangler.util.Element.insertAfter(dom,_64c,_65a);}}break;}}}else{dom.appendChild(_64c);}tangler.cache.CacheManager.insertMessageCache(_647,this._summary);},removeElement:function(_65b){var _65c=tangler.util.Element.getEl("message-"+this._summary.globalId);if(_65c==null){return;}var _65d=this.getMessageElement(_65b);if(_65d!=null){var msg=document.getElementById("message-"+this._summary.globalId);msg.parentNode.replaceChild(_65d,msg);}else{var msg=document.getElementById("message-"+this._summary.globalId);msg.parentNode.removeChild(msg);tangler.cache.CacheManager.removeFromCache(this._summary.globalId);}},checkAndRemoveMessageAuthor:function(_65f){var _660=document.getElementById("messages").childNodes;var _661=0;var _662=false;var _663;for(var i=0;i<_660.length;i++){var node=_660[i];if(_661>0&&node.id.indexOf("author")==0){var _666=_660[i-1];_666.parentNode.removeChild(_666);_661=0;_663=node.id.split("@")[1];_662=true;continue;}if(node.id.indexOf("author")==0){_661++;}else{if(node.id.indexOf("message")==0){_661=0;}}}var _667=document.getElementById("messages").lastChild;if(_667.className.indexOf("author")!=-1){_667.parentNode.removeChild(_667);_662=true;}return _662;},updateElement:function(_668){var _669=tangler.util.Element.getEl("message-"+this._summary.globalId);if(_669==null){return;}if(_668==null){_668={};}_668.modified=true;if(this._summary.parentMessageId!=null&&this._summary.parentMessageId!=0){this._summary.body=tangler.util.StringUtil.getQuoteMessageOrMessageBody(this._summary.body,false);}var _66a=this.getMessageElement(_668);if(_66a!=null){var msg=document.getElementById("message-"+this._summary.globalId);msg.parentNode.replaceChild(_66a,msg);}else{var msg=document.getElementById("message-"+this._summary.globalId);msg.parentNode.removeChild(msg);var _66c=null;_66c=document.getElementById("quoteMessage-"+this._summary.globalId);if(_66c!=null){_66c.parentNode.removeChild(_66c);}tangler.cache.CacheManager.removeFromCache(this._summary.globalId);}},updateElementOnCallback:function(_66d,_66e,_66f){if(_66e==null){_66e={};}if(this._summary.parentMessageId!=null&&this._summary.parentMessageId!=0){this._summary.body=tangler.util.StringUtil.getQuoteMessageOrMessageBody(this._summary.body,false);}var _670=this.getMessageElement(_66e);if(_670!=null){var msg=document.getElementById("message-"+_66d);var _672=null;_672=document.getElementById("quoteMessage-"+_66d);if(_672!=null){_672.setAttribute("id","quoteMessage-"+_66f.detail.globalId);}if(msg==null){return;}msg.parentNode.replaceChild(_670,msg);var _673=tangler.cache.CacheManager.removeFromCache(_66d);_66f.detail.created=_673.created;tangler.cache.CacheManager.addMessageToCache(_66f.detail);}}};
// Simple Set Clipboard System
// Author: Joseph Huckaby

var ZeroClipboard = {
	
	version: "1.0.4",
	clients: {}, // registered upload clients on page, indexed by id
	moviePath: 'ZeroClipboard.swf', // URL to movie
	nextId: 1, // ID of next movie
	
	$: function(thingy) {
		// simple DOM lookup utility function
		if (typeof(thingy) == 'string') thingy = document.getElementById(thingy);
		if (!thingy.addClass) {
			// extend element with a few useful methods
			thingy.hide = function() { this.style.display = 'none'; };
			thingy.show = function() { this.style.display = ''; };
			thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; };
			thingy.removeClass = function(name) {
				this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, '');
			};
			thingy.hasClass = function(name) {
				return !!this.className.match( new RegExp("\\s*" + name + "\\s*") );
			}
		}
		return thingy;
	},
	
	setMoviePath: function(path) {
		// set path to ZeroClipboard.swf
		this.moviePath = path;
	},
	
	dispatch: function(id, eventName, args) {
		// receive event from flash movie, send to client		
		var client = this.clients[id];
		if (client) {
			client.receiveEvent(eventName, args);
		}
	},
	
	register: function(id, client) {
		// register new client to receive events
		this.clients[id] = client;
	},
	
	getDOMObjectPosition: function(obj) {
		// get absolute coordinates for dom element
		var info = {
			left: 0, 
			top: 0, 
			width: obj.width ? obj.width : obj.offsetWidth, 
			height: obj.height ? obj.height : obj.offsetHeight
		};

		while (obj) {
			info.left += obj.offsetLeft;
			info.top += obj.offsetTop;
			obj = obj.offsetParent;
		}

		return info;
	},
	
	Client: function(elem) {
		// constructor for new simple upload client
		this.handlers = {};
		
		// unique ID
		this.id = ZeroClipboard.nextId++;
		this.movieId = 'ZeroClipboardMovie_' + this.id;
		
		// register client with singleton to receive flash events
		ZeroClipboard.register(this.id, this);
		
		// create movie
		if (elem) this.glue(elem);
	}
};

ZeroClipboard.Client.prototype = {
	
	id: 0, // unique ID for us
	ready: false, // whether movie is ready to receive events or not
	movie: null, // reference to movie object
	clipText: '', // text to copy to clipboard
	handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
	cssEffects: true, // enable CSS mouse effects on dom container
	handlers: null, // user event handlers
	
	glue: function(elem) {
		// glue to DOM element
		// elem can be ID or actual DOM element object
		this.domElement = ZeroClipboard.$(elem);
		
		// float just above object, or zIndex 99 if dom element isn't set
		var zIndex = 99;
		if (this.domElement.style.zIndex) {
			zIndex = parseInt(this.domElement.style.zIndex) + 1;
		}
		
		// find X/Y position of domElement
		var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
		
		// create floating DIV above element
		this.div = document.createElement('div');
		var style = this.div.style;
		style.position = 'absolute';
		style.left = '' + box.left + 'px';
		style.top = '' + box.top + 'px';
		style.width = '' + box.width + 'px';
		style.height = '' + box.height + 'px';
		style.zIndex = zIndex;
		
		// style.backgroundColor = '#f00'; // debug
		
		var body = document.getElementsByTagName('body')[0];
		body.appendChild(this.div);
		
		this.div.innerHTML = this.getHTML( box.width, box.height );
	},
	
	getHTML: function(width, height) {
		// return HTML for movie
		var html = '';
		var flashvars = 'id=' + this.id + 
			'&width=' + width + 
			'&height=' + height;
			
		if (navigator.userAgent.match(/MSIE/)) {
			// IE gets an OBJECT tag
			var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
			html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>';
		}
		else {
			// all other browsers get an EMBED tag
			html += '<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />';
		}
		return html;
	},
	
	hide: function() {
		// temporarily hide floater offscreen
		if (this.div) {
			this.div.style.left = '-2000px';
		}
	},
	
	show: function() {
		// show ourselves after a call to hide()
		this.reposition();
	},
	
	destroy: function() {
		// destroy control and floater
		if (this.domElement && this.div) {
			this.hide();
			this.div.innerHTML = '';
			
			var body = document.getElementsByTagName('body')[0];
			try { body.removeChild( this.div ); } catch(e) {;}
			
			this.domElement = null;
			this.div = null;
		}
	},
	
	reposition: function(elem) {
		// reposition our floating div, optionally to new container
		// warning: container CANNOT change size, only position
		if (elem) {
			this.domElement = ZeroClipboard.$(elem);
			if (!this.domElement) this.hide();
		}
		
		if (this.domElement && this.div) {
			var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
			var style = this.div.style;
			style.left = '' + box.left + 'px';
			style.top = '' + box.top + 'px';
		}
	},
	
	setText: function(newText) {
		// set text to be copied to clipboard
		this.clipText = newText;
		if (this.ready) this.movie.setText(newText);
	},
	
	addEventListener: function(eventName, func) {
		// add user event listener for event
		// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
		eventName = eventName.toString().toLowerCase().replace(/^on/, '');
		if (!this.handlers[eventName]) this.handlers[eventName] = [];
		this.handlers[eventName].push(func);
	},
	
	setHandCursor: function(enabled) {
		// enable hand cursor (true), or default arrow cursor (false)
		this.handCursorEnabled = enabled;
		if (this.ready) this.movie.setHandCursor(enabled);
	},
	
	setCSSEffects: function(enabled) {
		// enable or disable CSS effects on DOM container
		this.cssEffects = !!enabled;
	},
	
	receiveEvent: function(eventName, args) {
		// receive event from flash
		eventName = eventName.toString().toLowerCase().replace(/^on/, '');
				
		// special behavior for certain events
		switch (eventName) {
			case 'load':
				// movie claims it is ready, but in IE this isn't always the case...
				// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
				this.movie = document.getElementById(this.movieId);
				if (!this.movie) {
					var self = this;
					setTimeout( function() { self.receiveEvent('load', null); }, 1 );
					return;
				}
				
				// firefox on pc needs a "kick" in order to set these in certain cases
				if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
					var self = this;
					setTimeout( function() { self.receiveEvent('load', null); }, 100 );
					this.ready = true;
					return;
				}
				
				this.ready = true;
				this.movie.setText( this.clipText );
				this.movie.setHandCursor( this.handCursorEnabled );
				break;
			
			case 'mouseover':
				if (this.domElement && this.cssEffects) {
					this.domElement.addClass('hover');
					if (this.recoverActive) this.domElement.addClass('active');
				}
				break;
			
			case 'mouseout':
				if (this.domElement && this.cssEffects) {
					this.recoverActive = false;
					if (this.domElement.hasClass('active')) {
						this.domElement.removeClass('active');
						this.recoverActive = true;
					}
					this.domElement.removeClass('hover');
				}
				break;
			
			case 'mousedown':
				if (this.domElement && this.cssEffects) {
					this.domElement.addClass('active');
				}
				break;
			
			case 'mouseup':
				if (this.domElement && this.cssEffects) {
					this.domElement.removeClass('active');
					this.recoverActive = false;
				}
				break;
		} // switch eventName
		
		if (this.handlers[eventName]) {
			for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
				var func = this.handlers[eventName][idx];
			
				if (typeof(func) == 'function') {
					// actual function reference
					func(this, args);
				}
				else if ((typeof(func) == 'object') && (func.length == 2)) {
					// PHP style object + method, i.e. [myObject, 'myMethod']
					func[0][ func[1] ](this, args);
				}
				else if (typeof(func) == 'string') {
					// name of function
					window[func](this, args);
				}
			} // foreach event handler defined
		} // user defined handler for event
	}
	
};

tangler.util.EditInPlace=function(){var _502=tangler.util.Options;var _503=null;var _504=null;var _505=null;return {init:function(_506){_503=Ext.get(_506);_503.on("mouseover",function(){_503.addClass("topicNameEditorHover");},null);_503.on("mouseout",function(){_503.removeClass("topicNameEditorHover");},null);},makeEditable:function(){if(_503){if(!_504){Ext.get("editTopicOption").dom.style.display="none";_504=document.createElement("input");_504.maxLength=64;_504.style.top=_503.dom.style.top;_504.style.left=_503.dom.style.left;_504.style.width=(Ext.get(Ext.get("topicName").dom.parentNode).getWidth()-Ext.get("userFollowOption").getWidth()-20)+"px";_504.className="topicNameEditor";Ext.get(_504).on("keypress",function(evt,el,o){var _50a=evt.keyCode;if(_50a==27||_50a==13&&_505==_504.value){tangler.util.EditInPlace.cancelEditable();}if(_50a==13&&_504.value.trim()==""){tangler.util.EditInPlace.cancelEditable();}if(_50a==13&&_504.value.trim()!=""){tangler.util.EditInPlace.submitChanges();}},this);_503.dom.parentNode.appendChild(_504);}else{_504.style.display="block";Ext.get("editTopicOption").dom.style.display="none";}_504.value=tangler.util.Helper.unescapeHtml(_503.dom.title);_505=tangler.util.Helper.unescapeHtml(_503.dom.title);_503.dom.style.display="none";_504.focus();}},cancelEditable:function(){if(_504){_504.style.display="none";}_503.dom.style.display="block";Ext.get("editTopicOption").dom.style.display="inline";},submitChanges:function(){var _50b=_504.value.trim();_50b=tangler.util.Helper.unescapeHtml(_50b);Ext.get(_504).addClass("topicNameEditWait");_504.value="Saving... Please wait.";DWRTopicHandler.modifyTopic(tangler.info.Session.getTopicId(),_50b,{callback:tangler.util.EditInPlace._setNewTopicName,errorHandler:function(){alert("Sorry! but, we were not able to modify your topic's. Please try again.");}});},_setNewTopicName:function(_50c){tangler.widget.TopicWidgets._topicName=tangler.util.Helper.unescapeHtml(_50c.detail.topicDetail.name);_505=_50c.detail.topicDetail.name;_503.dom.innerHTML=tangler.util.Helper.replaceEscapeHtml(_505.substring(0,40)+"...");_503.dom.title=_505;_503.dom.style.display="none";_503.removeClass("topicNameEditorHover");Ext.get(_504).removeClass("topicNameEditWait");tangler.util.EditInPlace.cancelEditable();Ext.get("editTopicOption").dom.style.display="inline";}};}();

