jQuery.fn.initBogoFolders=function(E,B){if(!E){E=[]}var D=this;D.opts=jQuery.extend({separator:"",debugBogoFolders:false},E);D.dbgdiv=null;D.startingDir=B;D.target=$(E.target);function A(G){if(D.dbgdiv){D.dbgdiv.prepend("BogoFolders: "+G+"<br/>")}}if(D.opts.debugBogoFolders){$(D.opts.target).after("<div id='BogoFoldersDebugDiv'>BogoFolders debugging area<br/></div>").after("<hr/>");D.dbgdiv=jQuery("#BogoFoldersDebugDiv");D.dbgdiv.css("border","1px dashed #000");A("debugging activated.")}function C(G,H){A("Tagging folder named \""+G.name+"\"");G.parentFolder=H;if(G.selected){D.startingDir=G}if(!G.children){return }for(ndx in G.children){C(G.children[ndx],G)}}C(B,null);function F(I){D.target.empty();var G=I.contentType?I.contentType:"html";var H=I.content?I.content:"";A("typeof content == "+typeof (H));if("function"==typeof (H)){A("Calling .content function.");H=H()}if("object"==typeof (H)){G="object"}switch(G){case"object":D.target.append(H);break;case"html":D.target.html(H);break;case"text":case"txt":D.target.text(H);break;default:D.target.html("Error: theFolder.contentType could not be determined");break}}D.addFolderEntry=function(K){var H=K.name?K.name.replace(/\'/,"&apos;"):null;if(K.chdirProxy){var I=K.chdirProxy;delete K.chdirProxy;K=I}var J=(K.icon||(K.icon===null))?K.icon:D.opts.icon;var G=jQuery("<a href='#'/>");G[0].folderObj=K;K.anchor=G;if(J){G.append("<img src='"+J+"' alt='"+(H?H:"")+"'/>")}if(H){G.append(H)}G.click(function(){F(this.folderObj);if(this.folderObj.children){D.chdir(this.folderObj)}return false});D.append(G);return D};D.chdir=function(I){A("chdir(<code>"+(I.name?I.name:I.toSource())+"</code>)");D.empty();if(I.parentFolder){var J={name:"..",chdirProxy:I.parentFolder};D.addFolderEntry(J)}if(!I.children){return }var H=I.children.length;for(var G=0;G<H;++G){D.addFolderEntry(I.children[G]);if((G!=(H-1))&&D.opts.separator){D.append(D.opts.separator)}}};D.chdir(B);F(B);return D}