1(function(){
2/**************************************************************
3 *
4 *    Firebug Lite 1.4.0
5 *
6 *      Copyright (c) 2007, Parakey Inc.
7 *      Released under BSD license.
8 *      More information: http://getfirebug.com/firebuglite
9 *
10 **************************************************************/
11/*
12 * CSS selectors powered by:
13 *
14 * Sizzle CSS Selector Engine - v1.0
15 *  Copyright 2009, The Dojo Foundation
16 *  Released under the MIT, BSD, and GPL Licenses.
17 *  More information: http://sizzlejs.com/
18 */
19var FBL={};
20(function(){var productionDir="http://getfirebug.com/releases/lite/";
21var bookmarkletVersion=4;
22var reNotWhitespace=/[^\s]/;
23var reSplitFile=/:\/{1,3}(.*?)\/([^\/]*?)\/?($|\?.*)/;
24this.reJavascript=/\s*javascript:\s*(.*)/;
25this.reChrome=/chrome:\/\/([^\/]*)\//;
26this.reFile=/file:\/\/([^\/]*)\//;
27var userAgent=navigator.userAgent.toLowerCase();
28this.isFirefox=/firefox/.test(userAgent);
29this.isOpera=/opera/.test(userAgent);
30this.isSafari=/webkit/.test(userAgent);
31this.isIE=/msie/.test(userAgent)&&!/opera/.test(userAgent);
32this.isIE6=/msie 6/i.test(navigator.appVersion);
33this.browserVersion=(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1];
34this.isIElt8=this.isIE&&(this.browserVersion-0<8);
35this.NS=null;
36this.pixelsPerInch=null;
37var namespaces=[];
38this.ns=function(fn){var ns={};
39namespaces.push(fn,ns);
40return ns
41};
42var FBTrace=null;
43this.initialize=function(){if(window.firebug&&firebug.firebuglite||window.console&&console.firebuglite){return
44}if(FBL.FBTrace){FBTrace=FBL.FBTrace
45}else{FBTrace=FBL.FBTrace={}
46}var isChromeContext=window.Firebug&&typeof window.Firebug.SharedEnv=="object";
47if(isChromeContext){sharedEnv=window.Firebug.SharedEnv;
48delete window.Firebug.SharedEnv;
49FBL.Env=sharedEnv;
50FBL.Env.isChromeContext=true;
51FBTrace.messageQueue=FBL.Env.traceMessageQueue
52}else{FBL.NS=document.documentElement.namespaceURI;
53FBL.Env.browser=window;
54FBL.Env.destroy=destroyEnvironment;
55if(document.documentElement.getAttribute("debug")=="true"){FBL.Env.Options.startOpened=true
56}findLocation();
57var prefs=FBL.Store.get("FirebugLite")||{};
58FBL.Env.DefaultOptions=FBL.Env.Options;
59FBL.Env.Options=FBL.extend(FBL.Env.Options,prefs.options||{});
60if(FBL.isFirefox&&typeof FBL.Env.browser.console=="object"&&FBL.Env.browser.console.firebug&&FBL.Env.Options.disableWhenFirebugActive){return
61}}if(FBL.Env.isDebugMode){FBL.Env.browser.FBL=FBL
62}this.isQuiksMode=FBL.Env.browser.document.compatMode=="BackCompat";
63this.isIEQuiksMode=this.isIE&&this.isQuiksMode;
64this.isIEStantandMode=this.isIE&&!this.isQuiksMode;
65this.noFixedPosition=this.isIE6||this.isIEQuiksMode;
66if(FBL.Env.Options.enableTrace){FBTrace.initialize()
67}if(FBTrace.DBG_INITIALIZE&&isChromeContext){FBTrace.sysout("FBL.initialize - persistent application","initialize chrome context")
68}if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("FBL.initialize",namespaces.length/2+" namespaces BEGIN")
69}for(var i=0;
70i<namespaces.length;
71i+=2){var fn=namespaces[i];
72var ns=namespaces[i+1];
73fn.apply(ns)
74}if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("FBL.initialize",namespaces.length/2+" namespaces END");
75FBTrace.sysout("FBL waitForDocument","waiting document load")
76}FBL.Ajax.initialize();
77FBL.Firebug.loadPrefs();
78if(FBL.Env.Options.enablePersistent){if(isChromeContext){FBL.FirebugChrome.clone(FBL.Env.FirebugChrome)
79}else{FBL.Env.FirebugChrome=FBL.FirebugChrome;
80FBL.Env.traceMessageQueue=FBTrace.messageQueue
81}}waitForDocument()
82};
83var waitForDocument=function waitForDocument(){var doc=FBL.Env.browser.document;
84var body=doc.getElementsByTagName("body")[0];
85if(body){calculatePixelsPerInch(doc,body);
86onDocumentLoad()
87}else{setTimeout(waitForDocument,50)
88}};
89var onDocumentLoad=function onDocumentLoad(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("FBL onDocumentLoad","document loaded")
90}if(FBL.isIE6){fixIE6BackgroundImageCache()
91}if(FBL.Env.Options.enablePersistent&&FBL.Env.isChromeContext){FBL.Firebug.initialize();
92if(!FBL.Env.isDevelopmentMode){sharedEnv.destroy();
93sharedEnv=null
94}}else{FBL.FirebugChrome.create()
95}};
96var sharedEnv;
97this.Env={Options:{saveCookies:true,saveWindowPosition:false,saveCommandLineHistory:false,startOpened:false,startInNewWindow:false,showIconWhenHidden:true,overrideConsole:true,ignoreFirebugElements:true,disableWhenFirebugActive:true,disableXHRListener:false,disableResourceFetching:false,enableTrace:false,enablePersistent:false},Location:{sourceDir:null,baseDir:null,skinDir:null,skin:null,app:null},skin:"xp",useLocalSkin:false,isDevelopmentMode:false,isDebugMode:false,isChromeContext:false,browser:null,chrome:null};
98var destroyEnvironment=function destroyEnvironment(){setTimeout(function(){FBL=null
99},100)
100};
101var findLocation=function findLocation(){var reFirebugFile=/(firebug-lite(?:-\w+)?(?:\.js|\.jgz))(?:#(.+))?$/;
102var reGetFirebugSite=/(?:http|https):\/\/getfirebug.com\//;
103var isGetFirebugSite;
104var rePath=/^(.*\/)/;
105var reProtocol=/^\w+:\/\//;
106var path=null;
107var doc=document;
108var script=doc.getElementById("FirebugLite");
109var scriptSrc;
110var hasSrcAttribute=true;
111if(script){scriptSrc=script.src;
112file=reFirebugFile.exec(scriptSrc);
113var version=script.getAttribute("FirebugLite");
114var number=version?parseInt(version):0;
115if(!version||!number||number<bookmarkletVersion){FBL.Env.bookmarkletOutdated=true
116}}else{for(var i=0,s=doc.getElementsByTagName("script"),si;
117si=s[i];
118i++){var file=null;
119if(si.nodeName.toLowerCase()=="script"){if(file=reFirebugFile.exec(si.getAttribute("firebugSrc"))){scriptSrc=si.getAttribute("firebugSrc");
120hasSrcAttribute=false
121}else{if(file=reFirebugFile.exec(si.src)){scriptSrc=si.src
122}else{continue
123}}script=si;
124break
125}}}if(script){script.firebugIgnore=true
126}if(file){var fileName=file[1];
127var fileOptions=file[2];
128if(reProtocol.test(scriptSrc)){path=rePath.exec(scriptSrc)[1]
129}else{var r=rePath.exec(scriptSrc);
130var src=r?r[1]:scriptSrc;
131var backDir=/^((?:\.\.\/)+)(.*)/.exec(src);
132var reLastDir=/^(.*\/)[^\/]+\/$/;
133path=rePath.exec(location.href)[1];
134if(backDir){var j=backDir[1].length/3;
135var p;
136while(j-->0){path=reLastDir.exec(path)[1]
137}path+=backDir[2]
138}else{if(src.indexOf("/")!=-1){if(/^\.\/./.test(src)){path+=src.substring(2)
139}else{if(/^\/./.test(src)){var domain=/^(\w+:\/\/[^\/]+)/.exec(path);
140path=domain[1]+src
141}else{path+=src
142}}}}}}FBL.Env.isChromeExtension=script&&script.getAttribute("extension")=="Chrome";
143if(FBL.Env.isChromeExtension){path=productionDir;
144FBL.Env.bookmarkletOutdated=false;
145script={innerHTML:"{showIconWhenHidden:false}"}
146}isGetFirebugSite=reGetFirebugSite.test(path);
147if(isGetFirebugSite&&path.indexOf("/releases/lite/")==-1){path+="releases/lite/"+(fileName=="firebug-lite-beta.js"?"beta/":"latest/")
148}var m=path&&path.match(/([^\/]+)\/$/)||null;
149if(path&&m){var Env=FBL.Env;
150Env.useLocalSkin=path.indexOf(location.protocol+"//"+location.host+"/")==0&&!isGetFirebugSite;
151if(fileName=="firebug-lite-dev.js"){Env.isDevelopmentMode=true;
152Env.isDebugMode=true
153}else{if(fileName=="firebug-lite-debug.js"){Env.isDebugMode=true
154}}if(Env.browser.document.documentElement.getAttribute("debug")=="true"){Env.Options.startOpened=true
155}if(fileOptions){var options=fileOptions.split(",");
156for(var i=0,length=options.length;
157i<length;
158i++){var option=options[i];
159var name,value;
160if(option.indexOf("=")!=-1){var parts=option.split("=");
161name=parts[0];
162value=eval(unescape(parts[1]))
163}else{name=option;
164value=true
165}if(name=="debug"){Env.isDebugMode=!!value
166}else{if(name in Env.Options){Env.Options[name]=value
167}else{Env[name]=value
168}}}}if(hasSrcAttribute){var innerOptions=FBL.trim(script.innerHTML);
169if(innerOptions){var innerOptionsObject=eval("("+innerOptions+")");
170for(var name in innerOptionsObject){var value=innerOptionsObject[name];
171if(name=="debug"){Env.isDebugMode=!!value
172}else{if(name in Env.Options){Env.Options[name]=value
173}else{Env[name]=value
174}}}}}if(!Env.Options.saveCookies){FBL.Store.remove("FirebugLite")
175}if(Env.isDebugMode){Env.Options.startOpened=true;
176Env.Options.enableTrace=true;
177Env.Options.disableWhenFirebugActive=false
178}var loc=Env.Location;
179var isProductionRelease=path.indexOf(productionDir)!=-1;
180loc.sourceDir=path;
181loc.baseDir=path.substr(0,path.length-m[1].length-1);
182loc.skinDir=(isProductionRelease?path:loc.baseDir)+"skin/"+Env.skin+"/";
183loc.skin=loc.skinDir+"firebug.html";
184loc.app=path+fileName
185}else{throw new Error("Firebug Error: Library path not found")
186}};
187this.bind=function(){var args=cloneArray(arguments),fn=args.shift(),object=args.shift();
188return function(){return fn.apply(object,arrayInsert(cloneArray(args),0,arguments))
189}
190};
191this.bindFixed=function(){var args=cloneArray(arguments),fn=args.shift(),object=args.shift();
192return function(){return fn.apply(object,args)
193}
194};
195this.extend=function(l,r){var newOb={};
196for(var n in l){newOb[n]=l[n]
197}for(var n in r){newOb[n]=r[n]
198}return newOb
199};
200this.descend=function(prototypeParent,childProperties){function protoSetter(){}protoSetter.prototype=prototypeParent;
201var newOb=new protoSetter();
202for(var n in childProperties){newOb[n]=childProperties[n]
203}return newOb
204};
205this.append=function(l,r){for(var n in r){l[n]=r[n]
206}return l
207};
208this.keys=function(map){var keys=[];
209try{for(var name in map){keys.push(name)
210}}catch(exc){}return keys
211};
212this.values=function(map){var values=[];
213try{for(var name in map){try{values.push(map[name])
214}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("lib.values FAILED ",exc)
215}}}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("lib.values FAILED ",exc)
216}}return values
217};
218this.remove=function(list,item){for(var i=0;
219i<list.length;
220++i){if(list[i]==item){list.splice(i,1);
221break
222}}};
223this.sliceArray=function(array,index){var slice=[];
224for(var i=index;
225i<array.length;
226++i){slice.push(array[i])
227}return slice
228};
229function cloneArray(array,fn){var newArray=[];
230if(fn){for(var i=0;
231i<array.length;
232++i){newArray.push(fn(array[i]))
233}}else{for(var i=0;
234i<array.length;
235++i){newArray.push(array[i])
236}}return newArray
237}function extendArray(array,array2){var newArray=[];
238newArray.push.apply(newArray,array);
239newArray.push.apply(newArray,array2);
240return newArray
241}this.extendArray=extendArray;
242this.cloneArray=cloneArray;
243function arrayInsert(array,index,other){for(var i=0;
244i<other.length;
245++i){array.splice(i+index,0,other[i])
246}return array
247}this.createStyleSheet=function(doc,url){var style=this.createElement("link");
248style.setAttribute("charset","utf-8");
249style.firebugIgnore=true;
250style.setAttribute("rel","stylesheet");
251style.setAttribute("type","text/css");
252style.setAttribute("href",url);
253return style
254};
255this.addStyleSheet=function(doc,style){var heads=doc.getElementsByTagName("head");
256if(heads.length){heads[0].appendChild(style)
257}else{doc.documentElement.appendChild(style)
258}};
259this.appendStylesheet=function(doc,uri){if(this.$(uri,doc)){return
260}var styleSheet=this.createStyleSheet(doc,uri);
261styleSheet.setAttribute("id",uri);
262this.addStyleSheet(doc,styleSheet)
263};
264this.addScript=function(doc,id,src){var element=doc.createElementNS("http://www.w3.org/1999/xhtml","html:script");
265element.setAttribute("type","text/javascript");
266element.setAttribute("id",id);
267if(!FBTrace.DBG_CONSOLE){FBL.unwrapObject(element).firebugIgnore=true
268}element.innerHTML=src;
269if(doc.documentElement){doc.documentElement.appendChild(element)
270}else{if(FBTrace.DBG_ERRORS){FBTrace.sysout("lib.addScript doc has no documentElement:",doc)
271}}return element
272};
273this.getStyle=this.isIE?function(el,name){return el.currentStyle[name]||el.style[name]||undefined
274}:function(el,name){return el.ownerDocument.defaultView.getComputedStyle(el,null)[name]||el.style[name]||undefined
275};
276var entityConversionLists=this.entityConversionLists={normal:{whitespace:{"\t":"\u200c\u2192","\n":"\u200c\u00b6","\r":"\u200c\u00ac"," ":"\u200c\u00b7"}},reverse:{whitespace:{"&Tab;":"\t","&NewLine;":"\n","\u200c\u2192":"\t","\u200c\u00b6":"\n","\u200c\u00ac":"\r","\u200c\u00b7":" "}}};
277var normal=entityConversionLists.normal,reverse=entityConversionLists.reverse;
278function addEntityMapToList(ccode,entity){var lists=Array.prototype.slice.call(arguments,2),len=lists.length,ch=String.fromCharCode(ccode);
279for(var i=0;
280i<len;
281i++){var list=lists[i];
282normal[list]=normal[list]||{};
283normal[list][ch]="&"+entity+";";
284reverse[list]=reverse[list]||{};
285reverse[list]["&"+entity+";"]=ch
286}}var e=addEntityMapToList,white="whitespace",text="text",attr="attributes",css="css",editor="editor";
287e(34,"quot",attr,css);
288e(38,"amp",attr,text,css);
289e(39,"apos",css);
290e(60,"lt",attr,text,css);
291e(62,"gt",attr,text,css);
292e(169,"copy",text,editor);
293e(174,"reg",text,editor);
294e(8482,"trade",text,editor);
295e(8210,"#8210",attr,text,editor);
296e(8211,"ndash",attr,text,editor);
297e(8212,"mdash",attr,text,editor);
298e(8213,"#8213",attr,text,editor);
299e(160,"nbsp",attr,text,white,editor);
300e(8194,"ensp",attr,text,white,editor);
301e(8195,"emsp",attr,text,white,editor);
302e(8201,"thinsp",attr,text,white,editor);
303e(8204,"zwnj",attr,text,white,editor);
304e(8205,"zwj",attr,text,white,editor);
305e(8206,"lrm",attr,text,white,editor);
306e(8207,"rlm",attr,text,white,editor);
307e(8203,"#8203",attr,text,white,editor);
308var entityConversionRegexes={normal:{},reverse:{}};
309var escapeEntitiesRegEx={normal:function(list){var chars=[];
310for(var ch in list){chars.push(ch)
311}return new RegExp("(["+chars.join("")+"])","gm")
312},reverse:function(list){var chars=[];
313for(var ch in list){chars.push(ch)
314}return new RegExp("("+chars.join("|")+")","gm")
315}};
316function getEscapeRegexp(direction,lists){var name="",re;
317var groups=[].concat(lists);
318for(i=0;
319i<groups.length;
320i++){name+=groups[i].group
321}re=entityConversionRegexes[direction][name];
322if(!re){var list={};
323if(groups.length>1){for(var i=0;
324i<groups.length;
325i++){var aList=entityConversionLists[direction][groups[i].group];
326for(var item in aList){list[item]=aList[item]
327}}}else{if(groups.length==1){list=entityConversionLists[direction][groups[0].group]
328}else{list={}
329}}re=entityConversionRegexes[direction][name]=escapeEntitiesRegEx[direction](list)
330}return re
331}function createSimpleEscape(name,direction){return function(value){var list=entityConversionLists[direction][name];
332return String(value).replace(getEscapeRegexp(direction,{group:name,list:list}),function(ch){return list[ch]
333})
334}
335}function escapeGroupsForEntities(str,lists){lists=[].concat(lists);
336var re=getEscapeRegexp("normal",lists),split=String(str).split(re),len=split.length,results=[],cur,r,i,ri=0,l,list,last="";
337if(!len){return[{str:String(str),group:"",name:""}]
338}for(i=0;
339i<len;
340i++){cur=split[i];
341if(cur==""){continue
342}for(l=0;
343l<lists.length;
344l++){list=lists[l];
345r=entityConversionLists.normal[list.group][cur];
346if(r){results[ri]={str:r,"class":list["class"],extra:list.extra[cur]?list["class"]+list.extra[cur]:""};
347break
348}}if(!r){results[ri]={str:cur,"class":"",extra:""}
349}ri++
350}return results
351}this.escapeGroupsForEntities=escapeGroupsForEntities;
352function unescapeEntities(str,lists){var re=getEscapeRegexp("reverse",lists),split=String(str).split(re),len=split.length,results=[],cur,r,i,ri=0,l,list;
353if(!len){return str
354}lists=[].concat(lists);
355for(i=0;
356i<len;
357i++){cur=split[i];
358if(cur==""){continue
359}for(l=0;
360l<lists.length;
361l++){list=lists[l];
362r=entityConversionLists.reverse[list.group][cur];
363if(r){results[ri]=r;
364break
365}}if(!r){results[ri]=cur
366}ri++
367}return results.join("")||""
368}var escapeForTextNode=this.escapeForTextNode=createSimpleEscape("text","normal");
369var escapeForHtmlEditor=this.escapeForHtmlEditor=createSimpleEscape("editor","normal");
370var escapeForElementAttribute=this.escapeForElementAttribute=createSimpleEscape("attributes","normal");
371var escapeForCss=this.escapeForCss=createSimpleEscape("css","normal");
372var escapeForSourceLine=this.escapeForSourceLine=createSimpleEscape("text","normal");
373var unescapeWhitespace=createSimpleEscape("whitespace","reverse");
374this.unescapeForTextNode=function(str){if(Firebug.showTextNodesWithWhitespace){str=unescapeWhitespace(str)
375}if(!Firebug.showTextNodesWithEntities){str=escapeForElementAttribute(str)
376}return str
377};
378this.escapeNewLines=function(value){return value.replace(/\r/g,"\\r").replace(/\n/g,"\\n")
379};
380this.stripNewLines=function(value){return typeof(value)=="string"?value.replace(/[\r\n]/g," "):value
381};
382this.escapeJS=function(value){return value.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace('"','\\"',"g")
383};
384function escapeHTMLAttribute(value){function replaceChars(ch){switch(ch){case"&":return"&amp;";
385case"'":return apos;
386case'"':return quot
387}return"?"
388}var apos="&#39;",quot="&quot;",around='"';
389if(value.indexOf('"')==-1){quot='"';
390apos="'"
391}else{if(value.indexOf("'")==-1){quot='"';
392around="'"
393}}return around+(String(value).replace(/[&'"]/g,replaceChars))+around
394}function escapeHTML(value){function replaceChars(ch){switch(ch){case"<":return"&lt;";
395case">":return"&gt;";
396case"&":return"&amp;";
397case"'":return"&#39;";
398case'"':return"&quot;"
399}return"?"
400}return String(value).replace(/[<>&"']/g,replaceChars)
401}this.escapeHTML=escapeHTML;
402this.cropString=function(text,limit){text=text+"";
403if(!limit){var halfLimit=50
404}else{var halfLimit=limit/2
405}if(text.length>limit){return this.escapeNewLines(text.substr(0,halfLimit)+"..."+text.substr(text.length-halfLimit))
406}else{return this.escapeNewLines(text)
407}};
408this.isWhitespace=function(text){return !reNotWhitespace.exec(text)
409};
410this.splitLines=function(text){var reSplitLines2=/.*(:?\r\n|\n|\r)?/mg;
411var lines;
412if(text.match){lines=text.match(reSplitLines2)
413}else{var str=text+"";
414lines=str.match(reSplitLines2)
415}lines.pop();
416return lines
417};
418this.safeToString=function(ob){if(this.isIE){try{return ob+""
419}catch(E){FBTrace.sysout("Lib.safeToString() failed for ",ob);
420return""
421}}try{if(ob&&"toString" in ob&&typeof ob.toString=="function"){return ob.toString()
422}}catch(exc){return ob+""
423}};
424this.hasProperties=function(ob){try{for(var name in ob){return true
425}}catch(exc){}return false
426};
427var reTrim=/^\s+|\s+$/g;
428this.trim=function(s){return s.replace(reTrim,"")
429};
430this.emptyFn=function(){};
431this.isVisible=function(elt){return this.getStyle(elt,"visibility")!="hidden"&&(elt.offsetWidth>0||elt.offsetHeight>0||elt.tagName in invisibleTags||elt.namespaceURI=="http://www.w3.org/2000/svg"||elt.namespaceURI=="http://www.w3.org/1998/Math/MathML")
432};
433this.collapse=function(elt,collapsed){if(this.isIElt8){if(collapsed){this.setClass(elt,"collapsed")
434}else{this.removeClass(elt,"collapsed")
435}}else{elt.setAttribute("collapsed",collapsed?"true":"false")
436}};
437this.obscure=function(elt,obscured){if(obscured){this.setClass(elt,"obscured")
438}else{this.removeClass(elt,"obscured")
439}};
440this.hide=function(elt,hidden){elt.style.visibility=hidden?"hidden":"visible"
441};
442this.clearNode=function(node){var nodeName=" "+node.nodeName.toLowerCase()+" ";
443var ignoreTags=" table tbody thead tfoot th tr td ";
444if(this.isIE&&ignoreTags.indexOf(nodeName)!=-1){this.eraseNode(node)
445}else{node.innerHTML=""
446}};
447this.eraseNode=function(node){while(node.lastChild){node.removeChild(node.lastChild)
448}};
449this.iterateWindows=function(win,handler){if(!win||!win.document){return
450}handler(win);
451if(win==top||!win.frames){return
452}for(var i=0;
453i<win.frames.length;
454++i){var subWin=win.frames[i];
455if(subWin!=win){this.iterateWindows(subWin,handler)
456}}};
457this.getRootWindow=function(win){for(;
458win;
459win=win.parent){if(!win.parent||win==win.parent||!this.instanceOf(win.parent,"Window")){return win
460}}return null
461};
462this.getClientOffset=function(elt){var addOffset=function addOffset(elt,coords,view){var p=elt.offsetParent;
463var chrome=Firebug.chrome;
464if(elt.offsetLeft){coords.x+=elt.offsetLeft+chrome.getMeasurementInPixels(elt,"borderLeft")
465}if(elt.offsetTop){coords.y+=elt.offsetTop+chrome.getMeasurementInPixels(elt,"borderTop")
466}if(p){if(p.nodeType==1){addOffset(p,coords,view)
467}}else{var otherView=isIE?elt.ownerDocument.parentWindow:elt.ownerDocument.defaultView;
468if(!otherView.opener&&otherView.frameElement){addOffset(otherView.frameElement,coords,otherView)
469}}};
470var isIE=this.isIE;
471var coords={x:0,y:0};
472if(elt){var view=isIE?elt.ownerDocument.parentWindow:elt.ownerDocument.defaultView;
473addOffset(elt,coords,view)
474}return coords
475};
476this.getViewOffset=function(elt,singleFrame){function addOffset(elt,coords,view){var p=elt.offsetParent;
477coords.x+=elt.offsetLeft-(p?p.scrollLeft:0);
478coords.y+=elt.offsetTop-(p?p.scrollTop:0);
479if(p){if(p.nodeType==1){var parentStyle=view.getComputedStyle(p,"");
480if(parentStyle.position!="static"){coords.x+=parseInt(parentStyle.borderLeftWidth);
481coords.y+=parseInt(parentStyle.borderTopWidth);
482if(p.localName=="TABLE"){coords.x+=parseInt(parentStyle.paddingLeft);
483coords.y+=parseInt(parentStyle.paddingTop)
484}else{if(p.localName=="BODY"){var style=view.getComputedStyle(elt,"");
485coords.x+=parseInt(style.marginLeft);
486coords.y+=parseInt(style.marginTop)
487}}}else{if(p.localName=="BODY"){coords.x+=parseInt(parentStyle.borderLeftWidth);
488coords.y+=parseInt(parentStyle.borderTopWidth)
489}}var parent=elt.parentNode;
490while(p!=parent){coords.x-=parent.scrollLeft;
491coords.y-=parent.scrollTop;
492parent=parent.parentNode
493}addOffset(p,coords,view)
494}}else{if(elt.localName=="BODY"){var style=view.getComputedStyle(elt,"");
495coords.x+=parseInt(style.borderLeftWidth);
496coords.y+=parseInt(style.borderTopWidth);
497var htmlStyle=view.getComputedStyle(elt.parentNode,"");
498coords.x-=parseInt(htmlStyle.paddingLeft);
499coords.y-=parseInt(htmlStyle.paddingTop)
500}if(elt.scrollLeft){coords.x+=elt.scrollLeft
501}if(elt.scrollTop){coords.y+=elt.scrollTop
502}var win=elt.ownerDocument.defaultView;
503if(win&&(!singleFrame&&win.frameElement)){addOffset(win.frameElement,coords,win)
504}}}var coords={x:0,y:0};
505if(elt){addOffset(elt,coords,elt.ownerDocument.defaultView)
506}return coords
507};
508this.getLTRBWH=function(elt){var bcrect,dims={left:0,top:0,right:0,bottom:0,width:0,height:0};
509if(elt){bcrect=elt.getBoundingClientRect();
510dims.left=bcrect.left;
511dims.top=bcrect.top;
512dims.right=bcrect.right;
513dims.bottom=bcrect.bottom;
514if(bcrect.width){dims.width=bcrect.width;
515dims.height=bcrect.height
516}else{dims.width=dims.right-dims.left;
517dims.height=dims.bottom-dims.top
518}}return dims
519};
520this.applyBodyOffsets=function(elt,clientRect){var od=elt.ownerDocument;
521if(!od.body){return clientRect
522}var style=od.defaultView.getComputedStyle(od.body,null);
523var pos=style.getPropertyValue("position");
524if(pos==="absolute"||pos==="relative"){var borderLeft=parseInt(style.getPropertyValue("border-left-width").replace("px",""),10)||0;
525var borderTop=parseInt(style.getPropertyValue("border-top-width").replace("px",""),10)||0;
526var paddingLeft=parseInt(style.getPropertyValue("padding-left").replace("px",""),10)||0;
527var paddingTop=parseInt(style.getPropertyValue("padding-top").replace("px",""),10)||0;
528var marginLeft=parseInt(style.getPropertyValue("margin-left").replace("px",""),10)||0;
529var marginTop=parseInt(style.getPropertyValue("margin-top").replace("px",""),10)||0;
530var offsetX=borderLeft+paddingLeft+marginLeft;
531var offsetY=borderTop+paddingTop+marginTop;
532clientRect.left-=offsetX;
533clientRect.top-=offsetY;
534clientRect.right-=offsetX;
535clientRect.bottom-=offsetY
536}return clientRect
537};
538this.getOffsetSize=function(elt){return{width:elt.offsetWidth,height:elt.offsetHeight}
539};
540this.getOverflowParent=function(element){for(var scrollParent=element.parentNode;
541scrollParent;
542scrollParent=scrollParent.offsetParent){if(scrollParent.scrollHeight>scrollParent.offsetHeight){return scrollParent
543}}};
544this.isScrolledToBottom=function(element){var onBottom=(element.scrollTop+element.offsetHeight)==element.scrollHeight;
545if(FBTrace.DBG_CONSOLE){FBTrace.sysout("isScrolledToBottom offsetHeight: "+element.offsetHeight+" onBottom:"+onBottom)
546}return onBottom
547};
548this.scrollToBottom=function(element){element.scrollTop=element.scrollHeight;
549if(FBTrace.DBG_CONSOLE){FBTrace.sysout("scrollToBottom reset scrollTop "+element.scrollTop+" = "+element.scrollHeight);
550if(element.scrollHeight==element.offsetHeight){FBTrace.sysout("scrollToBottom attempt to scroll non-scrollable element "+element,element)
551}}return(element.scrollTop==element.scrollHeight)
552};
553this.move=function(element,x,y){element.style.left=x+"px";
554element.style.top=y+"px"
555};
556this.resize=function(element,w,h){element.style.width=w+"px";
557element.style.height=h+"px"
558};
559this.linesIntoCenterView=function(element,scrollBox){if(!scrollBox){scrollBox=this.getOverflowParent(element)
560}if(!scrollBox){return
561}var offset=this.getClientOffset(element);
562var topSpace=offset.y-scrollBox.scrollTop;
563var bottomSpace=(scrollBox.scrollTop+scrollBox.clientHeight)-(offset.y+element.offsetHeight);
564if(topSpace<0||bottomSpace<0){var split=(scrollBox.clientHeight/2);
565var centerY=offset.y-split;
566scrollBox.scrollTop=centerY;
567topSpace=split;
568bottomSpace=split-element.offsetHeight
569}return{before:Math.round((topSpace/element.offsetHeight)+0.5),after:Math.round((bottomSpace/element.offsetHeight)+0.5)}
570};
571this.scrollIntoCenterView=function(element,scrollBox,notX,notY){if(!element){return
572}if(!scrollBox){scrollBox=this.getOverflowParent(element)
573}if(!scrollBox){return
574}var offset=this.getClientOffset(element);
575if(!notY){var topSpace=offset.y-scrollBox.scrollTop;
576var bottomSpace=(scrollBox.scrollTop+scrollBox.clientHeight)-(offset.y+element.offsetHeight);
577if(topSpace<0||bottomSpace<0){var centerY=offset.y-(scrollBox.clientHeight/2);
578scrollBox.scrollTop=centerY
579}}if(!notX){var leftSpace=offset.x-scrollBox.scrollLeft;
580var rightSpace=(scrollBox.scrollLeft+scrollBox.clientWidth)-(offset.x+element.clientWidth);
581if(leftSpace<0||rightSpace<0){var centerX=offset.x-(scrollBox.clientWidth/2);
582scrollBox.scrollLeft=centerX
583}}if(FBTrace.DBG_SOURCEFILES){FBTrace.sysout("lib.scrollIntoCenterView ","Element:"+element.innerHTML)
584}};
585var cssKeywordMap=null;
586var cssPropNames=null;
587var cssColorNames=null;
588var imageRules=null;
589this.getCSSKeywordsByProperty=function(propName){if(!cssKeywordMap){cssKeywordMap={};
590for(var name in this.cssInfo){var list=[];
591var types=this.cssInfo[name];
592for(var i=0;
593i<types.length;
594++i){var keywords=this.cssKeywords[types[i]];
595if(keywords){list.push.apply(list,keywords)
596}}cssKeywordMap[name]=list
597}}return propName in cssKeywordMap?cssKeywordMap[propName]:[]
598};
599this.getCSSPropertyNames=function(){if(!cssPropNames){cssPropNames=[];
600for(var name in this.cssInfo){cssPropNames.push(name)
601}}return cssPropNames
602};
603this.isColorKeyword=function(keyword){if(keyword=="transparent"){return false
604}if(!cssColorNames){cssColorNames=[];
605var colors=this.cssKeywords.color;
606for(var i=0;
607i<colors.length;
608++i){cssColorNames.push(colors[i].toLowerCase())
609}var systemColors=this.cssKeywords.systemColor;
610for(var i=0;
611i<systemColors.length;
612++i){cssColorNames.push(systemColors[i].toLowerCase())
613}}return cssColorNames.indexOf?cssColorNames.indexOf(keyword.toLowerCase())!=-1:(" "+cssColorNames.join(" ")+" ").indexOf(" "+keyword.toLowerCase()+" ")!=-1
614};
615this.isImageRule=function(rule){if(!imageRules){imageRules=[];
616for(var i in this.cssInfo){var r=i.toLowerCase();
617var suffix="image";
618if(r.match(suffix+"$")==suffix||r=="background"){imageRules.push(r)
619}}}return imageRules.indexOf?imageRules.indexOf(rule.toLowerCase())!=-1:(" "+imageRules.join(" ")+" ").indexOf(" "+rule.toLowerCase()+" ")!=-1
620};
621this.copyTextStyles=function(fromNode,toNode,style){var view=this.isIE?fromNode.ownerDocument.parentWindow:fromNode.ownerDocument.defaultView;
622if(view){if(!style){style=this.isIE?fromNode.currentStyle:view.getComputedStyle(fromNode,"")
623}toNode.style.fontFamily=style.fontFamily;
624toNode.style.fontSize=style.fontSize;
625toNode.style.fontWeight=style.fontWeight;
626toNode.style.fontStyle=style.fontStyle;
627return style
628}};
629this.copyBoxStyles=function(fromNode,toNode,style){var view=this.isIE?fromNode.ownerDocument.parentWindow:fromNode.ownerDocument.defaultView;
630if(view){if(!style){style=this.isIE?fromNode.currentStyle:view.getComputedStyle(fromNode,"")
631}toNode.style.marginTop=style.marginTop;
632toNode.style.marginRight=style.marginRight;
633toNode.style.marginBottom=style.marginBottom;
634toNode.style.marginLeft=style.marginLeft;
635toNode.style.borderTopWidth=style.borderTopWidth;
636toNode.style.borderRightWidth=style.borderRightWidth;
637toNode.style.borderBottomWidth=style.borderBottomWidth;
638toNode.style.borderLeftWidth=style.borderLeftWidth;
639return style
640}};
641this.readBoxStyles=function(style){var styleNames={"margin-top":"marginTop","margin-right":"marginRight","margin-left":"marginLeft","margin-bottom":"marginBottom","border-top-width":"borderTop","border-right-width":"borderRight","border-left-width":"borderLeft","border-bottom-width":"borderBottom","padding-top":"paddingTop","padding-right":"paddingRight","padding-left":"paddingLeft","padding-bottom":"paddingBottom","z-index":"zIndex"};
642var styles={};
643for(var styleName in styleNames){styles[styleNames[styleName]]=parseInt(style.getPropertyCSSValue(styleName).cssText)||0
644}if(FBTrace.DBG_INSPECT){FBTrace.sysout("readBoxStyles ",styles)
645}return styles
646};
647this.getBoxFromStyles=function(style,element){var args=this.readBoxStyles(style);
648args.width=element.offsetWidth-(args.paddingLeft+args.paddingRight+args.borderLeft+args.borderRight);
649args.height=element.offsetHeight-(args.paddingTop+args.paddingBottom+args.borderTop+args.borderBottom);
650return args
651};
652this.getElementCSSSelector=function(element){var label=element.localName.toLowerCase();
653if(element.id){label+="#"+element.id
654}if(element.hasAttribute("class")){label+="."+element.getAttribute("class").split(" ")[0]
655}return label
656};
657this.getURLForStyleSheet=function(styleSheet){return(styleSheet.href?styleSheet.href:styleSheet.ownerNode.ownerDocument.URL)
658};
659this.getDocumentForStyleSheet=function(styleSheet){while(styleSheet.parentStyleSheet&&!styleSheet.ownerNode){styleSheet=styleSheet.parentStyleSheet
660}if(styleSheet.ownerNode){return styleSheet.ownerNode.ownerDocument
661}};
662this.getInstanceForStyleSheet=function(styleSheet,ownerDocument){if(FBL.isSystemStyleSheet(styleSheet)){return 0
663}if(FBTrace.DBG_CSS){FBTrace.sysout("getInstanceForStyleSheet: "+styleSheet.href+" "+styleSheet.media.mediaText+" "+(styleSheet.ownerNode&&FBL.getElementXPath(styleSheet.ownerNode)),ownerDocument)
664}ownerDocument=ownerDocument||FBL.getDocumentForStyleSheet(styleSheet);
665var ret=0,styleSheets=ownerDocument.styleSheets,href=styleSheet.href;
666for(var i=0;
667i<styleSheets.length;
668i++){var curSheet=styleSheets[i];
669if(FBTrace.DBG_CSS){FBTrace.sysout("getInstanceForStyleSheet: compare href "+i+" "+curSheet.href+" "+curSheet.media.mediaText+" "+(curSheet.ownerNode&&FBL.getElementXPath(curSheet.ownerNode)))
670}if(curSheet==styleSheet){break
671}if(curSheet.href==href){ret++
672}}return ret
673};
674var getElementType=this.getElementType=function(node){if(isElementXUL(node)){return"xul"
675}else{if(isElementSVG(node)){return"svg"
676}else{if(isElementMathML(node)){return"mathml"
677}else{if(isElementXHTML(node)){return"xhtml"
678}else{if(isElementHTML(node)){return"html"
679}}}}}};
680var getElementSimpleType=this.getElementSimpleType=function(node){if(isElementSVG(node)){return"svg"
681}else{if(isElementMathML(node)){return"mathml"
682}else{return"html"
683}}};
684var isElementHTML=this.isElementHTML=function(node){return node.nodeName==node.nodeName.toUpperCase()
685};
686var isElementXHTML=this.isElementXHTML=function(node){return node.nodeName==node.nodeName.toLowerCase()
687};
688var isElementMathML=this.isElementMathML=function(node){return node.namespaceURI=="http://www.w3.org/1998/Math/MathML"
689};
690var isElementSVG=this.isElementSVG=function(node){return node.namespaceURI=="http://www.w3.org/2000/svg"
691};
692var isElementXUL=this.isElementXUL=function(node){return node instanceof XULElement
693};
694this.isSelfClosing=function(element){if(isElementSVG(element)||isElementMathML(element)){return true
695}var tag=element.localName.toLowerCase();
696return(this.selfClosingTags.hasOwnProperty(tag))
697};
698this.getElementHTML=function(element){var self=this;
699function toHTML(elt){if(elt.nodeType==Node.ELEMENT_NODE){if(unwrapObject(elt).firebugIgnore){return
700}html.push("<",elt.nodeName.toLowerCase());
701for(var i=0;
702i<elt.attributes.length;
703++i){var attr=elt.attributes[i];
704if(attr.localName.indexOf("firebug-")==0){continue
705}if(attr.localName.indexOf("-moz-math")==0){continue
706}html.push(" ",attr.nodeName,'="',escapeForElementAttribute(attr.nodeValue),'"')
707}if(elt.firstChild){html.push(">");
708var pureText=true;
709for(var child=element.firstChild;
710child;
711child=child.nextSibling){pureText=pureText&&(child.nodeType==Node.TEXT_NODE)
712}if(pureText){html.push(escapeForHtmlEditor(elt.textContent))
713}else{for(var child=elt.firstChild;
714child;
715child=child.nextSibling){toHTML(child)
716}}html.push("</",elt.nodeName.toLowerCase(),">")
717}else{if(isElementSVG(elt)||isElementMathML(elt)){html.push("/>")
718}else{if(self.isSelfClosing(elt)){html.push((isElementXHTML(elt))?"/>":">")
719}else{html.push("></",elt.nodeName.toLowerCase(),">")
720}}}}else{if(elt.nodeType==Node.TEXT_NODE){html.push(escapeForTextNode(elt.textContent))
721}else{if(elt.nodeType==Node.CDATA_SECTION_NODE){html.push("<![CDATA[",elt.nodeValue,"]]>")
722}else{if(elt.nodeType==Node.COMMENT_NODE){html.push("<!--",elt.nodeValue,"-->")
723}}}}}var html=[];
724toHTML(element);
725return html.join("")
726};
727this.getElementXML=function(element){function toXML(elt){if(elt.nodeType==Node.ELEMENT_NODE){if(unwrapObject(elt).firebugIgnore){return
728}xml.push("<",elt.nodeName.toLowerCase());
729for(var i=0;
730i<elt.attributes.length;
731++i){var attr=elt.attributes[i];
732if(attr.localName.indexOf("firebug-")==0){continue
733}if(attr.localName.indexOf("-moz-math")==0){continue
734}xml.push(" ",attr.nodeName,'="',escapeForElementAttribute(attr.nodeValue),'"')
735}if(elt.firstChild){xml.push(">");
736for(var child=elt.firstChild;
737child;
738child=child.nextSibling){toXML(child)
739}xml.push("</",elt.nodeName.toLowerCase(),">")
740}else{xml.push("/>")
741}}else{if(elt.nodeType==Node.TEXT_NODE){xml.push(elt.nodeValue)
742}else{if(elt.nodeType==Node.CDATA_SECTION_NODE){xml.push("<![CDATA[",elt.nodeValue,"]]>")
743}else{if(elt.nodeType==Node.COMMENT_NODE){xml.push("<!--",elt.nodeValue,"-->")
744}}}}}var xml=[];
745toXML(element);
746return xml.join("")
747};
748this.hasClass=function(node,name){if(arguments.length==2){return(" "+node.className+" ").indexOf(" "+name+" ")!=-1
749}if(!node||node.nodeType!=1){return false
750}else{for(var i=1;
751i<arguments.length;
752++i){var name=arguments[i];
753var re=new RegExp("(^|\\s)"+name+"($|\\s)");
754if(!re.exec(node.className)){return false
755}}return true
756}};
757this.old_hasClass=function(node,name){if(!node||node.nodeType!=1){return false
758}else{for(var i=1;
759i<arguments.length;
760++i){var name=arguments[i];
761var re=new RegExp("(^|\\s)"+name+"($|\\s)");
762if(!re.exec(node.className)){return false
763}}return true
764}};
765this.setClass=function(node,name){if(node&&(" "+node.className+" ").indexOf(" "+name+" ")==-1){node.className+=" "+name
766}};
767this.getClassValue=function(node,name){var re=new RegExp(name+"-([^ ]+)");
768var m=re.exec(node.className);
769return m?m[1]:""
770};
771this.removeClass=function(node,name){if(node&&node.className){var index=node.className.indexOf(name);
772if(index>=0){var size=name.length;
773node.className=node.className.substr(0,index-1)+node.className.substr(index+size)
774}}};
775this.toggleClass=function(elt,name){if((" "+elt.className+" ").indexOf(" "+name+" ")!=-1){this.removeClass(elt,name)
776}else{this.setClass(elt,name)
777}};
778this.setClassTimed=function(elt,name,context,timeout){if(!timeout){timeout=1300
779}if(elt.__setClassTimeout){context.clearTimeout(elt.__setClassTimeout)
780}else{this.setClass(elt,name)
781}elt.__setClassTimeout=context.setTimeout(function(){delete elt.__setClassTimeout;
782FBL.removeClass(elt,name)
783},timeout)
784};
785this.cancelClassTimed=function(elt,name,context){if(elt.__setClassTimeout){FBL.removeClass(elt,name);
786context.clearTimeout(elt.__setClassTimeout);
787delete elt.__setClassTimeout
788}};
789this.$=function(id,doc){if(doc){return doc.getElementById(id)
790}else{return FBL.Firebug.chrome.document.getElementById(id)
791}};
792this.$$=function(selector,doc){if(doc||!FBL.Firebug.chrome){return FBL.Firebug.Selector(selector,doc)
793}else{return FBL.Firebug.Selector(selector,FBL.Firebug.chrome.document)
794}};
795this.getChildByClass=function(node){for(var i=1;
796i<arguments.length;
797++i){var className=arguments[i];
798var child=node.firstChild;
799node=null;
800for(;
801child;
802child=child.nextSibling){if(this.hasClass(child,className)){node=child;
803break
804}}}return node
805};
806this.getAncestorByClass=function(node,className){for(var parent=node;
807parent;
808parent=parent.parentNode){if(this.hasClass(parent,className)){return parent
809}}return null
810};
811this.getElementsByClass=function(node,className){var result=[];
812for(var child=node.firstChild;
813child;
814child=child.nextSibling){if(this.hasClass(child,className)){result.push(child)
815}}return result
816};
817this.getElementByClass=function(node,className){var args=cloneArray(arguments);
818args.splice(0,1);
819for(var child=node.firstChild;
820child;
821child=child.nextSibling){var args1=cloneArray(args);
822args1.unshift(child);
823if(FBL.hasClass.apply(null,args1)){return child
824}else{var found=FBL.getElementByClass.apply(null,args1);
825if(found){return found
826}}}return null
827};
828this.isAncestor=function(node,potentialAncestor){for(var parent=node;
829parent;
830parent=parent.parentNode){if(parent==potentialAncestor){return true
831}}return false
832};
833this.getNextElement=function(node){while(node&&node.nodeType!=1){node=node.nextSibling
834}return node
835};
836this.getPreviousElement=function(node){while(node&&node.nodeType!=1){node=node.previousSibling
837}return node
838};
839this.getBody=function(doc){if(doc.body){return doc.body
840}var body=doc.getElementsByTagName("body")[0];
841if(body){return body
842}return doc.firstChild
843};
844this.findNextDown=function(node,criteria){if(!node){return null
845}for(var child=node.firstChild;
846child;
847child=child.nextSibling){if(criteria(child)){return child
848}var next=this.findNextDown(child,criteria);
849if(next){return next
850}}};
851this.findPreviousUp=function(node,criteria){if(!node){return null
852}for(var child=node.lastChild;
853child;
854child=child.previousSibling){var next=this.findPreviousUp(child,criteria);
855if(next){return next
856}if(criteria(child)){return child
857}}};
858this.findNext=function(node,criteria,upOnly,maxRoot){if(!node){return null
859}if(!upOnly){var next=this.findNextDown(node,criteria);
860if(next){return next
861}}for(var sib=node.nextSibling;
862sib;
863sib=sib.nextSibling){if(criteria(sib)){return sib
864}var next=this.findNextDown(sib,criteria);
865if(next){return next
866}}if(node.parentNode&&node.parentNode!=maxRoot){return this.findNext(node.parentNode,criteria,true)
867}};
868this.findPrevious=function(node,criteria,downOnly,maxRoot){if(!node){return null
869}for(var sib=node.previousSibling;
870sib;
871sib=sib.previousSibling){var prev=this.findPreviousUp(sib,criteria);
872if(prev){return prev
873}if(criteria(sib)){return sib
874}}if(!downOnly){var next=this.findPreviousUp(node,criteria);
875if(next){return next
876}}if(node.parentNode&&node.parentNode!=maxRoot){if(criteria(node.parentNode)){return node.parentNode
877}return this.findPrevious(node.parentNode,criteria,true)
878}};
879this.getNextByClass=function(root,state){var iter=function iter(node){return node.nodeType==1&&FBL.hasClass(node,state)
880};
881return this.findNext(root,iter)
882};
883this.getPreviousByClass=function(root,state){var iter=function iter(node){return node.nodeType==1&&FBL.hasClass(node,state)
884};
885return this.findPrevious(root,iter)
886};
887this.isElement=function(o){try{return o&&this.instanceOf(o,"Element")
888}catch(ex){return false
889}};
890var appendFragment=null;
891this.appendInnerHTML=function(element,html,referenceElement){referenceElement=referenceElement||null;
892var doc=element.ownerDocument;
893if(doc.createRange){var range=doc.createRange();
894range.selectNodeContents(element);
895var fragment=range.createContextualFragment(html);
896var firstChild=fragment.firstChild;
897element.insertBefore(fragment,referenceElement)
898}else{if(!appendFragment||appendFragment.ownerDocument!=doc){appendFragment=doc.createDocumentFragment()
899}var div=doc.createElement("div");
900div.innerHTML=html;
901var firstChild=div.firstChild;
902while(div.firstChild){appendFragment.appendChild(div.firstChild)
903}element.insertBefore(appendFragment,referenceElement);
904div=null
905}return firstChild
906};
907this.createElement=function(tagName,properties){properties=properties||{};
908var doc=properties.document||FBL.Firebug.chrome.document;
909var element=doc.createElement(tagName);
910for(var name in properties){if(name!="document"){element[name]=properties[name]
911}}return element
912};
913this.createGlobalElement=function(tagName,properties){properties=properties||{};
914var doc=FBL.Env.browser.document;
915var element=this.NS&&doc.createElementNS?doc.createElementNS(FBL.NS,tagName):doc.createElement(tagName);
916for(var name in properties){var propname=name;
917if(FBL.isIE&&name=="class"){propname="className"
918}if(name!="document"){element.setAttribute(propname,properties[name])
919}}return element
920};
921this.safeGetWindowLocation=function(window){try{if(window){if(window.closed){return"(window.closed)"
922}if("location" in window){return window.location+""
923}else{return"(no window.location)"
924}}else{return"(no context.window)"
925}}catch(exc){if(FBTrace.DBG_WINDOWS||FBTrace.DBG_ERRORS){FBTrace.sysout("TabContext.getWindowLocation failed "+exc,exc)
926}FBTrace.sysout("TabContext.getWindowLocation failed window:",window);
927return"(getWindowLocation: "+exc+")"
928}};
929this.isLeftClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==1:event.button==0)&&this.noKeyModifiers(event)
930};
931this.isMiddleClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==4:event.button==1)&&this.noKeyModifiers(event)
932};
933this.isRightClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==2:event.button==2)&&this.noKeyModifiers(event)
934};
935this.noKeyModifiers=function(event){return !event.ctrlKey&&!event.shiftKey&&!event.altKey&&!event.metaKey
936};
937this.isControlClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==1:event.button==0)&&this.isControl(event)
938};
939this.isShiftClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==1:event.button==0)&&this.isShift(event)
940};
941this.isControl=function(event){return(event.metaKey||event.ctrlKey)&&!event.shiftKey&&!event.altKey
942};
943this.isAlt=function(event){return event.altKey&&!event.ctrlKey&&!event.shiftKey&&!event.metaKey
944};
945this.isAltClick=function(event){return(this.isIE&&event.type!="click"&&event.type!="dblclick"?event.button==1:event.button==0)&&this.isAlt(event)
946};
947this.isControlShift=function(event){return(event.metaKey||event.ctrlKey)&&event.shiftKey&&!event.altKey
948};
949this.isShift=function(event){return event.shiftKey&&!event.metaKey&&!event.ctrlKey&&!event.altKey
950};
951this.addEvent=function(object,name,handler,useCapture){if(object.addEventListener){object.addEventListener(name,handler,useCapture)
952}else{object.attachEvent("on"+name,handler)
953}};
954this.removeEvent=function(object,name,handler,useCapture){try{if(object.removeEventListener){object.removeEventListener(name,handler,useCapture)
955}else{object.detachEvent("on"+name,handler)
956}}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("FBL.removeEvent error: ",object,name)
957}}};
958this.cancelEvent=function(e,preventDefault){if(!e){return
959}if(preventDefault){if(e.preventDefault){e.preventDefault()
960}else{e.returnValue=false
961}}if(e.stopPropagation){e.stopPropagation()
962}else{e.cancelBubble=true
963}};
964this.addGlobalEvent=function(name,handler){var doc=this.Firebug.browser.document;
965var frames=this.Firebug.browser.window.frames;
966this.addEvent(doc,name,handler);
967if(this.Firebug.chrome.type=="popup"){this.addEvent(this.Firebug.chrome.document,name,handler)
968}for(var i=0,frame;
969frame=frames[i];
970i++){try{this.addEvent(frame.document,name,handler)
971}catch(E){}}};
972this.removeGlobalEvent=function(name,handler){var doc=this.Firebug.browser.document;
973var frames=this.Firebug.browser.window.frames;
974this.removeEvent(doc,name,handler);
975if(this.Firebug.chrome.type=="popup"){this.removeEvent(this.Firebug.chrome.document,name,handler)
976}for(var i=0,frame;
977frame=frames[i];
978i++){try{this.removeEvent(frame.document,name,handler)
979}catch(E){}}};
980this.dispatch=function(listeners,name,args){if(!listeners){return
981}try{if(typeof listeners.length!="undefined"){if(FBTrace.DBG_DISPATCH){FBTrace.sysout("FBL.dispatch",name+" to "+listeners.length+" listeners")
982}for(var i=0;
983i<listeners.length;
984++i){var listener=listeners[i];
985if(listener[name]){listener[name].apply(listener,args)
986}}}else{if(FBTrace.DBG_DISPATCH){FBTrace.sysout("FBL.dispatch",name+" to listeners of an object")
987}for(var prop in listeners){var listener=listeners[prop];
988if(listener[name]){listener[name].apply(listener,args)
989}}}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout(" Exception in lib.dispatch "+name,exc)
990}}};
991var disableTextSelectionHandler=function(event){FBL.cancelEvent(event,true);
992return false
993};
994this.disableTextSelection=function(e){if(typeof e.onselectstart!="undefined"){this.addEvent(e,"selectstart",disableTextSelectionHandler)
995}else{e.style.cssText="user-select: none; -khtml-user-select: none; -moz-user-select: none;";
996if(!this.isFirefox){this.addEvent(e,"mousedown",disableTextSelectionHandler)
997}}e.style.cursor="default"
998};
999this.restoreTextSelection=function(e){if(typeof e.onselectstart!="undefined"){this.removeEvent(e,"selectstart",disableTextSelectionHandler)
1000}else{e.style.cssText="cursor: default;";
1001if(!this.isFirefox){this.removeEvent(e,"mousedown",disableTextSelectionHandler)
1002}}};
1003var eventTypes={composition:["composition","compositionstart","compositionend"],contextmenu:["contextmenu"],drag:["dragenter","dragover","dragexit","dragdrop","draggesture"],focus:["focus","blur"],form:["submit","reset","change","select","input"],key:["keydown","keyup","keypress"],load:["load","beforeunload","unload","abort","error"],mouse:["mousedown","mouseup","click","dblclick","mouseover","mouseout","mousemove"],mutation:["DOMSubtreeModified","DOMNodeInserted","DOMNodeRemoved","DOMNodeRemovedFromDocument","DOMNodeInsertedIntoDocument","DOMAttrModified","DOMCharacterDataModified"],paint:["paint","resize","scroll"],scroll:["overflow","underflow","overflowchanged"],text:["text"],ui:["DOMActivate","DOMFocusIn","DOMFocusOut"],xul:["popupshowing","popupshown","popuphiding","popuphidden","close","command","broadcast","commandupdate"]};
1004this.getEventFamily=function(eventType){if(!this.families){this.families={};
1005for(var family in eventTypes){var types=eventTypes[family];
1006for(var i=0;
1007i<types.length;
1008++i){this.families[types[i]]=family
1009}}}return this.families[eventType]
1010};
1011this.getFileName=function(url){var split=this.splitURLBase(url);
1012return split.name
1013};
1014this.splitURLBase=function(url){if(this.isDataURL(url)){return this.splitDataURL(url)
1015}return this.splitURLTrue(url)
1016};
1017this.splitDataURL=function(url){var mark=url.indexOf(":",3);
1018if(mark!=4){return false
1019}var point=url.indexOf(",",mark+1);
1020if(point<mark){return false
1021}var props={encodedContent:url.substr(point+1)};
1022var metadataBuffer=url.substr(mark+1,point);
1023var metadata=metadataBuffer.split(";");
1024for(var i=0;
1025i<metadata.length;
1026i++){var nv=metadata[i].split("=");
1027if(nv.length==2){props[nv[0]]=nv[1]
1028}}if(props.hasOwnProperty("fileName")){var caller_URL=decodeURIComponent(props.fileName);
1029var caller_split=this.splitURLTrue(caller_URL);
1030if(props.hasOwnProperty("baseLineNumber")){props.path=caller_split.path;
1031props.line=props.baseLineNumber;
1032var hint=decodeURIComponent(props.encodedContent.substr(0,200)).replace(/\s*$/,"");
1033props.name="eval->"+hint
1034}else{props.name=caller_split.name;
1035props.path=caller_split.path
1036}}else{if(!props.hasOwnProperty("path")){props.path="data:"
1037}if(!props.hasOwnProperty("name")){props.name=decodeURIComponent(props.encodedContent.substr(0,200)).replace(/\s*$/,"")
1038}}return props
1039};
1040this.splitURLTrue=function(url){var m=reSplitFile.exec(url);
1041if(!m){return{name:url,path:url}
1042}else{if(!m[2]){return{path:m[1],name:m[1]}
1043}else{return{path:m[1],name:m[2]+m[3]}
1044}}};
1045this.getFileExtension=function(url){if(!url){return null
1046}var queryString=url.indexOf("?");
1047if(queryString!=-1){url=url.substr(0,queryString)
1048}var lastDot=url.lastIndexOf(".");
1049return url.substr(lastDot+1)
1050};
1051this.isSystemURL=function(url){if(!url){return true
1052}if(url.length==0){return true
1053}if(url[0]=="h"){return false
1054}if(url.substr(0,9)=="resource:"){return true
1055}else{if(url.substr(0,16)=="chrome://firebug"){return true
1056}else{if(url=="XPCSafeJSObjectWrapper.cpp"){return true
1057}else{if(url.substr(0,6)=="about:"){return true
1058}else{if(url.indexOf("firebug-service.js")!=-1){return true
1059}else{return false
1060}}}}}};
1061this.isSystemPage=function(win){try{var doc=win.document;
1062if(!doc){return false
1063}if((doc.styleSheets.length&&doc.styleSheets[0].href=="chrome://global/content/xml/XMLPrettyPrint.css")||(doc.styleSheets.length>1&&doc.styleSheets[1].href=="chrome://browser/skin/feeds/subscribe.css")){return true
1064}return FBL.isSystemURL(win.location.href)
1065}catch(exc){ERROR("tabWatcher.isSystemPage document not ready:"+exc);
1066return false
1067}};
1068this.isSystemStyleSheet=function(sheet){var href=sheet&&sheet.href;
1069return href&&FBL.isSystemURL(href)
1070};
1071this.getURIHost=function(uri){try{if(uri){return uri.host
1072}else{return""
1073}}catch(exc){return""
1074}};
1075this.isLocalURL=function(url){if(url.substr(0,5)=="file:"){return true
1076}else{if(url.substr(0,8)=="wyciwyg:"){return true
1077}else{return false
1078}}};
1079this.isDataURL=function(url){return(url&&url.substr(0,5)=="data:")
1080};
1081this.getLocalPath=function(url){if(this.isLocalURL(url)){var fileHandler=ioService.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
1082var file=fileHandler.getFileFromURLSpec(url);
1083return file.path
1084}};
1085this.getURLFromLocalFile=function(file){var fileHandler=ioService.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler);
1086var URL=fileHandler.getURLSpecFromFile(file);
1087return URL
1088};
1089this.getDataURLForContent=function(content,url){var uri="data:text/html;";
1090uri+="fileName="+encodeURIComponent(url)+",";
1091uri+=encodeURIComponent(content);
1092return uri
1093},this.getDomain=function(url){var m=/[^:]+:\/{1,3}([^\/]+)/.exec(url);
1094return m?m[1]:""
1095};
1096this.getURLPath=function(url){var m=/[^:]+:\/{1,3}[^\/]+(\/.*?)$/.exec(url);
1097return m?m[1]:""
1098};
1099this.getPrettyDomain=function(url){var m=/[^:]+:\/{1,3}(www\.)?([^\/]+)/.exec(url);
1100return m?m[2]:""
1101};
1102this.absoluteURL=function(url,baseURL){return this.absoluteURLWithDots(url,baseURL).replace("/./","/","g")
1103};
1104this.absoluteURLWithDots=function(url,baseURL){if(url[0]=="?"){return baseURL+url
1105}var reURL=/(([^:]+:)\/{1,2}[^\/]*)(.*?)$/;
1106var m=reURL.exec(url);
1107if(m){return url
1108}var m=reURL.exec(baseURL);
1109if(!m){return""
1110}var head=m[1];
1111var tail=m[3];
1112if(url.substr(0,2)=="//"){return m[2]+url
1113}else{if(url[0]=="/"){return head+url
1114}else{if(tail[tail.length-1]=="/"){return baseURL+url
1115}else{var parts=tail.split("/");
1116return head+parts.slice(0,parts.length-1).join("/")+"/"+url
1117}}}};
1118this.normalizeURL=function(url){if(!url){return""
1119}if(url.length<255){url=url.replace(/[^\/]+\/\.\.\//,"","g");
1120url=url.replace(/#.*/,"");
1121url=url.replace(/file:\/([^\/])/g,"file:///$1");
1122if(url.indexOf("chrome:")==0){var m=reChromeCase.exec(url);
1123if(m){url="chrome://"+m[1].toLowerCase()+"/"+m[2]
1124}}}return url
1125};
1126this.denormalizeURL=function(url){return url.replace(/file:\/\/\//g,"file:/")
1127};
1128this.parseURLParams=function(url){var q=url?url.indexOf("?"):-1;
1129if(q==-1){return[]
1130}var search=url.substr(q+1);
1131var h=search.lastIndexOf("#");
1132if(h!=-1){search=search.substr(0,h)
1133}if(!search){return[]
1134}return this.parseURLEncodedText(search)
1135};
1136this.parseURLEncodedText=function(text){var maxValueLength=25000;
1137var params=[];
1138text=text.replace(/\+/g," ");
1139var args=text.split("&");
1140for(var i=0;
1141i<args.length;
1142++i){try{var parts=args[i].split("=");
1143if(parts.length==2){if(parts[1].length>maxValueLength){parts[1]=this.$STR("LargeData")
1144}params.push({name:decodeURIComponent(parts[0]),value:decodeURIComponent(parts[1])})
1145}else{params.push({name:decodeURIComponent(parts[0]),value:""})
1146}}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("parseURLEncodedText EXCEPTION ",e);
1147FBTrace.sysout("parseURLEncodedText EXCEPTION URI",args[i])
1148}}}params.sort(function(a,b){return a.name<=b.name?-1:1
1149});
1150return params
1151};
1152this.parseURLParamsArray=function(url){var q=url?url.indexOf("?"):-1;
1153if(q==-1){return[]
1154}var search=url.substr(q+1);
1155var h=search.lastIndexOf("#");
1156if(h!=-1){search=search.substr(0,h)
1157}if(!search){return[]
1158}return this.parseURLEncodedTextArray(search)
1159};
1160this.parseURLEncodedTextArray=function(text){var maxValueLength=25000;
1161var params=[];
1162text=text.replace(/\+/g," ");
1163var args=text.split("&");
1164for(var i=0;
1165i<args.length;
1166++i){try{var parts=args[i].split("=");
1167if(parts.length==2){if(parts[1].length>maxValueLength){parts[1]=this.$STR("LargeData")
1168}params.push({name:decodeURIComponent(parts[0]),value:[decodeURIComponent(parts[1])]})
1169}else{params.push({name:decodeURIComponent(parts[0]),value:[""]})
1170}}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("parseURLEncodedText EXCEPTION ",e);
1171FBTrace.sysout("parseURLEncodedText EXCEPTION URI",args[i])
1172}}}params.sort(function(a,b){return a.name<=b.name?-1:1
1173});
1174return params
1175};
1176this.reEncodeURL=function(file,text){var lines=text.split("\n");
1177var params=this.parseURLEncodedText(lines[lines.length-1]);
1178var args=[];
1179for(var i=0;
1180i<params.length;
1181++i){args.push(encodeURIComponent(params[i].name)+"="+encodeURIComponent(params[i].value))
1182}var url=file.href;
1183url+=(url.indexOf("?")==-1?"?":"&")+args.join("&");
1184return url
1185};
1186this.getResource=function(aURL){try{var channel=ioService.newChannel(aURL,null,null);
1187var input=channel.open();
1188return FBL.readFromStream(input)
1189}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("lib.getResource FAILS for "+aURL,e)
1190}}};
1191this.parseJSONString=function(jsonString,originURL){var regex=new RegExp(/^\/\*-secure-([\s\S]*)\*\/\s*$/);
1192var matches=regex.exec(jsonString);
1193if(matches){jsonString=matches[1];
1194if(jsonString[0]=="\\"&&jsonString[1]=="n"){jsonString=jsonString.substr(2)
1195}if(jsonString[jsonString.length-2]=="\\"&&jsonString[jsonString.length-1]=="n"){jsonString=jsonString.substr(0,jsonString.length-2)
1196}}if(jsonString.indexOf("&&&START&&&")){regex=new RegExp(/&&&START&&& (.+) &&&END&&&/);
1197matches=regex.exec(jsonString);
1198if(matches){jsonString=matches[1]
1199}}jsonString="("+jsonString+")";
1200var jsonObject=null;
1201try{jsonObject=Firebug.context.evaluate(jsonString,null,null,function(){return null
1202})
1203}catch(e){if(FBTrace.DBG_ERRORS||FBTrace.DBG_JSONVIEWER){FBTrace.sysout("jsonviewer.parseJSON EXCEPTION",e)
1204}return null
1205}return jsonObject
1206};
1207this.objectToString=function(object){try{return object+""
1208}catch(exc){return null
1209}};
1210this.setSelectionRange=function(input,start,length){if(input.createTextRange){var range=input.createTextRange();
1211range.moveStart("character",start);
1212range.moveEnd("character",length-input.value.length);
1213range.select()
1214}else{if(input.setSelectionRange){input.setSelectionRange(start,length);
1215input.focus()
1216}}};
1217this.getInputSelectionStart=function(input){if(document.selection){var range=input.ownerDocument.selection.createRange();
1218var text=range.text;
1219if(text){return input.value.indexOf(text)
1220}else{range.moveStart("character",-input.value.length);
1221return range.text.length
1222}}else{if(typeof input.selectionStart!="undefined"){return input.selectionStart
1223}}return 0
1224};
1225function onOperaTabBlur(e){if(this.lastKey==9){this.focus()
1226}}function onOperaTabKeyDown(e){this.lastKey=e.keyCode
1227}function onOperaTabFocus(e){this.lastKey=null
1228}this.fixOperaTabKey=function(el){el.onfocus=onOperaTabFocus;
1229el.onblur=onOperaTabBlur;
1230el.onkeydown=onOperaTabKeyDown
1231};
1232this.Property=function(object,name){this.object=object;
1233this.name=name;
1234this.getObject=function(){return object[name]
1235}
1236};
1237this.ErrorCopy=function(message){this.message=message
1238};
1239function EventCopy(event){for(var name in event){try{this[name]=event[name]
1240}catch(exc){}}}this.EventCopy=EventCopy;
1241var toString=Object.prototype.toString;
1242var reFunction=/^\s*function(\s+[\w_$][\w\d_$]*)?\s*\(/;
1243this.isArray=function(object){return toString.call(object)==="[object Array]"
1244};
1245this.isFunction=function(object){if(!object){return false
1246}try{return toString.call(object)==="[object Function]"||this.isIE&&typeof object!="string"&&reFunction.test(""+object)
1247}catch(E){FBTrace.sysout("Lib.isFunction() failed for ",object);
1248return false
1249}};
1250this.instanceOf=function(object,className){if(!object||typeof object!="object"){return false
1251}if(object.ownerDocument){var win=object.ownerDocument.defaultView||object.ownerDocument.parentWindow;
1252if(className in win&&object instanceof win[className]){return true
1253}}else{var win=Firebug.browser.window;
1254if(className in win){return object instanceof win[className]
1255}}var cache=instanceCheckMap[className];
1256if(!cache){return false
1257}for(var n in cache){var obj=cache[n];
1258var type=typeof obj;
1259obj=type=="object"?obj:[obj];
1260for(var name in obj){if(!obj.hasOwnProperty(name)){continue
1261}var value=obj[name];
1262if(n=="property"&&!(value in object)||n=="method"&&!this.isFunction(object[value])||n=="value"&&(""+object[name]).toLowerCase()!=(""+value).toLowerCase()){return false
1263}}}return true
1264};
1265var instanceCheckMap={Window:{property:["window","document"],method:"setTimeout"},Document:{property:["body","cookie"],method:"getElementById"},Node:{property:"ownerDocument",method:"appendChild"},Element:{property:"tagName",value:{nodeType:1}},Location:{property:["hostname","protocol"],method:"assign"},HTMLImageElement:{property:"useMap",value:{nodeType:1,tagName:"img"}},HTMLAnchorElement:{property:"hreflang",value:{nodeType:1,tagName:"a"}},HTMLInputElement:{property:"form",value:{nodeType:1,tagName:"input"}},HTMLButtonElement:{},HTMLFormElement:{method:"submit",value:{nodeType:1,tagName:"form"}},HTMLBodyElement:{},HTMLHtmlElement:{},CSSStyleRule:{property:["selectorText","style"]}};
1266var domMemberMap2={};
1267var domMemberMap2Sandbox=null;
1268var getDomMemberMap2=function(name){if(!domMemberMap2Sandbox){var doc=Firebug.chrome.document;
1269var frame=doc.createElement("iframe");
1270frame.id="FirebugSandbox";
1271frame.style.display="none";
1272frame.src="about:blank";
1273doc.body.appendChild(frame);
1274domMemberMap2Sandbox=frame.window||frame.contentWindow
1275}var props=[];
1276var object=null;
1277if(name=="Window"){object=domMemberMap2Sandbox.window
1278}else{if(name=="Document"){object=domMemberMap2Sandbox.document
1279}else{if(name=="HTMLScriptElement"){object=domMemberMap2Sandbox.document.createElement("script")
1280}else{if(name=="HTMLAnchorElement"){object=domMemberMap2Sandbox.document.createElement("a")
1281}else{if(name.indexOf("Element")!=-1){object=domMemberMap2Sandbox.document.createElement("div")
1282}}}}}if(object){for(var n in object){props.push(n)
1283}}return props;
1284return extendArray(props,domMemberMap[name])
1285};
1286this.getDOMMembers=function(object){if(!domMemberCache){FBL.domMemberCache=domMemberCache={};
1287for(var name in domMemberMap){var builtins=getDomMemberMap2(name);
1288var cache=domMemberCache[name]={};
1289for(var i=0;
1290i<builtins.length;
1291++i){cache[builtins[i]]=i
1292}}}try{if(this.instanceOf(object,"Window")){return domMemberCache.Window
1293}else{if(this.instanceOf(object,"Document")||this.instanceOf(object,"XMLDocument")){return domMemberCache.Document
1294}else{if(this.instanceOf(object,"Location")){return domMemberCache.Location
1295}else{if(this.instanceOf(object,"HTMLImageElement")){return domMemberCache.HTMLImageElement
1296}else{if(this.instanceOf(object,"HTMLAnchorElement")){return domMemberCache.HTMLAnchorElement
1297}else{if(this.instanceOf(object,"HTMLInputElement")){return domMemberCache.HTMLInputElement
1298}else{if(this.instanceOf(object,"HTMLButtonElement")){return domMemberCache.HTMLButtonElement
1299}else{if(this.instanceOf(object,"HTMLFormElement")){return domMemberCache.HTMLFormElement
1300}else{if(this.instanceOf(object,"HTMLBodyElement")){return domMemberCache.HTMLBodyElement
1301}else{if(this.instanceOf(object,"HTMLHtmlElement")){return domMemberCache.HTMLHtmlElement
1302}else{if(this.instanceOf(object,"HTMLScriptElement")){return domMemberCache.HTMLScriptElement
1303}else{if(this.instanceOf(object,"HTMLTableElement")){return domMemberCache.HTMLTableElement
1304}else{if(this.instanceOf(object,"HTMLTableRowElement")){return domMemberCache.HTMLTableRowElement
1305}else{if(this.instanceOf(object,"HTMLTableCellElement")){return domMemberCache.HTMLTableCellElement
1306}else{if(this.instanceOf(object,"HTMLIFrameElement")){return domMemberCache.HTMLIFrameElement
1307}else{if(this.instanceOf(object,"SVGSVGElement")){return domMemberCache.SVGSVGElement
1308}else{if(this.instanceOf(object,"SVGElement")){return domMemberCache.SVGElement
1309}else{if(this.instanceOf(object,"Element")){return domMemberCache.Element
1310}else{if(this.instanceOf(object,"Text")||this.instanceOf(object,"CDATASection")){return domMemberCache.Text
1311}else{if(this.instanceOf(object,"Attr")){return domMemberCache.Attr
1312}else{if(this.instanceOf(object,"Node")){return domMemberCache.Node
1313}else{if(this.instanceOf(object,"Event")||this.instanceOf(object,"EventCopy")){return domMemberCache.Event
1314}else{return{}
1315}}}}}}}}}}}}}}}}}}}}}}}catch(E){if(FBTrace.DBG_ERRORS){FBTrace.sysout("lib.getDOMMembers FAILED ",E)
1316}return{}
1317}};
1318this.isDOMMember=function(object,propName){var members=this.getDOMMembers(object);
1319return members&&propName in members
1320};
1321var domMemberCache=null;
1322var domMemberMap={};
1323domMemberMap.Window=["document","frameElement","innerWidth","innerHeight","outerWidth","outerHeight","screenX","screenY","pageXOffset","pageYOffset","scrollX","scrollY","scrollMaxX","scrollMaxY","status","defaultStatus","parent","opener","top","window","content","self","location","history","frames","navigator","screen","menubar","toolbar","locationbar","personalbar","statusbar","directories","scrollbars","fullScreen","netscape","java","console","Components","controllers","closed","crypto","pkcs11","name","property","length","sessionStorage","globalStorage","setTimeout","setInterval","clearTimeout","clearInterval","addEventListener","removeEventListener","dispatchEvent","getComputedStyle","captureEvents","releaseEvents","routeEvent","enableExternalCapture","disableExternalCapture","moveTo","moveBy","resizeTo","resizeBy","scroll","scrollTo","scrollBy","scrollByLines","scrollByPages","sizeToContent","setResizable","getSelection","open","openDialog","close","alert","confirm","prompt","dump","focus","blur","find","back","forward","home","stop","print","atob","btoa","updateCommands","XPCNativeWrapper","GeckoActiveXObject","applicationCache"];
1324domMemberMap.Location=["href","protocol","host","hostname","port","pathname","search","hash","assign","reload","replace"];
1325domMemberMap.Node=["id","className","nodeType","tagName","nodeName","localName","prefix","namespaceURI","nodeValue","ownerDocument","parentNode","offsetParent","nextSibling","previousSibling","firstChild","lastChild","childNodes","attributes","dir","baseURI","textContent","innerHTML","addEventListener","removeEventListener","dispatchEvent","cloneNode","appendChild","insertBefore","replaceChild","removeChild","compareDocumentPosition","hasAttributes","hasChildNodes","lookupNamespaceURI","lookupPrefix","normalize","isDefaultNamespace","isEqualNode","isSameNode","isSupported","getFeature","getUserData","setUserData"];
1326domMemberMap.Document=extendArray(domMemberMap.Node,["documentElement","body","title","location","referrer","cookie","contentType","lastModified","characterSet","inputEncoding","xmlEncoding","xmlStandalone","xmlVersion","strictErrorChecking","documentURI","URL","defaultView","doctype","implementation","styleSheets","images","links","forms","anchors","embeds","plugins","applets","width","height","designMode","compatMode","async","preferredStylesheetSet","alinkColor","linkColor","vlinkColor","bgColor","fgColor","domain","addEventListener","removeEventListener","dispatchEvent","captureEvents","releaseEvents","routeEvent","clear","open","close","execCommand","execCommandShowHelp","getElementsByName","getSelection","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","write","writeln","adoptNode","appendChild","removeChild","renameNode","cloneNode","compareDocumentPosition","createAttribute","createAttributeNS","createCDATASection","createComment","createDocumentFragment","createElement","createElementNS","createEntityReference","createEvent","createExpression","createNSResolver","createNodeIterator","createProcessingInstruction","createRange","createTextNode","createTreeWalker","domConfig","evaluate","evaluateFIXptr","evaluateXPointer","getAnonymousElementByAttribute","getAnonymousNodes","addBinding","removeBinding","getBindingParent","getBoxObjectFor","setBoxObjectFor","getElementById","getElementsByTagName","getElementsByTagNameNS","hasAttributes","hasChildNodes","importNode","insertBefore","isDefaultNamespace","isEqualNode","isSameNode","isSupported","load","loadBindingDocument","lookupNamespaceURI","lookupPrefix","normalize","normalizeDocument","getFeature","getUserData","setUserData"]);
1327domMemberMap.Element=extendArray(domMemberMap.Node,["clientWidth","clientHeight","offsetLeft","offsetTop","offsetWidth","offsetHeight","scrollLeft","scrollTop","scrollWidth","scrollHeight","style","tabIndex","title","lang","align","spellcheck","addEventListener","removeEventListener","dispatchEvent","focus","blur","cloneNode","appendChild","insertBefore","replaceChild","removeChild","compareDocumentPosition","getElementsByTagName","getElementsByTagNameNS","getAttribute","getAttributeNS","getAttributeNode","getAttributeNodeNS","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","removeAttribute","removeAttributeNS","removeAttributeNode","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","lookupNamespaceURI","lookupPrefix","normalize","isDefaultNamespace","isEqualNode","isSameNode","isSupported","getFeature","getUserData","setUserData"]);
1328domMemberMap.SVGElement=extendArray(domMemberMap.Element,["x","y","width","height","rx","ry","transform","href","ownerSVGElement","viewportElement","farthestViewportElement","nearestViewportElement","getBBox","getCTM","getScreenCTM","getTransformToElement","getPresentationAttribute","preserveAspectRatio"]);
1329domMemberMap.SVGSVGElement=extendArray(domMemberMap.Element,["x","y","width","height","rx","ry","transform","viewBox","viewport","currentView","useCurrentView","pixelUnitToMillimeterX","pixelUnitToMillimeterY","screenPixelToMillimeterX","screenPixelToMillimeterY","currentScale","currentTranslate","zoomAndPan","ownerSVGElement","viewportElement","farthestViewportElement","nearestViewportElement","contentScriptType","contentStyleType","getBBox","getCTM","getScreenCTM","getTransformToElement","getEnclosureList","getIntersectionList","getViewboxToViewportTransform","getPresentationAttribute","getElementById","checkEnclosure","checkIntersection","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPoint","createSVGRect","createSVGString","createSVGTransform","createSVGTransformFromMatrix","deSelectAll","preserveAspectRatio","forceRedraw","suspendRedraw","unsuspendRedraw","unsuspendRedrawAll","getCurrentTime","setCurrentTime","animationsPaused","pauseAnimations","unpauseAnimations"]);
1330domMemberMap.HTMLImageElement=extendArray(domMemberMap.Element,["src","naturalWidth","naturalHeight","width","height","x","y","name","alt","longDesc","lowsrc","border","complete","hspace","vspace","isMap","useMap"]);
1331domMemberMap.HTMLAnchorElement=extendArray(domMemberMap.Element,["name","target","accessKey","href","protocol","host","hostname","port","pathname","search","hash","hreflang","coords","shape","text","type","rel","rev","charset"]);
1332domMemberMap.HTMLIFrameElement=extendArray(domMemberMap.Element,["contentDocument","contentWindow","frameBorder","height","longDesc","marginHeight","marginWidth","name","scrolling","src","width"]);
1333domMemberMap.HTMLTableElement=extendArray(domMemberMap.Element,["bgColor","border","caption","cellPadding","cellSpacing","frame","rows","rules","summary","tBodies","tFoot","tHead","width","createCaption","createTFoot","createTHead","deleteCaption","deleteRow","deleteTFoot","deleteTHead","insertRow"]);
1334domMemberMap.HTMLTableRowElement=extendArray(domMemberMap.Element,["bgColor","cells","ch","chOff","rowIndex","sectionRowIndex","vAlign","deleteCell","insertCell"]);
1335domMemberMap.HTMLTableCellElement=extendArray(domMemberMap.Element,["abbr","axis","bgColor","cellIndex","ch","chOff","colSpan","headers","height","noWrap","rowSpan","scope","vAlign","width"]);
1336domMemberMap.HTMLScriptElement=extendArray(domMemberMap.Element,["src"]);
1337domMemberMap.HTMLButtonElement=extendArray(domMemberMap.Element,["accessKey","disabled","form","name","type","value","click"]);
1338domMemberMap.HTMLInputElement=extendArray(domMemberMap.Element,["type","value","checked","accept","accessKey","alt","controllers","defaultChecked","defaultValue","disabled","form","maxLength","name","readOnly","selectionEnd","selectionStart","size","src","textLength","useMap","click","select","setSelectionRange"]);
1339domMemberMap.HTMLFormElement=extendArray(domMemberMap.Element,["acceptCharset","action","author","elements","encoding","enctype","entry_id","length","method","name","post","target","text","url","reset","submit"]);
1340domMemberMap.HTMLBodyElement=extendArray(domMemberMap.Element,["aLink","background","bgColor","link","text","vLink"]);
1341domMemberMap.HTMLHtmlElement=extendArray(domMemberMap.Element,["version"]);
1342domMemberMap.Text=extendArray(domMemberMap.Node,["data","length","appendData","deleteData","insertData","replaceData","splitText","substringData"]);
1343domMemberMap.Attr=extendArray(domMemberMap.Node,["name","value","specified","ownerElement"]);
1344domMemberMap.Event=["type","target","currentTarget","originalTarget","explicitOriginalTarget","relatedTarget","rangeParent","rangeOffset","view","keyCode","charCode","screenX","screenY","clientX","clientY","layerX","layerY","pageX","pageY","detail","button","which","ctrlKey","shiftKey","altKey","metaKey","eventPhase","timeStamp","bubbles","cancelable","cancelBubble","isTrusted","isChar","getPreventDefault","initEvent","initMouseEvent","initKeyEvent","initUIEvent","preventBubble","preventCapture","preventDefault","stopPropagation"];
1345this.domConstantMap={ELEMENT_NODE:1,ATTRIBUTE_NODE:1,TEXT_NODE:1,CDATA_SECTION_NODE:1,ENTITY_REFERENCE_NODE:1,ENTITY_NODE:1,PROCESSING_INSTRUCTION_NODE:1,COMMENT_NODE:1,DOCUMENT_NODE:1,DOCUMENT_TYPE_NODE:1,DOCUMENT_FRAGMENT_NODE:1,NOTATION_NODE:1,DOCUMENT_POSITION_DISCONNECTED:1,DOCUMENT_POSITION_PRECEDING:1,DOCUMENT_POSITION_FOLLOWING:1,DOCUMENT_POSITION_CONTAINS:1,DOCUMENT_POSITION_CONTAINED_BY:1,DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:1,UNKNOWN_RULE:1,STYLE_RULE:1,CHARSET_RULE:1,IMPORT_RULE:1,MEDIA_RULE:1,FONT_FACE_RULE:1,PAGE_RULE:1,CAPTURING_PHASE:1,AT_TARGET:1,BUBBLING_PHASE:1,SCROLL_PAGE_UP:1,SCROLL_PAGE_DOWN:1,MOUSEUP:1,MOUSEDOWN:1,MOUSEOVER:1,MOUSEOUT:1,MOUSEMOVE:1,MOUSEDRAG:1,CLICK:1,DBLCLICK:1,KEYDOWN:1,KEYUP:1,KEYPRESS:1,DRAGDROP:1,FOCUS:1,BLUR:1,SELECT:1,CHANGE:1,RESET:1,SUBMIT:1,SCROLL:1,LOAD:1,UNLOAD:1,XFER_DONE:1,ABORT:1,ERROR:1,LOCATE:1,MOVE:1,RESIZE:1,FORWARD:1,HELP:1,BACK:1,TEXT:1,ALT_MASK:1,CONTROL_MASK:1,SHIFT_MASK:1,META_MASK:1,DOM_VK_TAB:1,DOM_VK_PAGE_UP:1,DOM_VK_PAGE_DOWN:1,DOM_VK_UP:1,DOM_VK_DOWN:1,DOM_VK_LEFT:1,DOM_VK_RIGHT:1,DOM_VK_CANCEL:1,DOM_VK_HELP:1,DOM_VK_BACK_SPACE:1,DOM_VK_CLEAR:1,DOM_VK_RETURN:1,DOM_VK_ENTER:1,DOM_VK_SHIFT:1,DOM_VK_CONTROL:1,DOM_VK_ALT:1,DOM_VK_PAUSE:1,DOM_VK_CAPS_LOCK:1,DOM_VK_ESCAPE:1,DOM_VK_SPACE:1,DOM_VK_END:1,DOM_VK_HOME:1,DOM_VK_PRINTSCREEN:1,DOM_VK_INSERT:1,DOM_VK_DELETE:1,DOM_VK_0:1,DOM_VK_1:1,DOM_VK_2:1,DOM_VK_3:1,DOM_VK_4:1,DOM_VK_5:1,DOM_VK_6:1,DOM_VK_7:1,DOM_VK_8:1,DOM_VK_9:1,DOM_VK_SEMICOLON:1,DOM_VK_EQUALS:1,DOM_VK_A:1,DOM_VK_B:1,DOM_VK_C:1,DOM_VK_D:1,DOM_VK_E:1,DOM_VK_F:1,DOM_VK_G:1,DOM_VK_H:1,DOM_VK_I:1,DOM_VK_J:1,DOM_VK_K:1,DOM_VK_L:1,DOM_VK_M:1,DOM_VK_N:1,DOM_VK_O:1,DOM_VK_P:1,DOM_VK_Q:1,DOM_VK_R:1,DOM_VK_S:1,DOM_VK_T:1,DOM_VK_U:1,DOM_VK_V:1,DOM_VK_W:1,DOM_VK_X:1,DOM_VK_Y:1,DOM_VK_Z:1,DOM_VK_CONTEXT_MENU:1,DOM_VK_NUMPAD0:1,DOM_VK_NUMPAD1:1,DOM_VK_NUMPAD2:1,DOM_VK_NUMPAD3:1,DOM_VK_NUMPAD4:1,DOM_VK_NUMPAD5:1,DOM_VK_NUMPAD6:1,DOM_VK_NUMPAD7:1,DOM_VK_NUMPAD8:1,DOM_VK_NUMPAD9:1,DOM_VK_MULTIPLY:1,DOM_VK_ADD:1,DOM_VK_SEPARATOR:1,DOM_VK_SUBTRACT:1,DOM_VK_DECIMAL:1,DOM_VK_DIVIDE:1,DOM_VK_F1:1,DOM_VK_F2:1,DOM_VK_F3:1,DOM_VK_F4:1,DOM_VK_F5:1,DOM_VK_F6:1,DOM_VK_F7:1,DOM_VK_F8:1,DOM_VK_F9:1,DOM_VK_F10:1,DOM_VK_F11:1,DOM_VK_F12:1,DOM_VK_F13:1,DOM_VK_F14:1,DOM_VK_F15:1,DOM_VK_F16:1,DOM_VK_F17:1,DOM_VK_F18:1,DOM_VK_F19:1,DOM_VK_F20:1,DOM_VK_F21:1,DOM_VK_F22:1,DOM_VK_F23:1,DOM_VK_F24:1,DOM_VK_NUM_LOCK:1,DOM_VK_SCROLL_LOCK:1,DOM_VK_COMMA:1,DOM_VK_PERIOD:1,DOM_VK_SLASH:1,DOM_VK_BACK_QUOTE:1,DOM_VK_OPEN_BRACKET:1,DOM_VK_BACK_SLASH:1,DOM_VK_CLOSE_BRACKET:1,DOM_VK_QUOTE:1,DOM_VK_META:1,SVG_ZOOMANDPAN_DISABLE:1,SVG_ZOOMANDPAN_MAGNIFY:1,SVG_ZOOMANDPAN_UNKNOWN:1};
1346this.cssInfo={background:["bgRepeat","bgAttachment","bgPosition","color","systemColor","none"],"background-attachment":["bgAttachment"],"background-color":["color","systemColor"],"background-image":["none"],"background-position":["bgPosition"],"background-repeat":["bgRepeat"],border:["borderStyle","thickness","color","systemColor","none"],"border-top":["borderStyle","borderCollapse","color","systemColor","none"],"border-right":["borderStyle","borderCollapse","color","systemColor","none"],"border-bottom":["borderStyle","borderCollapse","color","systemColor","none"],"border-left":["borderStyle","borderCollapse","color","systemColor","none"],"border-collapse":["borderCollapse"],"border-color":["color","systemColor"],"border-top-color":["color","systemColor"],"border-right-color":["color","systemColor"],"border-bottom-color":["color","systemColor"],"border-left-color":["color","systemColor"],"border-spacing":[],"border-style":["borderStyle"],"border-top-style":["borderStyle"],"border-right-style":["borderStyle"],"border-bottom-style":["borderStyle"],"border-left-style":["borderStyle"],"border-width":["thickness"],"border-top-width":["thickness"],"border-right-width":["thickness"],"border-bottom-width":["thickness"],"border-left-width":["thickness"],bottom:["auto"],"caption-side":["captionSide"],clear:["clear","none"],clip:["auto"],color:["color","systemColor"],content:["content"],"counter-increment":["none"],"counter-reset":["none"],cursor:["cursor","none"],direction:["direction"],display:["display","none"],"empty-cells":[],"float":["float","none"],font:["fontStyle","fontVariant","fontWeight","fontFamily"],"font-family":["fontFamily"],"font-size":["fontSize"],"font-size-adjust":[],"font-stretch":[],"font-style":["fontStyle"],"font-variant":["fontVariant"],"font-weight":["fontWeight"],height:["auto"],left:["auto"],"letter-spacing":[],"line-height":[],"list-style":["listStyleType","listStylePosition","none"],"list-style-image":["none"],"list-style-position":["listStylePosition"],"list-style-type":["listStyleType","none"],margin:[],"margin-top":[],"margin-right":[],"margin-bottom":[],"margin-left":[],"marker-offset":["auto"],"min-height":["none"],"max-height":["none"],"min-width":["none"],"max-width":["none"],outline:["borderStyle","color","systemColor","none"],"outline-color":["color","systemColor"],"outline-style":["borderStyle"],"outline-width":[],overflow:["overflow","auto"],"overflow-x":["overflow","auto"],"overflow-y":["overflow","auto"],padding:[],"padding-top":[],"padding-right":[],"padding-bottom":[],"padding-left":[],position:["position"],quotes:["none"],right:["auto"],"table-layout":["tableLayout","auto"],"text-align":["textAlign"],"text-decoration":["textDecoration","none"],"text-indent":[],"text-shadow":[],"text-transform":["textTransform","none"],top:["auto"],"unicode-bidi":[],"vertical-align":["verticalAlign"],"white-space":["whiteSpace"],width:["auto"],"word-spacing":[],"z-index":[],"-moz-appearance":["mozAppearance"],"-moz-border-radius":[],"-moz-border-radius-bottomleft":[],"-moz-border-radius-bottomright":[],"-moz-border-radius-topleft":[],"-moz-border-radius-topright":[],"-moz-border-top-colors":["color","systemColor"],"-moz-border-right-colors":["color","systemColor"],"-moz-border-bottom-colors":["color","systemColor"],"-moz-border-left-colors":["color","systemColor"],"-moz-box-align":["mozBoxAlign"],"-moz-box-direction":["mozBoxDirection"],"-moz-box-flex":[],"-moz-box-ordinal-group":[],"-moz-box-orient":["mozBoxOrient"],"-moz-box-pack":["mozBoxPack"],"-moz-box-sizing":["mozBoxSizing"],"-moz-opacity":[],"-moz-user-focus":["userFocus","none"],"-moz-user-input":["userInput"],"-moz-user-modify":[],"-moz-user-select":["userSelect","none"],"-moz-background-clip":[],"-moz-background-inline-policy":[],"-moz-background-origin":[],"-moz-binding":[],"-moz-column-count":[],"-moz-column-gap":[],"-moz-column-width":[],"-moz-image-region":[]};
1347this.inheritedStyleNames={"border-collapse":1,"border-spacing":1,"border-style":1,"caption-side":1,color:1,cursor:1,direction:1,"empty-cells":1,font:1,"font-family":1,"font-size-adjust":1,"font-size":1,"font-style":1,"font-variant":1,"font-weight":1,"letter-spacing":1,"line-height":1,"list-style":1,"list-style-image":1,"list-style-position":1,"list-style-type":1,quotes:1,"text-align":1,"text-decoration":1,"text-indent":1,"text-shadow":1,"text-transform":1,"white-space":1,"word-spacing":1};
1348this.cssKeywords={appearance:["button","button-small","checkbox","checkbox-container","checkbox-small","dialog","listbox","menuitem","menulist","menulist-button","menulist-textfield","menupopup","progressbar","radio","radio-container","radio-small","resizer","scrollbar","scrollbarbutton-down","scrollbarbutton-left","scrollbarbutton-right","scrollbarbutton-up","scrollbartrack-horizontal","scrollbartrack-vertical","separator","statusbar","tab","tab-left-edge","tabpanels","textfield","toolbar","toolbarbutton","toolbox","tooltip","treeheadercell","treeheadersortarrow","treeitem","treetwisty","treetwistyopen","treeview","window"],systemColor:["ActiveBorder","ActiveCaption","AppWorkspace","Background","ButtonFace","ButtonHighlight","ButtonShadow","ButtonText","CaptionText","GrayText","Highlight","HighlightText","InactiveBorder","InactiveCaption","InactiveCaptionText","InfoBackground","InfoText","Menu","MenuText","Scrollbar","ThreeDDarkShadow","ThreeDFace","ThreeDHighlight","ThreeDLightShadow","ThreeDShadow","Window","WindowFrame","WindowText","-moz-field","-moz-fieldtext","-moz-workspace","-moz-visitedhyperlinktext","-moz-use-text-color"],color:["AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenRod","DarkGray","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","DarkOrange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkTurquoise","DarkViolet","DeepPink","DarkSkyBlue","DimGray","DodgerBlue","Feldspar","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","GoldenRod","Gray","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenRodYellow","LightGrey","LightGreen","LightPink","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateBlue","LightSlateGray","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquaMarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenRod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","VioletRed","Wheat","White","WhiteSmoke","Yellow","YellowGreen","transparent","invert"],auto:["auto"],none:["none"],captionSide:["top","bottom","left","right"],clear:["left","right","both"],cursor:["auto","cell","context-menu","crosshair","default","help","pointer","progress","move","e-resize","all-scroll","ne-resize","nw-resize","n-resize","se-resize","sw-resize","s-resize","w-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","col-resize","row-resize","text","vertical-text","wait","alias","copy","move","no-drop","not-allowed","-moz-alias","-moz-cell","-moz-copy","-moz-grab","-moz-grabbing","-moz-contextmenu","-moz-zoom-in","-moz-zoom-out","-moz-spinning"],direction:["ltr","rtl"],bgAttachment:["scroll","fixed"],bgPosition:["top","center","bottom","left","right"],bgRepeat:["repeat","repeat-x","repeat-y","no-repeat"],borderStyle:["hidden","dotted","dashed","solid","double","groove","ridge","inset","outset","-moz-bg-inset","-moz-bg-outset","-moz-bg-solid"],borderCollapse:["collapse","separate"],overflow:["visible","hidden","scroll","-moz-scrollbars-horizontal","-moz-scrollbars-none","-moz-scrollbars-vertical"],listStyleType:["disc","circle","square","decimal","decimal-leading-zero","lower-roman","upper-roman","lower-greek","lower-alpha","lower-latin","upper-alpha","upper-latin","hebrew","armenian","georgian","cjk-ideographic","hiragana","katakana","hiragana-iroha","katakana-iroha","inherit"],listStylePosition:["inside","outside"],content:["open-quote","close-quote","no-open-quote","no-close-quote","inherit"],fontStyle:["normal","italic","oblique","inherit"],fontVariant:["normal","small-caps","inherit"],fontWeight:["normal","bold","bolder","lighter","inherit"],fontSize:["xx-small","x-small","small","medium","large","x-large","xx-large","smaller","larger"],fontFamily:["Arial","Comic Sans MS","Georgia","Tahoma","Verdana","Times New Roman","Trebuchet MS","Lucida Grande","Helvetica","serif","sans-serif","cursive","fantasy","monospace","caption","icon","menu","message-box","small-caption","status-bar","inherit"],display:["block","inline","inline-block","list-item","marker","run-in","compact","table","inline-table","table-row-group","table-column","table-column-group","table-header-group","table-footer-group","table-row","table-cell","table-caption","-moz-box","-moz-compact","-moz-deck","-moz-grid","-moz-grid-group","-moz-grid-line","-moz-groupbox","-moz-inline-block","-moz-inline-box","-moz-inline-grid","-moz-inline-stack","-moz-inline-table","-moz-marker","-moz-popup","-moz-runin","-moz-stack"],position:["static","relative","absolute","fixed","inherit"],"float":["left","right"],textAlign:["left","right","center","justify"],tableLayout:["fixed"],textDecoration:["underline","overline","line-through","blink"],textTransform:["capitalize","lowercase","uppercase","inherit"],unicodeBidi:["normal","embed","bidi-override"],whiteSpace:["normal","pre","nowrap"],verticalAlign:["baseline","sub","super","top","text-top","middle","bottom","text-bottom","inherit"],thickness:["thin","medium","thick"],userFocus:["ignore","normal"],userInput:["disabled","enabled"],userSelect:["normal"],mozBoxSizing:["content-box","padding-box","border-box"],mozBoxAlign:["start","center","end","baseline","stretch"],mozBoxDirection:["normal","reverse"],mozBoxOrient:["horizontal","vertical"],mozBoxPack:["start","center","end"]};
1349this.nonEditableTags={HTML:1,HEAD:1,html:1,head:1};
1350this.innerEditableTags={BODY:1,body:1};
1351this.selfClosingTags={meta:1,link:1,area:1,base:1,col:1,input:1,img:1,br:1,hr:1,param:1,embed:1};
1352var invisibleTags=this.invisibleTags={HTML:1,HEAD:1,TITLE:1,META:1,LINK:1,STYLE:1,SCRIPT:1,NOSCRIPT:1,BR:1,PARAM:1,COL:1,html:1,head:1,title:1,meta:1,link:1,style:1,script:1,noscript:1,br:1,param:1,col:1};
1353if(typeof KeyEvent=="undefined"){this.KeyEvent={DOM_VK_CANCEL:3,DOM_VK_HELP:6,DOM_VK_BACK_SPACE:8,DOM_VK_TAB:9,DOM_VK_CLEAR:12,DOM_VK_RETURN:13,DOM_VK_ENTER:14,DOM_VK_SHIFT:16,DOM_VK_CONTROL:17,DOM_VK_ALT:18,DOM_VK_PAUSE:19,DOM_VK_CAPS_LOCK:20,DOM_VK_ESCAPE:27,DOM_VK_SPACE:32,DOM_VK_PAGE_UP:33,DOM_VK_PAGE_DOWN:34,DOM_VK_END:35,DOM_VK_HOME:36,DOM_VK_LEFT:37,DOM_VK_UP:38,DOM_VK_RIGHT:39,DOM_VK_DOWN:40,DOM_VK_PRINTSCREEN:44,DOM_VK_INSERT:45,DOM_VK_DELETE:46,DOM_VK_0:48,DOM_VK_1:49,DOM_VK_2:50,DOM_VK_3:51,DOM_VK_4:52,DOM_VK_5:53,DOM_VK_6:54,DOM_VK_7:55,DOM_VK_8:56,DOM_VK_9:57,DOM_VK_SEMICOLON:59,DOM_VK_EQUALS:61,DOM_VK_A:65,DOM_VK_B:66,DOM_VK_C:67,DOM_VK_D:68,DOM_VK_E:69,DOM_VK_F:70,DOM_VK_G:71,DOM_VK_H:72,DOM_VK_I:73,DOM_VK_J:74,DOM_VK_K:75,DOM_VK_L:76,DOM_VK_M:77,DOM_VK_N:78,DOM_VK_O:79,DOM_VK_P:80,DOM_VK_Q:81,DOM_VK_R:82,DOM_VK_S:83,DOM_VK_T:84,DOM_VK_U:85,DOM_VK_V:86,DOM_VK_W:87,DOM_VK_X:88,DOM_VK_Y:89,DOM_VK_Z:90,DOM_VK_CONTEXT_MENU:93,DOM_VK_NUMPAD0:96,DOM_VK_NUMPAD1:97,DOM_VK_NUMPAD2:98,DOM_VK_NUMPAD3:99,DOM_VK_NUMPAD4:100,DOM_VK_NUMPAD5:101,DOM_VK_NUMPAD6:102,DOM_VK_NUMPAD7:103,DOM_VK_NUMPAD8:104,DOM_VK_NUMPAD9:105,DOM_VK_MULTIPLY:106,DOM_VK_ADD:107,DOM_VK_SEPARATOR:108,DOM_VK_SUBTRACT:109,DOM_VK_DECIMAL:110,DOM_VK_DIVIDE:111,DOM_VK_F1:112,DOM_VK_F2:113,DOM_VK_F3:114,DOM_VK_F4:115,DOM_VK_F5:116,DOM_VK_F6:117,DOM_VK_F7:118,DOM_VK_F8:119,DOM_VK_F9:120,DOM_VK_F10:121,DOM_VK_F11:122,DOM_VK_F12:123,DOM_VK_F13:124,DOM_VK_F14:125,DOM_VK_F15:126,DOM_VK_F16:127,DOM_VK_F17:128,DOM_VK_F18:129,DOM_VK_F19:130,DOM_VK_F20:131,DOM_VK_F21:132,DOM_VK_F22:133,DOM_VK_F23:134,DOM_VK_F24:135,DOM_VK_NUM_LOCK:144,DOM_VK_SCROLL_LOCK:145,DOM_VK_COMMA:188,DOM_VK_PERIOD:190,DOM_VK_SLASH:191,DOM_VK_BACK_QUOTE:192,DOM_VK_OPEN_BRACKET:219,DOM_VK_BACK_SLASH:220,DOM_VK_CLOSE_BRACKET:221,DOM_VK_QUOTE:222,DOM_VK_META:224}
1354}this.Ajax={requests:[],transport:null,states:["Uninitialized","Loading","Loaded","Interactive","Complete"],initialize:function(){this.transport=FBL.getNativeXHRObject()
1355},getXHRObject:function(){var xhrObj=false;
1356try{xhrObj=new XMLHttpRequest()
1357}catch(e){var progid=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
1358for(var i=0;
1359i<progid.length;
1360++i){try{xhrObj=new ActiveXObject(progid[i])
1361}catch(e){continue
1362}break
1363}}finally{return xhrObj
1364}},request:function(options){var o=FBL.extend({type:"get",async:true,dataType:"text",contentType:"application/x-www-form-urlencoded"},options||{});
1365this.requests.push(o);
1366var s=this.getState();
1367if(s=="Uninitialized"||s=="Complete"||s=="Loaded"){this.sendRequest()
1368}},serialize:function(data){var r=[""],rl=0;
1369if(data){if(typeof data=="string"){r[rl++]=data
1370}else{if(data.innerHTML&&data.elements){for(var i=0,el,l=(el=data.elements).length;
1371i<l;
1372i++){if(el[i].name){r[rl++]=encodeURIComponent(el[i].name);
1373r[rl++]="=";
1374r[rl++]=encodeURIComponent(el[i].value);
1375r[rl++]="&"
1376}}}else{for(var param in data){r[rl++]=encodeURIComponent(param);
1377r[rl++]="=";
1378r[rl++]=encodeURIComponent(data[param]);
1379r[rl++]="&"
1380}}}}return r.join("").replace(/&$/,"")
1381},sendRequest:function(){var t=FBL.Ajax.transport,r=FBL.Ajax.requests.shift(),data;
1382t.open(r.type,r.url,r.async);
1383t.setRequestHeader("X-Requested-With","XMLHttpRequest");
1384if(data=FBL.Ajax.serialize(r.data)){t.setRequestHeader("Content-Type",r.contentType)
1385}t.onreadystatechange=function(){FBL.Ajax.onStateChange(r)
1386};
1387t.send(data)
1388},onStateChange:function(options){var fn,o=options,t=this.transport;
1389var state=this.getState(t);
1390if(fn=o["on"+state]){fn(this.getResponse(o),o)
1391}if(state=="Complete"){var success=t.status==200,response=this.getResponse(o);
1392if(fn=o.onUpdate){fn(response,o)
1393}if(fn=o["on"+(success?"Success":"Failure")]){fn(response,o)
1394}t.onreadystatechange=FBL.emptyFn;
1395if(this.requests.length>0){setTimeout(this.sendRequest,10)
1396}}},getResponse:function(options){var t=this.transport,type=options.dataType;
1397if(t.status!=200){return t.statusText
1398}else{if(type=="text"){return t.responseText
1399}else{if(type=="html"){return t.responseText
1400}else{if(type=="xml"){return t.responseXML
1401}else{if(type=="json"){return eval("("+t.responseText+")")
1402}}}}}},getState:function(){return this.states[this.transport.readyState]
1403}};
1404this.createCookie=function(name,value,days){if("cookie" in document){if(days){var date=new Date();
1405date.setTime(date.getTime()+(days*24*60*60*1000));
1406var expires="; expires="+date.toGMTString()
1407}else{var expires=""
1408}document.cookie=name+"="+value+expires+"; path=/"
1409}};
1410this.readCookie=function(name){if("cookie" in document){var nameEQ=name+"=";
1411var ca=document.cookie.split(";");
1412for(var i=0;
1413i<ca.length;
1414i++){var c=ca[i];
1415while(c.charAt(0)==" "){c=c.substring(1,c.length)
1416}if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length)
1417}}}return null
1418};
1419this.removeCookie=function(name){this.createCookie(name,"",-1)
1420};
1421var fixIE6BackgroundImageCache=function(doc){doc=doc||document;
1422try{doc.execCommand("BackgroundImageCache",false,true)
1423}catch(E){}};
1424var resetStyle="margin:0; padding:0; border:0; position:absolute; overflow:hidden; display:block;";
1425var calculatePixelsPerInch=function calculatePixelsPerInch(doc,body){var inch=FBL.createGlobalElement("div");
1426inch.style.cssText=resetStyle+"width:1in; height:1in; position:absolute; top:-1234px; left:-1234px;";
1427body.appendChild(inch);
1428FBL.pixelsPerInch={x:inch.offsetWidth,y:inch.offsetHeight};
1429body.removeChild(inch)
1430};
1431this.SourceLink=function(url,line,type,object,instance){this.href=url;
1432this.instance=instance;
1433this.line=line;
1434this.type=type;
1435this.object=object
1436};
1437this.SourceLink.prototype={toString:function(){return this.href
1438},toJSON:function(){return'{"href":"'+this.href+'", '+(this.line?('"line":'+this.line+","):"")+(this.type?(' "type":"'+this.type+'",'):"")+"}"
1439}};
1440this.SourceText=function(lines,owner){this.lines=lines;
1441this.owner=owner
1442};
1443this.SourceText.getLineAsHTML=function(lineNo){return escapeForSourceLine(this.lines[lineNo-1])
1444}
1445}).apply(FBL);
1446FBL.ns(function(){with(FBL){var oSTR={NoMembersWarning:"There are no properties to show for this object.",EmptyStyleSheet:"There are no rules in this stylesheet.",EmptyElementCSS:"This element has no style rules.",AccessRestricted:"Access to restricted URI denied.","net.label.Parameters":"Parameters","net.label.Source":"Source",URLParameters:"Params",EditStyle:"Edit Element Style...",NewRule:"New Rule...",NewProp:"New Property...",EditProp:'Edit "%s"',DeleteProp:'Delete "%s"',DisableProp:'Disable "%s"'};
1447FBL.$STR=function(name){return oSTR.hasOwnProperty(name)?oSTR[name]:name
1448};
1449FBL.$STRF=function(name,args){if(!oSTR.hasOwnProperty(name)){return name
1450}var format=oSTR[name];
1451var objIndex=0;
1452var parts=parseFormat(format);
1453var trialIndex=objIndex;
1454var objects=args;
1455for(var i=0;
1456i<parts.length;
1457i++){var part=parts[i];
1458if(part&&typeof(part)=="object"){if(++trialIndex>objects.length){format="";
1459objIndex=-1;
1460parts.length=0;
1461break
1462}}}var result=[];
1463for(var i=0;
1464i<parts.length;
1465++i){var part=parts[i];
1466if(part&&typeof(part)=="object"){result.push(""+args.shift())
1467}else{result.push(part)
1468}}return result.join("")
1469};
1470var parseFormat=function parseFormat(format){var parts=[];
1471if(format.length<=0){return parts
1472}var reg=/((^%|.%)(\d+)?(\.)([a-zA-Z]))|((^%|.%)([a-zA-Z]))/;
1473for(var m=reg.exec(format);
1474m;
1475m=reg.exec(format)){if(m[0].substr(0,2)=="%%"){parts.push(format.substr(0,m.index));
1476parts.push(m[0].substr(1))
1477}else{var type=m[8]?m[8]:m[5];
1478var precision=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);
1479var rep=null;
1480switch(type){case"s":rep=FirebugReps.Text;
1481break;
1482case"f":case"i":case"d":rep=FirebugReps.Number;
1483break;
1484case"o":rep=null;
1485break
1486}parts.push(format.substr(0,m[0][0]=="%"?m.index:m.index+1));
1487parts.push({rep:rep,precision:precision,type:("%"+type)})
1488}format=format.substr(m.index+m[0].length)
1489}parts.push(format);
1490return parts
1491}
1492}});
1493FBL.ns(function(){with(FBL){var modules=[];
1494var panelTypes=[];
1495var panelTypeMap={};
1496var reps=[];
1497var parentPanelMap={};
1498FBL.Firebug={version:"Firebug Lite 1.4.0",revision:"$Revision: 11967 $",modules:modules,panelTypes:panelTypes,panelTypeMap:panelTypeMap,reps:reps,initialize:function(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.initialize","initializing application")
1499}Firebug.browser=new Context(Env.browser);
1500Firebug.context=Firebug.browser;
1501Firebug.loadPrefs();
1502Firebug.context.persistedState.isOpen=false;
1503cacheDocument();
1504if(Firebug.Inspector&&Firebug.Inspector.create){Firebug.Inspector.create()
1505}if(FBL.CssAnalyzer&&FBL.CssAnalyzer.processAllStyleSheets){FBL.CssAnalyzer.processAllStyleSheets(Firebug.browser.document)
1506}FirebugChrome.initialize();
1507dispatch(modules,"initialize",[]);
1508if(Firebug.disableResourceFetching){Firebug.Console.logFormatted(['Some Firebug Lite features are not working because resource fetching is disabled. To enabled it set the Firebug Lite option "disableResourceFetching" to "false". More info at http://getfirebug.com/firebuglite#Options'],Firebug.context,"warn")
1509}if(Env.onLoad){var onLoad=Env.onLoad;
1510delete Env.onLoad;
1511setTimeout(onLoad,200)
1512}},shutdown:function(){if(Firebug.saveCookies){Firebug.savePrefs()
1513}if(Firebug.Inspector){Firebug.Inspector.destroy()
1514}dispatch(modules,"shutdown",[]);
1515var chromeMap=FirebugChrome.chromeMap;
1516for(var name in chromeMap){if(chromeMap.hasOwnProperty(name)){try{chromeMap[name].destroy()
1517}catch(E){if(FBTrace.DBG_ERRORS){FBTrace.sysout("chrome.destroy() failed to: "+name)
1518}}}}Firebug.Lite.Cache.Element.clear();
1519Firebug.Lite.Cache.StyleSheet.clear();
1520Firebug.browser=null;
1521Firebug.context=null
1522},registerModule:function(){modules.push.apply(modules,arguments);
1523if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.registerModule")
1524}},registerPanel:function(){panelTypes.push.apply(panelTypes,arguments);
1525for(var i=0,panelType;
1526panelType=arguments[i];
1527++i){panelTypeMap[panelType.prototype.name]=arguments[i];
1528if(panelType.prototype.parentPanel){parentPanelMap[panelType.prototype.parentPanel]=1
1529}}if(FBTrace.DBG_INITIALIZE){for(var i=0;
1530i<arguments.length;
1531++i){FBTrace.sysout("Firebug.registerPanel",arguments[i].prototype.name)
1532}}},registerRep:function(){reps.push.apply(reps,arguments)
1533},unregisterRep:function(){for(var i=0;
1534i<arguments.length;
1535++i){remove(reps,arguments[i])
1536}},setDefaultReps:function(funcRep,rep){FBL.defaultRep=rep;
1537FBL.defaultFuncRep=funcRep
1538},getRep:function(object){var type=typeof object;
1539if(isIE&&isFunction(object)){type="function"
1540}for(var i=0;
1541i<reps.length;
1542++i){var rep=reps[i];
1543try{if(rep.supportsObject(object,type)){if(FBTrace.DBG_DOM){FBTrace.sysout("getRep type: "+type+" object: "+object,rep)
1544}return rep
1545}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("firebug.getRep FAILS: ",exc.message||exc);
1546FBTrace.sysout("firebug.getRep reps["+i+"/"+reps.length+"]: Rep="+reps[i].className)
1547}}}return(type=="function")?defaultFuncRep:defaultRep
1548},getRepObject:function(node){var target=null;
1549for(var child=node;
1550child;
1551child=child.parentNode){if(hasClass(child,"repTarget")){target=child
1552}if(child.repObject){if(!target&&hasClass(child,"repIgnore")){break
1553}else{return child.repObject
1554}}}},getRepNode:function(node){for(var child=node;
1555child;
1556child=child.parentNode){if(child.repObject){return child
1557}}},getElementByRepObject:function(element,object){for(var child=element.firstChild;
1558child;
1559child=child.nextSibling){if(child.repObject==object){return child
1560}}},getPref:function(name){return Firebug[name]
1561},setPref:function(name,value){Firebug[name]=value;
1562Firebug.savePrefs()
1563},setPrefs:function(prefs){for(var name in prefs){if(prefs.hasOwnProperty(name)){Firebug[name]=prefs[name]
1564}}Firebug.savePrefs()
1565},restorePrefs:function(){var Options=Env.DefaultOptions;
1566for(var name in Options){Firebug[name]=Options[name]
1567}},loadPrefs:function(){this.restorePrefs();
1568var prefs=Store.get("FirebugLite")||{};
1569var options=prefs.options;
1570var persistedState=prefs.persistedState||FBL.defaultPersistedState;
1571for(var name in options){if(options.hasOwnProperty(name)){Firebug[name]=options[name]
1572}}if(Firebug.context&&persistedState){Firebug.context.persistedState=persistedState
1573}},savePrefs:function(){var prefs={options:{}};
1574var EnvOptions=Env.Options;
1575var options=prefs.options;
1576for(var name in EnvOptions){if(EnvOptions.hasOwnProperty(name)){options[name]=Firebug[name]
1577}}var persistedState=Firebug.context.persistedState;
1578if(!persistedState){persistedState=Firebug.context.persistedState=FBL.defaultPersistedState
1579}prefs.persistedState=persistedState;
1580Store.set("FirebugLite",prefs)
1581},erasePrefs:function(){Store.remove("FirebugLite");
1582this.restorePrefs()
1583}};
1584Firebug.restorePrefs();
1585window.Firebug=FBL.Firebug;
1586if(!Env.Options.enablePersistent||Env.Options.enablePersistent&&Env.isChromeContext||Env.isDebugMode){Env.browser.window.Firebug=FBL.Firebug
1587}FBL.cacheDocument=function cacheDocument(){var ElementCache=Firebug.Lite.Cache.Element;
1588var els=Firebug.browser.document.getElementsByTagName("*");
1589for(var i=0,l=els.length,el;
1590i<l;
1591i++){el=els[i];
1592ElementCache(el)
1593}};
1594Firebug.Listener=function(){this.fbListeners=null
1595};
1596Firebug.Listener.prototype={addListener:function(listener){if(!this.fbListeners){this.fbListeners=[]
1597}this.fbListeners.push(listener)
1598},removeListener:function(listener){remove(this.fbListeners,listener)
1599}};
1600Firebug.Module=extend(new Firebug.Listener(),{initialize:function(){},shutdown:function(){},initContext:function(context){},reattachContext:function(browser,context){},destroyContext:function(context,persistedState){},showContext:function(browser,context){},loadedContext:function(context){},showPanel:function(browser,panel){},showSidePanel:function(browser,panel){},updateOption:function(name,value){},getObjectByURL:function(context,url){}});
1601Firebug.Panel={name:"HelloWorld",title:"Hello World!",parentPanel:null,options:{hasCommandLine:false,hasStatusBar:false,hasToolButtons:false,isPreRendered:false,innerHTMLSync:false},tabNode:null,panelNode:null,sidePanelNode:null,statusBarNode:null,toolButtonsNode:null,panelBarNode:null,sidePanelBarBoxNode:null,sidePanelBarNode:null,sidePanelBar:null,searchable:false,editable:true,order:2147483647,statusSeparator:"<",create:function(context,doc){this.hasSidePanel=parentPanelMap.hasOwnProperty(this.name);
1602this.panelBarNode=$("fbPanelBar1");
1603this.sidePanelBarBoxNode=$("fbPanelBar2");
1604if(this.hasSidePanel){this.sidePanelBar=extend({},PanelBar);
1605this.sidePanelBar.create(this)
1606}var options=this.options=extend(Firebug.Panel.options,this.options);
1607var panelId="fb"+this.name;
1608if(options.isPreRendered){this.panelNode=$(panelId);
1609this.tabNode=$(panelId+"Tab");
1610this.tabNode.style.display="block";
1611if(options.hasToolButtons){this.toolButtonsNode=$(panelId+"Buttons")
1612}if(options.hasStatusBar){this.statusBarBox=$("fbStatusBarBox");
1613this.statusBarNode=$(panelId+"StatusBar")
1614}}else{var containerSufix=this.parentPanel?"2":"1";
1615var panelNode=this.panelNode=createElement("div",{id:panelId,className:"fbPanel"});
1616$("fbPanel"+containerSufix).appendChild(panelNode);
1617var tabHTML='<span class="fbTabL"></span><span class="fbTabText">'+this.title+'</span><span class="fbTabR"></span>';
1618var tabNode=this.tabNode=createElement("a",{id:panelId+"Tab",className:"fbTab fbHover",innerHTML:tabHTML});
1619if(isIE6){tabNode.href="javascript:void(0)"
1620}var panelBarNode=this.parentPanel?Firebug.chrome.getPanel(this.parentPanel).sidePanelBarNode:this.panelBarNode;
1621panelBarNode.appendChild(tabNode);
1622tabNode.style.display="block";
1623if(options.hasToolButtons){this.toolButtonsNode=createElement("span",{id:panelId+"Buttons",className:"fbToolbarButtons"});
1624$("fbToolbarButtons").appendChild(this.toolButtonsNode)
1625}if(options.hasStatusBar){this.statusBarBox=$("fbStatusBarBox");
1626this.statusBarNode=createElement("span",{id:panelId+"StatusBar",className:"fbToolbarButtons fbStatusBar"});
1627this.statusBarBox.appendChild(this.statusBarNode)
1628}}this.containerNode=this.panelNode.parentNode;
1629if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.Panel.create",this.name)
1630}this.onContextMenu=bind(this.onContextMenu,this)
1631},destroy:function(state){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.Panel.destroy",this.name)
1632}if(this.hasSidePanel){this.sidePanelBar.destroy();
1633this.sidePanelBar=null
1634}this.options=null;
1635this.name=null;
1636this.parentPanel=null;
1637this.tabNode=null;
1638this.panelNode=null;
1639this.containerNode=null;
1640this.toolButtonsNode=null;
1641this.statusBarBox=null;
1642this.statusBarNode=null
1643},initialize:function(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.Panel.initialize",this.name)
1644}if(this.hasSidePanel){this.sidePanelBar.initialize()
1645}var options=this.options=extend(Firebug.Panel.options,this.options);
1646var panelId="fb"+this.name;
1647this.panelNode=$(panelId);
1648this.tabNode=$(panelId+"Tab");
1649this.tabNode.style.display="block";
1650if(options.hasStatusBar){this.statusBarBox=$("fbStatusBarBox");
1651this.statusBarNode=$(panelId+"StatusBar")
1652}if(options.hasToolButtons){this.toolButtonsNode=$(panelId+"Buttons")
1653}this.containerNode=this.panelNode.parentNode;
1654this.containerNode.scrollTop=this.lastScrollTop;
1655addEvent(this.containerNode,"contextmenu",this.onContextMenu);
1656Firebug.chrome.currentPanel=Firebug.chrome.selectedPanel&&Firebug.chrome.selectedPanel.sidePanelBar?Firebug.chrome.selectedPanel.sidePanelBar.selectedPanel:Firebug.chrome.selectedPanel;
1657Firebug.showInfoTips=true;
1658if(Firebug.InfoTip){Firebug.InfoTip.initializeBrowser(Firebug.chrome)
1659}},shutdown:function(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.Panel.shutdown",this.name)
1660}if(Firebug.InfoTip){Firebug.InfoTip.uninitializeBrowser(Firebug.chrome)
1661}if(Firebug.chrome.largeCommandLineVisible){Firebug.chrome.hideLargeCommandLine()
1662}if(this.hasSidePanel){}this.lastScrollTop=this.containerNode.scrollTop;
1663removeEvent(this.containerNode,"contextmenu",this.onContextMenu)
1664},detach:function(oldChrome,newChrome){if(oldChrome&&oldChrome.selectedPanel&&oldChrome.selectedPanel.name==this.name){this.lastScrollTop=oldChrome.selectedPanel.containerNode.scrollTop
1665}},reattach:function(doc){if(this.options.innerHTMLSync){this.synchronizeUI()
1666}},synchronizeUI:function(){this.containerNode.scrollTop=this.lastScrollTop||0
1667},show:function(state){var options=this.options;
1668if(options.hasStatusBar){this.statusBarBox.style.display="inline";
1669this.statusBarNode.style.display="inline"
1670}if(options.hasToolButtons){this.toolButtonsNode.style.display="inline"
1671}this.panelNode.style.display="block";
1672this.visible=true;
1673if(!this.parentPanel){Firebug.chrome.layout(this)
1674}},hide:function(state){var options=this.options;
1675if(options.hasStatusBar){this.statusBarBox.style.display="none";
1676this.statusBarNode.style.display="none"
1677}if(options.hasToolButtons){this.toolButtonsNode.style.display="none"
1678}this.panelNode.style.display="none";
1679this.visible=false
1680},watchWindow:function(win){},unwatchWindow:function(win){},updateOption:function(name,value){},showToolbarButtons:function(buttonsId,show){try{if(!this.context.browser){if(FBTrace.DBG_ERRORS){FBTrace.sysout("firebug.Panel showToolbarButtons this.context has no browser, this:",this)
1681}return
1682}var buttons=this.context.browser.chrome.$(buttonsId);
1683if(buttons){collapse(buttons,show?"false":"true")
1684}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.dumpProperties("firebug.Panel showToolbarButtons FAILS",exc);
1685if(!this.context.browser){FBTrace.dumpStack("firebug.Panel showToolbarButtons no browser")
1686}}}},supportsObject:function(object){return 0
1687},hasObject:function(object){return false
1688},select:function(object,forceUpdate){if(!object){object=this.getDefaultSelection(this.context)
1689}if(FBTrace.DBG_PANELS){FBTrace.sysout("firebug.select "+this.name+" forceUpdate: "+forceUpdate+" "+object+((object==this.selection)?"==":"!=")+this.selection)
1690}if(forceUpdate||object!=this.selection){this.selection=object;
1691this.updateSelection(object)
1692}},updateSelection:function(object){},markChange:function(skipSelf){if(this.dependents){if(skipSelf){for(var i=0;
1693i<this.dependents.length;
1694++i){var panelName=this.dependents[i];
1695if(panelName!=this.name){this.context.invalidatePanels(panelName)
1696}}}else{this.context.invalidatePanels.apply(this.context,this.dependents)
1697}}},startInspecting:function(){},stopInspecting:function(object,cancelled){},search:function(text,reverse){},getSearchOptionsMenuItems:function(){return[Firebug.Search.searchOptionMenu("search.Case Sensitive","searchCaseSensitive")]
1698},navigateToNextDocument:function(match,reverse){var self=this;
1699function compare(a,b){var locA=self.getObjectDescription(a);
1700var locB=self.getObjectDescription(b);
1701if(locA.path>locB.path){return 1
1702}if(locA.path<locB.path){return -1
1703}if(locA.name>locB.name){return 1
1704}if(locA.name<locB.name){return -1
1705}return 0
1706}var allLocs=this.getLocationList().sort(compare);
1707for(var curPos=0;
1708curPos<allLocs.length&&allLocs[curPos]!=this.location;
1709curPos++){}function transformIndex(index){if(reverse){var intermediate=curPos-index-1;
1710return(intermediate<0?allLocs.length:0)+intermediate
1711}else{return(curPos+index+1)%allLocs.length
1712}}for(var next=0;
1713next<allLocs.length-1;
1714next++){var object=allLocs[transformIndex(next)];
1715if(match(object)){this.navigate(object);
1716return object
1717}}},getOptionsMenuItems:function(){return null
1718},getContextMenuItems:function(object,target){return[]
1719},getBreakOnMenuItems:function(){return[]
1720},getEditor:function(target,value){},getDefaultSelection:function(){return null
1721},browseObject:function(object){},getPopupObject:function(target){return Firebug.getRepObject(target)
1722},getTooltipObject:function(target){return Firebug.getRepObject(target)
1723},showInfoTip:function(infoTip,x,y){},getObjectPath:function(object){return null
1724},getLocationList:function(){return null
1725},getDefaultLocation:function(){return null
1726},getObjectLocation:function(object){return""
1727},getObjectDescription:function(object){var url=this.getObjectLocation(object);
1728return FBL.splitURLBase(url)
1729},highlight:function(show){var tab=this.getTab();
1730if(!tab){return
1731}if(show){tab.setAttribute("highlight","true")
1732}else{tab.removeAttribute("highlight")
1733}},getTab:function(){var chrome=Firebug.chrome;
1734var tab=chrome.$("fbPanelBar2").getTab(this.name);
1735if(!tab){tab=chrome.$("fbPanelBar1").getTab(this.name)
1736}return tab
1737},breakOnNext:function(armed){},shouldBreakOnNext:function(){return false
1738},getBreakOnNextTooltip:function(enabled){return null
1739},onContextMenu:function(event){if(!this.getContextMenuItems){return
1740}cancelEvent(event,true);
1741var target=event.target||event.srcElement;
1742var menu=this.getContextMenuItems(this.selection,target);
1743if(!menu){return
1744}var contextMenu=new Menu({id:"fbPanelContextMenu",items:menu});
1745contextMenu.show(event.clientX,event.clientY);
1746return true
1747}};
1748Firebug.MeasureBox={startMeasuring:function(target){if(!this.measureBox){this.measureBox=target.ownerDocument.createElement("span");
1749this.measureBox.className="measureBox"
1750}copyTextStyles(target,this.measureBox);
1751target.ownerDocument.body.appendChild(this.measureBox)
1752},getMeasuringElement:function(){return this.measureBox
1753},measureText:function(value){this.measureBox.innerHTML=value?escapeForSourceLine(value):"m";
1754return{width:this.measureBox.offsetWidth,height:this.measureBox.offsetHeight-1}
1755},measureInputText:function(value){value=value?escapeForTextNode(value):"m";
1756if(!Firebug.showTextNodesWithWhitespace){value=value.replace(/\t/g,"mmmmmm").replace(/\ /g,"m")
1757}this.measureBox.innerHTML=value;
1758return{width:this.measureBox.offsetWidth,height:this.measureBox.offsetHeight-1}
1759},getBox:function(target){var style=this.measureBox.ownerDocument.defaultView.getComputedStyle(this.measureBox,"");
1760var box=getBoxFromStyles(style,this.measureBox);
1761return box
1762},stopMeasuring:function(){this.measureBox.parentNode.removeChild(this.measureBox)
1763}};
1764if(FBL.domplate){Firebug.Rep=domplate({className:"",inspectable:true,supportsObject:function(object,type){return false
1765},inspectObject:function(object,context){Firebug.chrome.select(object)
1766},browseObject:function(object,context){},persistObject:function(object,context){},getRealObject:function(object,context){return object
1767},getTitle:function(object){var label=safeToString(object);
1768var re=/\[object (.*?)\]/;
1769var m=re.exec(label);
1770if(m){return m[1]
1771}else{if(isIE&&(label=="[object]"||typeof object=="object"&&typeof label=="undefined")){return"Object"
1772}else{return label
1773}}},getTooltip:function(object){return null
1774},getContextMenuItems:function(object,target,context){return[]
1775},STR:function(name){return $STR(name)
1776},cropString:function(text){return cropString(text)
1777},cropMultipleLines:function(text,limit){return cropMultipleLines(text,limit)
1778},toLowerCase:function(text){return text?text.toLowerCase():text
1779},plural:function(n){return n==1?"":"s"
1780}})
1781}}});
1782FBL.ns(function(){with(FBL){FBL.Controller={controllers:null,controllerContext:null,initialize:function(context){this.controllers=[];
1783this.controllerContext=context||Firebug.chrome
1784},shutdown:function(){this.removeControllers()
1785},addController:function(){for(var i=0,arg;
1786arg=arguments[i];
1787i++){if(typeof arg[0]=="string"){arg[0]=$$(arg[0],this.controllerContext)
1788}var handler=arg[2];
1789arg[2]=bind(handler,this);
1790arg[3]=handler;
1791this.controllers.push(arg);
1792addEvent.apply(this,arg)
1793}},removeController:function(){for(var i=0,arg;
1794arg=arguments[i];
1795i++){for(var j=0,c;
1796c=this.controllers[j];
1797j++){if(arg[0]==c[0]&&arg[1]==c[1]&&arg[2]==c[3]){removeEvent.apply(this,c)
1798}}}},removeControllers:function(){for(var i=0,c;
1799c=this.controllers[i];
1800i++){removeEvent.apply(this,c)
1801}}};
1802FBL.PanelBar={panelMap:null,selectedPanel:null,parentPanelName:null,create:function(ownerPanel){this.panelMap={};
1803this.ownerPanel=ownerPanel;
1804if(ownerPanel){ownerPanel.sidePanelBarNode=createElement("span");
1805ownerPanel.sidePanelBarNode.style.display="none";
1806ownerPanel.sidePanelBarBoxNode.appendChild(ownerPanel.sidePanelBarNode)
1807}var panels=Firebug.panelTypes;
1808for(var i=0,p;
1809p=panels[i];
1810i++){if(!ownerPanel&&!p.prototype.parentPanel||ownerPanel&&p.prototype.parentPanel&&ownerPanel.name==p.prototype.parentPanel){this.addPanel(p.prototype.name)
1811}}},destroy:function(){PanelBar.shutdown.call(this);
1812for(var name in this.panelMap){this.removePanel(name);
1813var panel=this.panelMap[name];
1814panel.destroy();
1815this.panelMap[name]=null;
1816delete this.panelMap[name]
1817}this.panelMap=null;
1818this.ownerPanel=null
1819},initialize:function(){if(this.ownerPanel){this.ownerPanel.sidePanelBarNode.style.display="inline"
1820}for(var name in this.panelMap){(function(self,name){var onTabClick=function onTabClick(){self.selectPanel(name);
1821return false
1822};
1823Firebug.chrome.addController([self.panelMap[name].tabNode,"mousedown",onTabClick])
1824})(this,name)
1825}},shutdown:function(){var selectedPanel=this.selectedPanel;
1826if(selectedPanel){removeClass(selectedPanel.tabNode,"fbSelectedTab");
1827selectedPanel.hide();
1828selectedPanel.shutdown()
1829}if(this.ownerPanel){this.ownerPanel.sidePanelBarNode.style.display="none"
1830}this.selectedPanel=null
1831},addPanel:function(panelName,parentPanel){var PanelType=Firebug.panelTypeMap[panelName];
1832var panel=this.panelMap[panelName]=new PanelType();
1833panel.create()
1834},removePanel:function(panelName){var panel=this.panelMap[panelName];
1835if(panel.hasOwnProperty(panelName)){panel.destroy()
1836}},selectPanel:function(panelName){var selectedPanel=this.selectedPanel;
1837var panel=this.panelMap[panelName];
1838if(panel&&selectedPanel!=panel){if(selectedPanel){removeClass(selectedPanel.tabNode,"fbSelectedTab");
1839selectedPanel.shutdown();
1840selectedPanel.hide()
1841}if(!panel.parentPanel){Firebug.context.persistedState.selectedPanelName=panelName
1842}this.selectedPanel=panel;
1843setClass(panel.tabNode,"fbSelectedTab");
1844panel.show();
1845panel.initialize()
1846}},getPanel:function(panelName){var panel=this.panelMap[panelName];
1847return panel
1848}};
1849FBL.Button=function(options){options=options||{};
1850append(this,options);
1851this.state="unpressed";
1852this.display="unpressed";
1853if(this.element){this.container=this.element.parentNode
1854}else{this.shouldDestroy=true;
1855this.container=this.owner.getPanel().toolButtonsNode;
1856this.element=createElement("a",{className:this.baseClassName+" "+this.className+" fbHover",innerHTML:this.caption});
1857if(this.title){this.element.title=this.title
1858}this.container.appendChild(this.element)
1859}};
1860Button.prototype=extend(Controller,{type:"normal",caption:"caption",title:null,className:"",baseClassName:"fbButton",pressedClassName:"fbBtnPressed",element:null,container:null,owner:null,state:null,display:null,destroy:function(){this.shutdown();
1861if(this.shouldDestroy){this.container.removeChild(this.element)
1862}this.element=null;
1863this.container=null;
1864this.owner=null
1865},initialize:function(){Controller.initialize.apply(this);
1866var element=this.element;
1867this.addController([element,"mousedown",this.handlePress]);
1868if(this.type=="normal"){this.addController([element,"mouseup",this.handleUnpress],[element,"mouseout",this.handleUnpress],[element,"click",this.handleClick])
1869}},shutdown:function(){Controller.shutdown.apply(this)
1870},restore:function(){this.changeState("unpressed")
1871},changeState:function(state){this.state=state;
1872this.changeDisplay(state)
1873},changeDisplay:function(display){if(display!=this.display){if(display=="pressed"){setClass(this.element,this.pressedClassName)
1874}else{if(display=="unpressed"){removeClass(this.element,this.pressedClassName)
1875}}this.display=display
1876}},handlePress:function(event){cancelEvent(event,true);
1877if(this.type=="normal"){this.changeDisplay("pressed");
1878this.beforeClick=true
1879}else{if(this.type=="toggle"){if(this.state=="pressed"){this.changeState("unpressed");
1880if(this.onUnpress){this.onUnpress.apply(this.owner,arguments)
1881}}else{this.changeState("pressed");
1882if(this.onPress){this.onPress.apply(this.owner,arguments)
1883}}if(this.onClick){this.onClick.apply(this.owner,arguments)
1884}}}return false
1885},handleUnpress:function(event){cancelEvent(event,true);
1886if(this.beforeClick){this.changeDisplay("unpressed")
1887}return false
1888},handleClick:function(event){cancelEvent(event,true);
1889if(this.type=="normal"){if(this.onClick){this.onClick.apply(this.owner)
1890}this.changeState("unpressed")
1891}this.beforeClick=false;
1892return false
1893}});
1894FBL.IconButton=function(){Button.apply(this,arguments)
1895};
1896IconButton.prototype=extend(Button.prototype,{baseClassName:"fbIconButton",pressedClassName:"fbIconPressed"});
1897var menuItemProps={"class":"$item.className",type:"$item.type",value:"$item.value",_command:"$item.command"};
1898if(isIE6){menuItemProps.href="javascript:void(0)"
1899}if(FBL.domplate){var MenuPlate=domplate(Firebug.Rep,{tag:DIV({"class":"fbMenu fbShadow"},DIV({"class":"fbMenuContent fbShadowContent"},FOR("item","$object.items|memberIterator",TAG("$item.tag",{item:"$item"})))),itemTag:A(menuItemProps,"$item.label"),checkBoxTag:A(extend(menuItemProps,{checked:"$item.checked"}),"$item.label"),radioButtonTag:A(extend(menuItemProps,{selected:"$item.selected"}),"$item.label"),groupTag:A(extend(menuItemProps,{child:"$item.child"}),"$item.label"),shortcutTag:A(menuItemProps,"$item.label",SPAN({"class":"fbMenuShortcutKey"},"$item.key")),separatorTag:SPAN({"class":"fbMenuSeparator"}),memberIterator:function(items){var result=[];
1900for(var i=0,length=items.length;
1901i<length;
1902i++){var item=items[i];
1903if(typeof item=="string"&&item.indexOf("-")==0){result.push({tag:this.separatorTag});
1904continue
1905}item=extend(item,{});
1906item.type=item.type||"";
1907item.value=item.value||"";
1908var type=item.type;
1909item.tag=this.itemTag;
1910var className=item.className||"";
1911className+="fbMenuOption fbHover ";
1912if(type=="checkbox"){className+="fbMenuCheckBox ";
1913item.tag=this.checkBoxTag
1914}else{if(type=="radiobutton"){className+="fbMenuRadioButton ";
1915item.tag=this.radioButtonTag
1916}else{if(type=="group"){className+="fbMenuGroup ";
1917item.tag=this.groupTag
1918}else{if(type=="shortcut"){className+="fbMenuShortcut ";
1919item.tag=this.shortcutTag
1920}}}}if(item.checked){className+="fbMenuChecked "
1921}else{if(item.selected){className+="fbMenuRadioSelected "
1922}}if(item.disabled){className+="fbMenuDisabled "
1923}item.className=className;
1924item.label=$STR(item.label);
1925result.push(item)
1926}return result
1927}})
1928}FBL.Menu=function(options){if(!options.element){if(options.getItems){options.items=options.getItems()
1929}options.element=MenuPlate.tag.append({object:options},getElementByClass(Firebug.chrome.document,"fbBody"),MenuPlate)
1930}append(this,options);
1931if(typeof this.element=="string"){this.id=this.element;
1932this.element=$(this.id)
1933}else{if(this.id){this.element.id=this.id
1934}}this.element.firebugIgnore=true;
1935this.elementStyle=this.element.style;
1936this.isVisible=false;
1937this.handleMouseDown=bind(this.handleMouseDown,this);
1938this.handleMouseOver=bind(this.handleMouseOver,this);
1939this.handleMouseOut=bind(this.handleMouseOut,this);
1940this.handleWindowMouseDown=bind(this.handleWindowMouseDown,this)
1941};
1942var menuMap={};
1943Menu.prototype=extend(Controller,{destroy:function(){this.hide();
1944if(this.parentMenu){this.parentMenu.childMenu=null
1945}this.element.parentNode.removeChild(this.element);
1946this.element=null;
1947this.elementStyle=null;
1948this.parentMenu=null;
1949this.parentTarget=null
1950},initialize:function(){Controller.initialize.call(this);
1951this.addController([this.element,"mousedown",this.handleMouseDown],[this.element,"mouseover",this.handleMouseOver])
1952},shutdown:function(){Controller.shutdown.call(this)
1953},show:function(x,y){this.initialize();
1954if(this.isVisible){return
1955}x=x||0;
1956y=y||0;
1957if(this.parentMenu){var oldChildMenu=this.parentMenu.childMenu;
1958if(oldChildMenu&&oldChildMenu!=this){oldChildMenu.destroy()
1959}this.parentMenu.childMenu=this
1960}else{addEvent(Firebug.chrome.document,"mousedown",this.handleWindowMouseDown)
1961}this.elementStyle.display="block";
1962this.elementStyle.visibility="hidden";
1963var size=Firebug.chrome.getSize();
1964x=Math.min(x,size.width-this.element.clientWidth-10);
1965x=Math.max(x,0);
1966y=Math.min(y,size.height-this.element.clientHeight-10);
1967y=Math.max(y,0);
1968this.elementStyle.left=x+"px";
1969this.elementStyle.top=y+"px";
1970this.elementStyle.visibility="visible";
1971this.isVisible=true;
1972if(isFunction(this.onShow)){this.onShow.apply(this,arguments)
1973}},hide:function(){this.clearHideTimeout();
1974this.clearShowChildTimeout();
1975if(!this.isVisible){return
1976}this.elementStyle.display="none";
1977if(this.childMenu){this.childMenu.destroy();
1978this.childMenu=null
1979}if(this.parentTarget){removeClass(this.parentTarget,"fbMenuGroupSelected")
1980}this.isVisible=false;
1981this.shutdown();
1982if(isFunction(this.onHide)){this.onHide.apply(this,arguments)
1983}},showChildMenu:function(target){var id=target.getAttribute("child");
1984var parent=this;
1985var target=target;
1986this.showChildTimeout=Firebug.chrome.window.setTimeout(function(){var box=Firebug.chrome.getElementBox(target);
1987var childMenuObject=menuMap.hasOwnProperty(id)?menuMap[id]:{element:$(id)};
1988var childMenu=new Menu(extend(childMenuObject,{parentMenu:parent,parentTarget:target}));
1989var offsetLeft=isIE6?-1:-6;
1990childMenu.show(box.left+box.width+offsetLeft,box.top-6);
1991setClass(target,"fbMenuGroupSelected")
1992},350)
1993},clearHideTimeout:function(){if(this.hideTimeout){Firebug.chrome.window.clearTimeout(this.hideTimeout);
1994delete this.hideTimeout
1995}},clearShowChildTimeout:function(){if(this.showChildTimeout){Firebug.chrome.window.clearTimeout(this.showChildTimeout);
1996this.showChildTimeout=null
1997}},handleMouseDown:function(event){cancelEvent(event,true);
1998var topParent=this;
1999while(topParent.parentMenu){topParent=topParent.parentMenu
2000}var target=event.target||event.srcElement;
2001target=getAncestorByClass(target,"fbMenuOption");
2002if(!target||hasClass(target,"fbMenuGroup")){return false
2003}if(target&&!hasClass(target,"fbMenuDisabled")){var type=target.getAttribute("type");
2004if(type=="checkbox"){var checked=target.getAttribute("checked");
2005var value=target.getAttribute("value");
2006var wasChecked=hasClass(target,"fbMenuChecked");
2007if(wasChecked){removeClass(target,"fbMenuChecked");
2008target.setAttribute("checked","")
2009}else{setClass(target,"fbMenuChecked");
2010target.setAttribute("checked","true")
2011}if(isFunction(this.onCheck)){this.onCheck.call(this,target,value,!wasChecked)
2012}}if(type=="radiobutton"){var selectedRadios=getElementsByClass(target.parentNode,"fbMenuRadioSelected");
2013var group=target.getAttribute("group");
2014for(var i=0,length=selectedRadios.length;
2015i<length;
2016i++){radio=selectedRadios[i];
2017if(radio.getAttribute("group")==group){removeClass(radio,"fbMenuRadioSelected");
2018radio.setAttribute("selected","")
2019}}setClass(target,"fbMenuRadioSelected");
2020target.setAttribute("selected","true")
2021}var handler=null;
2022var cmd=target.command;
2023if(isFunction(cmd)){handler=cmd
2024}else{if(typeof cmd=="string"){handler=this[cmd]
2025}}var closeMenu=true;
2026if(handler){closeMenu=handler.call(this,target)!==false
2027}if(closeMenu){topParent.hide()
2028}}return false
2029},handleWindowMouseDown:function(event){var target=event.target||event.srcElement;
2030target=getAncestorByClass(target,"fbMenu");
2031if(!target){removeEvent(Firebug.chrome.document,"mousedown",this.handleWindowMouseDown);
2032this.hide()
2033}},handleMouseOver:function(event){this.clearHideTimeout();
2034this.clearShowChildTimeout();
2035var target=event.target||event.srcElement;
2036target=getAncestorByClass(target,"fbMenuOption");
2037if(!target){return
2038}var childMenu=this.childMenu;
2039if(childMenu){removeClass(childMenu.parentTarget,"fbMenuGroupSelected");
2040if(childMenu.parentTarget!=target&&childMenu.isVisible){childMenu.clearHideTimeout();
2041childMenu.hideTimeout=Firebug.chrome.window.setTimeout(function(){childMenu.destroy()
2042},300)
2043}}if(hasClass(target,"fbMenuGroup")){this.showChildMenu(target)
2044}}});
2045append(Menu,{register:function(object){menuMap[object.id]=object
2046},check:function(element){setClass(element,"fbMenuChecked");
2047element.setAttribute("checked","true")
2048},uncheck:function(element){removeClass(element,"fbMenuChecked");
2049element.setAttribute("checked","")
2050},disable:function(element){setClass(element,"fbMenuDisabled")
2051},enable:function(element){removeClass(element,"fbMenuDisabled")
2052}});
2053function StatusBar(){}StatusBar.prototype=extend(Controller,{})
2054}});
2055FBL.ns(function(){with(FBL){var refreshDelay=300;
2056var shouldFixElementFromPoint=isOpera||isSafari&&browserVersion<"532";
2057var evalError="___firebug_evaluation_error___";
2058var pixelsPerInch;
2059var resetStyle="margin:0; padding:0; border:0; position:absolute; overflow:hidden; display:block;";
2060var offscreenStyle=resetStyle+"top:-1234px; left:-1234px;";
2061FBL.Context=function(win){this.window=win.window;
2062this.document=win.document;
2063this.browser=Env.browser;
2064if(isIE&&!this.window.eval){this.window.execScript("null");
2065if(!this.window.eval){throw new Error("Firebug Error: eval() method not found in this window")
2066}}this.eval=this.window.eval("new Function('try{ return window.eval.apply(window,arguments) }catch(E){ E."+evalError+"=true; return E }')")
2067};
2068FBL.Context.prototype={browser:null,loaded:true,setTimeout:function(fn,delay){var win=this.window;
2069if(win.setTimeout==this.setTimeout){throw new Error("setTimeout recursion")
2070}var timeout=win.setTimeout.apply?win.setTimeout.apply(win,arguments):win.setTimeout(fn,delay);
2071if(!this.timeouts){this.timeouts={}
2072}this.timeouts[timeout]=1;
2073return timeout
2074},clearTimeout:function(timeout){clearTimeout(timeout);
2075if(this.timeouts){delete this.timeouts[timeout]
2076}},setInterval:function(fn,delay){var win=this.window;
2077var timeout=win.setInterval.apply?win.setInterval.apply(win,arguments):win.setInterval(fn,delay);
2078if(!this.intervals){this.intervals={}
2079}this.intervals[timeout]=1;
2080return timeout
2081},clearInterval:function(timeout){clearInterval(timeout);
2082if(this.intervals){delete this.intervals[timeout]
2083}},invalidatePanels:function(){if(!this.invalidPanels){this.invalidPanels={}
2084}for(var i=0;
2085i<arguments.length;
2086++i){var panelName=arguments[i];
2087if(!Firebug.chrome||!Firebug.chrome.selectedPanel){return
2088}var panel=Firebug.chrome.selectedPanel.sidePanelBar?Firebug.chrome.selectedPanel.sidePanelBar.getPanel(panelName,true):null;
2089if(panel&&!panel.noRefresh){this.invalidPanels[panelName]=1
2090}}if(this.refreshTimeout){this.clearTimeout(this.refreshTimeout);
2091delete this.refreshTimeout
2092}this.refreshTimeout=this.setTimeout(bindFixed(function(){var invalids=[];
2093for(var panelName in this.invalidPanels){var panel=Firebug.chrome.selectedPanel.sidePanelBar?Firebug.chrome.selectedPanel.sidePanelBar.getPanel(panelName,true):null;
2094if(panel){if(panel.visible&&!panel.editing){panel.refresh()
2095}else{panel.needsRefresh=true
2096}if(panel.editing){invalids.push(panelName)
2097}}}delete this.invalidPanels;
2098delete this.refreshTimeout;
2099if(invalids.length){this.invalidatePanels.apply(this,invalids)
2100}},this),refreshDelay)
2101},evaluate:function(expr,context,api,errorHandler){context=context||"window";
2102var isObjectLiteral=trim(expr).indexOf("{")==0,cmd,result;
2103if(context=="window"){if(isObjectLiteral){cmd=api?"with("+api+"){ ("+expr+") }":"("+expr+")"
2104}else{cmd=api?"with("+api+"){ "+expr+" }":expr
2105}}else{cmd=api?"(function(arguments){ with("+api+"){ "+expr+" } }).call("+context+",undefined)":"(function(arguments){ "+expr+" }).call("+context+",undefined)"
2106}result=this.eval(cmd);
2107if(result&&result[evalError]){var msg=result.name?(result.name+": "):"";
2108msg+=result.message||result;
2109if(errorHandler){result=errorHandler(msg)
2110}else{result=msg
2111}}return result
2112},getWindowSize:function(){var width=0,height=0,el;
2113if(typeof this.window.innerWidth=="number"){width=this.window.innerWidth;
2114height=this.window.innerHeight
2115}else{if((el=this.document.documentElement)&&(el.clientHeight||el.clientWidth)){width=el.clientWidth;
2116height=el.clientHeight
2117}else{if((el=this.document.body)&&(el.clientHeight||el.clientWidth)){width=el.clientWidth;
2118height=el.clientHeight
2119}}}return{width:width,height:height}
2120},getWindowScrollSize:function(){var width=0,height=0,el;
2121if(!isIEQuiksMode&&(el=this.document.documentElement)&&(el.scrollHeight||el.scrollWidth)){width=el.scrollWidth;
2122height=el.scrollHeight
2123}if((el=this.document.body)&&(el.scrollHeight||el.scrollWidth)&&(el.scrollWidth>width||el.scrollHeight>height)){width=el.scrollWidth;
2124height=el.scrollHeight
2125}return{width:width,height:height}
2126},getWindowScrollPosition:function(){var top=0,left=0,el;
2127if(typeof this.window.pageYOffset=="number"){top=this.window.pageYOffset;
2128left=this.window.pageXOffset
2129}else{if((el=this.document.body)&&(el.scrollTop||el.scrollLeft)){top=el.scrollTop;
2130left=el.scrollLeft
2131}else{if((el=this.document.documentElement)&&(el.scrollTop||el.scrollLeft)){top=el.scrollTop;
2132left=el.scrollLeft
2133}}}return{top:top,left:left}
2134},getElementFromPoint:function(x,y){if(shouldFixElementFromPoint){var scroll=this.getWindowScrollPosition();
2135return this.document.elementFromPoint(x+scroll.left,y+scroll.top)
2136}else{return this.document.elementFromPoint(x,y)
2137}},getElementPosition:function(el){var left=0;
2138var top=0;
2139do{left+=el.offsetLeft;
2140top+=el.offsetTop
2141}while(el=el.offsetParent);
2142return{left:left,top:top}
2143},getElementBox:function(el){var result={};
2144if(el.getBoundingClientRect){var rect=el.getBoundingClientRect();
2145var offset=isIE?this.document.body.clientTop||this.document.documentElement.clientTop:0;
2146var scroll=this.getWindowScrollPosition();
2147result.top=Math.round(rect.top-offset+scroll.top);
2148result.left=Math.round(rect.left-offset+scroll.left);
2149result.height=Math.round(rect.bottom-rect.top);
2150result.width=Math.round(rect.right-rect.left)
2151}else{var position=this.getElementPosition(el);
2152result.top=position.top;
2153result.left=position.left;
2154result.height=el.offsetHeight;
2155result.width=el.offsetWidth
2156}return result
2157},getMeasurement:function(el,name){var result={value:0,unit:"px"};
2158var cssValue=this.getStyle(el,name);
2159if(!cssValue){return result
2160}if(cssValue.toLowerCase()=="auto"){return result
2161}var reMeasure=/(\d+\.?\d*)(.*)/;
2162var m=cssValue.match(reMeasure);
2163if(m){result.value=m[1]-0;
2164result.unit=m[2].toLowerCase()
2165}return result
2166},getMeasurementInPixels:function(el,name){if(!el){return null
2167}var m=this.getMeasurement(el,name);
2168var value=m.value;
2169var unit=m.unit;
2170if(unit=="px"){return value
2171}else{if(unit=="pt"){return this.pointsToPixels(name,value)
2172}else{if(unit=="em"){return this.emToPixels(el,value)
2173}else{if(unit=="%"){return this.percentToPixels(el,value)
2174}else{if(unit=="ex"){return this.exToPixels(el,value)
2175}}}}}},getMeasurementBox1:function(el,name){var sufixes=["Top","Left","Bottom","Right"];
2176var result=[];
2177for(var i=0,sufix;
2178sufix=sufixes[i];
2179i++){result[i]=Math.round(this.getMeasurementInPixels(el,name+sufix))
2180}return{top:result[0],left:result[1],bottom:result[2],right:result[3]}
2181},getMeasurementBox:function(el,name){var result=[];
2182var sufixes=name=="border"?["TopWidth","LeftWidth","BottomWidth","RightWidth"]:["Top","Left","Bottom","Right"];
2183if(isIE){var propName,cssValue;
2184var autoMargin=null;
2185for(var i=0,sufix;
2186sufix=sufixes[i];
2187i++){propName=name+sufix;
2188cssValue=el.currentStyle[propName]||el.style[propName];
2189if(cssValue=="auto"){if(!autoMargin){autoMargin=this.getCSSAutoMarginBox(el)
2190}result[i]=autoMargin[sufix.toLowerCase()]
2191}else{result[i]=this.getMeasurementInPixels(el,propName)
2192}}}else{for(var i=0,sufix;
2193sufix=sufixes[i];
2194i++){result[i]=this.getMeasurementInPixels(el,name+sufix)
2195}}return{top:result[0],left:result[1],bottom:result[2],right:result[3]}
2196},getCSSAutoMarginBox:function(el){if(isIE&&" meta title input script link a ".indexOf(" "+el.nodeName.toLowerCase()+" ")!=-1){return{top:0,left:0,bottom:0,right:0}
2197}if(isIE&&" h1 h2 h3 h4 h5 h6 h7 ul p ".indexOf(" "+el.nodeName.toLowerCase()+" ")==-1){return{top:0,left:0,bottom:0,right:0}
2198}var offsetTop=0;
2199if(false&&isIEStantandMode){var scrollSize=Firebug.browser.getWindowScrollSize();
2200offsetTop=scrollSize.height
2201}var box=this.document.createElement("div");
2202box.style.cssText="margin:0; padding:1px; border: 0; visibility: hidden;";
2203var clone=el.cloneNode(false);
2204var text=this.document.createTextNode("&nbsp;");
2205clone.appendChild(text);
2206box.appendChild(clone);
2207this.document.body.appendChild(box);
2208var marginTop=clone.offsetTop-box.offsetTop-1;
2209var marginBottom=box.offsetHeight-clone.offsetHeight-2-marginTop;
2210var marginLeft=clone.offsetLeft-box.offsetLeft-1;
2211var marginRight=box.offsetWidth-clone.offsetWidth-2-marginLeft;
2212this.document.body.removeChild(box);
2213return{top:marginTop+offsetTop,left:marginLeft,bottom:marginBottom-offsetTop,right:marginRight}
2214},getFontSizeInPixels:function(el){var size=this.getMeasurement(el,"fontSize");
2215if(size.unit=="px"){return size.value
2216}var computeDirtyFontSize=function(el,calibration){var div=this.document.createElement("div");
2217var divStyle=offscreenStyle;
2218if(calibration){divStyle+=" font-size:"+calibration+"px;"
2219}div.style.cssText=divStyle;
2220div.innerHTML="A";
2221el.appendChild(div);
2222var value=div.offsetHeight;
2223el.removeChild(div);
2224return value
2225};
2226var rate=200/225;
2227var value=computeDirtyFontSize(el);
2228return value*rate
2229},pointsToPixels:function(name,value,returnFloat){var axis=/Top$|Bottom$/.test(name)?"y":"x";
2230var result=value*pixelsPerInch[axis]/72;
2231return returnFloat?result:Math.round(result)
2232},emToPixels:function(el,value){if(!el){return null
2233}var fontSize=this.getFontSizeInPixels(el);
2234return Math.round(value*fontSize)
2235},exToPixels:function(el,value){if(!el){return null
2236}var div=this.document.createElement("div");
2237div.style.cssText=offscreenStyle+"width:"+value+"ex;";
2238el.appendChild(div);
2239var value=div.offsetWidth;
2240el.removeChild(div);
2241return value
2242},percentToPixels:function(el,value){if(!el){return null
2243}var div=this.document.createElement("div");
2244div.style.cssText=offscreenStyle+"width:"+value+"%;";
2245el.appendChild(div);
2246var value=div.offsetWidth;
2247el.removeChild(div);
2248return value
2249},getStyle:isIE?function(el,name){return el.currentStyle[name]||el.style[name]||undefined
2250}:function(el,name){return this.document.defaultView.getComputedStyle(el,null)[name]||el.style[name]||undefined
2251}}
2252}});
2253FBL.ns(function(){with(FBL){var WindowDefaultOptions={type:"frame",id:"FirebugUI"},commandLine,fbTop,fbContent,fbContentStyle,fbBottom,fbBtnInspect,fbToolbar,fbPanelBox1,fbPanelBox1Style,fbPanelBox2,fbPanelBox2Style,fbPanelBar2Box,fbPanelBar2BoxStyle,fbHSplitter,fbVSplitter,fbVSplitterStyle,fbPanel1,fbPanel1Style,fbPanel2,fbPanel2Style,fbConsole,fbConsoleStyle,fbHTML,fbCommandLine,fbLargeCommandLine,fbLargeCommandButtons,topHeight,topPartialHeight,chromeRedrawSkipRate=isIE?75:isOpera?80:75,lastSelectedPanelName,focusCommandLineState=0,lastFocusedPanelName,lastHSplitterMouseMove=0,onHSplitterMouseMoveBuffer=null,onHSplitterMouseMoveTimer=null,lastVSplitterMouseMove=0;
2254FBL.defaultPersistedState={isOpen:false,height:300,sidePanelWidth:350,selectedPanelName:"Console",selectedHTMLElementId:null,htmlSelectionStack:[]};
2255FBL.FirebugChrome={chromeMap:{},htmlSelectionStack:[],create:function(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("FirebugChrome.create","creating chrome window")
2256}createChromeWindow()
2257},initialize:function(){if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("FirebugChrome.initialize","initializing chrome window")
2258}if(Env.chrome.type=="frame"||Env.chrome.type=="div"){ChromeMini.create(Env.chrome)
2259}var chrome=Firebug.chrome=new Chrome(Env.chrome);
2260FirebugChrome.chromeMap[chrome.type]=chrome;
2261addGlobalEvent("keydown",onGlobalKeyDown);
2262if(Env.Options.enablePersistent&&chrome.type=="popup"){var frame=FirebugChrome.chromeMap.frame;
2263if(frame){frame.close()
2264}chrome.initialize()
2265}},clone:function(FBChrome){for(var name in FBChrome){var prop=FBChrome[name];
2266if(FBChrome.hasOwnProperty(name)&&!isFunction(prop)){this[name]=prop
2267}}}};
2268var createChromeWindow=function(options){options=extend(WindowDefaultOptions,options||{});
2269var browserWin=Env.browser.window;
2270var browserContext=new Context(browserWin);
2271var prefs=Store.get("FirebugLite");
2272var persistedState=prefs&&prefs.persistedState||defaultPersistedState;
2273var chrome={},context=options.context||Env.browser,type=chrome.type=Env.Options.enablePersistent?"popup":options.type,isChromeFrame=type=="frame",useLocalSkin=Env.useLocalSkin,url=useLocalSkin?Env.Location.skin:"about:blank",body=context.document.getElementsByTagName("body")[0],formatNode=function(node){if(!Env.isDebugMode){node.firebugIgnore=true
2274}var browserWinSize=browserContext.getWindowSize();
2275var height=persistedState.height||300;
2276height=Math.min(browserWinSize.height,height);
2277height=Math.max(200,height);
2278node.style.border="0";
2279node.style.visibility="hidden";
2280node.style.zIndex="2147483647";
2281node.style.position=noFixedPosition?"absolute":"fixed";
2282node.style.width="100%";
2283node.style.left="0";
2284node.style.bottom=noFixedPosition?"-1px":"0";
2285node.style.height=height+"px"
2286},createChromeDiv=function(){var node=chrome.node=createGlobalElement("div"),style=createGlobalElement("style"),css=FirebugChrome.Skin.CSS,rules=".fbBody *{margin:0;padding:0;font-size:11px;line-height:13px;color:inherit;}"+css+".fbBody #fbHSplitter{position:absolute !important;} .fbBody #fbHTML span{line-height:14px;} .fbBody .lineNo div{line-height:inherit !important;}";
2287style.type="text/css";
2288if(style.styleSheet){style.styleSheet.cssText=rules
2289}else{style.appendChild(context.document.createTextNode(rules))
2290}document.getElementsByTagName("head")[0].appendChild(style);
2291node.className="fbBody";
2292node.style.overflow="hidden";
2293node.innerHTML=getChromeDivTemplate();
2294if(isIE){setTimeout(function(){node.firstChild.style.height="1px";
2295node.firstChild.style.position="static"
2296},0)
2297}formatNode(node);
2298body.appendChild(node);
2299chrome.window=window;
2300chrome.document=document;
2301onChromeLoad(chrome)
2302};
2303try{if(type=="div"){createChromeDiv();
2304return
2305}else{if(isChromeFrame){var node=chrome.node=createGlobalElement("iframe");
2306node.setAttribute("src",url);
2307node.setAttribute("frameBorder","0");
2308formatNode(node);
2309body.appendChild(node);
2310node.id=options.id
2311}else{var height=persistedState.popupHeight||300;
2312var browserWinSize=browserContext.getWindowSize();
2313var browserWinLeft=typeof browserWin.screenX=="number"?browserWin.screenX:browserWin.screenLeft;
2314var popupLeft=typeof persistedState.popupLeft=="number"?persistedState.popupLeft:browserWinLeft;
2315var browserWinTop=typeof browserWin.screenY=="number"?browserWin.screenY:browserWin.screenTop;
2316var popupTop=typeof persistedState.popupTop=="number"?persistedState.popupTop:Math.max(0,Math.min(browserWinTop+browserWinSize.height-height,screen.availHeight-height-61));
2317var popupWidth=typeof persistedState.popupWidth=="number"?persistedState.popupWidth:Math.max(0,Math.min(browserWinSize.width,screen.availWidth-10));
2318var popupHeight=typeof persistedState.popupHeight=="number"?persistedState.popupHeight:300;
2319var options=["true,top=",popupTop,",left=",popupLeft,",height=",popupHeight,",width=",popupWidth,",resizable"].join(""),node=chrome.node=context.window.open(url,"popup",options);
2320if(node){try{node.focus()
2321}catch(E){alert("Firebug Error: Firebug popup was blocked.");
2322return
2323}}else{alert("Firebug Error: Firebug popup was blocked.");
2324return
2325}}}if(!useLocalSkin){var tpl=getChromeTemplate(!isChromeFrame),doc=isChromeFrame?node.contentWindow.document:node.document;
2326doc.write(tpl);
2327doc.close()
2328}var win,waitDelay=useLocalSkin?isChromeFrame?200:300:100,waitForWindow=function(){if(isChromeFrame&&(win=node.contentWindow)&&node.contentWindow.document.getElementById("fbCommandLine")||!isChromeFrame&&(win=node.window)&&node.document&&node.document.getElementById("fbCommandLine")){chrome.window=win.window;
2329chrome.document=win.document;
2330setTimeout(function(){onChromeLoad(chrome)
2331},useLocalSkin?200:0)
2332}else{setTimeout(waitForWindow,waitDelay)
2333}};
2334waitForWindow()
2335}catch(e){var msg=e.message||e;
2336if(/access/i.test(msg)){if(isChromeFrame){body.removeChild(node)
2337}else{if(type=="popup"){node.close()
2338}}createChromeDiv()
2339}else{alert("Firebug Error: Firebug GUI could not be created.")
2340}}};
2341var onChromeLoad=function onChromeLoad(chrome){Env.chrome=chrome;
2342if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Chrome onChromeLoad","chrome window loaded")
2343}if(Env.Options.enablePersistent){Env.FirebugChrome=FirebugChrome;
2344chrome.window.Firebug=chrome.window.Firebug||{};
2345chrome.window.Firebug.SharedEnv=Env;
2346if(Env.isDevelopmentMode){Env.browser.window.FBDev.loadChromeApplication(chrome)
2347}else{var doc=chrome.document;
2348var script=doc.createElement("script");
2349script.src=Env.Location.app+"#remote,persist";
2350doc.getElementsByTagName("head")[0].appendChild(script)
2351}}else{if(chrome.type=="frame"||chrome.type=="div"){setTimeout(function(){FBL.Firebug.initialize()
2352},0)
2353}else{if(chrome.type=="popup"){var oldChrome=FirebugChrome.chromeMap.frame;
2354var newChrome=new Chrome(chrome);
2355dispatch(newChrome.panelMap,"detach",[oldChrome,newChrome]);
2356newChrome.reattach(oldChrome,newChrome)
2357}}}};
2358var getChromeDivTemplate=function(){return FirebugChrome.Skin.HTML
2359};
2360var getChromeTemplate=function(isPopup){var tpl=FirebugChrome.Skin;
2361var r=[],i=-1;
2362r[++i]='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd">';
2363r[++i]="<html><head><title>";
2364r[++i]=Firebug.version;
2365r[++i]="</title><style>html,body{margin:0;padding:0;overflow:hidden;}";
2366r[++i]=tpl.CSS;
2367r[++i]="</style>";
2368r[++i]='</head><body class="fbBody'+(isPopup?" FirebugPopup":"")+'">';
2369r[++i]=tpl.HTML;
2370r[++i]="</body></html>";
2371return r.join("")
2372};
2373var Chrome=function Chrome(chrome){var type=chrome.type;
2374var Base=type=="frame"||type=="div"?ChromeFrameBase:ChromePopupBase;
2375append(this,Base);
2376append(this,chrome);
2377append(this,new Context(chrome.window));
2378FirebugChrome.chromeMap[type]=this;
2379Firebug.chrome=this;
2380Env.chrome=chrome.window;
2381this.commandLineVisible=false;
2382this.sidePanelVisible=false;
2383this.create();
2384return this
2385};
2386var ChromeBase={};
2387append(ChromeBase,Controller);
2388append(ChromeBase,PanelBar);
2389append(ChromeBase,{node:null,type:null,document:null,window:null,sidePanelVisible:false,commandLineVisible:false,largeCommandLineVisible:false,inspectButton:null,create:function(){PanelBar.create.call(this);
2390if(Firebug.Inspector){this.inspectButton=new Button({type:"toggle",element:$("fbChrome_btInspect"),owner:Firebug.Inspector,onPress:Firebug.Inspector.startInspecting,onUnpress:Firebug.Inspector.stopInspecting})
2391}},destroy:function(){if(Firebug.Inspector){this.inspectButton.destroy()
2392}PanelBar.destroy.call(this);
2393this.shutdown()
2394},testMenu:function(){var firebugMenu=new Menu({id:"fbFirebugMenu",items:[{label:"Open Firebug",type:"shortcut",key:isFirefox?"Shift+F12":"F12",checked:true,command:"toggleChrome"},{label:"Open Firebug in New Window",type:"shortcut",key:isFirefox?"Ctrl+Shift+F12":"Ctrl+F12",command:"openPopup"},{label:"Inspect Element",type:"shortcut",key:"Ctrl+Shift+C",command:"toggleInspect"},{label:"Command Line",type:"shortcut",key:"Ctrl+Shift+L",command:"focusCommandLine"},"-",{label:"Options",type:"group",child:"fbFirebugOptionsMenu"},"-",{label:"Firebug Lite Website...",command:"visitWebsite"},{label:"Discussion Group...",command:"visitDiscussionGroup"},{label:"Issue Tracker...",command:"visitIssueTracker"}],onHide:function(){iconButton.restore()
2395},toggleChrome:function(){Firebug.chrome.toggle()
2396},openPopup:function(){Firebug.chrome.toggle(true,true)
2397},toggleInspect:function(){Firebug.Inspector.toggleInspect()
2398},focusCommandLine:function(){Firebug.chrome.focusCommandLine()
2399},visitWebsite:function(){this.visit("http://getfirebug.com/lite.html")
2400},visitDiscussionGroup:function(){this.visit("http://groups.google.com/group/firebug")
2401},visitIssueTracker:function(){this.visit("http://code.google.com/p/fbug/issues/list")
2402},visit:function(url){window.open(url)
2403}});
2404var firebugOptionsMenu={id:"fbFirebugOptionsMenu",getItems:function(){var cookiesDisabled=!Firebug.saveCookies;
2405return[{label:"Start Opened",type:"checkbox",value:"startOpened",checked:Firebug.startOpened,disabled:cookiesDisabled},{label:"Start in New Window",type:"checkbox",value:"startInNewWindow",checked:Firebug.startInNewWindow,disabled:cookiesDisabled},{label:"Show Icon When Hidden",type:"checkbox",value:"showIconWhenHidden",checked:Firebug.showIconWhenHidden,disabled:cookiesDisabled},{label:"Override Console Object",type:"checkbox",value:"overrideConsole",checked:Firebug.overrideConsole,disabled:cookiesDisabled},{label:"Ignore Firebug Elements",type:"checkbox",value:"ignoreFirebugElements",checked:Firebug.ignoreFirebugElements,disabled:cookiesDisabled},{label:"Disable When Firebug Active",type:"checkbox",value:"disableWhenFirebugActive",checked:Firebug.disableWhenFirebugActive,disabled:cookiesDisabled},{label:"Disable XHR Listener",type:"checkbox",value:"disableXHRListener",checked:Firebug.disableXHRListener,disabled:cookiesDisabled},{label:"Disable Resource Fetching",type:"checkbox",value:"disableResourceFetching",checked:Firebug.disableResourceFetching,disabled:cookiesDisabled},{label:"Enable Trace Mode",type:"checkbox",value:"enableTrace",checked:Firebug.enableTrace,disabled:cookiesDisabled},{label:"Enable Persistent Mode (experimental)",type:"checkbox",value:"enablePersistent",checked:Firebug.enablePersistent,disabled:cookiesDisabled},"-",{label:"Reset All Firebug Options",command:"restorePrefs",disabled:cookiesDisabled}]
2406},onCheck:function(target,value,checked){Firebug.setPref(value,checked)
2407},restorePrefs:function(target){Firebug.erasePrefs();
2408if(target){this.updateMenu(target)
2409}},updateMenu:function(target){var options=getElementsByClass(target.parentNode,"fbMenuOption");
2410var firstOption=options[0];
2411var enabled=Firebug.saveCookies;
2412if(enabled){Menu.check(firstOption)
2413}else{Menu.uncheck(firstOption)
2414}if(enabled){Menu.check(options[0])
2415}else{Menu.uncheck(options[0])
2416}for(var i=1,length=options.length;
2417i<length;
2418i++){var option=options[i];
2419var value=option.getAttribute("value");
2420var pref=Firebug[value];
2421if(pref){Menu.check(option)
2422}else{Menu.uncheck(option)
2423}if(enabled){Menu.enable(option)
2424}else{Menu.disable(option)
2425}}}};
2426Menu.register(firebugOptionsMenu);
2427var menu=firebugMenu;
2428var testMenuClick=function(event){cancelEvent(event,true);
2429var target=event.target||event.srcElement;
2430if(menu.isVisible){menu.hide()
2431}else{var offsetLeft=isIE6?1:-4,chrome=Firebug.chrome,box=chrome.getElementBox(target),offset=chrome.type=="div"?chrome.getElementPosition(chrome.node):{top:0,left:0};
2432menu.show(box.left+offsetLeft-offset.left,box.top+box.height-5-offset.top)
2433}return false
2434};
2435var iconButton=new IconButton({type:"toggle",element:$("fbFirebugButton"),onClick:testMenuClick});
2436iconButton.initialize()
2437},initialize:function(){if(Env.bookmarkletOutdated){Firebug.Console.logFormatted(["A new bookmarklet version is available. Please visit http://getfirebug.com/firebuglite#Install and update it."],Firebug.context,"warn")
2438}if(Firebug.Console){Firebug.Console.flush()
2439}if(Firebug.Trace){FBTrace.flush(Firebug.Trace)
2440}if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.chrome.initialize","initializing chrome application")
2441}Controller.initialize.call(this);
2442PanelBar.initialize.call(this);
2443fbTop=$("fbTop");
2444fbContent=$("fbContent");
2445fbContentStyle=fbContent.style;
2446fbBottom=$("fbBottom");
2447fbBtnInspect=$("fbBtnInspect");
2448fbToolbar=$("fbToolbar");
2449fbPanelBox1=$("fbPanelBox1");
2450fbPanelBox1Style=fbPanelBox1.style;
2451fbPanelBox2=$("fbPanelBox2");
2452fbPanelBox2Style=fbPanelBox2.style;
2453fbPanelBar2Box=$("fbPanelBar2Box");
2454fbPanelBar2BoxStyle=fbPanelBar2Box.style;
2455fbHSplitter=$("fbHSplitter");
2456fbVSplitter=$("fbVSplitter");
2457fbVSplitterStyle=fbVSplitter.style;
2458fbPanel1=$("fbPanel1");
2459fbPanel1Style=fbPanel1.style;
2460fbPanel2=$("fbPanel2");
2461fbPanel2Style=fbPanel2.style;
2462fbConsole=$("fbConsole");
2463fbConsoleStyle=fbConsole.style;
2464fbHTML=$("fbHTML");
2465fbCommandLine=$("fbCommandLine");
2466fbLargeCommandLine=$("fbLargeCommandLine");
2467fbLargeCommandButtons=$("fbLargeCommandButtons");
2468topHeight=fbTop.offsetHeight;
2469topPartialHeight=fbToolbar.offsetHeight;
2470disableTextSelection($("fbToolbar"));
2471disableTextSelection($("fbPanelBarBox"));
2472disableTextSelection($("fbPanelBar1"));
2473disableTextSelection($("fbPanelBar2"));
2474if(isIE6&&Firebug.Selector){var as=$$(".fbHover");
2475for(var i=0,a;
2476a=as[i];
2477i++){a.setAttribute("href","javascript:void(0)")
2478}}if(Firebug.Inspector){this.inspectButton.initialize()
2479}this.addController([$("fbLargeCommandLineIcon"),"click",this.showLargeCommandLine]);
2480var self=this;
2481setTimeout(function(){self.selectPanel(Firebug.context.persistedState.selectedPanelName);
2482if(Firebug.context.persistedState.selectedPanelName=="Console"&&Firebug.CommandLine){Firebug.chrome.focusCommandLine()
2483}},0);
2484var onPanelMouseDown=function onPanelMouseDown(event){var target=event.target||event.srcElement;
2485if(FBL.isLeftClick(event)){var editable=FBL.getAncestorByClass(target,"editable");
2486if(editable){Firebug.Editor.startEditing(editable);
2487FBL.cancelEvent(event)
2488}else{if(!hasClass(target,"textEditorInner")){Firebug.Editor.stopEditing()
2489}}}else{if(FBL.isMiddleClick(event)&&Firebug.getRepNode(target)){FBL.cancelEvent(event)
2490}}};
2491Firebug.getElementPanel=function(element){var panelNode=getAncestorByClass(element,"fbPanel");
2492var id=panelNode.id.substr(2);
2493var panel=Firebug.chrome.panelMap[id];
2494if(!panel){if(Firebug.chrome.selectedPanel.sidePanelBar){panel=Firebug.chrome.selectedPanel.sidePanelBar.panelMap[id]
2495}}return panel
2496};
2497var onKeyCodeListenersMap=[];
2498var onKeyCodeListen=function(event){for(var keyCode in onKeyCodeListenersMap){var listeners=onKeyCodeListenersMap[keyCode];
2499for(var i=0,listener;
2500listener=listeners[i];
2501i++){var filter=listener.filter||FBL.noKeyModifiers;
2502if(event.keyCode==keyCode&&(!filter||filter(event))){listener.listener();
2503FBL.cancelEvent(event,true);
2504return false
2505}}}};
2506addEvent(Firebug.chrome.document,"keydown",onKeyCodeListen);
2507Firebug.chrome.keyCodeListen=function(key,filter,listener,capture){var keyCode=KeyEvent["DOM_VK_"+key];
2508if(!onKeyCodeListenersMap[keyCode]){onKeyCodeListenersMap[keyCode]=[]
2509}onKeyCodeListenersMap[keyCode].push({filter:filter,listener:listener});
2510return keyCode
2511};
2512Firebug.chrome.keyIgnore=function(keyCode){onKeyCodeListenersMap[keyCode]=null;
2513delete onKeyCodeListenersMap[keyCode]
2514};
2515this.addController([fbPanel1,"mousedown",onPanelMouseDown],[fbPanel2,"mousedown",onPanelMouseDown]);
2516if(FBL.domplate){this.testMenu()
2517}},shutdown:function(){if(Firebug.Inspector){this.inspectButton.shutdown()
2518}restoreTextSelection($("fbToolbar"));
2519restoreTextSelection($("fbPanelBarBox"));
2520restoreTextSelection($("fbPanelBar1"));
2521restoreTextSelection($("fbPanelBar2"));
2522Controller.shutdown.call(this);
2523PanelBar.shutdown.call(this);
2524fbTop=null;
2525fbContent=null;
2526fbContentStyle=null;
2527fbBottom=null;
2528fbBtnInspect=null;
2529fbToolbar=null;
2530fbPanelBox1=null;
2531fbPanelBox1Style=null;
2532fbPanelBox2=null;
2533fbPanelBox2Style=null;
2534fbPanelBar2Box=null;
2535fbPanelBar2BoxStyle=null;
2536fbHSplitter=null;
2537fbVSplitter=null;
2538fbVSplitterStyle=null;
2539fbPanel1=null;
2540fbPanel1Style=null;
2541fbPanel2=null;
2542fbConsole=null;
2543fbConsoleStyle=null;
2544fbHTML=null;
2545fbCommandLine=null;
2546fbLargeCommandLine=null;
2547fbLargeCommandButtons=null;
2548topHeight=null;
2549topPartialHeight=null
2550},toggle:function(forceOpen,popup){if(popup){this.detach()
2551}else{if(isOpera&&Firebug.chrome.type=="popup"&&Firebug.chrome.node.closed){var frame=FirebugChrome.chromeMap.frame;
2552frame.reattach();
2553FirebugChrome.chromeMap.popup=null;
2554frame.open();
2555return
2556}if(Firebug.chrome.type=="popup"){return
2557}var shouldOpen=forceOpen||!Firebug.context.persistedState.isOpen;
2558if(shouldOpen){this.open()
2559}else{this.close()
2560}}},detach:function(){if(!FirebugChrome.chromeMap.popup){this.close();
2561createChromeWindow({type:"popup"})
2562}},reattach:function(oldChrome,newChrome){Firebug.browser.window.Firebug=Firebug;
2563var newPanelMap=newChrome.panelMap;
2564var oldPanelMap=oldChrome.panelMap;
2565var panel;
2566for(var name in newPanelMap){panel=newPanelMap[name];
2567if(panel.options.innerHTMLSync){panel.panelNode.innerHTML=oldPanelMap[name].panelNode.innerHTML
2568}}Firebug.chrome=newChrome;
2569if(newChrome.type=="popup"){newChrome.initialize()
2570}else{Firebug.context.persistedState.selectedPanelName=oldChrome.selectedPanel.name
2571}dispatch(newPanelMap,"reattach",[oldChrome,newChrome])
2572},draw:function(){var size=this.getSize();
2573var commandLineHeight=Firebug.chrome.commandLineVisible?fbCommandLine.offsetHeight:0,y=Math.max(size.height,topHeight),heightValue=Math.max(y-topHeight-commandLineHeight,0),height=heightValue+"px",sideWidthValue=Firebug.chrome.sidePanelVisible?Firebug.context.persistedState.sidePanelWidth:0,width=Math.max(size.width-sideWidthValue,0)+"px";
2574fbPanelBox1Style.height=height;
2575fbPanel1Style.height=height;
2576if(isIE||isOpera){fbVSplitterStyle.height=Math.max(y-topPartialHeight-commandLineHeight,0)+"px"
2577}fbPanelBox1Style.width=width;
2578fbPanel1Style.width=width;
2579if(Firebug.chrome.sidePanelVisible){sideWidthValue=Math.max(sideWidthValue-6,0);
2580var sideWidth=sideWidthValue+"px";
2581fbPanelBox2Style.width=sideWidth;
2582fbVSplitterStyle.right=sideWidth;
2583if(Firebug.chrome.largeCommandLineVisible){fbLargeCommandLine=$("fbLargeCommandLine");
2584fbLargeCommandLine.style.height=heightValue-4+"px";
2585fbLargeCommandLine.style.width=sideWidthValue-2+"px";
2586fbLargeCommandButtons=$("fbLargeCommandButtons");
2587fbLargeCommandButtons.style.width=sideWidth
2588}else{fbPanel2Style.height=height;
2589fbPanel2Style.width=sideWidth;
2590fbPanelBar2BoxStyle.width=sideWidth
2591}}},getSize:function(){return this.type=="div"?{height:this.node.offsetHeight,width:this.node.offsetWidth}:this.getWindowSize()
2592},resize:function(){var self=this;
2593setTimeout(function(){self.draw();
2594if(noFixedPosition&&(self.type=="frame"||self.type=="div")){self.fixIEPosition()
2595}},0)
2596},layout:function(panel){if(FBTrace.DBG_CHROME){FBTrace.sysout("Chrome.layout","")
2597}var options=panel.options;
2598changeCommandLineVisibility(options.hasCommandLine);
2599changeSidePanelVisibility(panel.hasSidePanel);
2600Firebug.chrome.draw()
2601},showLargeCommandLine:function(hideToggleIcon){var chrome=Firebug.chrome;
2602if(!chrome.largeCommandLineVisible){chrome.largeCommandLineVisible=true;
2603if(chrome.selectedPanel.options.hasCommandLine){if(Firebug.CommandLine){Firebug.CommandLine.blur()
2604}changeCommandLineVisibility(false)
2605}changeSidePanelVisibility(true);
2606fbLargeCommandLine.style.display="block";
2607fbLargeCommandButtons.style.display="block";
2608fbPanel2Style.display="none";
2609fbPanelBar2BoxStyle.display="none";
2610chrome.draw();
2611fbLargeCommandLine.focus();
2612if(Firebug.CommandLine){Firebug.CommandLine.setMultiLine(true)
2613}}},hideLargeCommandLine:function(){if(Firebug.chrome.largeCommandLineVisible){Firebug.chrome.largeCommandLineVisible=false;
2614if(Firebug.CommandLine){Firebug.CommandLine.setMultiLine(false)
2615}fbLargeCommandLine.blur();
2616fbPanel2Style.display="block";
2617fbPanelBar2BoxStyle.display="block";
2618fbLargeCommandLine.style.display="none";
2619fbLargeCommandButtons.style.display="none";
2620changeSidePanelVisibility(false);
2621if(Firebug.chrome.selectedPanel.options.hasCommandLine){changeCommandLineVisibility(true)
2622}Firebug.chrome.draw()
2623}},focusCommandLine:function(){var selectedPanelName=this.selectedPanel.name,panelToSelect;
2624if(focusCommandLineState==0||selectedPanelName!="Console"){focusCommandLineState=0;
2625lastFocusedPanelName=selectedPanelName;
2626panelToSelect="Console"
2627}if(focusCommandLineState==1){panelToSelect=lastFocusedPanelName
2628}this.selectPanel(panelToSelect);
2629try{if(Firebug.CommandLine){if(panelToSelect=="Console"){Firebug.CommandLine.focus()
2630}else{Firebug.CommandLine.blur()
2631}}}catch(e){}focusCommandLineState=++focusCommandLineState%2
2632}});
2633var ChromeFrameBase=extend(ChromeBase,{create:function(){ChromeBase.create.call(this);
2634if(isFirefox){this.node.style.display="block"
2635}if(Env.Options.startInNewWindow){this.close();
2636this.toggle(true,true);
2637return
2638}if(Env.Options.startOpened){this.open()
2639}else{this.close()
2640}},destroy:function(){var size=Firebug.chrome.getWindowSize();
2641Firebug.context.persistedState.height=size.height;
2642if(Firebug.saveCookies){Firebug.savePrefs()
2643}removeGlobalEvent("keydown",onGlobalKeyDown);
2644ChromeBase.destroy.call(this);
2645this.document=null;
2646delete this.document;
2647this.window=null;
2648delete this.window;
2649this.node.parentNode.removeChild(this.node);
2650this.node=null;
2651delete this.node
2652},initialize:function(){ChromeBase.initialize.call(this);
2653this.addController([Firebug.browser.window,"resize",this.resize],[$("fbWindow_btClose"),"click",this.close],[$("fbWindow_btDetach"),"click",this.detach],[$("fbWindow_btDeactivate"),"click",this.deactivate]);
2654if(!Env.Options.enablePersistent){this.addController([Firebug.browser.window,"unload",Firebug.shutdown])
2655}if(noFixedPosition){this.addController([Firebug.browser.window,"scroll",this.fixIEPosition])
2656}fbVSplitter.onmousedown=onVSplitterMouseDown;
2657fbHSplitter.onmousedown=onHSplitterMouseDown;
2658this.isInitialized=true
2659},shutdown:function(){fbVSplitter.onmousedown=null;
2660fbHSplitter.onmousedown=null;
2661ChromeBase.shutdown.apply(this);
2662this.isInitialized=false
2663},reattach:function(){var frame=FirebugChrome.chromeMap.frame;
2664ChromeBase.reattach(FirebugChrome.chromeMap.popup,this)
2665},open:function(){if(!Firebug.context.persistedState.isOpen){Firebug.context.persistedState.isOpen=true;
2666if(Env.isChromeExtension){localStorage.setItem("Firebug","1,1")
2667}var node=this.node;
2668node.style.visibility="hidden";
2669if(Firebug.showIconWhenHidden){if(ChromeMini.isInitialized){ChromeMini.shutdown()
2670}}else{node.style.display="block"
2671}var main=$("fbChrome");
2672main.style.display="";
2673var self=this;
2674node.style.visibility="visible";
2675setTimeout(function(){self.initialize();
2676if(noFixedPosition){self.fixIEPosition()
2677}self.draw()
2678},10)
2679}},close:function(){if(Firebug.context.persistedState.isOpen){if(this.isInitialized){this.shutdown()
2680}Firebug.context.persistedState.isOpen=false;
2681if(Env.isChromeExtension){localStorage.setItem("Firebug","1,0")
2682}var node=this.node;
2683if(Firebug.showIconWhenHidden){node.style.visibility="hidden";
2684var main=$("fbChrome",FirebugChrome.chromeMap.frame.document);
2685main.style.display="none";
2686ChromeMini.initialize();
2687node.style.visibility="visible"
2688}else{node.style.display="none"
2689}}},deactivate:function(){if(Env.isChromeExtension){localStorage.removeItem("Firebug");
2690Firebug.GoogleChrome.dispatch("FB_deactivate");
2691Firebug.chrome.close()
2692}else{Firebug.shutdown()
2693}},fixIEPosition:function(){var doc=this.document;
2694var offset=isIE?doc.body.clientTop||doc.documentElement.clientTop:0;
2695var size=Firebug.browser.getWindowSize();
2696var scroll=Firebug.browser.getWindowScrollPosition();
2697var maxHeight=size.height;
2698var height=this.node.offsetHeight;
2699var bodyStyle=doc.body.currentStyle;
2700this.node.style.top=maxHeight-height+scroll.top+"px";
2701if((this.type=="frame"||this.type=="div")&&(bodyStyle.marginLeft||bodyStyle.marginRight)){this.node.style.width=size.width+"px"
2702}if(fbVSplitterStyle){fbVSplitterStyle.right=Firebug.context.persistedState.sidePanelWidth+"px"
2703}this.draw()
2704}});
2705var ChromeMini=extend(Controller,{create:function(chrome){append(this,chrome);
2706this.type="mini"
2707},initialize:function(){Controller.initialize.apply(this);
2708var doc=FirebugChrome.chromeMap.frame.document;
2709var mini=$("fbMiniChrome",doc);
2710mini.style.display="block";
2711var miniIcon=$("fbMiniIcon",doc);
2712var width=miniIcon.offsetWidth+10;
2713miniIcon.title="Open "+Firebug.version;
2714var errors=$("fbMiniErrors",doc);
2715if(errors.offsetWidth){width+=errors.offsetWidth+10
2716}var node=this.node;
2717node.style.height="27px";
2718node.style.width=width+"px";
2719node.style.left="";
2720node.style.right=0;
2721if(this.node.nodeName.toLowerCase()=="iframe"){node.setAttribute("allowTransparency","true");
2722this.document.body.style.backgroundColor="transparent"
2723}else{node.style.background="transparent"
2724}if(noFixedPosition){this.fixIEPosition()
2725}this.addController([$("fbMiniIcon",doc),"click",onMiniIconClick]);
2726if(noFixedPosition){this.addController([Firebug.browser.window,"scroll",this.fixIEPosition])
2727}this.isInitialized=true
2728},shutdown:function(){var node=this.node;
2729node.style.height=Firebug.context.persistedState.height+"px";
2730node.style.width="100%";
2731node.style.left=0;
2732node.style.right="";
2733if(this.node.nodeName.toLowerCase()=="iframe"){node.setAttribute("allowTransparency","false");
2734this.document.body.style.backgroundColor="#fff"
2735}else{node.style.background="#fff"
2736}if(noFixedPosition){this.fixIEPosition()
2737}var doc=FirebugChrome.chromeMap.frame.document;
2738var mini=$("fbMiniChrome",doc);
2739mini.style.display="none";
2740Controller.shutdown.apply(this);
2741this.isInitialized=false
2742},draw:function(){},fixIEPosition:ChromeFrameBase.fixIEPosition});
2743var ChromePopupBase=extend(ChromeBase,{initialize:function(){setClass(this.document.body,"FirebugPopup");
2744ChromeBase.initialize.call(this);
2745this.addController([Firebug.chrome.window,"resize",this.resize],[Firebug.chrome.window,"unload",this.destroy]);
2746if(Env.Options.enablePersistent){this.persist=bind(this.persist,this);
2747addEvent(Firebug.browser.window,"unload",this.persist)
2748}else{this.addController([Firebug.browser.window,"unload",this.close])
2749}fbVSplitter.onmousedown=onVSplitterMouseDown
2750},destroy:function(){var chromeWin=Firebug.chrome.window;
2751var left=chromeWin.screenX||chromeWin.screenLeft;
2752var top=chromeWin.screenY||chromeWin.screenTop;
2753var size=Firebug.chrome.getWindowSize();
2754Firebug.context.persistedState.popupTop=top;
2755Firebug.context.persistedState.popupLeft=left;
2756Firebug.context.persistedState.popupWidth=size.width;
2757Firebug.context.persistedState.popupHeight=size.height;
2758if(Firebug.saveCookies){Firebug.savePrefs()
2759}var frame=FirebugChrome.chromeMap.frame;
2760if(frame){dispatch(frame.panelMap,"detach",[this,frame]);
2761frame.reattach(this,frame)
2762}if(Env.Options.enablePersistent){removeEvent(Firebug.browser.window,"unload",this.persist)
2763}ChromeBase.destroy.apply(this);
2764FirebugChrome.chromeMap.popup=null;
2765this.node.close()
2766},persist:function(){persistTimeStart=new Date().getTime();
2767removeEvent(Firebug.browser.window,"unload",this.persist);
2768Firebug.Inspector.destroy();
2769Firebug.browser.window.FirebugOldBrowser=true;
2770var persistTimeStart=new Date().getTime();
2771var waitMainWindow=function(){var doc,head;
2772try{if(window.opener&&!window.opener.FirebugOldBrowser&&(doc=window.opener.document)){try{if(Env.isDebugMode){window.FBL=FBL
2773}window.Firebug=Firebug;
2774window.opener.Firebug=Firebug;
2775Env.browser=window.opener;
2776Firebug.browser=Firebug.context=new Context(Env.browser);
2777Firebug.loadPrefs();
2778registerConsole();
2779var persistDelay=new Date().getTime()-persistTimeStart;
2780var chrome=Firebug.chrome;
2781addEvent(Firebug.browser.window,"unload",chrome.persist);
2782FBL.cacheDocument();
2783Firebug.Inspector.create();
2784Firebug.Console.logFormatted(["Firebug could not capture console calls during "+persistDelay+"ms"],Firebug.context,"info");
2785setTimeout(function(){var htmlPanel=chrome.getPanel("HTML");
2786htmlPanel.createUI()
2787},50)
2788}catch(pE){alert("persist error: "+(pE.message||pE))
2789}}else{window.setTimeout(waitMainWindow,0)
2790}}catch(E){window.close()
2791}};
2792waitMainWindow()
2793},close:function(){this.destroy()
2794}});
2795var changeCommandLineVisibility=function changeCommandLineVisibility(visibility){var last=Firebug.chrome.commandLineVisible;
2796var visible=Firebug.chrome.commandLineVisible=typeof visibility=="boolean"?visibility:!Firebug.chrome.commandLineVisible;
2797if(visible!=last){if(visible){fbBottom.className="";
2798if(Firebug.CommandLine){Firebug.CommandLine.activate()
2799}}else{if(Firebug.CommandLine){Firebug.CommandLine.deactivate()
2800}fbBottom.className="hide"
2801}}};
2802var changeSidePanelVisibility=function changeSidePanelVisibility(visibility){var last=Firebug.chrome.sidePanelVisible;
2803Firebug.chrome.sidePanelVisible=typeof visibility=="boolean"?visibility:!Firebug.chrome.sidePanelVisible;
2804if(Firebug.chrome.sidePanelVisible!=last){fbPanelBox2.className=Firebug.chrome.sidePanelVisible?"":"hide";
2805fbPanelBar2Box.className=Firebug.chrome.sidePanelVisible?"":"hide"
2806}};
2807var onGlobalKeyDown=function onGlobalKeyDown(event){var keyCode=event.keyCode;
2808var shiftKey=event.shiftKey;
2809var ctrlKey=event.ctrlKey;
2810if(keyCode==123&&(!isFirefox&&!shiftKey||shiftKey&&isFirefox)){Firebug.chrome.toggle(false,ctrlKey);
2811cancelEvent(event,true);
2812if(Env.isChromeExtension){Firebug.GoogleChrome.dispatch("FB_enableIcon")
2813}}else{if(keyCode==67&&ctrlKey&&shiftKey){Firebug.Inspector.toggleInspect();
2814cancelEvent(event,true)
2815}else{if(keyCode==76&&ctrlKey&&shiftKey){Firebug.chrome.focusCommandLine();
2816cancelEvent(event,true)
2817}}}};
2818var onMiniIconClick=function onMiniIconClick(event){Firebug.chrome.toggle(false,event.ctrlKey);
2819cancelEvent(event,true)
2820};
2821var onHSplitterMouseDown=function onHSplitterMouseDown(event){addGlobalEvent("mousemove",onHSplitterMouseMove);
2822addGlobalEvent("mouseup",onHSplitterMouseUp);
2823if(isIE){addEvent(Firebug.browser.document.documentElement,"mouseleave",onHSplitterMouseUp)
2824}fbHSplitter.className="fbOnMovingHSplitter";
2825return false
2826};
2827var onHSplitterMouseMove=function onHSplitterMouseMove(event){cancelEvent(event,true);
2828var clientY=event.clientY;
2829var win=isIE?event.srcElement.ownerDocument.parentWindow:event.target.defaultView||event.target.ownerDocument&&event.target.ownerDocument.defaultView;
2830if(!win){return
2831}if(win!=win.parent){var frameElement=win.frameElement;
2832if(frameElement){var framePos=Firebug.browser.getElementPosition(frameElement).top;
2833clientY+=framePos;
2834if(frameElement.style.position!="fixed"){clientY-=Firebug.browser.getWindowScrollPosition().top
2835}}}if(isOpera&&isQuiksMode&&win.frameElement.id=="FirebugUI"){clientY=Firebug.browser.getWindowSize().height-win.frameElement.offsetHeight+clientY
2836}onHSplitterMouseMoveBuffer=clientY;
2837if(new Date().getTime()-lastHSplitterMouseMove>chromeRedrawSkipRate){lastHSplitterMouseMove=new Date().getTime();
2838handleHSplitterMouseMove()
2839}else{if(!onHSplitterMouseMoveTimer){onHSplitterMouseMoveTimer=setTimeout(handleHSplitterMouseMove,chromeRedrawSkipRate)
2840}}cancelEvent(event,true);
2841return false
2842};
2843var handleHSplitterMouseMove=function(){if(onHSplitterMouseMoveTimer){clearTimeout(onHSplitterMouseMoveTimer);
2844onHSplitterMouseMoveTimer=null
2845}var clientY=onHSplitterMouseMoveBuffer;
2846var windowSize=Firebug.browser.getWindowSize();
2847var scrollSize=Firebug.browser.getWindowScrollSize();
2848var commandLineHeight=Firebug.chrome.commandLineVisible?fbCommandLine.offsetHeight:0;
2849var fixedHeight=topHeight+commandLineHeight;
2850var chromeNode=Firebug.chrome.node;
2851var scrollbarSize=!isIE&&(scrollSize.width>windowSize.width)?17:0;
2852var height=windowSize.height;
2853var chromeHeight=Math.max(height-clientY+5-scrollbarSize,fixedHeight);
2854chromeHeight=Math.min(chromeHeight,windowSize.height-scrollbarSize);
2855Firebug.context.persistedState.height=chromeHeight;
2856chromeNode.style.height=chromeHeight+"px";
2857if(noFixedPosition){Firebug.chrome.fixIEPosition()
2858}Firebug.chrome.draw()
2859};
2860var onHSplitterMouseUp=function onHSplitterMouseUp(event){removeGlobalEvent("mousemove",onHSplitterMouseMove);
2861removeGlobalEvent("mouseup",onHSplitterMouseUp);
2862if(isIE){removeEvent(Firebug.browser.document.documentElement,"mouseleave",onHSplitterMouseUp)
2863}fbHSplitter.className="";
2864Firebug.chrome.draw();
2865return false
2866};
2867var onVSplitterMouseDown=function onVSplitterMouseDown(event){addGlobalEvent("mousemove",onVSplitterMouseMove);
2868addGlobalEvent("mouseup",onVSplitterMouseUp);
2869return false
2870};
2871var onVSplitterMouseMove=function onVSplitterMouseMove(event){if(new Date().getTime()-lastVSplitterMouseMove>chromeRedrawSkipRate){var target=event.target||event.srcElement;
2872if(target&&target.ownerDocument){var clientX=event.clientX;
2873var win=document.all?event.srcElement.ownerDocument.parentWindow:event.target.ownerDocument.defaultView;
2874if(win!=win.parent){clientX+=win.frameElement?win.frameElement.offsetLeft:0
2875}var size=Firebug.chrome.getSize();
2876var x=Math.max(size.width-clientX+3,6);
2877Firebug.context.persistedState.sidePanelWidth=x;
2878Firebug.chrome.draw()
2879}lastVSplitterMouseMove=new Date().getTime()
2880}cancelEvent(event,true);
2881return false
2882};
2883var onVSplitterMouseUp=function onVSplitterMouseUp(event){removeGlobalEvent("mousemove",onVSplitterMouseMove);
2884removeGlobalEvent("mouseup",onVSplitterMouseUp);
2885Firebug.chrome.draw()
2886}
2887}});
2888FBL.ns(function(){with(FBL){Firebug.Lite={}
2889}});
2890FBL.ns(function(){with(FBL){Firebug.Lite.Cache={ID:"firebug-"+new Date().getTime()};
2891var cacheUID=0;
2892var createCache=function(){var map={};
2893var data={};
2894var CID=Firebug.Lite.Cache.ID;
2895var supportsDeleteExpando=!document.all;
2896var cacheFunction=function(element){return cacheAPI.set(element)
2897};
2898var cacheAPI={get:function(key){return map.hasOwnProperty(key)?map[key]:null
2899},set:function(element){var id=getValidatedKey(element);
2900if(!id){id=++cacheUID;
2901element[CID]=id
2902}if(!map.hasOwnProperty(id)){map[id]=element;
2903data[id]={}
2904}return id
2905},unset:function(element){var id=getValidatedKey(element);
2906if(!id){return
2907}if(supportsDeleteExpando){delete element[CID]
2908}else{if(element.removeAttribute){element.removeAttribute(CID)
2909}}delete map[id];
2910delete data[id]
2911},key:function(element){return getValidatedKey(element)
2912},has:function(element){var id=getValidatedKey(element);
2913return id&&map.hasOwnProperty(id)
2914},each:function(callback){for(var key in map){if(map.hasOwnProperty(key)){callback(key,map[key])
2915}}},data:function(element,name,value){if(value){if(!name){return null
2916}var id=cacheAPI.set(element);
2917return data[id][name]=value
2918}else{var id=cacheAPI.key(element);
2919return data.hasOwnProperty(id)&&data[id].hasOwnProperty(name)?data[id][name]:null
2920}},clear:function(){for(var id in map){var element=map[id];
2921cacheAPI.unset(element)
2922}}};
2923var getValidatedKey=function(element){var id=element[CID];
2924if(!supportsDeleteExpando&&id&&map.hasOwnProperty(id)&&map[id]!=element){element.removeAttribute(CID);
2925id=null
2926}return id
2927};
2928FBL.append(cacheFunction,cacheAPI);
2929return cacheFunction
2930};
2931Firebug.Lite.Cache.StyleSheet=createCache();
2932Firebug.Lite.Cache.Element=createCache();
2933Firebug.Lite.Cache.Event=createCache()
2934}});
2935FBL.ns(function(){with(FBL){var sourceMap={};
2936Firebug.Lite.Proxy={_callbacks:{},load:function(url){var resourceDomain=getDomain(url);
2937var isLocalResource=!resourceDomain||resourceDomain==Firebug.context.window.location.host;
2938return isLocalResource?fetchResource(url):fetchProxyResource(url)
2939},loadJSONP:function(url,callback){var script=createGlobalElement("script"),doc=Firebug.context.document,uid=""+new Date().getTime(),callbackName="callback=Firebug.Lite.Proxy._callbacks."+uid,jsonpURL=url.indexOf("?")!=-1?url+"&"+callbackName:url+"?"+callbackName;
2940Firebug.Lite.Proxy._callbacks[uid]=function(data){if(callback){callback(data)
2941}script.parentNode.removeChild(script);
2942delete Firebug.Lite.Proxy._callbacks[uid]
2943};
2944script.src=jsonpURL;
2945if(doc.documentElement){doc.documentElement.appendChild(script)
2946}},YQL:function(url,callback){var yql="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22"+encodeURIComponent(url)+"%22&format=xml";
2947this.loadJSONP(yql,function(data){var source=data.results[0];
2948var match=/<body>\s+<p>([\s\S]+)<\/p>\s+<\/body>$/.exec(source);
2949if(match){source=match[1]
2950}console.log(source)
2951})
2952}};
2953Firebug.Lite.Proxy.fetchResourceDisabledMessage='/* Firebug Lite resource fetching is disabled.\nTo enabled it set the Firebug Lite option "disableResourceFetching" to "false".\nMore info at http://getfirebug.com/firebuglite#Options */';
2954var fetchResource=function(url){if(Firebug.disableResourceFetching){var source=sourceMap[url]=Firebug.Lite.Proxy.fetchResourceDisabledMessage;
2955return source
2956}if(sourceMap.hasOwnProperty(url)){return sourceMap[url]
2957}var xhr=FBL.getNativeXHRObject();
2958xhr.open("get",url,false);
2959xhr.send();
2960var source=sourceMap[url]=xhr.responseText;
2961return source
2962};
2963var fetchProxyResource=function(url){if(sourceMap.hasOwnProperty(url)){return sourceMap[url]
2964}var proxyURL=Env.Location.baseDir+"plugin/proxy/proxy.php?url="+encodeURIComponent(url);
2965var response=fetchResource(proxyURL);
2966try{var data=eval("("+response+")")
2967}catch(E){return"ERROR: Firebug Lite Proxy plugin returned an invalid response."
2968}var source=data?data.contents:"";
2969return source
2970}
2971}});
2972FBL.ns(function(){with(FBL){Firebug.Lite.Style={}
2973}});
2974FBL.ns(function(){with(FBL){Firebug.Lite.Script=function(window){this.fileName=null;
2975this.isValid=null;
2976this.baseLineNumber=null;
2977this.lineExtent=null;
2978this.tag=null;
2979this.functionName=null;
2980this.functionSource=null
2981};
2982Firebug.Lite.Script.prototype={isLineExecutable:function(){},pcToLine:function(){},lineToPc:function(){},toString:function(){return"Firebug.Lite.Script"
2983}}
2984}});
2985FBL.ns(function(){with(FBL){Firebug.Lite.Browser=function(window){this.contentWindow=window;
2986this.contentDocument=window.document;
2987this.currentURI={spec:window.location.href}
2988};
2989Firebug.Lite.Browser.prototype={toString:function(){return"Firebug.Lite.Browser"
2990}}
2991}});
2992var JSON=window.JSON||{};
2993(function(){function f(n){return n<10?"0"+n:n
2994}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null
2995};
2996String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()
2997}
2998}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;
2999function quote(string){escapable.lastIndex=0;
3000return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];
3001return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)
3002})+'"':'"'+string+'"'
3003}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];
3004if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)
3005}if(typeof rep==="function"){value=rep.call(holder,key,value)
3006}switch(typeof value){case"string":return quote(value);
3007case"number":return isFinite(value)?String(value):"null";
3008case"boolean":case"null":return String(value);
3009case"object":if(!value){return"null"
3010}gap+=indent;
3011partial=[];
3012if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;
3013for(i=0;
3014i<length;
3015i+=1){partial[i]=str(i,value)||"null"
3016}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";
3017gap=mind;
3018return v
3019}if(rep&&typeof rep==="object"){length=rep.length;
3020for(i=0;
3021i<length;
3022i+=1){k=rep[i];
3023if(typeof k==="string"){v=str(k,value);
3024if(v){partial.push(quote(k)+(gap?": ":":")+v)
3025}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);
3026if(v){partial.push(quote(k)+(gap?": ":":")+v)
3027}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";
3028gap=mind;
3029return v
3030}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;
3031gap="";
3032indent="";
3033if(typeof space==="number"){for(i=0;
3034i<space;
3035i+=1){indent+=" "
3036}}else{if(typeof space==="string"){indent=space
3037}}rep=replacer;
3038if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")
3039}return str("",{"":value})
3040}
3041}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;
3042function walk(holder,key){var k,v,value=holder[key];
3043if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);
3044if(v!==undefined){value[k]=v
3045}else{delete value[k]
3046}}}}return reviver.call(holder,key,value)
3047}text=String(text);
3048cx.lastIndex=0;
3049if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)
3050})
3051}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");
3052return typeof reviver==="function"?walk({"":j},""):j
3053}throw new SyntaxError("JSON.parse")
3054}
3055}FBL.JSON=JSON
3056}());
3057(function(){var store=(function(){var api={},win=window,doc=win.document,localStorageName="localStorage",globalStorageName="globalStorage",namespace="__firebug__storejs__",storage;
3058api.disabled=false;
3059api.set=function(key,value){};
3060api.get=function(key){};
3061api.remove=function(key){};
3062api.clear=function(){};
3063api.transact=function(key,transactionFn){var val=api.get(key);
3064if(typeof val=="undefined"){val={}
3065}transactionFn(val);
3066api.set(key,val)
3067};
3068api.serialize=function(value){return JSON.stringify(value)
3069};
3070api.deserialize=function(value){if(typeof value!="string"){return undefined
3071}return JSON.parse(value)
3072};
3073function isLocalStorageNameSupported(){try{return(localStorageName in win&&win[localStorageName])
3074}catch(err){return false
3075}}function isGlobalStorageNameSupported(){try{return(globalStorageName in win&&win[globalStorageName]&&win[globalStorageName][win.location.hostname])
3076}catch(err){return false
3077}}if(isLocalStorageNameSupported()){storage=win[localStorageName];
3078api.set=function(key,val){storage.setItem(key,api.serialize(val))
3079};
3080api.get=function(key){return api.deserialize(storage.getItem(key))
3081};
3082api.remove=function(key){storage.removeItem(key)
3083};
3084api.clear=function(){storage.clear()
3085}
3086}else{if(isGlobalStorageNameSupported()){storage=win[globalStorageName][win.location.hostname];
3087api.set=function(key,val){storage[key]=api.serialize(val)
3088};
3089api.get=function(key){return api.deserialize(storage[key]&&storage[key].value)
3090};
3091api.remove=function(key){delete storage[key]
3092};
3093api.clear=function(){for(var key in storage){delete storage[key]
3094}}
3095}else{if(doc.documentElement.addBehavior){var storage=doc.createElement("div");
3096function withIEStorage(storeFunction){return function(){var args=Array.prototype.slice.call(arguments,0);
3097args.unshift(storage);
3098doc.documentElement.appendChild(storage);
3099storage.addBehavior("#default#userData");
3100storage.load(localStorageName);
3101var result=storeFunction.apply(api,args);
3102doc.documentElement.removeChild(storage);
3103return result
3104}
3105}api.set=withIEStorage(function(storage,key,val){storage.setAttribute(key,api.serialize(val));
3106storage.save(localStorageName)
3107});
3108api.get=withIEStorage(function(storage,key){return api.deserialize(storage.getAttribute(key))
3109});
3110api.remove=withIEStorage(function(storage,key){storage.removeAttribute(key);
3111storage.save(localStorageName)
3112});
3113api.clear=withIEStorage(function(storage){var attributes=storage.XMLDocument.documentElement.attributes;
3114storage.load(localStorageName);
3115for(var i=0,attr;
3116attr=attributes[i];
3117i++){storage.removeAttribute(attr.name)
3118}storage.save(localStorageName)
3119})
3120}}}try{api.set(namespace,namespace);
3121if(api.get(namespace)!=namespace){api.disabled=true
3122}api.remove(namespace)
3123}catch(e){api.disabled=true
3124}return api
3125})();
3126if(typeof module!="undefined"){module.exports=store
3127}FBL.Store=store
3128})();
3129FBL.ns(function(){with(FBL){var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=false,baseHasDuplicate=true;
3130[0,0].sort(function(){baseHasDuplicate=false;
3131return 0
3132});
3133var Sizzle=function(selector,context,results,seed){results=results||[];
3134var origContext=context=context||document;
3135if(context.nodeType!==1&&context.nodeType!==9){return[]
3136}if(!selector||typeof selector!=="string"){return results
3137}var parts=[],m,set,checkSet,check,mode,extra,prune=true,contextXML=isXML(context),soFar=selector;
3138while((chunker.exec(""),m=chunker.exec(soFar))!==null){soFar=m[3];
3139parts.push(m[1]);
3140if(m[2]){extra=m[3];
3141break
3142}}if(parts.length>1&&origPOS.exec(selector)){if(parts.length===2&&Expr.relative[parts[0]]){set=posProcess(parts[0]+parts[1],context)
3143}else{set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);
3144while(parts.length){selector=parts.shift();
3145if(Expr.relative[selector]){selector+=parts.shift()
3146}set=posProcess(selector,set)
3147}}}else{if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])){var ret=Sizzle.find(parts.shift(),context,contextXML);
3148context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0]
3149}if(context){var ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);
3150set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;
3151if(parts.length>0){checkSet=makeArray(set)
3152}else{prune=false
3153}while(parts.length){var cur=parts.pop(),pop=cur;
3154if(!Expr.relative[cur]){cur=""
3155}else{pop=parts.pop()
3156}if(pop==null){pop=context
3157}Expr.relative[cur](checkSet,pop,contextXML)
3158}}else{checkSet=parts=[]
3159}}if(!checkSet){checkSet=set
3160}if(!checkSet){throw"Syntax error, unrecognized expression: "+(cur||selector)
3161}if(toString.call(checkSet)==="[object Array]"){if(!prune){results.push.apply(results,checkSet)
3162}else{if(context&&context.nodeType===1){for(var i=0;
3163checkSet[i]!=null;
3164i++){if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){results.push(set[i])
3165}}}else{for(var i=0;
3166checkSet[i]!=null;
3167i++){if(checkSet[i]&&checkSet[i].nodeType===1){results.push(set[i])
3168}}}}}else{makeArray(checkSet,results)
3169}if(extra){Sizzle(extra,origContext,results,seed);
3170Sizzle.uniqueSort(results)
3171}return results
3172};
3173Sizzle.uniqueSort=function(results){if(sortOrder){hasDuplicate=baseHasDuplicate;
3174results.sort(sortOrder);
3175if(hasDuplicate){for(var i=1;
3176i<results.length;
3177i++){if(results[i]===results[i-1]){results.splice(i--,1)
3178}}}}return results
3179};
3180Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)
3181};
3182Sizzle.find=function(expr,context,isXML){var set,match;
3183if(!expr){return[]
3184}for(var i=0,l=Expr.order.length;
3185i<l;
3186i++){var type=Expr.order[i],match;
3187if((match=Expr.leftMatch[type].exec(expr))){var left=match[1];
3188match.splice(1,1);
3189if(left.substr(left.length-1)!=="\\"){match[1]=(match[1]||"").replace(/\\/g,"");
3190set=Expr.find[type](match,context,isXML);
3191if(set!=null){expr=expr.replace(Expr.match[type],"");
3192break
3193}}}}if(!set){set=context.getElementsByTagName("*")
3194}return{set:set,expr:expr}
3195};
3196Sizzle.filter=function(expr,set,inplace,not){var old=expr,result=[],curLoop=set,match,anyFound,isXMLFilter=set&&set[0]&&isXML(set[0]);
3197while(expr&&set.length){for(var type in Expr.filter){if((match=Expr.match[type].exec(expr))!=null){var filter=Expr.filter[type],found,item;
3198anyFound=false;
3199if(curLoop==result){result=[]
3200}if(Expr.preFilter[type]){match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);
3201if(!match){anyFound=found=true
3202}else{if(match===true){continue
3203}}}if(match){for(var i=0;
3204(item=curLoop[i])!=null;
3205i++){if(item){found=filter(item,match,i,curLoop);
3206var pass=not^!!found;
3207if(inplace&&found!=null){if(pass){anyFound=true
3208}else{curLoop[i]=false
3209}}else{if(pass){result.push(item);
3210anyFound=true
3211}}}}}if(found!==undefined){if(!inplace){curLoop=result
3212}expr=expr.replace(Expr.match[type],"");
3213if(!anyFound){return[]
3214}break
3215}}}if(expr==old){if(anyFound==null){throw"Syntax error, unrecognized expression: "+expr
3216}else{break
3217}}old=expr
3218}return curLoop
3219};
3220var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")
3221}},relative:{"+":function(checkSet,part,isXML){var isPartStr=typeof part==="string",isTag=isPartStr&&!/\W/.test(part),isPartStrNotTag=isPartStr&&!isTag;
3222if(isTag&&!isXML){part=part.toUpperCase()
3223}for(var i=0,l=checkSet.length,elem;
3224i<l;
3225i++){if((elem=checkSet[i])){while((elem=elem.previousSibling)&&elem.nodeType!==1){}checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?elem||false:elem===part
3226}}if(isPartStrNotTag){Sizzle.filter(part,checkSet,true)
3227}},">":function(checkSet,part,isXML){var isPartStr=typeof part==="string";
3228if(isPartStr&&!/\W/.test(part)){part=isXML?part:part.toUpperCase();
3229for(var i=0,l=checkSet.length;
3230i<l;
3231i++){var elem=checkSet[i];
3232if(elem){var parent=elem.parentNode;
3233checkSet[i]=parent.nodeName===part?parent:false
3234}}}else{for(var i=0,l=checkSet.length;
3235i<l;
3236i++){var elem=checkSet[i];
3237if(elem){checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part
3238}}if(isPartStr){Sizzle.filter(part,checkSet,true)
3239}}},"":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;
3240if(!/\W/.test(part)){var nodeCheck=part=isXML?part:part.toUpperCase();
3241checkFn=dirNodeCheck
3242}checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)
3243},"~":function(checkSet,part,isXML){var doneName=done++,checkFn=dirCheck;
3244if(typeof part==="string"&&!/\W/.test(part)){var nodeCheck=part=isXML?part:part.toUpperCase();
3245checkFn=dirNodeCheck
3246}checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)
3247}},find:{ID:function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);
3248return m?[m]:[]
3249}},NAME:function(match,context,isXML){if(typeof context.getElementsByName!=="undefined"){var ret=[],results=context.getElementsByName(match[1]);
3250for(var i=0,l=results.length;
3251i<l;
3252i++){if(results[i].getAttribute("name")===match[1]){ret.push(results[i])
3253}}return ret.length===0?null:ret
3254}},TAG:function(match,context){return context.getElementsByTagName(match[1])
3255}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){match=" "+match[1].replace(/\\/g,"")+" ";
3256if(isXML){return match
3257}for(var i=0,elem;
3258(elem=curLoop[i])!=null;
3259i++){if(elem){if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){if(!inplace){result.push(elem)
3260}}else{if(inplace){curLoop[i]=false
3261}}}}return false
3262},ID:function(match){return match[1].replace(/\\/g,"")
3263},TAG:function(match,curLoop){for(var i=0;
3264curLoop[i]===false;
3265i++){}return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase()
3266},CHILD:function(match){if(match[1]=="nth"){var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);
3267match[2]=(test[1]+(test[2]||1))-0;
3268match[3]=test[3]-0
3269}match[0]=done++;
3270return match
3271},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1].replace(/\\/g,"");
3272if(!isXML&&Expr.attrMap[name]){match[1]=Expr.attrMap[name]
3273}if(match[2]==="~="){match[4]=" "+match[4]+" "
3274}return match
3275},PSEUDO:function(match,curLoop,inplace,result,not){if(match[1]==="not"){if((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3])){match[3]=Sizzle(match[3],null,null,curLoop)
3276}else{var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);
3277if(!inplace){result.push.apply(result,ret)
3278}return false
3279}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){return true
3280}}return match
3281},POS:function(match){match.unshift(true);
3282return match
3283}},filters:{enabled:function(elem){return elem.disabled===false&&elem.type!=="hidden"
3284},disabled:function(elem){return elem.disabled===true
3285},checked:function(elem){return elem.checked===true
3286},selected:function(elem){elem.parentNode.selectedIndex;
3287return elem.selected===true
3288},parent:function(elem){return !!elem.firstChild
3289},empty:function(elem){return !elem.firstChild
3290},has:function(elem,i,match){return !!Sizzle(match[3],elem).length
3291},header:function(elem){return/h\d/i.test(elem.nodeName)
3292},text:function(elem){return"text"===elem.type
3293},radio:function(elem){return"radio"===elem.type
3294},checkbox:function(elem){return"checkbox"===elem.type
3295},file:function(elem){return"file"===elem.type
3296},password:function(elem){return"password"===elem.type
3297},submit:function(elem){return"submit"===elem.type
3298},image:function(elem){return"image"===elem.type
3299},reset:function(elem){return"reset"===elem.type
3300},button:function(elem){return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON"
3301},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName)
3302}},setFilters:{first:function(elem,i){return i===0
3303},last:function(elem,i,match,array){return i===array.length-1
3304},even:function(elem,i){return i%2===0
3305},odd:function(elem,i){return i%2===1
3306},lt:function(elem,i,match){return i<match[3]-0
3307},gt:function(elem,i,match){return i>match[3]-0
3308},nth:function(elem,i,match){return match[3]-0==i
3309},eq:function(elem,i,match){return match[3]-0==i
3310}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];
3311if(filter){return filter(elem,i,match,array)
3312}else{if(name==="contains"){return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0
3313}else{if(name==="not"){var not=match[3];
3314for(var i=0,l=not.length;
3315i<l;
3316i++){if(not[i]===elem){return false
3317}}return true
3318}}}},CHILD:function(elem,match){var type=match[1],node=elem;
3319switch(type){case"only":case"first":while((node=node.previousSibling)){if(node.nodeType===1){return false
3320}}if(type=="first"){return true
3321}node=elem;
3322case"last":while((node=node.nextSibling)){if(node.nodeType===1){return false
3323}}return true;
3324case"nth":var first=match[2],last=match[3];
3325if(first==1&&last==0){return true
3326}var doneName=match[0],parent=elem.parentNode;
3327if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;
3328for(node=parent.firstChild;
3329node;
3330node=node.nextSibling){if(node.nodeType===1){node.nodeIndex=++count
3331}}parent.sizcache=doneName
3332}var diff=elem.nodeIndex-last;
3333if(first==0){return diff==0
3334}else{return(diff%first==0&&diff/first>=0)
3335}}},ID:function(elem,match){return elem.nodeType===1&&elem.getAttribute("id")===match
3336},TAG:function(elem,match){return(match==="*"&&elem.nodeType===1)||elem.nodeName===match
3337},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1
3338},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):elem[name]!=null?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];
3339return result==null?type==="!=":type==="="?value===check:type==="*="?value.indexOf(check)>=0:type==="~="?(" "+value+" ").indexOf(check)>=0:!check?value&&result!==false:type==="!="?value!=check:type==="^="?value.indexOf(check)===0:type==="$="?value.substr(value.length-check.length)===check:type==="|="?value===check||value.substr(0,check.length+1)===check+"-":false
3340},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];
3341if(filter){return filter(elem,i,match,array)
3342}}}};
3343var origPOS=Expr.match.POS;
3344for(var type in Expr.match){Expr.match[type]=new RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source);
3345Expr.leftMatch[type]=new RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source)
3346}var makeArray=function(array,results){array=Array.prototype.slice.call(array,0);
3347if(results){results.push.apply(results,array);
3348return results
3349}return array
3350};
3351try{Array.prototype.slice.call(document.documentElement.childNodes,0)
3352}catch(e){makeArray=function(array,results){var ret=results||[];
3353if(toString.call(array)==="[object Array]"){Array.prototype.push.apply(ret,array)
3354}else{if(typeof array.length==="number"){for(var i=0,l=array.length;
3355i<l;
3356i++){ret.push(array[i])
3357}}else{for(var i=0;
3358array[i];
3359i++){ret.push(array[i])
3360}}}return ret
3361}
3362}var sortOrder;
3363if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){if(!a.compareDocumentPosition||!b.compareDocumentPosition){if(a==b){hasDuplicate=true
3364}return 0
3365}var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;
3366if(ret===0){hasDuplicate=true
3367}return ret
3368}
3369}else{if("sourceIndex" in document.documentElement){sortOrder=function(a,b){if(!a.sourceIndex||!b.sourceIndex){if(a==b){hasDuplicate=true
3370}return 0
3371}var ret=a.sourceIndex-b.sourceIndex;
3372if(ret===0){hasDuplicate=true
3373}return ret
3374}
3375}else{if(document.createRange){sortOrder=function(a,b){if(!a.ownerDocument||!b.ownerDocument){if(a==b){hasDuplicate=true
3376}return 0
3377}var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();
3378aRange.setStart(a,0);
3379aRange.setEnd(a,0);
3380bRange.setStart(b,0);
3381bRange.setEnd(b,0);
3382var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);
3383if(ret===0){hasDuplicate=true
3384}return ret
3385}
3386}}}(function(){var form=document.createElement("div"),id="script"+(new Date).getTime();
3387form.innerHTML="<a name='"+id+"'/>";
3388var root=document.documentElement;
3389root.insertBefore(form,root.firstChild);
3390if(!!document.getElementById(id)){Expr.find.ID=function(match,context,isXML){if(typeof context.getElementById!=="undefined"&&!isXML){var m=context.getElementById(match[1]);
3391return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]
3392}};
3393Expr.filter.ID=function(elem,match){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");
3394return elem.nodeType===1&&node&&node.nodeValue===match
3395}
3396}root.removeChild(form);
3397root=form=null
3398})();
3399(function(){var div=document.createElement("div");
3400div.appendChild(document.createComment(""));
3401if(div.getElementsByTagName("*").length>0){Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);
3402if(match[1]==="*"){var tmp=[];
3403for(var i=0;
3404results[i];
3405i++){if(results[i].nodeType===1){tmp.push(results[i])
3406}}results=tmp
3407}return results
3408}
3409}div.innerHTML="<a href='#'></a>";
3410if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&div.firstChild.getAttribute("href")!=="#"){Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)
3411}
3412}div=null
3413})();
3414if(document.querySelectorAll){(function(){var oldSizzle=Sizzle,div=document.createElement("div");
3415div.innerHTML="<p class='TEST'></p>";
3416if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){return
3417}Sizzle=function(query,context,extra,seed){context=context||document;
3418if(!seed&&context.nodeType===9&&!isXML(context)){try{return makeArray(context.querySelectorAll(query),extra)
3419}catch(e){}}return oldSizzle(query,context,extra,seed)
3420};
3421for(var prop in oldSizzle){Sizzle[prop]=oldSizzle[prop]
3422}div=null
3423})()
3424}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var div=document.createElement("div");
3425div.innerHTML="<div class='test e'></div><div class='test'></div>";
3426if(div.getElementsByClassName("e").length===0){return
3427}div.lastChild.className="e";
3428if(div.getElementsByClassName("e").length===1){return
3429}Expr.order.splice(1,0,"CLASS");
3430Expr.find.CLASS=function(match,context,isXML){if(typeof context.getElementsByClassName!=="undefined"&&!isXML){return context.getElementsByClassName(match[1])
3431}};
3432div=null
3433})()
3434}function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;
3435for(var i=0,l=checkSet.length;
3436i<l;
3437i++){var elem=checkSet[i];
3438if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;
3439elem.sizset=i
3440}elem=elem[dir];
3441var match=false;
3442while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];
3443break
3444}if(elem.nodeType===1&&!isXML){elem.sizcache=doneName;
3445elem.sizset=i
3446}if(elem.nodeName===cur){match=elem;
3447break
3448}elem=elem[dir]
3449}checkSet[i]=match
3450}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var sibDir=dir=="previousSibling"&&!isXML;
3451for(var i=0,l=checkSet.length;
3452i<l;
3453i++){var elem=checkSet[i];
3454if(elem){if(sibDir&&elem.nodeType===1){elem.sizcache=doneName;
3455elem.sizset=i
3456}elem=elem[dir];
3457var match=false;
3458while(elem){if(elem.sizcache===doneName){match=checkSet[elem.sizset];
3459break
3460}if(elem.nodeType===1){if(!isXML){elem.sizcache=doneName;
3461elem.sizset=i
3462}if(typeof cur!=="string"){if(elem===cur){match=true;
3463break
3464}}else{if(Sizzle.filter(cur,[elem]).length>0){match=elem;
3465break
3466}}}elem=elem[dir]
3467}checkSet[i]=match
3468}}}var contains=document.compareDocumentPosition?function(a,b){return a.compareDocumentPosition(b)&16
3469}:function(a,b){return a!==b&&(a.contains?a.contains(b):true)
3470};
3471var isXML=function(elem){return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||!!elem.ownerDocument&&elem.ownerDocument.documentElement.nodeName!=="HTML"
3472};
3473var posProcess=function(selector,context){var tmpSet=[],later="",match,root=context.nodeType?[context]:context;
3474while((match=Expr.match.PSEUDO.exec(selector))){later+=match[0];
3475selector=selector.replace(Expr.match.PSEUDO,"")
3476}selector=Expr.relative[selector]?selector+"*":selector;
3477for(var i=0,l=root.length;
3478i<l;
3479i++){Sizzle(selector,root[i],tmpSet)
3480}return Sizzle.filter(later,tmpSet)
3481};
3482Firebug.Selector=Sizzle
3483}});
3484FBL.ns(function(){with(FBL){var ElementCache=Firebug.Lite.Cache.Element;
3485var inspectorTS,inspectorTimer,isInspecting;
3486Firebug.Inspector={create:function(){offlineFragment=Env.browser.document.createDocumentFragment();
3487createBoxModelInspector();
3488createOutlineInspector()
3489},destroy:function(){destroyBoxModelInspector();
3490destroyOutlineInspector();
3491offlineFragment=null
3492},toggleInspect:function(){if(isInspecting){this.stopInspecting()
3493}else{Firebug.chrome.inspectButton.changeState("pressed");
3494this.startInspecting()
3495}},startInspecting:function(){isInspecting=true;
3496Firebug.chrome.selectPanel("HTML");
3497createInspectorFrame();
3498var size=Firebug.browser.getWindowScrollSize();
3499fbInspectFrame.style.width=size.width+"px";
3500fbInspectFrame.style.height=size.height+"px";
3501addEvent(fbInspectFrame,"mousemove",Firebug.Inspector.onInspecting);
3502addEvent(fbInspectFrame,"mousedown",Firebug.Inspector.onInspectingClick)
3503},stopInspecting:function(){isInspecting=false;
3504if(outlineVisible){this.hideOutline()
3505}removeEvent(fbInspectFrame,"mousemove",Firebug.Inspector.onInspecting);
3506removeEvent(fbInspectFrame,"mousedown",Firebug.Inspector.onInspectingClick);
3507destroyInspectorFrame();
3508Firebug.chrome.inspectButton.restore();
3509if(Firebug.chrome.type=="popup"){Firebug.chrome.node.focus()
3510}},onInspectingClick:function(e){fbInspectFrame.style.display="none";
3511var targ=Firebug.browser.getElementFromPoint(e.clientX,e.clientY);
3512fbInspectFrame.style.display="block";
3513var id=targ.id;
3514if(id&&/^fbOutline\w$/.test(id)){return
3515}if(id=="FirebugUI"){return
3516}while(targ.nodeType!=1){targ=targ.parentNode
3517}Firebug.Inspector.stopInspecting()
3518},onInspecting:function(e){if(new Date().getTime()-lastInspecting>30){fbInspectFrame.style.display="none";
3519var targ=Firebug.browser.getElementFromPoint(e.clientX,e.clientY);
3520fbInspectFrame.style.display="block";
3521var id=targ.id;
3522if(id&&/^fbOutline\w$/.test(id)){return
3523}if(id=="FirebugUI"){return
3524}while(targ.nodeType!=1){targ=targ.parentNode
3525}if(targ.nodeName.toLowerCase()=="body"){return
3526}Firebug.Inspector.drawOutline(targ);
3527if(ElementCache(targ)){var target=""+ElementCache.key(targ);
3528var lazySelect=function(){inspectorTS=new Date().getTime();
3529if(Firebug.HTML){Firebug.HTML.selectTreeNode(""+ElementCache.key(targ))
3530}};
3531if(inspectorTimer){clearTimeout(inspectorTimer);
3532inspectorTimer=null
3533}if(new Date().getTime()-inspectorTS>200){setTimeout(lazySelect,0)
3534}else{inspectorTimer=setTimeout(lazySelect,300)
3535}}lastInspecting=new Date().getTime()
3536}},onInspectingBody:function(e){if(new Date().getTime()-lastInspecting>30){var targ=e.target;
3537var id=targ.id;
3538if(id&&/^fbOutline\w$/.test(id)){return
3539}if(id=="FirebugUI"){return
3540}while(targ.nodeType!=1){targ=targ.parentNode
3541}if(targ.nodeName.toLowerCase()=="body"){return
3542}Firebug.Inspector.drawOutline(targ);
3543if(ElementCache.has(targ)){FBL.Firebug.HTML.selectTreeNode(""+ElementCache.key(targ))
3544}lastInspecting=new Date().getTime()
3545}},drawOutline:function(el){var border=2;
3546var scrollbarSize=17;
3547var windowSize=Firebug.browser.getWindowSize();
3548var scrollSize=Firebug.browser.getWindowScrollSize();
3549var scrollPosition=Firebug.browser.getWindowScrollPosition();
3550var box=Firebug.browser.getElementBox(el);
3551var top=box.top;
3552var left=box.left;
3553var height=box.height;
3554var width=box.width;
3555var freeHorizontalSpace=scrollPosition.left+windowSize.width-left-width-(!isIE&&scrollSize.height>windowSize.height?scrollbarSize:0);
3556var freeVerticalSpace=scrollPosition.top+windowSize.height-top-height-(!isIE&&scrollSize.width>windowSize.width?scrollbarSize:0);
3557var numVerticalBorders=freeVerticalSpace>0?2:1;
3558var o=outlineElements;
3559var style;
3560style=o.fbOutlineT.style;
3561style.top=top-border+"px";
3562style.left=left+"px";
3563style.height=border+"px";
3564style.width=width+"px";
3565style=o.fbOutlineL.style;
3566style.top=top-border+"px";
3567style.left=left-border+"px";
3568style.height=height+numVerticalBorders*border+"px";
3569style.width=border+"px";
3570style=o.fbOutlineB.style;
3571if(freeVerticalSpace>0){style.top=top+height+"px";
3572style.left=left+"px";
3573style.width=width+"px"
3574}else{style.top=-2*border+"px";
3575style.left=-2*border+"px";
3576style.width=border+"px"
3577}style=o.fbOutlineR.style;
3578if(freeHorizontalSpace>0){style.top=top-border+"px";
3579style.left=left+width+"px";
3580style.height=height+numVerticalBorders*border+"px";
3581style.width=(freeHorizontalSpace<border?freeHorizontalSpace:border)+"px"
3582}else{style.top=-2*border+"px";
3583style.left=-2*border+"px";
3584style.height=border+"px";
3585style.width=border+"px"
3586}if(!outlineVisible){this.showOutline()
3587}},hideOutline:function(){if(!outlineVisible){return
3588}for(var name in outline){offlineFragment.appendChild(outlineElements[name])
3589}outlineVisible=false
3590},showOutline:function(){if(outlineVisible){return
3591}if(boxModelVisible){this.hideBoxModel()
3592}for(var name in outline){Firebug.browser.document.getElementsByTagName("body")[0].appendChild(outlineElements[name])
3593}outlineVisible=true
3594},drawBoxModel:function(el){if(!el||!el.parentNode){return
3595}var box=Firebug.browser.getElementBox(el);
3596var windowSize=Firebug.browser.getWindowSize();
3597var scrollPosition=Firebug.browser.getWindowScrollPosition();
3598var offsetHeight=Firebug.chrome.type=="frame"?Firebug.context.persistedState.height:0;
3599if(box.top>scrollPosition.top+windowSize.height-offsetHeight||box.left>scrollPosition.left+windowSize.width||scrollPosition.top>box.top+box.height||scrollPosition.left>box.left+box.width){return
3600}var top=box.top;
3601var left=box.left;
3602var height=box.height;
3603var width=box.width;
3604var margin=Firebug.browser.getMeasurementBox(el,"margin");
3605var padding=Firebug.browser.getMeasurementBox(el,"padding");
3606var border=Firebug.browser.getMeasurementBox(el,"border");
3607boxModelStyle.top=top-margin.top+"px";
3608boxModelStyle.left=left-margin.left+"px";
3609boxModelStyle.height=height+margin.top+margin.bottom+"px";
3610boxModelStyle.width=width+margin.left+margin.right+"px";
3611boxBorderStyle.top=margin.top+"px";
3612boxBorderStyle.left=margin.left+"px";
3613boxBorderStyle.height=height+"px";
3614boxBorderStyle.width=width+"px";
3615boxPaddingStyle.top=margin.top+border.top+"px";
3616boxPaddingStyle.left=margin.left+border.left+"px";
3617boxPaddingStyle.height=height-border.top-border.bottom+"px";
3618boxPaddingStyle.width=width-border.left-border.right+"px";
3619boxContentStyle.top=margin.top+border.top+padding.top+"px";
3620boxContentStyle.left=margin.left+border.left+padding.left+"px";
3621boxContentStyle.height=height-border.top-padding.top-padding.bottom-border.bottom+"px";
3622boxContentStyle.width=width-border.left-padding.left-padding.right-border.right+"px";
3623if(!boxModelVisible){this.showBoxModel()
3624}},hideBoxModel:function(){if(!boxModelVisible){return
3625}offlineFragment.appendChild(boxModel);
3626boxModelVisible=false
3627},showBoxModel:function(){if(boxModelVisible){return
3628}if(outlineVisible){this.hideOutline()
3629}Firebug.browser.document.getElementsByTagName("body")[0].appendChild(boxModel);
3630boxModelVisible=true
3631}};
3632var offlineFragment=null;
3633var boxModelVisible=false;
3634var boxModel,boxModelStyle,boxMargin,boxMarginStyle,boxBorder,boxBorderStyle,boxPadding,boxPaddingStyle,boxContent,boxContentStyle;
3635var resetStyle="margin:0; padding:0; border:0; position:absolute; overflow:hidden; display:block;";
3636var offscreenStyle=resetStyle+"top:-1234px; left:-1234px;";
3637var inspectStyle=resetStyle+"z-index: 2147483500;";
3638var inspectFrameStyle=resetStyle+"z-index: 2147483550; top:0; left:0; background:url("+Env.Location.skinDir+"pixel_transparent.gif);";
3639var inspectModelOpacity=isIE?"filter:alpha(opacity=80);":"opacity:0.8;";
3640var inspectModelStyle=inspectStyle+inspectModelOpacity;
3641var inspectMarginStyle=inspectStyle+"background: #EDFF64; height:100%; width:100%;";
3642var inspectBorderStyle=inspectStyle+"background: #666;";
3643var inspectPaddingStyle=inspectStyle+"background: SlateBlue;";
3644var inspectContentStyle=inspectStyle+"background: SkyBlue;";
3645var outlineStyle={fbHorizontalLine:"background: #3875D7;height: 2px;",fbVerticalLine:"background: #3875D7;width: 2px;"};
3646var lastInspecting=0;
3647var fbInspectFrame=null;
3648var outlineVisible=false;
3649var outlineElements={};
3650var outline={fbOutlineT:"fbHorizontalLine",fbOutlineL:"fbVerticalLine",fbOutlineB:"fbHorizontalLine",fbOutlineR:"fbVerticalLine"};
3651var getInspectingTarget=function(){};
3652var createInspectorFrame=function createInspectorFrame(){fbInspectFrame=createGlobalElement("div");
3653fbInspectFrame.id="fbInspectFrame";
3654fbInspectFrame.firebugIgnore=true;
3655fbInspectFrame.style.cssText=inspectFrameStyle;
3656Firebug.browser.document.getElementsByTagName("body")[0].appendChild(fbInspectFrame)
3657};
3658var destroyInspectorFrame=function destroyInspectorFrame(){if(fbInspectFrame){Firebug.browser.document.getElementsByTagName("body")[0].removeChild(fbInspectFrame);
3659fbInspectFrame=null
3660}};
3661var createOutlineInspector=function createOutlineInspector(){for(var name in outline){var el=outlineElements[name]=createGlobalElement("div");
3662el.id=name;
3663el.firebugIgnore=true;
3664el.style.cssText=inspectStyle+outlineStyle[outline[name]];
3665offlineFragment.appendChild(el)
3666}};
3667var destroyOutlineInspector=function destroyOutlineInspector(){for(var name in outline){var el=outlineElements[name];
3668el.parentNode.removeChild(el)
3669}};
3670var createBoxModelInspector=function createBoxModelInspector(){boxModel=createGlobalElement("div");
3671boxModel.id="fbBoxModel";
3672boxModel.firebugIgnore=true;
3673boxModelStyle=boxModel.style;
3674boxModelStyle.cssText=inspectModelStyle;
3675boxMargin=createGlobalElement("div");
3676boxMargin.id="fbBoxMargin";
3677boxMarginStyle=boxMargin.style;
3678boxMarginStyle.cssText=inspectMarginStyle;
3679boxModel.appendChild(boxMargin);
3680boxBorder=createGlobalElement("div");
3681boxBorder.id="fbBoxBorder";
3682boxBorderStyle=boxBorder.style;
3683boxBorderStyle.cssText=inspectBorderStyle;
3684boxModel.appendChild(boxBorder);
3685boxPadding=createGlobalElement("div");
3686boxPadding.id="fbBoxPadding";
3687boxPaddingStyle=boxPadding.style;
3688boxPaddingStyle.cssText=inspectPaddingStyle;
3689boxModel.appendChild(boxPadding);
3690boxContent=createGlobalElement("div");
3691boxContent.id="fbBoxContent";
3692boxContentStyle=boxContent.style;
3693boxContentStyle.cssText=inspectContentStyle;
3694boxModel.appendChild(boxContent);
3695offlineFragment.appendChild(boxModel)
3696};
3697var destroyBoxModelInspector=function destroyBoxModelInspector(){boxModel.parentNode.removeChild(boxModel)
3698}
3699}});
3700(function(){FBL.DomplateTag=function DomplateTag(tagName){this.tagName=tagName
3701};
3702FBL.DomplateEmbed=function DomplateEmbed(){};
3703FBL.DomplateLoop=function DomplateLoop(){};
3704var DomplateTag=FBL.DomplateTag;
3705var DomplateEmbed=FBL.DomplateEmbed;
3706var DomplateLoop=FBL.DomplateLoop;
3707var womb=null;
3708FBL.domplate=function(){var lastSubject;
3709for(var i=0;
3710i<arguments.length;
3711++i){lastSubject=lastSubject?copyObject(lastSubject,arguments[i]):arguments[i]
3712}for(var name in lastSubject){var val=lastSubject[name];
3713if(isTag(val)){val.tag.subject=lastSubject
3714}}return lastSubject
3715};
3716var domplate=FBL.domplate;
3717FBL.domplate.context=function(context,fn){var lastContext=domplate.lastContext;
3718domplate.topContext=context;
3719fn.apply(context);
3720domplate.topContext=lastContext
3721};
3722FBL.TAG=function(){var embed=new DomplateEmbed();
3723return embed.merge(arguments)
3724};
3725FBL.FOR=function(){var loop=new DomplateLoop();
3726return loop.merge(arguments)
3727};
3728FBL.DomplateTag.prototype={merge:function(args,oldTag){if(oldTag){this.tagName=oldTag.tagName
3729}this.context=oldTag?oldTag.context:null;
3730this.subject=oldTag?oldTag.subject:null;
3731this.attrs=oldTag?copyObject(oldTag.attrs):{};
3732this.classes=oldTag?copyObject(oldTag.classes):{};
3733this.props=oldTag?copyObject(oldTag.props):null;
3734this.listeners=oldTag?copyArray(oldTag.listeners):null;
3735this.children=oldTag?copyArray(oldTag.children):[];
3736this.vars=oldTag?copyArray(oldTag.vars):[];
3737var attrs=args.length?args[0]:null;
3738var hasAttrs=typeof(attrs)=="object"&&!isTag(attrs);
3739this.children=[];
3740if(domplate.topContext){this.context=domplate.topContext
3741}if(args.length){parseChildren(args,hasAttrs?1:0,this.vars,this.children)
3742}if(hasAttrs){this.parseAttrs(attrs)
3743}return creator(this,DomplateTag)
3744},parseAttrs:function(args){for(var name in args){var val=parseValue(args[name]);
3745readPartNames(val,this.vars);
3746if(name.indexOf("on")==0){var eventName=name.substr(2);
3747if(!this.listeners){this.listeners=[]
3748}this.listeners.push(eventName,val)
3749}else{if(name.indexOf("_")==0){var propName=name.substr(1);
3750if(!this.props){this.props={}
3751}this.props[propName]=val
3752}else{if(name.indexOf("$")==0){var className=name.substr(1);
3753if(!this.classes){this.classes={}
3754}this.classes[className]=val
3755}else{if(name=="class"&&this.attrs.hasOwnProperty(name)){this.attrs[name]+=" "+val
3756}else{this.attrs[name]=val
3757}}}}}},compile:function(){if(this.renderMarkup){return
3758}this.compileMarkup();
3759this.compileDOM()
3760},compileMarkup:function(){this.markupArgs=[];
3761var topBlock=[],topOuts=[],blocks=[],info={args:this.markupArgs,argIndex:0};
3762this.generateMarkup(topBlock,topOuts,blocks,info);
3763this.addCode(topBlock,topOuts,blocks);
3764var fnBlock=["r=(function (__code__, __context__, __in__, __out__"];
3765for(var i=0;
3766i<info.argIndex;
3767++i){fnBlock.push(", s",i)
3768}fnBlock.push(") {");
3769if(this.subject){fnBlock.push("with (this) {")
3770}if(this.context){fnBlock.push("with (__context__) {")
3771}fnBlock.push("with (__in__) {");
3772fnBlock.push.apply(fnBlock,blocks);
3773if(this.subject){fnBlock.push("}")
3774}if(this.context){fnBlock.push("}")
3775}fnBlock.push("}})");
3776function __link__(tag,code,outputs,args){if(!tag||!tag.tag){return
3777}tag.tag.compile();
3778var tagOutputs=[];
3779var markupArgs=[code,tag.tag.context,args,tagOutputs];
3780markupArgs.push.apply(markupArgs,tag.tag.markupArgs);
3781tag.tag.renderMarkup.apply(tag.tag.subject,markupArgs);
3782outputs.push(tag);
3783outputs.push(tagOutputs)
3784}function __escape__(value){function replaceChars(ch){switch(ch){case"<":return"&lt;";
3785case">":return"&gt;";
3786case"&":return"&amp;";
3787case"'":return"&#39;";
3788case'"':return"&quot;"
3789}return"?"
3790}return String(value).replace(/[<>&"']/g,replaceChars)
3791}function __loop__(iter,outputs,fn){var iterOuts=[];
3792outputs.push(iterOuts);
3793if(iter instanceof Array){iter=new ArrayIterator(iter)
3794}try{while(1){var value=iter.next();
3795var itemOuts=[0,0];
3796iterOuts.push(itemOuts);
3797fn.apply(this,[value,itemOuts])
3798}}catch(exc){if(exc!=StopIteration){throw exc
3799}}}var js=fnBlock.join("");
3800var r=null;
3801eval(js);
3802this.renderMarkup=r
3803},getVarNames:function(args){if(this.vars){args.push.apply(args,this.vars)
3804}for(var i=0;
3805i<this.children.length;
3806++i){var child=this.children[i];
3807if(isTag(child)){child.tag.getVarNames(args)
3808}else{if(child instanceof Parts){for(var i=0;
3809i<child.parts.length;
3810++i){if(child.parts[i] instanceof Variable){var name=child.parts[i].name;
3811var names=name.split(".");
3812args.push(names[0])
3813}}}}}},generateMarkup:function(topBlock,topOuts,blocks,info){topBlock.push(',"<',this.tagName,'"');
3814for(var name in this.attrs){if(name!="class"){var val=this.attrs[name];
3815topBlock.push(', " ',name,'=\\""');
3816addParts(val,",",topBlock,info,true);
3817topBlock.push(', "\\""')
3818}}if(this.listeners){for(var i=0;
3819i<this.listeners.length;
3820i+=2){readPartNames(this.listeners[i+1],topOuts)
3821}}if(this.props){for(var name in this.props){readPartNames(this.props[name],topOuts)
3822}}if(this.attrs.hasOwnProperty("class")||this.classes){topBlock.push(', " class=\\""');
3823if(this.attrs.hasOwnProperty("class")){addParts(this.attrs["class"],",",topBlock,info,true)
3824}topBlock.push(', " "');
3825for(var name in this.classes){topBlock.push(", (");
3826addParts(this.classes[name],"",topBlock,info);
3827topBlock.push(' ? "',name,'" + " " : "")')
3828}topBlock.push(', "\\""')
3829}topBlock.push(',">"');
3830this.generateChildMarkup(topBlock,topOuts,blocks,info);
3831topBlock.push(',"</',this.tagName,'>"')
3832},generateChildMarkup:function(topBlock,topOuts,blocks,info){for(var i=0;
3833i<this.children.length;
3834++i){var child=this.children[i];
3835if(isTag(child)){child.tag.generateMarkup(topBlock,topOuts,blocks,info)
3836}else{addParts(child,",",topBlock,info,true)
3837}}},addCode:function(topBlock,topOuts,blocks){if(topBlock.length){blocks.push('__code__.push(""',topBlock.join(""),");")
3838}if(topOuts.length){blocks.push("__out__.push(",topOuts.join(","),");")
3839}topBlock.splice(0,topBlock.length);
3840topOuts.splice(0,topOuts.length)
3841},addLocals:function(blocks){var varNames=[];
3842this.getVarNames(varNames);
3843var map={};
3844for(var i=0;
3845i<varNames.length;
3846++i){var name=varNames[i];
3847if(map.hasOwnProperty(name)){continue
3848}map[name]=1;
3849var names=name.split(".");
3850blocks.push("var ",names[0]+" = __in__."+names[0]+";")
3851}},compileDOM:function(){var path=[];
3852var blocks=[];
3853this.domArgs=[];
3854path.embedIndex=0;
3855path.loopIndex=0;
3856path.staticIndex=0;
3857path.renderIndex=0;
3858var nodeCount=this.generateDOM(path,blocks,this.domArgs);
3859var fnBlock=["r=(function (root, context, o"];
3860for(var i=0;
3861i<path.staticIndex;
3862++i){fnBlock.push(", ","s"+i)
3863}for(var i=0;
3864i<path.renderIndex;
3865++i){fnBlock.push(", ","d"+i)
3866}fnBlock.push(") {");
3867for(var i=0;
3868i<path.loopIndex;
3869++i){fnBlock.push("var l",i," = 0;")
3870}for(var i=0;
3871i<path.embedIndex;
3872++i){fnBlock.push("var e",i," = 0;")
3873}if(this.subject){fnBlock.push("with (this) {")
3874}if(this.context){fnBlock.push("with (context) {")
3875}fnBlock.push(blocks.join(""));
3876if(this.subject){fnBlock.push("}")
3877}if(this.context){fnBlock.push("}")
3878}fnBlock.push("return ",nodeCount,";");
3879fnBlock.push("})");
3880function __bind__(object,fn){return function(event){return fn.apply(object,[event])
3881}
3882}function __link__(node,tag,args){if(!tag||!tag.tag){return
3883}tag.tag.compile();
3884var domArgs=[node,tag.tag.context,0];
3885domArgs.push.apply(domArgs,tag.tag.domArgs);
3886domArgs.push.apply(domArgs,args);
3887return tag.tag.renderDOM.apply(tag.tag.subject,domArgs)
3888}var self=this;
3889function __loop__(iter,fn){var nodeCount=0;
3890for(var i=0;
3891i<iter.length;
3892++i){iter[i][0]=i;
3893iter[i][1]=nodeCount;
3894nodeCount+=fn.apply(this,iter[i])
3895}return nodeCount
3896}function __path__(parent,offset){var root=parent;
3897for(var i=2;
3898i<arguments.length;
3899++i){var index=arguments[i];
3900if(i==3){index+=offset
3901}if(index==-1){parent=parent.parentNode
3902}else{parent=parent.childNodes[index]
3903}}return parent
3904}var js=fnBlock.join("");
3905var r=null;
3906eval(js);
3907this.renderDOM=r
3908},generateDOM:function(path,blocks,args){if(this.listeners||this.props){this.generateNodePath(path,blocks)
3909}if(this.listeners){for(var i=0;
3910i<this.listeners.length;
3911i+=2){var val=this.listeners[i+1];
3912var arg=generateArg(val,path,args);
3913blocks.push('addEvent(node, "',this.listeners[i],'", __bind__(this, ',arg,"), false);")
3914}}if(this.props){for(var name in this.props){var val=this.props[name];
3915var arg=generateArg(val,path,args);
3916blocks.push("node.",name," = ",arg,";")
3917}}this.generateChildDOM(path,blocks,args);
3918return 1
3919},generateNodePath:function(path,blocks){blocks.push("var node = __path__(root, o");
3920for(var i=0;
3921i<path.length;
3922++i){blocks.push(",",path[i])
3923}blocks.push(");")
3924},generateChildDOM:function(path,blocks,args){path.push(0);
3925for(var i=0;
3926i<this.children.length;
3927++i){var child=this.children[i];
3928if(isTag(child)){path[path.length-1]+="+"+child.tag.generateDOM(path,blocks,args)
3929}else{path[path.length-1]+="+1"
3930}}path.pop()
3931}};
3932FBL.DomplateEmbed.prototype=copyObject(FBL.DomplateTag.prototype,{merge:function(args,oldTag){this.value=oldTag?oldTag.value:parseValue(args[0]);
3933this.attrs=oldTag?oldTag.attrs:{};
3934this.vars=oldTag?copyArray(oldTag.vars):[];
3935var attrs=args[1];
3936for(var name in attrs){var val=parseValue(attrs[name]);
3937this.attrs[name]=val;
3938readPartNames(val,this.vars)
3939}return creator(this,DomplateEmbed)
3940},getVarNames:function(names){if(this.value instanceof Parts){names.push(this.value.parts[0].name)
3941}if(this.vars){names.push.apply(names,this.vars)
3942}},generateMarkup:function(topBlock,topOuts,blocks,info){this.addCode(topBlock,topOuts,blocks);
3943blocks.push("__link__(");
3944addParts(this.value,"",blocks,info);
3945blocks.push(", __code__, __out__, {");
3946var lastName=null;
3947for(var name in this.attrs){if(lastName){blocks.push(",")
3948}lastName=name;
3949var val=this.attrs[name];
3950blocks.push('"',name,'":');
3951addParts(val,"",blocks,info)
3952}blocks.push("});")
3953},generateDOM:function(path,blocks,args){var embedName="e"+path.embedIndex++;
3954this.generateNodePath(path,blocks);
3955var valueName="d"+path.renderIndex++;
3956var argsName="d"+path.renderIndex++;
3957blocks.push(embedName+" = __link__(node, ",valueName,", ",argsName,");");
3958return embedName
3959}});
3960FBL.DomplateLoop.prototype=copyObject(FBL.DomplateTag.prototype,{merge:function(args,oldTag){this.varName=oldTag?oldTag.varName:args[0];
3961this.iter=oldTag?oldTag.iter:parseValue(args[1]);
3962this.vars=[];
3963this.children=oldTag?copyArray(oldTag.children):[];
3964var offset=Math.min(args.length,2);
3965parseChildren(args,offset,this.vars,this.children);
3966return creator(this,DomplateLoop)
3967},getVarNames:function(names){if(this.iter instanceof Parts){names.push(this.iter.parts[0].name)
3968}DomplateTag.prototype.getVarNames.apply(this,[names])
3969},generateMarkup:function(topBlock,topOuts,blocks,info){this.addCode(topBlock,topOuts,blocks);
3970var iterName;
3971if(this.iter instanceof Parts){var part=this.iter.parts[0];
3972iterName=part.name;
3973if(part.format){for(var i=0;
3974i<part.format.length;
3975++i){iterName=part.format[i]+"("+iterName+")"
3976}}}else{iterName=this.iter
3977}blocks.push("__loop__.apply(this, [",iterName,", __out__, function(",this.varName,", __out__) {");
3978this.generateChildMarkup(topBlock,topOuts,blocks,info);
3979this.addCode(topBlock,topOuts,blocks);
3980blocks.push("}]);")
3981},generateDOM:function(path,blocks,args){var iterName="d"+path.renderIndex++;
3982var counterName="i"+path.loopIndex;
3983var loopName="l"+path.loopIndex++;
3984if(!path.length){path.push(-1,0)
3985}var preIndex=path.renderIndex;
3986path.renderIndex=0;
3987var nodeCount=0;
3988var subBlocks=[];
3989var basePath=path[path.length-1];
3990for(var i=0;
3991i<this.children.length;
3992++i){path[path.length-1]=basePath+"+"+loopName+"+"+nodeCount;
3993var child=this.children[i];
3994if(isTag(child)){nodeCount+="+"+child.tag.generateDOM(path,subBlocks,args)
3995}else{nodeCount+="+1"
3996}}path[path.length-1]=basePath+"+"+loopName;
3997blocks.push(loopName," = __loop__.apply(this, [",iterName,", function(",counterName,",",loopName);
3998for(var i=0;
3999i<path.renderIndex;
4000++i){blocks.push(",d"+i)
4001}blocks.push(") {");
4002blocks.push(subBlocks.join(""));
4003blocks.push("return ",nodeCount,";");
4004blocks.push("}]);");
4005path.renderIndex=preIndex;
4006return loopName
4007}});
4008function Variable(name,format){this.name=name;
4009this.format=format
4010}function Parts(parts){this.parts=parts
4011}function parseParts(str){var re=/\$([_A-Za-z][_A-Za-z0-9.|]*)/g;
4012var index=0;
4013var parts=[];
4014var m;
4015while(m=re.exec(str)){var pre=str.substr(index,(re.lastIndex-m[0].length)-index);
4016if(pre){parts.push(pre)
4017}var expr=m[1].split("|");
4018parts.push(new Variable(expr[0],expr.slice(1)));
4019index=re.lastIndex
4020}if(!index){return str
4021}var post=str.substr(index);
4022if(post){parts.push(post)
4023}return new Parts(parts)
4024}function parseValue(val){return typeof(val)=="string"?parseParts(val):val
4025}function parseChildren(args,offset,vars,children){for(var i=offset;
4026i<args.length;
4027++i){var val=parseValue(args[i]);
4028children.push(val);
4029readPartNames(val,vars)
4030}}function readPartNames(val,vars){if(val instanceof Parts){for(var i=0;
4031i<val.parts.length;
4032++i){var part=val.parts[i];
4033if(part instanceof Variable){vars.push(part.name)
4034}}}}function generateArg(val,path,args){if(val instanceof Parts){var vals=[];
4035for(var i=0;
4036i<val.parts.length;
4037++i){var part=val.parts[i];
4038if(part instanceof Variable){var varName="d"+path.renderIndex++;
4039if(part.format){for(var j=0;
4040j<part.format.length;
4041++j){varName=part.format[j]+"("+varName+")"
4042}}vals.push(varName)
4043}else{vals.push('"'+part.replace(/"/g,'\\"')+'"')
4044}}return vals.join("+")
4045}else{args.push(val);
4046return"s"+path.staticIndex++
4047}}function addParts(val,delim,block,info,escapeIt){var vals=[];
4048if(val instanceof Parts){for(var i=0;
4049i<val.parts.length;
4050++i){var part=val.parts[i];
4051if(part instanceof Variable){var partName=part.name;
4052if(part.format){for(var j=0;
4053j<part.format.length;
4054++j){partName=part.format[j]+"("+partName+")"
4055}}if(escapeIt){vals.push("__escape__("+partName+")")
4056}else{vals.push(partName)
4057}}else{vals.push('"'+part+'"')
4058}}}else{if(isTag(val)){info.args.push(val);
4059vals.push("s"+info.argIndex++)
4060}else{vals.push('"'+val+'"')
4061}}var parts=vals.join(delim);
4062if(parts){block.push(delim,parts)
4063}}function isTag(obj){return(typeof(obj)=="function"||obj instanceof Function)&&!!obj.tag
4064}function creator(tag,cons){var fn=new Function("var tag = arguments.callee.tag;var cons = arguments.callee.cons;var newTag = new cons();return newTag.merge(arguments, tag);");
4065fn.tag=tag;
4066fn.cons=cons;
4067extend(fn,Renderer);
4068return fn
4069}function copyArray(oldArray){var ary=[];
4070if(oldArray){for(var i=0;
4071i<oldArray.length;
4072++i){ary.push(oldArray[i])
4073}}return ary
4074}function copyObject(l,r){var m={};
4075extend(m,l);
4076extend(m,r);
4077return m
4078}function extend(l,r){for(var n in r){l[n]=r[n]
4079}}function addEvent(object,name,handler){if(document.all){object.attachEvent("on"+name,handler)
4080}else{object.addEventListener(name,handler,false)
4081}}function ArrayIterator(array){var index=-1;
4082this.next=function(){if(++index>=array.length){throw StopIteration
4083}return array[index]
4084}
4085}function StopIteration(){}FBL.$break=function(){throw StopIteration
4086};
4087var Renderer={renderHTML:function(args,outputs,self){var code=[];
4088var markupArgs=[code,this.tag.context,args,outputs];
4089markupArgs.push.apply(markupArgs,this.tag.markupArgs);
4090this.tag.renderMarkup.apply(self?self:this.tag.subject,markupArgs);
4091return code.join("")
4092},insertRows:function(args,before,self){this.tag.compile();
4093var outputs=[];
4094var html=this.renderHTML(args,outputs,self);
4095var doc=before.ownerDocument;
4096var div=doc.createElement("div");
4097div.innerHTML="<table><tbody>"+html+"</tbody></table>";
4098var tbody=div.firstChild.firstChild;
4099var parent=before.tagName=="TR"?before.parentNode:before;
4100var after=before.tagName=="TR"?before.nextSibling:null;
4101var firstRow=tbody.firstChild,lastRow;
4102while(tbody.firstChild){lastRow=tbody.firstChild;
4103if(after){parent.insertBefore(lastRow,after)
4104}else{parent.appendChild(lastRow)
4105}}var offset=0;
4106if(before.tagName=="TR"){var node=firstRow.parentNode.firstChild;
4107for(;
4108node&&node!=firstRow;
4109node=node.nextSibling){++offset
4110}}var domArgs=[firstRow,this.tag.context,offset];
4111domArgs.push.apply(domArgs,this.tag.domArgs);
4112domArgs.push.apply(domArgs,outputs);
4113this.tag.renderDOM.apply(self?self:this.tag.subject,domArgs);
4114return[firstRow,lastRow]
4115},insertBefore:function(args,before,self){return this.insertNode(args,before.ownerDocument,before,false,self)
4116},insertAfter:function(args,after,self){return this.insertNode(args,after.ownerDocument,after,true,self)
4117},insertNode:function(args,doc,element,isAfter,self){if(!args){args={}
4118}this.tag.compile();
4119var outputs=[];
4120var html=this.renderHTML(args,outputs,self);
4121var doc=element.ownerDocument;
4122if(!womb||womb.ownerDocument!=doc){womb=doc.createElement("div")
4123}womb.innerHTML=html;
4124var root=womb.firstChild;
4125if(isAfter){while(womb.firstChild){if(element.nextSibling){element.parentNode.insertBefore(womb.firstChild,element.nextSibling)
4126}else{element.parentNode.appendChild(womb.firstChild)
4127}}}else{while(womb.lastChild){element.parentNode.insertBefore(womb.lastChild,element)
4128}}var domArgs=[root,this.tag.context,0];
4129domArgs.push.apply(domArgs,this.tag.domArgs);
4130domArgs.push.apply(domArgs,outputs);
4131this.tag.renderDOM.apply(self?self:this.tag.subject,domArgs);
4132return root
4133},replace:function(args,parent,self){this.tag.compile();
4134var outputs=[];
4135var html=this.renderHTML(args,outputs,self);
4136var root;
4137if(parent.nodeType==1){parent.innerHTML=html;
4138root=parent.firstChild
4139}else{if(!parent||parent.nodeType!=9){parent=document
4140}if(!womb||womb.ownerDocument!=parent){womb=parent.createElement("div")
4141}womb.innerHTML=html;
4142root=womb.firstChild
4143}var domArgs=[root,this.tag.context,0];
4144domArgs.push.apply(domArgs,this.tag.domArgs);
4145domArgs.push.apply(domArgs,outputs);
4146this.tag.renderDOM.apply(self?self:this.tag.subject,domArgs);
4147return root
4148},append:function(args,parent,self){this.tag.compile();
4149var outputs=[];
4150var html=this.renderHTML(args,outputs,self);
4151if(!womb||womb.ownerDocument!=parent.ownerDocument){womb=parent.ownerDocument.createElement("div")
4152}womb.innerHTML=html;
4153var root=womb.firstChild;
4154while(womb.firstChild){parent.appendChild(womb.firstChild)
4155}womb=null;
4156var domArgs=[root,this.tag.context,0];
4157domArgs.push.apply(domArgs,this.tag.domArgs);
4158domArgs.push.apply(domArgs,outputs);
4159this.tag.renderDOM.apply(self?self:this.tag.subject,domArgs);
4160return root
4161}};
4162function defineTags(){for(var i=0;
4163i<arguments.length;
4164++i){var tagName=arguments[i];
4165var fn=new Function("var newTag = new arguments.callee.DomplateTag('"+tagName+"'); return newTag.merge(arguments);");
4166fn.DomplateTag=DomplateTag;
4167var fnName=tagName.toUpperCase();
4168FBL[fnName]=fn
4169}}defineTags("a","button","br","canvas","code","col","colgroup","div","fieldset","form","h1","h2","h3","hr","img","input","label","legend","li","ol","optgroup","option","p","pre","select","span","strong","table","tbody","td","textarea","tfoot","th","thead","tr","tt","ul","iframe")
4170})();
4171var FirebugReps=FBL.ns(function(){with(FBL){var OBJECTBOX=this.OBJECTBOX=SPAN({"class":"objectBox objectBox-$className"});
4172var OBJECTBLOCK=this.OBJECTBLOCK=DIV({"class":"objectBox objectBox-$className"});
4173var OBJECTLINK=this.OBJECTLINK=isIE6?A({"class":"objectLink objectLink-$className a11yFocus",href:"javascript:void(0)",title:"$object|FBL.getElementXPath",_repObject:"$object"}):A({"class":"objectLink objectLink-$className a11yFocus",title:"$object|FBL.getElementXPath",_repObject:"$object"});
4174this.Undefined=domplate(Firebug.Rep,{tag:OBJECTBOX("undefined"),className:"undefined",supportsObject:function(object,type){return type=="undefined"
4175}});
4176this.Null=domplate(Firebug.Rep,{tag:OBJECTBOX("null"),className:"null",supportsObject:function(object,type){return object==null
4177}});
4178this.Nada=domplate(Firebug.Rep,{tag:SPAN(""),className:"nada"});
4179this.Number=domplate(Firebug.Rep,{tag:OBJECTBOX("$object"),className:"number",supportsObject:function(object,type){return type=="boolean"||type=="number"
4180}});
4181this.String=domplate(Firebug.Rep,{tag:OBJECTBOX("&quot;$object&quot;"),shortTag:OBJECTBOX("&quot;$object|cropString&quot;"),className:"string",supportsObject:function(object,type){return type=="string"
4182}});
4183this.Text=domplate(Firebug.Rep,{tag:OBJECTBOX("$object"),shortTag:OBJECTBOX("$object|cropString"),className:"text"});
4184this.Caption=domplate(Firebug.Rep,{tag:SPAN({"class":"caption"},"$object")});
4185this.Warning=domplate(Firebug.Rep,{tag:DIV({"class":"warning focusRow",role:"listitem"},"$object|STR")});
4186this.Func=domplate(Firebug.Rep,{tag:OBJECTLINK("$object|summarizeFunction"),summarizeFunction:function(fn){var fnRegex=/function ([^(]+\([^)]*\)) \{/;
4187var fnText=safeToString(fn);
4188var m=fnRegex.exec(fnText);
4189return m?m[1]:"function()"
4190},copySource:function(fn){copyToClipboard(safeToString(fn))
4191},monitor:function(fn,script,monitored){if(monitored){Firebug.Debugger.unmonitorScript(fn,script,"monitor")
4192}else{Firebug.Debugger.monitorScript(fn,script,"monitor")
4193}},className:"function",supportsObject:function(object,type){return isFunction(object)
4194},inspectObject:function(fn,context){var sourceLink=findSourceForFunction(fn,context);
4195if(sourceLink){Firebug.chrome.select(sourceLink)
4196}if(FBTrace.DBG_FUNCTION_NAME){FBTrace.sysout("reps.function.inspectObject selected sourceLink is ",sourceLink)
4197}},getTooltip:function(fn,context){var script=findScriptForFunctionInContext(context,fn);
4198if(script){return $STRF("Line",[normalizeURL(script.fileName),script.baseLineNumber])
4199}else{if(fn.toString){return fn.toString()
4200}}},getTitle:function(fn,context){var name=fn.name?fn.name:"function";
4201return name+"()"
4202},getContextMenuItems:function(fn,target,context,script){if(!script){script=findScriptForFunctionInContext(context,fn)
4203}if(!script){return
4204}var scriptInfo=getSourceFileAndLineByScript(context,script);
4205var monitored=scriptInfo?fbs.isMonitored(scriptInfo.sourceFile.href,scriptInfo.lineNo):false;
4206var name=script?getFunctionName(script,context):fn.name;
4207return[{label:"CopySource",command:bindFixed(this.copySource,this,fn)},"-",{label:$STRF("ShowCallsInConsole",[name]),nol10n:true,type:"checkbox",checked:monitored,command:bindFixed(this.monitor,this,fn,script,monitored)}]
4208}});
4209this.Obj=domplate(Firebug.Rep,{tag:OBJECTLINK(SPAN({"class":"objectTitle"},"$object|getTitle "),SPAN({"class":"objectProps"},SPAN({"class":"objectLeftBrace",role:"presentation"},"{"),FOR("prop","$object|propIterator",SPAN({"class":"objectPropName",role:"presentation"},"$prop.name"),SPAN({"class":"objectEqual",role:"presentation"},"$prop.equal"),TAG("$prop.tag",{object:"$prop.object"}),SPAN({"class":"objectComma",role:"presentation"},"$prop.delim")),SPAN({"class":"objectRightBrace"},"}"))),propNumberTag:SPAN({"class":"objectProp-number"},"$object"),propStringTag:SPAN({"class":"objectProp-string"},"&quot;$object&quot;"),propObjectTag:SPAN({"class":"objectProp-object"},"$object"),propIterator:function(object){var maxLength=55;
4210if(!object){return[]
4211}var props=[];
4212var length=0;
4213var numProperties=0;
4214var numPropertiesShown=0;
4215var maxLengthReached=false;
4216var lib=this;
4217var propRepsMap={"boolean":this.propNumberTag,number:this.propNumberTag,string:this.propStringTag,object:this.propObjectTag};
4218try{var title=Firebug.Rep.getTitle(object);
4219length+=title.length;
4220for(var name in object){var value;
4221try{value=object[name]
4222}catch(exc){continue
4223}var type=typeof(value);
4224if(type=="boolean"||type=="number"||(type=="string"&&value)||(type=="object"&&value&&value.toString)){var tag=propRepsMap[type];
4225var value=(type=="object")?Firebug.getRep(value).getTitle(value):value+"";
4226length+=name.length+value.length+4;
4227if(length<=maxLength){props.push({tag:tag,name:name,object:value,equal:"=",delim:", "});
4228numPropertiesShown++
4229}else{maxLengthReached=true
4230}}numProperties++;
4231if(maxLengthReached&&numProperties>numPropertiesShown){break
4232}}if(numProperties>numPropertiesShown){props.push({object:"...",tag:FirebugReps.Caption.tag,name:"",equal:"",delim:""})
4233}else{if(props.length>0){props[props.length-1].delim=""
4234}}}catch(exc){}return props
4235},fb_1_6_propIterator:function(object,max){max=max||3;
4236if(!object){return[]
4237}var props=[];
4238var len=0,count=0;
4239try{for(var name in object){var value;
4240try{value=object[name]
4241}catch(exc){continue
4242}var t=typeof(value);
4243if(t=="boolean"||t=="number"||(t=="string"&&value)||(t=="object"&&value&&value.toString)){var rep=Firebug.getRep(value);
4244var tag=rep.shortTag||rep.tag;
4245if(t=="object"){value=rep.getTitle(value);
4246tag=rep.titleTag
4247}count++;
4248if(count<=max){props.push({tag:tag,name:name,object:value,equal:"=",delim:", "})
4249}else{break
4250}}}if(count>max){props[Math.max(1,max-1)]={object:"more...",tag:FirebugReps.Caption.tag,name:"",equal:"",delim:""}
4251}else{if(props.length>0){props[props.length-1].delim=""
4252}}}catch(exc){}return props
4253},className:"object",supportsObject:function(object,type){return true
4254}});
4255this.Arr=domplate(Firebug.Rep,{tag:OBJECTBOX({_repObject:"$object"},SPAN({"class":"arrayLeftBracket",role:"presentation"},"["),FOR("item","$object|arrayIterator",TAG("$item.tag",{object:"$item.object"}),SPAN({"class":"arrayComma",role:"presentation"},"$item.delim")),SPAN({"class":"arrayRightBracket",role:"presentation"},"]")),shortTag:OBJECTBOX({_repObject:"$object"},SPAN({"class":"arrayLeftBracket",role:"presentation"},"["),FOR("item","$object|shortArrayIterator",TAG("$item.tag",{object:"$item.object"}),SPAN({"class":"arrayComma",role:"presentation"},"$item.delim")),SPAN({"class":"arrayRightBracket"},"]")),arrayIterator:function(array){var items=[];
4256for(var i=0;
4257i<array.length;
4258++i){var value=array[i];
4259var rep=Firebug.getRep(value);
4260var tag=rep.shortTag?rep.shortTag:rep.tag;
4261var delim=(i==array.length-1?"":", ");
4262items.push({object:value,tag:tag,delim:delim})
4263}return items
4264},shortArrayIterator:function(array){var items=[];
4265for(var i=0;
4266i<array.length&&i<3;
4267++i){var value=array[i];
4268var rep=Firebug.getRep(value);
4269var tag=rep.shortTag?rep.shortTag:rep.tag;
4270var delim=(i==array.length-1?"":", ");
4271items.push({object:value,tag:tag,delim:delim})
4272}if(array.length>3){items.push({object:(array.length-3)+" more...",tag:FirebugReps.Caption.tag,delim:""})
4273}return items
4274},shortPropIterator:this.Obj.propIterator,getItemIndex:function(child){var arrayIndex=0;
4275for(child=child.previousSibling;
4276child;
4277child=child.previousSibling){if(child.repObject){++arrayIndex
4278}}return arrayIndex
4279},className:"array",supportsObject:function(object){return this.isArray(object)
4280},isArray:function(obj){try{if(!obj){return false
4281}else{if(isIE&&!isFunction(obj)&&typeof obj=="object"&&isFinite(obj.length)&&obj.nodeType!=8){return true
4282}else{if(isFinite(obj.length)&&isFunction(obj.splice)){return true
4283}else{if(isFinite(obj.length)&&isFunction(obj.callee)){return true
4284}else{if(instanceOf(obj,"HTMLCollection")){return true
4285}else{if(instanceOf(obj,"NodeList")){return true
4286}else{return false
4287}}}}}}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("isArray FAILS:",exc);
4288FBTrace.sysout("isArray Fails on obj",obj)
4289}}return false
4290},getTitle:function(object,context){return"["+object.length+"]"
4291}});
4292this.Property=domplate(Firebug.Rep,{supportsObject:function(object){return object instanceof Property
4293},getRealObject:function(prop,context){return prop.object[prop.name]
4294},getTitle:function(prop,context){return prop.name
4295}});
4296this.NetFile=domplate(this.Obj,{supportsObject:function(object){return object instanceof Firebug.NetFile
4297},browseObject:function(file,context){openNewTab(file.href);
4298return true
4299},getRealObject:function(file,context){return null
4300}});
4301this.Except=domplate(Firebug.Rep,{tag:OBJECTBOX({_repObject:"$object"},"$object.message"),className:"exception",supportsObject:function(object){return object instanceof ErrorCopy
4302}});
4303this.Element=domplate(Firebug.Rep,{tag:OBJECTLINK("&lt;",SPAN({"class":"nodeTag"},"$object.nodeName|toLowerCase"),FOR("attr","$object|attrIterator","&nbsp;$attr.nodeName=&quot;",SPAN({"class":"nodeValue"},"$attr.nodeValue"),"&quot;"),"&gt;"),shortTag:OBJECTLINK(SPAN({"class":"$object|getVisible"},SPAN({"class":"selectorTag"},"$object|getSelectorTag"),SPAN({"class":"selectorId"},"$object|getSelectorId"),SPAN({"class":"selectorClass"},"$object|getSelectorClass"),SPAN({"class":"selectorValue"},"$object|getValue"))),getVisible:function(elt){return isVisible(elt)?"":"selectorHidden"
4304},getSelectorTag:function(elt){return elt.nodeName.toLowerCase()
4305},getSelectorId:function(elt){return elt.id?"#"+elt.id:""
4306},getSelectorClass:function(elt){return elt.className?"."+elt.className.split(" ")[0]:""
4307},getValue:function(elt){return"";
4308var value;
4309if(elt instanceof HTMLImageElement){value=getFileName(elt.src)
4310}else{if(elt instanceof HTMLAnchorElement){value=getFileName(elt.href)
4311}else{if(elt instanceof HTMLInputElement){value=elt.value
4312}else{if(elt instanceof HTMLFormElement){value=getFileName(elt.action)
4313}else{if(elt instanceof HTMLScriptElement){value=getFileName(elt.src)
4314}}}}}return value?" "+cropString(value,20):""
4315},attrIterator:function(elt){var attrs=[];
4316var idAttr,classAttr;
4317if(elt.attributes){for(var i=0;
4318i<elt.attributes.length;
4319++i){var attr=elt.attributes[i];
4320if(!attr.specified||attr.nodeName&&attr.nodeName.indexOf("firebug-")!=-1){continue
4321}else{if(attr.nodeName=="id"){idAttr=attr
4322}else{if(attr.nodeName=="class"){classAttr=attr
4323}else{if(attr.nodeName=="style"){attrs.push({nodeName:attr.nodeName,nodeValue:attr.nodeValue||elt.style.cssText.replace(/([^\s]+)\s*:/g,function(m,g){return g.toLowerCase()+":"
4324})})
4325}else{attrs.push(attr)
4326}}}}}}if(classAttr){attrs.splice(0,0,classAttr)
4327}if(idAttr){attrs.splice(0,0,idAttr)
4328}return attrs
4329},shortAttrIterator:function(elt){var attrs=[];
4330if(elt.attributes){for(var i=0;
4331i<elt.attributes.length;
4332++i){var attr=elt.attributes[i];
4333if(attr.nodeName=="id"||attr.nodeName=="class"){attrs.push(attr)
4334}}}return attrs
4335},getHidden:function(elt){return isVisible(elt)?"":"nodeHidden"
4336},getXPath:function(elt){return getElementTreeXPath(elt)
4337},getNodeText:function(element){var text=element.textContent;
4338if(Firebug.showFullTextNodes){return text
4339}else{return cropString(text,50)
4340}},getNodeTextGroups:function(element){var text=element.textContent;
4341if(!Firebug.showFullTextNodes){text=cropString(text,50)
4342}var escapeGroups=[];
4343if(Firebug.showTextNodesWithWhitespace){escapeGroups.push({group:"whitespace","class":"nodeWhiteSpace",extra:{"\t":"_Tab","\n":"_Para"," ":"_Space"}})
4344}if(Firebug.showTextNodesWithEntities){escapeGroups.push({group:"text","class":"nodeTextEntity",extra:{}})
4345}if(escapeGroups.length){return escapeGroupsForEntities(text,escapeGroups)
4346}else{return[{str:text,"class":"",extra:""}]
4347}},copyHTML:function(elt){var html=getElementXML(elt);
4348copyToClipboard(html)
4349},copyInnerHTML:function(elt){copyToClipboard(elt.innerHTML)
4350},copyXPath:function(elt){var xpath=getElementXPath(elt);
4351copyToClipboard(xpath)
4352},persistor:function(context,xpath){var elts=xpath?getElementsByXPath(context.window.document,xpath):null;
4353return elts&&elts.length?elts[0]:null
4354},className:"element",supportsObject:function(object){return instanceOf(object,"Element")
4355},browseObject:function(elt,context){var tag=elt.nodeName.toLowerCase();
4356if(tag=="script"){openNewTab(elt.src)
4357}else{if(tag=="link"){openNewTab(elt.href)
4358}else{if(tag=="a"){openNewTab(elt.href)
4359}else{if(tag=="img"){openNewTab(elt.src)
4360}}}}return true
4361},persistObject:function(elt,context){var xpath=getElementXPath(elt);
4362return bind(this.persistor,top,xpath)
4363},getTitle:function(element,context){return getElementCSSSelector(element)
4364},getTooltip:function(elt){return this.getXPath(elt)
4365},getContextMenuItems:function(elt,target,context){var monitored=areEventsMonitored(elt,null,context);
4366return[{label:"CopyHTML",command:bindFixed(this.copyHTML,this,elt)},{label:"CopyInnerHTML",command:bindFixed(this.copyInnerHTML,this,elt)},{label:"CopyXPath",command:bindFixed(this.copyXPath,this,elt)},"-",{label:"ShowEventsInConsole",type:"checkbox",checked:monitored,command:bindFixed(toggleMonitorEvents,FBL,elt,null,monitored,context)},"-",{label:"ScrollIntoView",command:bindFixed(elt.scrollIntoView,elt)}]
4367}});
4368this.TextNode=domplate(Firebug.Rep,{tag:OBJECTLINK("&lt;",SPAN({"class":"nodeTag"},"TextNode"),"&nbsp;textContent=&quot;",SPAN({"class":"nodeValue"},"$object.textContent|cropString"),"&quot;","&gt;"),className:"textNode",supportsObject:function(object){return object instanceof Text
4369}});
4370this.Document=domplate(Firebug.Rep,{tag:OBJECTLINK("Document ",SPAN({"class":"objectPropValue"},"$object|getLocation")),getLocation:function(doc){return doc.location?getFileName(doc.location.href):""
4371},className:"object",supportsObject:function(object){return instanceOf(object,"Document")
4372},browseObject:function(doc,context){openNewTab(doc.location.href);
4373return true
4374},persistObject:function(doc,context){return this.persistor
4375},persistor:function(context){return context.window.document
4376},getTitle:function(win,context){return"document"
4377},getTooltip:function(doc){return doc.location.href
4378}});
4379this.StyleSheet=domplate(Firebug.Rep,{tag:OBJECTLINK("StyleSheet ",SPAN({"class":"objectPropValue"},"$object|getLocation")),getLocation:function(styleSheet){return getFileName(styleSheet.href)
4380},copyURL:function(styleSheet){copyToClipboard(styleSheet.href)
4381},openInTab:function(styleSheet){openNewTab(styleSheet.href)
4382},className:"object",supportsObject:function(object){return instanceOf(object,"CSSStyleSheet")
4383},browseObject:function(styleSheet,context){openNewTab(styleSheet.href);
4384return true
4385},persistObject:function(styleSheet,context){return bind(this.persistor,top,styleSheet.href)
4386},getTooltip:function(styleSheet){return styleSheet.href
4387},getContextMenuItems:function(styleSheet,target,context){return[{label:"CopyLocation",command:bindFixed(this.copyURL,this,styleSheet)},"-",{label:"OpenInTab",command:bindFixed(this.openInTab,this,styleSheet)}]
4388},persistor:function(context,href){return getStyleSheetByHref(href,context)
4389}});
4390this.Window=domplate(Firebug.Rep,{tag:OBJECTLINK("Window ",SPAN({"class":"objectPropValue"},"$object|getLocation")),getLocation:function(win){try{return(win&&win.location&&!win.closed)?getFileName(win.location.href):""
4391}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("reps.Window window closed?")
4392}}},className:"object",supportsObject:function(object){return instanceOf(object,"Window")
4393},browseObject:function(win,context){openNewTab(win.location.href);
4394return true
4395},persistObject:function(win,context){return this.persistor
4396},persistor:function(context){return context.window
4397},getTitle:function(win,context){return"window"
4398},getTooltip:function(win){if(win&&!win.closed){return win.location.href
4399}}});
4400this.Event=domplate(Firebug.Rep,{tag:TAG("$copyEventTag",{object:"$object|copyEvent"}),copyEventTag:OBJECTLINK("$object|summarizeEvent"),summarizeEvent:function(event){var info=[event.type," "];
4401var eventFamily=getEventFamily(event.type);
4402if(eventFamily=="mouse"){info.push("clientX=",event.clientX,", clientY=",event.clientY)
4403}else{if(eventFamily=="key"){info.push("charCode=",event.charCode,", keyCode=",event.keyCode)
4404}}return info.join("")
4405},copyEvent:function(event){return new EventCopy(event)
4406},className:"object",supportsObject:function(object){return instanceOf(object,"Event")||instanceOf(object,"EventCopy")
4407},getTitle:function(event,context){return"Event "+event.type
4408}});
4409this.SourceLink=domplate(Firebug.Rep,{tag:OBJECTLINK({$collapsed:"$object|hideSourceLink"},"$object|getSourceLinkTitle"),hideSourceLink:function(sourceLink){return sourceLink?sourceLink.href.indexOf("XPCSafeJSObjectWrapper")!=-1:true
4410},getSourceLinkTitle:function(sourceLink){if(!sourceLink){return""
4411}try{var fileName=getFileName(sourceLink.href);
4412fileName=decodeURIComponent(fileName);
4413fileName=cropString(fileName,17)
4414}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("reps.getSourceLinkTitle decodeURIComponent fails for '"+fileName+"': "+exc,exc)
4415}}return typeof sourceLink.line=="number"?fileName+" (line "+sourceLink.line+")":fileName
4416},copyLink:function(sourceLink){copyToClipboard(sourceLink.href)
4417},openInTab:function(sourceLink){openNewTab(sourceLink.href)
4418},className:"sourceLink",supportsObject:function(object){return object instanceof SourceLink
4419},getTooltip:function(sourceLink){return decodeURI(sourceLink.href)
4420},inspectObject:function(sourceLink,context){if(sourceLink.type=="js"){var scriptFile=getSourceFileByHref(sourceLink.href,context);
4421if(scriptFile){return Firebug.chrome.select(sourceLink)
4422}}else{if(sourceLink.type=="css"){if(sourceLink.object){Firebug.chrome.select(sourceLink.object);
4423return
4424}var stylesheet=getStyleSheetByHref(sourceLink.href,context);
4425if(stylesheet){var ownerNode=stylesheet.ownerNode;
4426if(ownerNode){Firebug.chrome.select(sourceLink,"html");
4427return
4428}var panel=context.getPanel("stylesheet");
4429if(panel&&panel.getRuleByLine(stylesheet,sourceLink.line)){return Firebug.chrome.select(sourceLink)
4430}}}}viewSource(sourceLink.href,sourceLink.line)
4431},browseObject:function(sourceLink,context){openNewTab(sourceLink.href);
4432return true
4433},getContextMenuItems:function(sourceLink,target,context){return[{label:"CopyLocation",command:bindFixed(this.copyLink,this,sourceLink)},"-",{label:"OpenInTab",command:bindFixed(this.openInTab,this,sourceLink)}]
4434}});
4435this.SourceFile=domplate(this.SourceLink,{tag:OBJECTLINK({$collapsed:"$object|hideSourceLink"},"$object|getSourceLinkTitle"),persistor:function(context,href){return getSourceFileByHref(href,context)
4436},className:"sourceFile",supportsObject:function(object){return object instanceof SourceFile
4437},persistObject:function(sourceFile){return bind(this.persistor,top,sourceFile.href)
4438},browseObject:function(sourceLink,context){},getTooltip:function(sourceFile){return sourceFile.href
4439}});
4440this.StackFrame=domplate(Firebug.Rep,{tag:OBJECTBLOCK(A({"class":"objectLink objectLink-function focusRow a11yFocus",_repObject:"$object.fn"},"$object|getCallName")," ( ",FOR("arg","$object|argIterator",TAG("$arg.tag",{object:"$arg.value"}),SPAN({"class":"arrayComma"},"$arg.delim"))," )",SPAN({"class":"objectLink-sourceLink objectLink"},"$object|getSourceLinkTitle")),getCallName:function(frame){return frame.name||"anonymous"
4441},getSourceLinkTitle:function(frame){var fileName=cropString(getFileName(frame.href),20);
4442return fileName+(frame.lineNo?" (line "+frame.lineNo+")":"");
4443var fileName=cropString(getFileName(frame.href),17);
4444return $STRF("Line",[fileName,frame.lineNo])
4445},argIterator:function(frame){if(!frame.args){return[]
4446}var items=[];
4447for(var i=0;
4448i<frame.args.length;
4449++i){var arg=frame.args[i];
4450if(!arg){break
4451}var rep=Firebug.getRep(arg.value);
4452var tag=rep.shortTag?rep.shortTag:rep.tag;
4453var delim=(i==frame.args.length-1?"":", ");
4454items.push({name:arg.name,value:arg.value,tag:tag,delim:delim})
4455}return items
4456},className:"stackFrame",supportsObject:function(object){return object instanceof StackFrame
4457},inspectObject:function(stackFrame,context){var sourceLink=new SourceLink(stackFrame.href,stackFrame.lineNo,"js");
4458Firebug.chrome.select(sourceLink)
4459},getTooltip:function(stackFrame,context){return $STRF("Line",[stackFrame.href,stackFrame.lineNo])
4460}});
4461this.StackTrace=domplate(Firebug.Rep,{tag:FOR("frame","$object.frames focusRow",TAG(this.StackFrame.tag,{object:"$frame"})),className:"stackTrace",supportsObject:function(object){return object instanceof StackTrace
4462}});
4463this.jsdStackFrame=domplate(Firebug.Rep,{inspectable:false,supportsObject:function(object){return(object instanceof jsdIStackFrame)&&(object.isValid)
4464},getTitle:function(frame,context){if(!frame.isValid){return"(invalid frame)"
4465}return getFunctionName(frame.script,context)
4466},getTooltip:function(frame,context){if(!frame.isValid){return"(invalid frame)"
4467}var sourceInfo=FBL.getSourceFileAndLineByScript(context,frame.script,frame);
4468if(sourceInfo){return $STRF("Line",[sourceInfo.sourceFile.href,sourceInfo.lineNo])
4469}else{return $STRF("Line",[frame.script.fileName,frame.line])
4470}},getContextMenuItems:function(frame,target,context){var fn=frame.script.functionObject.getWrappedValue();
4471return FirebugReps.Func.getContextMenuItems(fn,target,context,frame.script)
4472}});
4473this.ErrorMessage=domplate(Firebug.Rep,{tag:OBJECTBOX({$hasTwisty:"$object|hasStackTrace",$hasBreakSwitch:"$object|hasBreakSwitch",$breakForError:"$object|hasErrorBreak",_repObject:"$object",_stackTrace:"$object|getLastErrorStackTrace",onclick:"$onToggleError"},DIV({"class":"errorTitle a11yFocus",role:"checkbox","aria-checked":"false"},"$object.message|getMessage"),DIV({"class":"errorTrace"}),DIV({"class":"errorSourceBox errorSource-$object|getSourceType"},IMG({"class":"errorBreak a11yFocus",src:"blank.gif",role:"checkbox","aria-checked":"false",title:"Break on this error"}),A({"class":"errorSource a11yFocus"},"$object|getLine")),TAG(this.SourceLink.tag,{object:"$object|getSourceLink"})),getLastErrorStackTrace:function(error){return error.trace
4474},hasStackTrace:function(error){var url=error.href.toString();
4475var fromCommandLine=(url.indexOf("XPCSafeJSObjectWrapper")!=-1);
4476return !fromCommandLine&&error.trace
4477},hasBreakSwitch:function(error){return error.href&&error.lineNo>0
4478},hasErrorBreak:function(error){return fbs.hasErrorBreakpoint(error.href,error.lineNo)
4479},getMessage:function(message){var re=/\[Exception... "(.*?)" nsresult:/;
4480var m=re.exec(message);
4481return m?m[1]:message
4482},getLine:function(error){if(error.category=="js"){if(error.source){return cropString(error.source,80)
4483}else{if(error.href&&error.href.indexOf("XPCSafeJSObjectWrapper")==-1){return cropString(error.getSourceLine(),80)
4484}}}},getSourceLink:function(error){var ext=error.category=="css"?"css":"js";
4485return error.lineNo?new SourceLink(error.href,error.lineNo,ext):null
4486},getSourceType:function(error){if(error.source){return"syntax"
4487}else{if(error.lineNo==1&&getFileExtension(error.href)!="js"){return"none"
4488}else{if(error.category=="css"){return"none"
4489}else{if(!error.href||!error.lineNo){return"none"
4490}else{return"exec"
4491}}}}},onToggleError:function(event){var target=event.currentTarget;
4492if(hasClass(event.target,"errorBreak")){this.breakOnThisError(target.repObject)
4493}else{if(hasClass(event.target,"errorSource")){var panel=Firebug.getElementPanel(event.target);
4494this.inspectObject(target.repObject,panel.context)
4495}else{if(hasClass(event.target,"errorTitle")){var traceBox=target.childNodes[1];
4496toggleClass(target,"opened");
4497event.target.setAttribute("aria-checked",hasClass(target,"opened"));
4498if(hasClass(target,"opened")){if(target.stackTrace){var node=FirebugReps.StackTrace.tag.append({object:target.stackTrace},traceBox)
4499}if(Firebug.A11yModel.enabled){var panel=Firebug.getElementPanel(event.target);
4500dispatch([Firebug.A11yModel],"onLogRowContentCreated",[panel,traceBox])
4501}}else{clearNode(traceBox)
4502}}}}},copyError:function(error){var message=[this.getMessage(error.message),error.href,"Line "+error.lineNo];
4503copyToClipboard(message.join("\n"))
4504},breakOnThisError:function(error){if(this.hasErrorBreak(error)){Firebug.Debugger.clearErrorBreakpoint(error.href,error.lineNo)
4505}else{Firebug.Debugger.setErrorBreakpoint(error.href,error.lineNo)
4506}},className:"errorMessage",inspectable:false,supportsObject:function(object){return object instanceof ErrorMessage
4507},inspectObject:function(error,context){var sourceLink=this.getSourceLink(error);
4508FirebugReps.SourceLink.inspectObject(sourceLink,context)
4509},getContextMenuItems:function(error,target,context){var breakOnThisError=this.hasErrorBreak(error);
4510var items=[{label:"CopyError",command:bindFixed(this.copyError,this,error)}];
4511if(error.category=="css"){items.push("-",{label:"BreakOnThisError",type:"checkbox",checked:breakOnThisError,command:bindFixed(this.breakOnThisError,this,error)},optionMenu("BreakOnAllErrors","breakOnErrors"))
4512}return items
4513}});
4514this.Assert=domplate(Firebug.Rep,{tag:DIV(DIV({"class":"errorTitle"}),DIV({"class":"assertDescription"})),className:"assert",inspectObject:function(error,context){var sourceLink=this.getSourceLink(error);
4515Firebug.chrome.select(sourceLink)
4516},getContextMenuItems:function(error,target,context){var breakOnThisError=this.hasErrorBreak(error);
4517return[{label:"CopyError",command:bindFixed(this.copyError,this,error)},"-",{label:"BreakOnThisError",type:"checkbox",checked:breakOnThisError,command:bindFixed(this.breakOnThisError,this,error)},{label:"BreakOnAllErrors",type:"checkbox",checked:Firebug.breakOnErrors,command:bindFixed(this.breakOnAllErrors,this,error)}]
4518}});
4519this.SourceText=domplate(Firebug.Rep,{tag:DIV(FOR("line","$object|lineIterator",DIV({"class":"sourceRow",role:"presentation"},SPAN({"class":"sourceLine",role:"presentation"},"$line.lineNo"),SPAN({"class":"sourceRowText",role:"presentation"},"$line.text")))),lineIterator:function(sourceText){var maxLineNoChars=(sourceText.lines.length+"").length;
4520var list=[];
4521for(var i=0;
4522i<sourceText.lines.length;
4523++i){var lineNo=(i+1)+"";
4524while(lineNo.length<maxLineNoChars){lineNo=" "+lineNo
4525}list.push({lineNo:lineNo,text:sourceText.lines[i]})
4526}return list
4527},getHTML:function(sourceText){return getSourceLineRange(sourceText,1,sourceText.lines.length)
4528}});
4529this.nsIDOMHistory=domplate(Firebug.Rep,{tag:OBJECTBOX({onclick:"$showHistory"},OBJECTLINK("$object|summarizeHistory")),className:"nsIDOMHistory",summarizeHistory:function(history){try{var items=history.length;
4530return items+" history entries"
4531}catch(exc){return"object does not support history (nsIDOMHistory)"
4532}},showHistory:function(history){try{var items=history.length;
4533Firebug.chrome.select(history)
4534}catch(exc){}},supportsObject:function(object,type){return(object instanceof Ci.nsIDOMHistory)
4535}});
4536this.ApplicationCache=domplate(Firebug.Rep,{tag:OBJECTBOX({onclick:"$showApplicationCache"},OBJECTLINK("$object|summarizeCache")),summarizeCache:function(applicationCache){try{return applicationCache.length+" items in offline cache"
4537}catch(exc){return"https://bugzilla.mozilla.org/show_bug.cgi?id=422264"
4538}},showApplicationCache:function(event){openNewTab("https://bugzilla.mozilla.org/show_bug.cgi?id=422264")
4539},className:"applicationCache",supportsObject:function(object,type){if(Ci.nsIDOMOfflineResourceList){return(object instanceof Ci.nsIDOMOfflineResourceList)
4540}}});
4541this.Storage=domplate(Firebug.Rep,{tag:OBJECTBOX({onclick:"$show"},OBJECTLINK("$object|summarize")),summarize:function(storage){return storage.length+" items in Storage"
4542},show:function(storage){openNewTab("http://dev.w3.org/html5/webstorage/#storage-0")
4543},className:"Storage",supportsObject:function(object,type){return(object instanceof Storage)
4544}});
4545Firebug.registerRep(this.Undefined,this.Null,this.Number,this.String,this.Window,this.Element,this.Document,this.StyleSheet,this.Event,this.Property,this.Except,this.Arr);
4546Firebug.setDefaultReps(this.Func,this.Obj)
4547}});
4548FBL.ns(function(){with(FBL){var saveTimeout=400;
4549var pageAmount=10;
4550var currentTarget=null;
4551var currentGroup=null;
4552var currentPanel=null;
4553var currentEditor=null;
4554var defaultEditor=null;
4555var originalClassName=null;
4556var originalValue=null;
4557var defaultValue=null;
4558var previousValue=null;
4559var invalidEditor=false;
4560var ignoreNextInput=false;
4561Firebug.Editor=extend(Firebug.Module,{supportsStopEvent:true,dispatchName:"editor",tabCharacter:"    ",startEditing:function(target,value,editor){this.stopEditing();
4562if(hasClass(target,"insertBefore")||hasClass(target,"insertAfter")){return
4563}var panel=Firebug.getElementPanel(target);
4564if(!panel.editable){return
4565}if(FBTrace.DBG_EDITOR){FBTrace.sysout("editor.startEditing "+value,target)
4566}defaultValue=target.getAttribute("defaultValue");
4567if(value==undefined){var textContent=isIE?"innerText":"textContent";
4568value=target[textContent];
4569if(value==defaultValue){value=""
4570}}originalValue=previousValue=value;
4571invalidEditor=false;
4572currentTarget=target;
4573currentPanel=panel;
4574currentGroup=getAncestorByClass(target,"editGroup");
4575currentPanel.editing=true;
4576var panelEditor=currentPanel.getEditor(target,value);
4577currentEditor=editor?editor:panelEditor;
4578if(!currentEditor){currentEditor=getDefaultEditor(currentPanel)
4579}var inlineParent=getInlineParent(target);
4580var targetSize=getOffsetSize(inlineParent);
4581setClass(panel.panelNode,"editing");
4582setClass(target,"editing");
4583if(currentGroup){setClass(currentGroup,"editing")
4584}currentEditor.show(target,currentPanel,value,targetSize);
4585currentEditor.beginEditing(target,value);
4586if(FBTrace.DBG_EDITOR){FBTrace.sysout("Editor start panel "+currentPanel.name)
4587}this.attachListeners(currentEditor,panel.context)
4588},stopEditing:function(cancel){if(!currentTarget){return
4589}if(FBTrace.DBG_EDITOR){FBTrace.sysout("editor.stopEditing cancel:"+cancel+" saveTimeout: "+this.saveTimeout)
4590}clearTimeout(this.saveTimeout);
4591delete this.saveTimeout;
4592this.detachListeners(currentEditor,currentPanel.context);
4593removeClass(currentPanel.panelNode,"editing");
4594removeClass(currentTarget,"editing");
4595if(currentGroup){removeClass(currentGroup,"editing")
4596}var value=currentEditor.getValue();
4597if(value==defaultValue){value=""
4598}var removeGroup=currentEditor.endEditing(currentTarget,value,cancel);
4599try{if(cancel){if(value!=originalValue){this.saveEditAndNotifyListeners(currentTarget,originalValue,previousValue)
4600}if(removeGroup&&!originalValue&&currentGroup){currentGroup.parentNode.removeChild(currentGroup)
4601}}else{if(!value){this.saveEditAndNotifyListeners(currentTarget,null,previousValue);
4602if(removeGroup&&currentGroup){currentGroup.parentNode.removeChild(currentGroup)
4603}}else{this.save(value)
4604}}}catch(exc){}currentEditor.hide();
4605currentPanel.editing=false;
4606currentTarget=null;
4607currentGroup=null;
4608currentPanel=null;
4609currentEditor=null;
4610originalValue=null;
4611invalidEditor=false;
4612return value
4613},cancelEditing:function(){return this.stopEditing(true)
4614},update:function(saveNow){if(this.saveTimeout){clearTimeout(this.saveTimeout)
4615}invalidEditor=true;
4616currentEditor.layout();
4617if(saveNow){this.save()
4618}else{var context=currentPanel.context;
4619this.saveTimeout=context.setTimeout(bindFixed(this.save,this),saveTimeout);
4620if(FBTrace.DBG_EDITOR){FBTrace.sysout("editor.update saveTimeout: "+this.saveTimeout)
4621}}},save:function(value){if(!invalidEditor){return
4622}if(value==undefined){value=currentEditor.getValue()
4623}if(FBTrace.DBG_EDITOR){FBTrace.sysout("editor.save saveTimeout: "+this.saveTimeout+" currentPanel: "+(currentPanel?currentPanel.name:"null"))
4624}try{this.saveEditAndNotifyListeners(currentTarget,value,previousValue);
4625previousValue=value;
4626invalidEditor=false
4627}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("editor.save FAILS "+exc,exc)
4628}}},saveEditAndNotifyListeners:function(currentTarget,value,previousValue){currentEditor.saveEdit(currentTarget,value,previousValue)
4629},setEditTarget:function(element){if(!element){dispatch([Firebug.A11yModel],"onInlineEditorClose",[currentPanel,currentTarget,true]);
4630this.stopEditing()
4631}else{if(hasClass(element,"insertBefore")){this.insertRow(element,"before")
4632}else{if(hasClass(element,"insertAfter")){this.insertRow(element,"after")
4633}else{this.startEditing(element)
4634}}}},tabNextEditor:function(){if(!currentTarget){return
4635}var value=currentEditor.getValue();
4636var nextEditable=currentTarget;
4637do{nextEditable=!value&&currentGroup?getNextOutsider(nextEditable,currentGroup):getNextByClass(nextEditable,"editable")
4638}while(nextEditable&&!nextEditable.offsetHeight);
4639this.setEditTarget(nextEditable)
4640},tabPreviousEditor:function(){if(!currentTarget){return
4641}var value=currentEditor.getValue();
4642var prevEditable=currentTarget;
4643do{prevEditable=!value&&currentGroup?getPreviousOutsider(prevEditable,currentGroup):getPreviousByClass(prevEditable,"editable")
4644}while(prevEditable&&!prevEditable.offsetHeight);
4645this.setEditTarget(prevEditable)
4646},insertRow:function(relative,insertWhere){var group=relative||getAncestorByClass(currentTarget,"editGroup")||currentTarget;
4647var value=this.stopEditing();
4648currentPanel=Firebug.getElementPanel(group);
4649currentEditor=currentPanel.getEditor(group,value);
4650if(!currentEditor){currentEditor=getDefaultEditor(currentPanel)
4651}currentGroup=currentEditor.insertNewRow(group,insertWhere);
4652if(!currentGroup){return
4653}var editable=hasClass(currentGroup,"editable")?currentGroup:getNextByClass(currentGroup,"editable");
4654if(editable){this.setEditTarget(editable)
4655}},insertRowForObject:function(relative){var container=getAncestorByClass(relative,"insertInto");
4656if(container){relative=getChildByClass(container,"insertBefore");
4657if(relative){this.insertRow(relative,"before")
4658}}},attachListeners:function(editor,context){var win=isIE?currentTarget.ownerDocument.parentWindow:currentTarget.ownerDocument.defaultView;
4659addEvent(win,"resize",this.onResize);
4660addEvent(win,"blur",this.onBlur);
4661var chrome=Firebug.chrome;
4662this.listeners=[chrome.keyCodeListen("ESCAPE",null,bind(this.cancelEditing,this))];
4663if(editor.arrowCompletion){this.listeners.push(chrome.keyCodeListen("UP",null,bindFixed(editor.completeValue,editor,-1)),chrome.keyCodeListen("DOWN",null,bindFixed(editor.completeValue,editor,1)),chrome.keyCodeListen("PAGE_UP",null,bindFixed(editor.completeValue,editor,-pageAmount)),chrome.keyCodeListen("PAGE_DOWN",null,bindFixed(editor.completeValue,editor,pageAmount)))
4664}if(currentEditor.tabNavigation){this.listeners.push(chrome.keyCodeListen("RETURN",null,bind(this.tabNextEditor,this)),chrome.keyCodeListen("RETURN",isControl,bind(this.insertRow,this,null,"after")),chrome.keyCodeListen("TAB",null,bind(this.tabNextEditor,this)),chrome.keyCodeListen("TAB",isShift,bind(this.tabPreviousEditor,this)))
4665}else{if(currentEditor.multiLine){this.listeners.push(chrome.keyCodeListen("TAB",null,insertTab))
4666}else{this.listeners.push(chrome.keyCodeListen("RETURN",null,bindFixed(this.stopEditing,this)));
4667if(currentEditor.tabCompletion){this.listeners.push(chrome.keyCodeListen("TAB",null,bind(editor.completeValue,editor,1)),chrome.keyCodeListen("TAB",isShift,bind(editor.completeValue,editor,-1)))
4668}}}},detachListeners:function(editor,context){if(!this.listeners){return
4669}var win=isIE?currentTarget.ownerDocument.parentWindow:currentTarget.ownerDocument.defaultView;
4670removeEvent(win,"resize",this.onResize);
4671removeEvent(win,"blur",this.onBlur);
4672var chrome=Firebug.chrome;
4673if(chrome){for(var i=0;
4674i<this.listeners.length;
4675++i){chrome.keyIgnore(this.listeners[i])
4676}}delete this.listeners
4677},onResize:function(event){currentEditor.layout(true)
4678},onBlur:function(event){if(currentEditor.enterOnBlur&&isAncestor(event.target,currentEditor.box)){this.stopEditing()
4679}},initialize:function(){Firebug.Module.initialize.apply(this,arguments);
4680this.onResize=bindFixed(this.onResize,this);
4681this.onBlur=bind(this.onBlur,this)
4682},disable:function(){this.stopEditing()
4683},showContext:function(browser,context){this.stopEditing()
4684},showPanel:function(browser,panel){this.stopEditing()
4685}});
4686Firebug.BaseEditor=extend(Firebug.MeasureBox,{getValue:function(){},setValue:function(value){},show:function(target,panel,value,textSize,targetSize){},hide:function(){},layout:function(forceAll){},getContextMenuItems:function(target){var items=[];
4687items.push({label:"Cut",commandID:"cmd_cut"});
4688items.push({label:"Copy",commandID:"cmd_copy"});
4689items.push({label:"Paste",commandID:"cmd_paste"});
4690return items
4691},beginEditing:function(target,value){},saveEdit:function(target,value,previousValue){},endEditing:function(target,value,cancel){return true
4692},insertNewRow:function(target,insertWhere){}});
4693var inlineEditorAttributes={"class":"textEditorInner",type:"text",spellcheck:"false",onkeypress:"$onKeyPress",onoverflow:"$onOverflow",oncontextmenu:"$onContextMenu"};
4694if(isIE){inlineEditorAttributes.onpropertychange="$onInput";
4695inlineEditorAttributes.onkeydown="$onKeyDown"
4696}else{inlineEditorAttributes.oninput="$onInput"
4697}Firebug.InlineEditor=function(doc){this.initializeInline(doc)
4698};
4699Firebug.InlineEditor.prototype=domplate(Firebug.BaseEditor,{enterOnBlur:true,outerMargin:8,shadowExpand:7,tag:DIV({"class":"inlineEditor"},DIV({"class":"textEditorTop1"},DIV({"class":"textEditorTop2"})),DIV({"class":"textEditorInner1"},DIV({"class":"textEditorInner2"},INPUT(inlineEditorAttributes))),DIV({"class":"textEditorBottom1"},DIV({"class":"textEditorBottom2"}))),inputTag:INPUT({"class":"textEditorInner",type:"text",onkeypress:"$onKeyPress",onoverflow:"$onOverflow"}),expanderTag:IMG({"class":"inlineExpander",src:"blank.gif"}),initialize:function(){this.fixedWidth=false;
4700this.completeAsYouType=true;
4701this.tabNavigation=true;
4702this.multiLine=false;
4703this.tabCompletion=false;
4704this.arrowCompletion=true;
4705this.noWrap=true;
4706this.numeric=false
4707},destroy:function(){this.destroyInput()
4708},initializeInline:function(doc){if(FBTrace.DBG_EDITOR){FBTrace.sysout("Firebug.InlineEditor initializeInline()")
4709}this.box=this.tag.append({},doc.body,this);
4710this.input=this.box.getElementsByTagName("input")[0];
4711if(isIElt8){this.input.style.top="-8px"
4712}this.expander=this.expanderTag.replace({},doc,this);
4713this.initialize()
4714},destroyInput:function(){},getValue:function(){return this.input.value
4715},setValue:function(value){return this.input.value=stripNewLines(value)
4716},show:function(target,panel,value,targetSize){this.target=target;
4717this.panel=panel;
4718this.targetSize=targetSize;
4719var innerHTML=target.innerHTML;
4720var isEmptyElement=!innerHTML;
4721if(isEmptyElement){target.innerHTML="."
4722}this.targetOffset={x:target.offsetLeft,y:target.offsetTop};
4723if(isEmptyElement){target.innerHTML=innerHTML
4724}this.originalClassName=this.box.className;
4725var classNames=target.className.split(" ");
4726for(var i=0;
4727i<classNames.length;
4728++i){setClass(this.box,"editor-"+classNames[i])
4729}copyTextStyles(target,this.box);
4730this.setValue(value);
4731if(this.fixedWidth){this.updateLayout(true)
4732}else{this.startMeasuring(target);
4733this.textSize=this.measureInputText(value);
4734var parent=this.input.parentNode;
4735if(hasClass(parent,"textEditorInner2")){var yDiff=this.textSize.height-this.shadowExpand;
4736if(isIE6){yDiff-=2
4737}parent.style.height=yDiff+"px";
4738parent.parentNode.style.height=yDiff+"px"
4739}this.updateLayout(true)
4740}this.getAutoCompleter().reset();
4741if(isIElt8){panel.panelNode.appendChild(this.box)
4742}else{target.offsetParent.appendChild(this.box)
4743}if(isIE){this.input.style.fontFamily="Monospace";
4744this.input.style.fontSize="11px"
4745}if(!this.fixedWidth){copyBoxStyles(target,this.expander);
4746target.parentNode.replaceChild(this.expander,target);
4747collapse(target,true);
4748this.expander.parentNode.insertBefore(target,this.expander)
4749}this.box.style.display="block";
4750var self=this;
4751setTimeout(function(){self.input.focus();
4752self.input.select()
4753},0)
4754},hide:function(){this.box.className=this.originalClassName;
4755if(!this.fixedWidth){this.stopMeasuring();
4756collapse(this.target,false);
4757if(this.expander.parentNode){this.expander.parentNode.removeChild(this.expander)
4758}}if(this.box.parentNode){this.input.blur();
4759this.box.parentNode.removeChild(this.box)
4760}delete this.target;
4761delete this.panel
4762},layout:function(forceAll){if(!this.fixedWidth){this.textSize=this.measureInputText(this.input.value)
4763}if(forceAll){this.targetOffset=getClientOffset(this.expander)
4764}this.updateLayout(false,forceAll)
4765},beginEditing:function(target,value){},saveEdit:function(target,value,previousValue){},endEditing:function(target,value,cancel){return true
4766},insertNewRow:function(target,insertWhere){},advanceToNext:function(target,charCode){return false
4767},getAutoCompleteRange:function(value,offset){},getAutoCompleteList:function(preExpr,expr,postExpr){},getAutoCompleter:function(){if(!this.autoCompleter){this.autoCompleter=new Firebug.AutoCompleter(null,bind(this.getAutoCompleteRange,this),bind(this.getAutoCompleteList,this),true,false)
4768}return this.autoCompleter
4769},completeValue:function(amt){var selectRangeCallback=this.getAutoCompleter().complete(currentPanel.context,this.input,true,amt<0);
4770if(selectRangeCallback){Firebug.Editor.update(true);
4771if(isSafari){setTimeout(selectRangeCallback,0)
4772}else{selectRangeCallback()
4773}}else{this.incrementValue(amt)
4774}},incrementValue:function(amt){var value=this.input.value;
4775if(isIE){var start=getInputSelectionStart(this.input),end=start
4776}else{var start=this.input.selectionStart,end=this.input.selectionEnd
4777}var range=this.getAutoCompleteRange(value,start);
4778if(!range||range.type!="int"){range={start:0,end:value.length-1}
4779}var expr=value.substr(range.start,range.end-range.start+1);
4780preExpr=value.substr(0,range.start);
4781postExpr=value.substr(range.end+1);
4782var intValue=parseInt(expr);
4783if(!!intValue||intValue==0){var m=/\d+/.exec(expr);
4784var digitPost=expr.substr(m.index+m[0].length);
4785var completion=intValue-amt;
4786this.input.value=preExpr+completion+digitPost+postExpr;
4787setSelectionRange(this.input,start,end);
4788Firebug.Editor.update(true);
4789return true
4790}else{return false
4791}},onKeyPress:function(event){if(event.keyCode==27&&!this.completeAsYouType){var reverted=this.getAutoCompleter().revert(this.input);
4792if(reverted){cancelEvent(event)
4793}}else{if(event.charCode&&this.advanceToNext(this.target,event.charCode)){Firebug.Editor.tabNextEditor();
4794cancelEvent(event)
4795}else{if(this.numeric&&event.charCode&&(event.charCode<48||event.charCode>57)&&event.charCode!=45&&event.charCode!=46){FBL.cancelEvent(event)
4796}else{this.ignoreNextInput=event.keyCode==8
4797}}}},onOverflow:function(){this.updateLayout(false,false,3)
4798},onKeyDown:function(event){if(event.keyCode>46||event.keyCode==32||event.keyCode==8){this.keyDownPressed=true
4799}},onInput:function(event){if(isIE){if(event.propertyName!="value"||!isVisible(this.input)||!this.keyDownPressed){return
4800}this.keyDownPressed=false
4801}var selectRangeCallback;
4802if(this.ignoreNextInput){this.ignoreNextInput=false;
4803this.getAutoCompleter().reset()
4804}else{if(this.completeAsYouType){selectRangeCallback=this.getAutoCompleter().complete(currentPanel.context,this.input,false)
4805}else{this.getAutoCompleter().reset()
4806}}Firebug.Editor.update();
4807if(selectRangeCallback){if(isSafari){setTimeout(selectRangeCallback,0)
4808}else{selectRangeCallback()
4809}}},onContextMenu:function(event){cancelEvent(event);
4810var popup=$("fbInlineEditorPopup");
4811FBL.eraseNode(popup);
4812var target=event.target||event.srcElement;
4813var menu=this.getContextMenuItems(target);
4814if(menu){for(var i=0;
4815i<menu.length;
4816++i){FBL.createMenuItem(popup,menu[i])
4817}}if(!popup.firstChild){return false
4818}popup.openPopupAtScreen(event.screenX,event.screenY,true);
4819return true
4820},updateLayout:function(initial,forceAll,extraWidth){if(this.fixedWidth){this.box.style.left=(this.targetOffset.x)+"px";
4821this.box.style.top=(this.targetOffset.y)+"px";
4822var w=this.target.offsetWidth;
4823var h=this.target.offsetHeight;
4824this.input.style.width=w+"px";
4825this.input.style.height=(h-3)+"px"
4826}else{if(initial||forceAll){this.box.style.left=this.targetOffset.x+"px";
4827this.box.style.top=this.targetOffset.y+"px"
4828}var approxTextWidth=this.textSize.width;
4829var maxWidth=(currentPanel.panelNode.scrollWidth-this.targetOffset.x)-this.outerMargin;
4830var wrapped=initial?this.noWrap&&this.targetSize.height>this.textSize.height+3:this.noWrap&&approxTextWidth>maxWidth;
4831if(wrapped){var style=isIE?this.target.currentStyle:this.target.ownerDocument.defaultView.getComputedStyle(this.target,"");
4832targetMargin=parseInt(style.marginLeft)+parseInt(style.marginRight);
4833approxTextWidth=maxWidth-targetMargin;
4834this.input.style.width="100%";
4835this.box.style.width=approxTextWidth+"px"
4836}else{var charWidth=this.measureInputText("m").width;
4837if(extraWidth){charWidth*=extraWidth
4838}var inputWidth=approxTextWidth+charWidth;
4839if(initial){if(isIE){var xDiff=13;
4840this.box.style.width=(inputWidth+xDiff)+"px"
4841}else{this.box.style.width="auto"
4842}}else{var xDiff=isIE?13:this.box.scrollWidth-this.input.offsetWidth;
4843this.box.style.width=(inputWidth+xDiff)+"px"
4844}this.input.style.width=inputWidth+"px"
4845}this.expander.style.width=approxTextWidth+"px";
4846this.expander.style.height=Math.max(this.textSize.height-3,0)+"px"
4847}if(forceAll){scrollIntoCenterView(this.box,null,true)
4848}}});
4849Firebug.AutoCompleter=function(getExprOffset,getRange,evaluator,selectMode,caseSensitive){var candidates=null;
4850var originalValue=null;
4851var originalOffset=-1;
4852var lastExpr=null;
4853var lastOffset=-1;
4854var exprOffset=0;
4855var lastIndex=0;
4856var preParsed=null;
4857var preExpr=null;
4858var postExpr=null;
4859this.revert=function(textBox){if(originalOffset!=-1){textBox.value=originalValue;
4860setSelectionRange(textBox,originalOffset,originalOffset);
4861this.reset();
4862return true
4863}else{this.reset();
4864return false
4865}};
4866this.reset=function(){candidates=null;
4867originalValue=null;
4868originalOffset=-1;
4869lastExpr=null;
4870lastOffset=0;
4871exprOffset=0
4872};
4873this.complete=function(context,textBox,cycle,reverse){var value=textBox.value;
4874var offset=getInputSelectionStart(textBox);
4875if(isSafari&&!cycle&&offset>=0){offset++
4876}if(!selectMode&&originalOffset!=-1){offset=originalOffset
4877}if(!candidates||!cycle||offset!=lastOffset){originalOffset=offset;
4878originalValue=value;
4879var parseStart=getExprOffset?getExprOffset(value,offset,context):0;
4880preParsed=value.substr(0,parseStart);
4881var parsed=value.substr(parseStart);
4882var range=getRange?getRange(parsed,offset-parseStart,context):null;
4883if(!range){range={start:0,end:parsed.length-1}
4884}var expr=parsed.substr(range.start,range.end-range.start+1);
4885preExpr=parsed.substr(0,range.start);
4886postExpr=parsed.substr(range.end+1);
4887exprOffset=parseStart+range.start;
4888if(!cycle){if(!expr){return
4889}else{if(lastExpr&&lastExpr.indexOf(expr)!=0){candidates=null
4890}else{if(lastExpr&&lastExpr.length>=expr.length){candidates=null;
4891lastExpr=expr;
4892return
4893}}}}lastExpr=expr;
4894lastOffset=offset;
4895var searchExpr;
4896if(expr&&offset!=parseStart+range.end+1){if(cycle){offset=range.start;
4897searchExpr=expr;
4898expr=""
4899}else{return
4900}}var values=evaluator(preExpr,expr,postExpr,context);
4901if(!values){return
4902}if(expr){candidates=[];
4903if(caseSensitive){for(var i=0;
4904i<values.length;
4905++i){var name=values[i];
4906if(name.indexOf&&name.indexOf(expr)==0){candidates.push(name)
4907}}}else{var lowerExpr=caseSensitive?expr:expr.toLowerCase();
4908for(var i=0;
4909i<values.length;
4910++i){var name=values[i];
4911if(name.indexOf&&name.toLowerCase().indexOf(lowerExpr)==0){candidates.push(name)
4912}}}lastIndex=reverse?candidates.length-1:0
4913}else{if(searchExpr){var searchIndex=-1;
4914if(caseSensitive){searchIndex=values.indexOf(expr)
4915}else{var lowerExpr=searchExpr.toLowerCase();
4916for(var i=0;
4917i<values.length;
4918++i){var name=values[i];
4919if(name&&name.toLowerCase().indexOf(lowerExpr)==0){searchIndex=i;
4920break
4921}}}if(searchIndex==-1){return this.reset()
4922}expr=searchExpr;
4923candidates=cloneArray(values);
4924lastIndex=searchIndex
4925}else{expr="";
4926candidates=[];
4927for(var i=0;
4928i<values.length;
4929++i){if(values[i].substr){candidates.push(values[i])
4930}}lastIndex=-1
4931}}}if(cycle){expr=lastExpr;
4932lastIndex+=reverse?-1:1
4933}if(!candidates.length){return
4934}if(lastIndex>=candidates.length){lastIndex=0
4935}else{if(lastIndex<0){lastIndex=candidates.length-1
4936}}var completion=candidates[lastIndex];
4937var preCompletion=expr.substr(0,offset-exprOffset);
4938var postCompletion=completion.substr(offset-exprOffset);
4939textBox.value=preParsed+preExpr+preCompletion+postCompletion+postExpr;
4940var offsetEnd=preParsed.length+preExpr.length+completion.length;
4941return function(){if(selectMode){setSelectionRange(textBox,offset,offsetEnd)
4942}else{setSelectionRange(textBox,offsetEnd,offsetEnd)
4943}}
4944}
4945};
4946var getDefaultEditor=function getDefaultEditor(panel){if(!defaultEditor){var doc=panel.document;
4947defaultEditor=new Firebug.InlineEditor(doc)
4948}return defaultEditor
4949};
4950var getOutsider=function getOutsider(element,group,stepper){var parentGroup=getAncestorByClass(group.parentNode,"editGroup");
4951var next;
4952do{next=stepper(next||element)
4953}while(isAncestor(next,group)||isGroupInsert(next,parentGroup));
4954return next
4955};
4956var isGroupInsert=function isGroupInsert(next,group){return(!group||isAncestor(next,group))&&(hasClass(next,"insertBefore")||hasClass(next,"insertAfter"))
4957};
4958var getNextOutsider=function getNextOutsider(element,group){return getOutsider(element,group,bind(getNextByClass,FBL,"editable"))
4959};
4960var getPreviousOutsider=function getPreviousOutsider(element,group){return getOutsider(element,group,bind(getPreviousByClass,FBL,"editable"))
4961};
4962var getInlineParent=function getInlineParent(element){var lastInline=element;
4963for(;
4964element;
4965element=element.parentNode){var s=isIE?element.currentStyle:element.ownerDocument.defaultView.getComputedStyle(element,"");
4966if(s.display!="inline"){return lastInline
4967}else{lastInline=element
4968}}return null
4969};
4970var insertTab=function insertTab(){insertTextIntoElement(currentEditor.input,Firebug.Editor.tabCharacter)
4971};
4972Firebug.registerModule(Firebug.Editor)
4973}});
4974FBL.ns(function(){with(FBL){if(Env.Options.disableXHRListener){return
4975}var XHRSpy=function(){this.requestHeaders=[];
4976this.responseHeaders=[]
4977};
4978XHRSpy.prototype={method:null,url:null,async:null,xhrRequest:null,href:null,loaded:false,logRow:null,responseText:null,requestHeaders:null,responseHeaders:null,sourceLink:null,getURL:function(){return this.href
4979}};
4980var XMLHttpRequestWrapper=function(activeXObject){var xhrRequest=typeof activeXObject!="undefined"?activeXObject:new _XMLHttpRequest(),spy=new XHRSpy(),self=this,reqType,reqUrl,reqStartTS;
4981var updateSelfPropertiesIgnore={abort:1,channel:1,getAllResponseHeaders:1,getInterface:1,getResponseHeader:1,mozBackgroundRequest:1,multipart:1,onreadystatechange:1,open:1,send:1,setRequestHeader:1};
4982var updateSelfProperties=function(){if(supportsXHRIterator){for(var propName in xhrRequest){if(propName in updateSelfPropertiesIgnore){continue
4983}try{var propValue=xhrRequest[propName];
4984if(propValue&&!isFunction(propValue)){self[propName]=propValue
4985}}catch(E){}}}else{if(xhrRequest.readyState==4){self.status=xhrRequest.status;
4986self.statusText=xhrRequest.statusText;
4987self.responseText=xhrRequest.responseText;
4988self.responseXML=xhrRequest.responseXML
4989}}};
4990var updateXHRPropertiesIgnore={channel:1,onreadystatechange:1,readyState:1,responseBody:1,responseText:1,responseXML:1,status:1,statusText:1,upload:1};
4991var updateXHRProperties=function(){for(var propName in self){if(propName in updateXHRPropertiesIgnore){continue
4992}try{var propValue=self[propName];
4993if(propValue&&!xhrRequest[propName]){xhrRequest[propName]=propValue
4994}}catch(E){}}};
4995var logXHR=function(){var row=Firebug.Console.log(spy,null,"spy",Firebug.Spy.XHR);
4996if(row){setClass(row,"loading");
4997spy.logRow=row
4998}};
4999var finishXHR=function(){var duration=new Date().getTime()-reqStartTS;
5000var success=xhrRequest.status==200;
5001var responseHeadersText=xhrRequest.getAllResponseHeaders();
5002var responses=responseHeadersText?responseHeadersText.split(/[\n\r]/):[];
5003var reHeader=/^(\S+):\s*(.*)/;
5004for(var i=0,l=responses.length;
5005i<l;
5006i++){var text=responses[i];
5007var match=text.match(reHeader);
5008if(match){var name=match[1];
5009var value=match[2];
5010if(name=="Content-Type"){spy.mimeType=value
5011}spy.responseHeaders.push({name:[name],value:[value]})
5012}}with({row:spy.logRow,status:xhrRequest.status==0?"":xhrRequest.status+" "+xhrRequest.statusText,time:duration,success:success}){setTimeout(function(){spy.responseText=xhrRequest.responseText;
5013row=row||spy.logRow;
5014if(!row){return
5015}handleRequestStatus(success,status,time)
5016},200)
5017}spy.loaded=true;
5018updateSelfProperties()
5019};
5020var handleStateChange=function(){self.readyState=xhrRequest.readyState;
5021if(xhrRequest.readyState==4){finishXHR();
5022xhrRequest.onreadystatechange=function(){}
5023}self.onreadystatechange()
5024};
5025var handleRequestStatus=function(success,status,time){var row=spy.logRow;
5026FBL.removeClass(row,"loading");
5027if(!success){FBL.setClass(row,"error")
5028}var item=FBL.$$(".spyStatus",row)[0];
5029item.innerHTML=status;
5030if(time){var item=FBL.$$(".spyTime",row)[0];
5031item.innerHTML=time+"ms"
5032}};
5033this.readyState=0;
5034this.onreadystatechange=function(){};
5035this.open=function(method,url,async,user,password){updateSelfProperties();
5036if(spy.loaded){spy=new XHRSpy()
5037}spy.method=method;
5038spy.url=url;
5039spy.async=async;
5040spy.href=url;
5041spy.xhrRequest=xhrRequest;
5042spy.urlParams=parseURLParamsArray(url);
5043try{if(supportsApply){xhrRequest.open.apply(xhrRequest,arguments)
5044}else{xhrRequest.open(method,url,async,user,password)
5045}}catch(e){}xhrRequest.onreadystatechange=handleStateChange
5046};
5047this.send=function(data){spy.data=data;
5048reqStartTS=new Date().getTime();
5049updateXHRProperties();
5050try{xhrRequest.send(data)
5051}catch(e){}finally{logXHR();
5052if(!spy.async){self.readyState=xhrRequest.readyState;
5053try{finishXHR()
5054}catch(E){}}}};
5055this.setRequestHeader=function(header,value){spy.requestHeaders.push({name:[header],value:[value]});
5056return xhrRequest.setRequestHeader(header,value)
5057};
5058this.abort=function(){xhrRequest.abort();
5059updateSelfProperties();
5060handleRequestStatus(false,"Aborted")
5061};
5062this.getResponseHeader=function(header){return xhrRequest.getResponseHeader(header)
5063};
5064this.getAllResponseHeaders=function(){return xhrRequest.getAllResponseHeaders()
5065};
5066var supportsApply=!isIE6&&xhrRequest&&xhrRequest.open&&typeof xhrRequest.open.apply!="undefined";
5067var numberOfXHRProperties=0;
5068for(var propName in xhrRequest){numberOfXHRProperties++;
5069if(propName in updateSelfPropertiesIgnore){continue
5070}try{var propValue=xhrRequest[propName];
5071if(isFunction(propValue)){if(typeof self[propName]=="undefined"){this[propName]=(function(name,xhr){return supportsApply?function(){return xhr[name].apply(xhr,arguments)
5072}:function(a,b,c,d,e){return xhr[name](a,b,c,d,e)
5073}
5074})(propName,xhrRequest)
5075}}else{this[propName]=propValue
5076}}catch(E){}}var supportsXHRIterator=numberOfXHRProperties>0;
5077return this
5078};
5079var _ActiveXObject;
5080var isIE6=/msie 6/i.test(navigator.appVersion);
5081if(isIE6){_ActiveXObject=window.ActiveXObject;
5082var xhrObjects=" MSXML2.XMLHTTP.5.0 MSXML2.XMLHTTP.4.0 MSXML2.XMLHTTP.3.0 MSXML2.XMLHTTP Microsoft.XMLHTTP ";
5083window.ActiveXObject=function(name){var error=null;
5084try{var activeXObject=new _ActiveXObject(name)
5085}catch(e){error=e
5086}finally{if(!error){if(xhrObjects.indexOf(" "+name+" ")!=-1){return new XMLHttpRequestWrapper(activeXObject)
5087}else{return activeXObject
5088}}else{throw error.message
5089}}}
5090}if(!isIE6){var _XMLHttpRequest=XMLHttpRequest;
5091window.XMLHttpRequest=function(){return new XMLHttpRequestWrapper()
5092}
5093}FBL.getNativeXHRObject=function(){var xhrObj=false;
5094try{xhrObj=new _XMLHttpRequest()
5095}catch(e){var progid=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
5096for(var i=0;
5097i<progid.length;
5098++i){try{xhrObj=new _ActiveXObject(progid[i])
5099}catch(e){continue
5100}break
5101}}finally{return xhrObj
5102}}
5103}});
5104FBL.ns(function(){with(FBL){var reIgnore=/about:|javascript:|resource:|chrome:|jar:/;
5105var layoutInterval=300;
5106var indentWidth=18;
5107var cacheSession=null;
5108var contexts=new Array();
5109var panelName="net";
5110var maxQueueRequests=500;
5111var activeRequests=[];
5112var mimeExtensionMap={txt:"text/plain",html:"text/html",htm:"text/html",xhtml:"text/html",xml:"text/xml",css:"text/css",js:"application/x-javascript",jss:"application/x-javascript",jpg:"image/jpg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",bmp:"image/bmp",swf:"application/x-shockwave-flash",flv:"video/x-flv"};
5113var fileCategories={"undefined":1,html:1,css:1,js:1,xhr:1,image:1,flash:1,txt:1,bin:1};
5114var textFileCategories={txt:1,html:1,xhr:1,css:1,js:1};
5115var binaryFileCategories={bin:1,flash:1};
5116var mimeCategoryMap={"text/plain":"txt","application/octet-stream":"bin","text/html":"html","text/xml":"html","text/css":"css","application/x-javascript":"js","text/javascript":"js","application/javascript":"js","image/jpeg":"image","image/jpg":"image","image/gif":"image","image/png":"image","image/bmp":"image","application/x-shockwave-flash":"flash","video/x-flv":"flash"};
5117var binaryCategoryMap={image:1,flash:1};
5118Firebug.NetMonitor=extend(Firebug.ActivableModule,{dispatchName:"netMonitor",clear:function(context){var panel=context.getPanel(panelName,true);
5119if(panel){panel.clear()
5120}},initialize:function(){return;
5121this.panelName=panelName;
5122Firebug.ActivableModule.initialize.apply(this,arguments);
5123if(Firebug.TraceModule){Firebug.TraceModule.addListener(this.TraceListener)
5124}NetHttpObserver.registerObserver();
5125NetHttpActivityObserver.registerObserver();
5126Firebug.Debugger.addListener(this.DebuggerListener)
5127},shutdown:function(){return;
5128prefs.removeObserver(Firebug.prefDomain,this,false);
5129if(Firebug.TraceModule){Firebug.TraceModule.removeListener(this.TraceListener)
5130}NetHttpObserver.unregisterObserver();
5131NetHttpActivityObserver.unregisterObserver();
5132Firebug.Debugger.removeListener(this.DebuggerListener)
5133}});
5134Firebug.NetMonitor.NetInfoBody=domplate(Firebug.Rep,new Firebug.Listener(),{tag:DIV({"class":"netInfoBody",_repObject:"$file"},TAG("$infoTabs",{file:"$file"}),TAG("$infoBodies",{file:"$file"})),infoTabs:DIV({"class":"netInfoTabs focusRow subFocusRow",role:"tablist"},A({"class":"netInfoParamsTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Params",$collapsed:"$file|hideParams"},$STR("URLParameters")),A({"class":"netInfoHeadersTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Headers"},$STR("Headers")),A({"class":"netInfoPostTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Post",$collapsed:"$file|hidePost"},$STR("Post")),A({"class":"netInfoPutTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Put",$collapsed:"$file|hidePut"},$STR("Put")),A({"class":"netInfoResponseTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Response",$collapsed:"$file|hideResponse"},$STR("Response")),A({"class":"netInfoCacheTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Cache",$collapsed:"$file|hideCache"},$STR("Cache")),A({"class":"netInfoHtmlTab netInfoTab a11yFocus",onclick:"$onClickTab",role:"tab",view:"Html",$collapsed:"$file|hideHtml"},$STR("HTML"))),infoBodies:DIV({"class":"netInfoBodies outerFocusRow"},TABLE({"class":"netInfoParamsText netInfoText netInfoParamsTable",role:"tabpanel",cellpadding:0,cellspacing:0},TBODY()),DIV({"class":"netInfoHeadersText netInfoText",role:"tabpanel"}),DIV({"class":"netInfoPostText netInfoText",role:"tabpanel"}),DIV({"class":"netInfoPutText netInfoText",role:"tabpanel"}),PRE({"class":"netInfoResponseText netInfoText",role:"tabpanel"}),DIV({"class":"netInfoCacheText netInfoText",role:"tabpanel"},TABLE({"class":"netInfoCacheTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("Cache")}))),DIV({"class":"netInfoHtmlText netInfoText",role:"tabpanel"},IFRAME({"class":"netInfoHtmlPreview",role:"document"}))),headerDataTag:FOR("param","$headers",TR({role:"listitem"},TD({"class":"netInfoParamName",role:"presentation"},TAG("$param|getNameTag",{param:"$param"})),TD({"class":"netInfoParamValue",role:"list","aria-label":"$param.name"},FOR("line","$param|getParamValueIterator",CODE({"class":"focusRow subFocusRow",role:"listitem"},"$line"))))),customTab:A({"class":"netInfo$tabId\\Tab netInfoTab",onclick:"$onClickTab",view:"$tabId",role:"tab"},"$tabTitle"),customBody:DIV({"class":"netInfo$tabId\\Text netInfoText",role:"tabpanel"}),nameTag:SPAN("$param|getParamName"),nameWithTooltipTag:SPAN({title:"$param.name"},"$param|getParamName"),getNameTag:function(param){return(this.getParamName(param)==param.name)?this.nameTag:this.nameWithTooltipTag
5135},getParamName:function(param){var limit=25;
5136var name=param.name;
5137if(name.length>limit){name=name.substr(0,limit)+"..."
5138}return name
5139},getParamTitle:function(param){var limit=25;
5140var name=param.name;
5141if(name.length>limit){return name
5142}return""
5143},hideParams:function(file){return !file.urlParams||!file.urlParams.length
5144},hidePost:function(file){return file.method.toUpperCase()!="POST"
5145},hidePut:function(file){return file.method.toUpperCase()!="PUT"
5146},hideResponse:function(file){return false
5147},hideCache:function(file){return true;
5148return !file.cacheEntry
5149},hideHtml:function(file){return(file.mimeType!="text/html")&&(file.mimeType!="application/xhtml+xml")
5150},onClickTab:function(event){this.selectTab(event.currentTarget||event.srcElement)
5151},getParamValueIterator:function(param){return param.value;
5152return wrapText(param.value,true)
5153},appendTab:function(netInfoBox,tabId,tabTitle){var args={tabId:tabId,tabTitle:tabTitle};
5154this.customTab.append(args,$$(".netInfoTabs",netInfoBox)[0]);
5155this.customBody.append(args,$$(".netInfoBodies",netInfoBox)[0])
5156},selectTabByName:function(netInfoBox,tabName){var tab=getChildByClass(netInfoBox,"netInfoTabs","netInfo"+tabName+"Tab");
5157if(tab){this.selectTab(tab)
5158}},selectTab:function(tab){var view=tab.getAttribute("view");
5159var netInfoBox=getAncestorByClass(tab,"netInfoBody");
5160var selectedTab=netInfoBox.selectedTab;
5161if(selectedTab){removeClass(netInfoBox.selectedText,"netInfoTextSelected");
5162removeClass(selectedTab,"netInfoTabSelected");
5163selectedTab.setAttribute("aria-selected","false")
5164}var textBodyName="netInfo"+view+"Text";
5165selectedTab=netInfoBox.selectedTab=tab;
5166netInfoBox.selectedText=$$("."+textBodyName,netInfoBox)[0];
5167setClass(netInfoBox.selectedText,"netInfoTextSelected");
5168setClass(selectedTab,"netInfoTabSelected");
5169selectedTab.setAttribute("selected","true");
5170selectedTab.setAttribute("aria-selected","true");
5171var file=Firebug.getRepObject(netInfoBox);
5172var context=Firebug.chrome;
5173this.updateInfo(netInfoBox,file,context)
5174},updateInfo:function(netInfoBox,file,context){if(FBTrace.DBG_NET){FBTrace.sysout("net.updateInfo; file",file)
5175}if(!netInfoBox){if(FBTrace.DBG_NET||FBTrace.DBG_ERRORS){FBTrace.sysout("net.updateInfo; ERROR netInfo == null "+file.href,file)
5176}return
5177}var tab=netInfoBox.selectedTab;
5178if(hasClass(tab,"netInfoParamsTab")){if(file.urlParams&&!netInfoBox.urlParamsPresented){netInfoBox.urlParamsPresented=true;
5179this.insertHeaderRows(netInfoBox,file.urlParams,"Params")
5180}}else{if(hasClass(tab,"netInfoHeadersTab")){var headersText=$$(".netInfoHeadersText",netInfoBox)[0];
5181if(file.responseHeaders&&!netInfoBox.responseHeadersPresented){netInfoBox.responseHeadersPresented=true;
5182NetInfoHeaders.renderHeaders(headersText,file.responseHeaders,"ResponseHeaders")
5183}if(file.requestHeaders&&!netInfoBox.requestHeadersPresented){netInfoBox.requestHeadersPresented=true;
5184NetInfoHeaders.renderHeaders(headersText,file.requestHeaders,"RequestHeaders")
5185}}else{if(hasClass(tab,"netInfoPostTab")){if(!netInfoBox.postPresented){netInfoBox.postPresented=true;
5186var postText=$$(".netInfoPostText",netInfoBox)[0];
5187NetInfoPostData.render(context,postText,file)
5188}}else{if(hasClass(tab,"netInfoPutTab")){if(!netInfoBox.putPresented){netInfoBox.putPresented=true;
5189var putText=$$(".netInfoPutText",netInfoBox)[0];
5190NetInfoPostData.render(context,putText,file)
5191}}else{if(hasClass(tab,"netInfoResponseTab")&&file.loaded&&!netInfoBox.responsePresented){var responseTextBox=$$(".netInfoResponseText",netInfoBox)[0];
5192if(file.category=="image"){netInfoBox.responsePresented=true;
5193var responseImage=netInfoBox.ownerDocument.createElement("img");
5194responseImage.src=file.href;
5195clearNode(responseTextBox);
5196responseTextBox.appendChild(responseImage,responseTextBox)
5197}else{this.setResponseText(file,netInfoBox,responseTextBox,context)
5198}}else{if(hasClass(tab,"netInfoCacheTab")&&file.loaded&&!netInfoBox.cachePresented){var responseTextBox=netInfoBox.getElementsByClassName("netInfoCacheText").item(0);
5199if(file.cacheEntry){netInfoBox.cachePresented=true;
5200this.insertHeaderRows(netInfoBox,file.cacheEntry,"Cache")
5201}}else{if(hasClass(tab,"netInfoHtmlTab")&&file.loaded&&!netInfoBox.htmlPresented){netInfoBox.htmlPresented=true;
5202var text=Utils.getResponseText(file,context);
5203var iframe=$$(".netInfoHtmlPreview",netInfoBox)[0];
5204var reScript=/<script(.|\s)*?\/script>/gi;
5205text=text.replace(reScript,"");
5206iframe.contentWindow.document.write(text);
5207iframe.contentWindow.document.close()
5208}}}}}}}dispatch(NetInfoBody.fbListeners,"updateTabBody",[netInfoBox,file,context])
5209},setResponseText:function(file,netInfoBox,responseTextBox,context){netInfoBox.responsePresented=true;
5210if(isIE){responseTextBox.style.whiteSpace="nowrap"
5211}responseTextBox[typeof responseTextBox.textContent!="undefined"?"textContent":"innerText"]=file.responseText;
5212return;
5213var text=Utils.getResponseText(file,context);
5214var limit=Firebug.netDisplayedResponseLimit+15;
5215var limitReached=text?(text.length>limit):false;
5216if(limitReached){text=text.substr(0,limit)+"..."
5217}if(text){insertWrappedText(text,responseTextBox)
5218}else{insertWrappedText("",responseTextBox)
5219}if(limitReached){var object={text:$STR("net.responseSizeLimitMessage"),onClickLink:function(){var panel=context.getPanel("net",true);
5220panel.openResponseInTab(file)
5221}};
5222Firebug.NetMonitor.ResponseSizeLimit.append(object,responseTextBox)
5223}netInfoBox.responsePresented=true;
5224if(FBTrace.DBG_NET){FBTrace.sysout("net.setResponseText; response text updated")
5225}},insertHeaderRows:function(netInfoBox,headers,tableName,rowName){if(!headers.length){return
5226}var headersTable=$$(".netInfo"+tableName+"Table",netInfoBox)[0];
5227var tbody=getChildByClass(headersTable,"netInfo"+rowName+"Body");
5228if(!tbody){tbody=headersTable.firstChild
5229}var titleRow=getChildByClass(tbody,"netInfo"+rowName+"Title");
5230this.headerDataTag.insertRows({headers:headers},titleRow?titleRow:tbody);
5231removeClass(titleRow,"collapsed")
5232}});
5233var NetInfoBody=Firebug.NetMonitor.NetInfoBody;
5234Firebug.NetMonitor.NetInfoHeaders=domplate(Firebug.Rep,{tag:DIV({"class":"netInfoHeadersTable",role:"tabpanel"},DIV({"class":"netInfoHeadersGroup netInfoResponseHeadersTitle"},SPAN($STR("ResponseHeaders")),SPAN({"class":"netHeadersViewSource response collapsed",onclick:"$onViewSource",_sourceDisplayed:false,_rowName:"ResponseHeaders"},$STR("net.headers.view source"))),TABLE({cellpadding:0,cellspacing:0},TBODY({"class":"netInfoResponseHeadersBody",role:"list","aria-label":$STR("ResponseHeaders")})),DIV({"class":"netInfoHeadersGroup netInfoRequestHeadersTitle"},SPAN($STR("RequestHeaders")),SPAN({"class":"netHeadersViewSource request collapsed",onclick:"$onViewSource",_sourceDisplayed:false,_rowName:"RequestHeaders"},$STR("net.headers.view source"))),TABLE({cellpadding:0,cellspacing:0},TBODY({"class":"netInfoRequestHeadersBody",role:"list","aria-label":$STR("RequestHeaders")}))),sourceTag:TR({role:"presentation"},TD({colspan:2,role:"presentation"},PRE({"class":"source"}))),onViewSource:function(event){var target=event.target;
5235var requestHeaders=(target.rowName=="RequestHeaders");
5236var netInfoBox=getAncestorByClass(target,"netInfoBody");
5237var file=netInfoBox.repObject;
5238if(target.sourceDisplayed){var headers=requestHeaders?file.requestHeaders:file.responseHeaders;
5239this.insertHeaderRows(netInfoBox,headers,target.rowName);
5240target.innerHTML=$STR("net.headers.view source")
5241}else{var source=requestHeaders?file.requestHeadersText:file.responseHeadersText;
5242this.insertSource(netInfoBox,source,target.rowName);
5243target.innerHTML=$STR("net.headers.pretty print")
5244}target.sourceDisplayed=!target.sourceDisplayed;
5245cancelEvent(event)
5246},insertSource:function(netInfoBox,source,rowName){var tbody=$$(".netInfo"+rowName+"Body",netInfoBox)[0];
5247var node=this.sourceTag.replace({},tbody);
5248var sourceNode=$$(".source",node)[0];
5249sourceNode.innerHTML=source
5250},insertHeaderRows:function(netInfoBox,headers,rowName){var headersTable=$$(".netInfoHeadersTable",netInfoBox)[0];
5251var tbody=$$(".netInfo"+rowName+"Body",headersTable)[0];
5252clearNode(tbody);
5253if(!headers.length){return
5254}NetInfoBody.headerDataTag.insertRows({headers:headers},tbody);
5255var titleRow=getChildByClass(headersTable,"netInfo"+rowName+"Title");
5256removeClass(titleRow,"collapsed")
5257},init:function(parent){var rootNode=this.tag.append({},parent);
5258var netInfoBox=getAncestorByClass(parent,"netInfoBody");
5259var file=netInfoBox.repObject;
5260var viewSource;
5261viewSource=$$(".request",rootNode)[0];
5262if(file.requestHeadersText){removeClass(viewSource,"collapsed")
5263}viewSource=$$(".response",rootNode)[0];
5264if(file.responseHeadersText){removeClass(viewSource,"collapsed")
5265}},renderHeaders:function(parent,headers,rowName){if(!parent.firstChild){this.init(parent)
5266}this.insertHeaderRows(parent,headers,rowName)
5267}});
5268var NetInfoHeaders=Firebug.NetMonitor.NetInfoHeaders;
5269Firebug.NetMonitor.NetInfoPostData=domplate(Firebug.Rep,{paramsTable:TABLE({"class":"netInfoPostParamsTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("net.label.Parameters")},TR({"class":"netInfoPostParamsTitle",role:"presentation"},TD({colspan:3,role:"presentation"},DIV({"class":"netInfoPostParams"},$STR("net.label.Parameters"),SPAN({"class":"netInfoPostContentType"},"application/x-www-form-urlencoded")))))),partsTable:TABLE({"class":"netInfoPostPartsTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("net.label.Parts")},TR({"class":"netInfoPostPartsTitle",role:"presentation"},TD({colspan:2,role:"presentation"},DIV({"class":"netInfoPostParams"},$STR("net.label.Parts"),SPAN({"class":"netInfoPostContentType"},"multipart/form-data")))))),jsonTable:TABLE({"class":"netInfoPostJSONTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("JSON")},TR({"class":"netInfoPostJSONTitle",role:"presentation"},TD({role:"presentation"},DIV({"class":"netInfoPostParams"},$STR("JSON")))),TR(TD({"class":"netInfoPostJSONBody"})))),xmlTable:TABLE({"class":"netInfoPostXMLTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("xmlviewer.tab.XML")},TR({"class":"netInfoPostXMLTitle",role:"presentation"},TD({role:"presentation"},DIV({"class":"netInfoPostParams"},$STR("xmlviewer.tab.XML")))),TR(TD({"class":"netInfoPostXMLBody"})))),sourceTable:TABLE({"class":"netInfoPostSourceTable",cellpadding:0,cellspacing:0,role:"presentation"},TBODY({role:"list","aria-label":$STR("net.label.Source")},TR({"class":"netInfoPostSourceTitle",role:"presentation"},TD({colspan:2,role:"presentation"},DIV({"class":"netInfoPostSource"},$STR("net.label.Source")))))),sourceBodyTag:TR({role:"presentation"},TD({colspan:2,role:"presentation"},FOR("line","$param|getParamValueIterator",CODE({"class":"focusRow subFocusRow",role:"listitem"},"$line")))),getParamValueIterator:function(param){return NetInfoBody.getParamValueIterator(param)
5270},render:function(context,parentNode,file){var spy=getAncestorByClass(parentNode,"spyHead");
5271var spyObject=spy.repObject;
5272var data=spyObject.data;
5273var contentType=file.mimeType;
5274if(contentType&&contentType=="application/x-www-form-urlencoded"||data&&data.indexOf("=")!=-1){var params=parseURLEncodedTextArray(data);
5275if(params){this.insertParameters(parentNode,params)
5276}}var jsonData={responseText:data};
5277if(Firebug.JSONViewerModel.isJSON(contentType,data)){this.insertJSON(parentNode,jsonData,context)
5278}var postText=data;
5279if(postText){this.insertSource(parentNode,postText)
5280}},insertParameters:function(parentNode,params){if(!params||!params.length){return
5281}var paramTable=this.paramsTable.append({object:{}},parentNode);
5282var row=$$(".netInfoPostParamsTitle",paramTable)[0];
5283var tbody=paramTable.getElementsByTagName("tbody")[0];
5284NetInfoBody.headerDataTag.insertRows({headers:params},row)
5285},insertParts:function(parentNode,data){if(!data.params||!data.params.length){return
5286}var partsTable=this.partsTable.append({object:{}},parentNode);
5287var row=$$(".netInfoPostPartsTitle",paramTable)[0];
5288NetInfoBody.headerDataTag.insertRows({headers:data.params},row)
5289},insertJSON:function(parentNode,file,context){var text=file.responseText;
5290var data=parseJSONString(text);
5291if(!data){return
5292}var jsonTable=this.jsonTable.append({},parentNode);
5293var jsonBody=$$(".netInfoPostJSONBody",jsonTable)[0];
5294if(!this.toggles){this.toggles={}
5295}Firebug.DOMPanel.DirTable.tag.replace({object:data,toggles:this.toggles},jsonBody)
5296},insertXML:function(parentNode,file,context){var text=Utils.getPostText(file,context);
5297var jsonTable=this.xmlTable.append(null,parentNode);
5298var jsonBody=$$(".netInfoPostXMLBody",jsonTable)[0];
5299Firebug.XMLViewerModel.insertXML(jsonBody,text)
5300},insertSource:function(parentNode,text){var sourceTable=this.sourceTable.append({object:{}},parentNode);
5301var row=$$(".netInfoPostSourceTitle",sourceTable)[0];
5302var param={value:[text]};
5303this.sourceBodyTag.insertRows({param:param},row)
5304},parseMultiPartText:function(file,context){var text=Utils.getPostText(file,context);
5305if(text==undefined){return null
5306}FBTrace.sysout("net.parseMultiPartText; boundary: ",text);
5307var boundary=text.match(/\s*boundary=\s*(.*)/)[1];
5308var divider="\r\n\r\n";
5309var bodyStart=text.indexOf(divider);
5310var body=text.substr(bodyStart+divider.length);
5311var postData={};
5312postData.mimeType="multipart/form-data";
5313postData.params=[];
5314var parts=body.split("--"+boundary);
5315for(var i=0;
5316i<parts.length;
5317i++){var part=parts[i].split(divider);
5318if(part.length!=2){continue
5319}var m=part[0].match(/\s*name=\"(.*)\"(;|$)/);
5320postData.params.push({name:(m&&m.length>1)?m[1]:"",value:trim(part[1])})
5321}return postData
5322}});
5323var NetInfoPostData=Firebug.NetMonitor.NetInfoPostData;
5324var $STRP=function(a){return a
5325};
5326Firebug.NetMonitor.NetLimit=domplate(Firebug.Rep,{collapsed:true,tableTag:DIV(TABLE({width:"100%",cellpadding:0,cellspacing:0},TBODY())),limitTag:TR({"class":"netRow netLimitRow",$collapsed:"$isCollapsed"},TD({"class":"netCol netLimitCol",colspan:6},TABLE({cellpadding:0,cellspacing:0},TBODY(TR(TD(SPAN({"class":"netLimitLabel"},$STRP("plural.Limit_Exceeded",[0]))),TD({style:"width:100%"}),TD(BUTTON({"class":"netLimitButton",title:"$limitPrefsTitle",onclick:"$onPreferences"},$STR("LimitPrefs"))),TD("&nbsp;")))))),isCollapsed:function(){return this.collapsed
5327},onPreferences:function(event){openNewTab("about:config")
5328},updateCounter:function(row){removeClass(row,"collapsed");
5329var limitLabel=row.getElementsByClassName("netLimitLabel").item(0);
5330limitLabel.firstChild.nodeValue=$STRP("plural.Limit_Exceeded",[row.limitInfo.totalCount])
5331},createTable:function(parent,limitInfo){var table=this.tableTag.replace({},parent);
5332var row=this.createRow(table.firstChild.firstChild,limitInfo);
5333return[table,row]
5334},createRow:function(parent,limitInfo){var row=this.limitTag.insertRows(limitInfo,parent,this)[0];
5335row.limitInfo=limitInfo;
5336return row
5337},observe:function(subject,topic,data){if(topic!="nsPref:changed"){return
5338}if(data.indexOf("net.logLimit")!=-1){this.updateMaxLimit()
5339}},updateMaxLimit:function(){var value=Firebug.getPref(Firebug.prefDomain,"net.logLimit");
5340maxQueueRequests=value?value:maxQueueRequests
5341}});
5342var NetLimit=Firebug.NetMonitor.NetLimit;
5343Firebug.NetMonitor.ResponseSizeLimit=domplate(Firebug.Rep,{tag:DIV({"class":"netInfoResponseSizeLimit"},SPAN("$object.beforeLink"),A({"class":"objectLink",onclick:"$onClickLink"},"$object.linkText"),SPAN("$object.afterLink")),reLink:/^(.*)<a>(.*)<\/a>(.*$)/,append:function(obj,parent){var m=obj.text.match(this.reLink);
5344return this.tag.append({onClickLink:obj.onClickLink,object:{beforeLink:m[1],linkText:m[2],afterLink:m[3]}},parent,this)
5345}});
5346Firebug.NetMonitor.Utils={findHeader:function(headers,name){if(!headers){return null
5347}name=name.toLowerCase();
5348for(var i=0;
5349i<headers.length;
5350++i){var headerName=headers[i].name.toLowerCase();
5351if(headerName==name){return headers[i].value
5352}}},formatPostText:function(text){if(text instanceof XMLDocument){return getElementXML(text.documentElement)
5353}else{return text
5354}},getPostText:function(file,context,noLimit){if(!file.postText){file.postText=readPostTextFromRequest(file.request,context);
5355if(!file.postText&&context){file.postText=readPostTextFromPage(file.href,context)
5356}}if(!file.postText){return file.postText
5357}var limit=Firebug.netDisplayedPostBodyLimit;
5358if(file.postText.length>limit&&!noLimit){return cropString(file.postText,limit,"\n\n... "+$STR("net.postDataSizeLimitMessage")+" ...\n\n")
5359}return file.postText
5360},getResponseText:function(file,context){return(typeof(file.responseText)!="undefined")?file.responseText:context.sourceCache.loadText(file.href,file.method,file)
5361},isURLEncodedRequest:function(file,context){var text=Utils.getPostText(file,context);
5362if(text&&text.toLowerCase().indexOf("content-type: application/x-www-form-urlencoded")==0){return true
5363}var headerValue=Utils.findHeader(file.requestHeaders,"content-type");
5364if(headerValue&&headerValue.indexOf("application/x-www-form-urlencoded")==0){return true
5365}return false
5366},isMultiPartRequest:function(file,context){var text=Utils.getPostText(file,context);
5367if(text&&text.toLowerCase().indexOf("content-type: multipart/form-data")==0){return true
5368}return false
5369},getMimeType:function(mimeType,uri){if(!mimeType||!(mimeCategoryMap.hasOwnProperty(mimeType))){var ext=getFileExtension(uri);
5370if(!ext){return mimeType
5371}else{var extMimeType=mimeExtensionMap[ext.toLowerCase()];
5372return extMimeType?extMimeType:mimeType
5373}}else{return mimeType
5374}},getDateFromSeconds:function(s){var d=new Date();
5375d.setTime(s*1000);
5376return d
5377},getHttpHeaders:function(request,file){try{var http=QI(request,Ci.nsIHttpChannel);
5378file.status=request.responseStatus;
5379file.method=http.requestMethod;
5380file.urlParams=parseURLParams(file.href);
5381file.mimeType=Utils.getMimeType(request.contentType,request.name);
5382if(!file.responseHeaders&&Firebug.collectHttpHeaders){var requestHeaders=[],responseHeaders=[];
5383http.visitRequestHeaders({visitHeader:function(name,value){requestHeaders.push({name:name,value:value})
5384}});
5385http.visitResponseHeaders({visitHeader:function(name,value){responseHeaders.push({name:name,value:value})
5386}});
5387file.requestHeaders=requestHeaders;
5388file.responseHeaders=responseHeaders
5389}}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("net.getHttpHeaders FAILS "+file.href,exc)
5390}}},isXHR:function(request){try{var callbacks=request.notificationCallbacks;
5391var xhrRequest=callbacks?callbacks.getInterface(Ci.nsIXMLHttpRequest):null;
5392if(FBTrace.DBG_NET){FBTrace.sysout("net.isXHR; "+(xhrRequest!=null)+", "+safeGetName(request))
5393}return(xhrRequest!=null)
5394}catch(exc){}return false
5395},getFileCategory:function(file){if(file.category){if(FBTrace.DBG_NET){FBTrace.sysout("net.getFileCategory; current: "+file.category+" for: "+file.href,file)
5396}return file.category
5397}if(file.isXHR){if(FBTrace.DBG_NET){FBTrace.sysout("net.getFileCategory; XHR for: "+file.href,file)
5398}return file.category="xhr"
5399}if(!file.mimeType){var ext=getFileExtension(file.href);
5400if(ext){file.mimeType=mimeExtensionMap[ext.toLowerCase()]
5401}}if(!file.mimeType){return""
5402}var mimeType=file.mimeType;
5403if(mimeType){mimeType=mimeType.split(";")[0]
5404}return(file.category=mimeCategoryMap[mimeType])
5405}};
5406var Utils=Firebug.NetMonitor.Utils;
5407Firebug.registerModule(Firebug.NetMonitor)
5408}});
5409FBL.ns(function(){with(FBL){var contexts=[];
5410Firebug.Spy=extend(Firebug.Module,{dispatchName:"spy",initialize:function(){if(Firebug.TraceModule){Firebug.TraceModule.addListener(this.TraceListener)
5411}Firebug.Module.initialize.apply(this,arguments)
5412},shutdown:function(){Firebug.Module.shutdown.apply(this,arguments);
5413if(Firebug.TraceModule){Firebug.TraceModule.removeListener(this.TraceListener)
5414}},initContext:function(context){context.spies=[];
5415if(Firebug.showXMLHttpRequests&&Firebug.Console.isAlwaysEnabled()){this.attachObserver(context,context.window)
5416}if(FBTrace.DBG_SPY){FBTrace.sysout("spy.initContext "+contexts.length+" ",context.getName())
5417}},destroyContext:function(context){this.detachObserver(context,null);
5418if(FBTrace.DBG_SPY&&context.spies.length){FBTrace.sysout("spy.destroyContext; ERROR There are leaking Spies ("+context.spies.length+") "+context.getName())
5419}delete context.spies;
5420if(FBTrace.DBG_SPY){FBTrace.sysout("spy.destroyContext "+contexts.length+" ",context.getName())
5421}},watchWindow:function(context,win){if(Firebug.showXMLHttpRequests&&Firebug.Console.isAlwaysEnabled()){this.attachObserver(context,win)
5422}},unwatchWindow:function(context,win){try{this.detachObserver(context,win)
5423}catch(ex){ERROR(ex)
5424}},updateOption:function(name,value){if(name=="showXMLHttpRequests"){var tach=value?this.attachObserver:this.detachObserver;
5425for(var i=0;
5426i<TabWatcher.contexts.length;
5427++i){var context=TabWatcher.contexts[i];
5428iterateWindows(context.window,function(win){tach.apply(this,[context,win])
5429})
5430}}},skipSpy:function(win){if(!win){return true
5431}var uri=safeGetWindowLocation(win);
5432if(uri&&(uri.indexOf("about:")==0||uri.indexOf("chrome:")==0)){return true
5433}},attachObserver:function(context,win){if(Firebug.Spy.skipSpy(win)){return
5434}for(var i=0;
5435i<contexts.length;
5436++i){if((contexts[i].context==context)&&(contexts[i].win==win)){return
5437}}if(contexts.length==0){httpObserver.addObserver(SpyHttpObserver,"firebug-http-event",false);
5438SpyHttpActivityObserver.registerObserver()
5439}contexts.push({context:context,win:win});
5440if(FBTrace.DBG_SPY){FBTrace.sysout("spy.attachObserver (HTTP) "+contexts.length+" ",context.getName())
5441}},detachObserver:function(context,win){for(var i=0;
5442i<contexts.length;
5443++i){if(contexts[i].context==context){if(win&&(contexts[i].win!=win)){continue
5444}contexts.splice(i,1);
5445if(contexts.length==0){httpObserver.removeObserver(SpyHttpObserver,"firebug-http-event");
5446SpyHttpActivityObserver.unregisterObserver()
5447}if(FBTrace.DBG_SPY){FBTrace.sysout("spy.detachObserver (HTTP) "+contexts.length+" ",context.getName())
5448}return
5449}}},getXHR:function(request){if(!(request instanceof Ci.nsIHttpChannel)){return null
5450}try{var callbacks=request.notificationCallbacks;
5451return(callbacks?callbacks.getInterface(Ci.nsIXMLHttpRequest):null)
5452}catch(exc){if(exc.name=="NS_NOINTERFACE"){if(FBTrace.DBG_SPY){FBTrace.sysout("spy.getXHR; Request is not nsIXMLHttpRequest: "+safeGetRequestName(request))
5453}}}return null
5454}});
5455Firebug.Spy.XHR=domplate(Firebug.Rep,{tag:DIV({"class":"spyHead",_repObject:"$object"},TABLE({"class":"spyHeadTable focusRow outerFocusRow",cellpadding:0,cellspacing:0,role:"listitem","aria-expanded":"false"},TBODY({role:"presentation"},TR({"class":"spyRow"},TD({"class":"spyTitleCol spyCol",onclick:"$onToggleBody"},DIV({"class":"spyTitle"},"$object|getCaption"),DIV({"class":"spyFullTitle spyTitle"},"$object|getFullUri")),TD({"class":"spyCol"},DIV({"class":"spyStatus"},"$object|getStatus")),TD({"class":"spyCol"},SPAN({"class":"spyIcon"})),TD({"class":"spyCol"},SPAN({"class":"spyTime"})),TD({"class":"spyCol"},TAG(FirebugReps.SourceLink.tag,{object:"$object.sourceLink"})))))),getCaption:function(spy){return spy.method.toUpperCase()+" "+cropString(spy.getURL(),100)
5456},getFullUri:function(spy){return spy.method.toUpperCase()+" "+spy.getURL()
5457},getStatus:function(spy){var text="";
5458if(spy.statusCode){text+=spy.statusCode+" "
5459}if(spy.statusText){return text+=spy.statusText
5460}return text
5461},onToggleBody:function(event){var target=event.currentTarget||event.srcElement;
5462var logRow=getAncestorByClass(target,"logRow-spy");
5463if(isLeftClick(event)){toggleClass(logRow,"opened");
5464var spy=getChildByClass(logRow,"spyHead").repObject;
5465var spyHeadTable=getAncestorByClass(target,"spyHeadTable");
5466if(hasClass(logRow,"opened")){updateHttpSpyInfo(spy,logRow);
5467if(spyHeadTable){spyHeadTable.setAttribute("aria-expanded","true")
5468}}else{}}},copyURL:function(spy){copyToClipboard(spy.getURL())
5469},copyParams:function(spy){var text=spy.postText;
5470if(!text){return
5471}var url=reEncodeURL(spy,text,true);
5472copyToClipboard(url)
5473},copyResponse:function(spy){copyToClipboard(spy.responseText)
5474},openInTab:function(spy){openNewTab(spy.getURL(),spy.postText)
5475},supportsObject:function(object){return false;
5476return object instanceof Firebug.Spy.XMLHttpRequestSpy
5477},browseObject:function(spy,context){var url=spy.getURL();
5478openNewTab(url);
5479return true
5480},getRealObject:function(spy,context){return spy.xhrRequest
5481},getContextMenuItems:function(spy){var items=[{label:"CopyLocation",command:bindFixed(this.copyURL,this,spy)}];
5482if(spy.postText){items.push({label:"CopyLocationParameters",command:bindFixed(this.copyParams,this,spy)})
5483}items.push({label:"CopyResponse",command:bindFixed(this.copyResponse,this,spy)},"-",{label:"OpenInTab",command:bindFixed(this.openInTab,this,spy)});
5484return items
5485}});
5486function updateTime(spy){var timeBox=spy.logRow.getElementsByClassName("spyTime").item(0);
5487if(spy.responseTime){timeBox.textContent=" "+formatTime(spy.responseTime)
5488}}function updateLogRow(spy){updateTime(spy);
5489var statusBox=spy.logRow.getElementsByClassName("spyStatus").item(0);
5490statusBox.textContent=Firebug.Spy.XHR.getStatus(spy);
5491removeClass(spy.logRow,"loading");
5492setClass(spy.logRow,"loaded");
5493try{var errorRange=Math.floor(spy.xhrRequest.status/100);
5494if(errorRange==4||errorRange==5){setClass(spy.logRow,"error")
5495}}catch(exc){}}var updateHttpSpyInfo=function updateHttpSpyInfo(spy,logRow){if(!spy.logRow&&logRow){spy.logRow=logRow
5496}if(!spy.logRow||!hasClass(spy.logRow,"opened")){return
5497}if(!spy.params){spy.params=parseURLParams(spy.href+"")
5498}if(!spy.requestHeaders){spy.requestHeaders=getRequestHeaders(spy)
5499}if(!spy.responseHeaders&&spy.loaded){spy.responseHeaders=getResponseHeaders(spy)
5500}var template=Firebug.NetMonitor.NetInfoBody;
5501var netInfoBox=getChildByClass(spy.logRow,"spyHead","netInfoBody");
5502if(!netInfoBox){var head=getChildByClass(spy.logRow,"spyHead");
5503netInfoBox=template.tag.append({file:spy},head);
5504dispatch(template.fbListeners,"initTabBody",[netInfoBox,spy]);
5505template.selectTabByName(netInfoBox,"Response")
5506}else{template.updateInfo(netInfoBox,spy,spy.context)
5507}};
5508function getRequestHeaders(spy){var headers=[];
5509var channel=spy.xhrRequest.channel;
5510if(channel instanceof Ci.nsIHttpChannel){channel.visitRequestHeaders({visitHeader:function(name,value){headers.push({name:name,value:value})
5511}})
5512}return headers
5513}function getResponseHeaders(spy){var headers=[];
5514try{var channel=spy.xhrRequest.channel;
5515if(channel instanceof Ci.nsIHttpChannel){channel.visitResponseHeaders({visitHeader:function(name,value){headers.push({name:name,value:value})
5516}})
5517}}catch(exc){if(FBTrace.DBG_SPY||FBTrace.DBG_ERRORS){FBTrace.sysout("spy.getResponseHeaders; EXCEPTION "+safeGetRequestName(spy.request),exc)
5518}}return headers
5519}Firebug.registerModule(Firebug.Spy)
5520}});
5521FBL.ns(function(){with(FBL){var contentTypes={"text/javascript":1,"text/x-javascript":1,"text/json":1,"text/x-json":1,"application/json":1,"application/x-json":1,"application/javascript":1,"application/x-javascript":1,"application/json-rpc":1};
5522Firebug.JSONViewerModel=extend(Firebug.Module,{dispatchName:"jsonViewer",initialize:function(){Firebug.NetMonitor.NetInfoBody.addListener(this);
5523this.toggles={}
5524},shutdown:function(){Firebug.NetMonitor.NetInfoBody.removeListener(this)
5525},initTabBody:function(infoBox,file){if(FBTrace.DBG_JSONVIEWER){FBTrace.sysout("jsonviewer.initTabBody",infoBox)
5526}dispatch(this.fbListeners,"onParseJSON",[file]);
5527if(!file.jsonObject){if(this.isJSON(file.mimeType,file.responseText)){file.jsonObject=this.parseJSON(file)
5528}}if(file.jsonObject&&hasProperties(file.jsonObject)){Firebug.NetMonitor.NetInfoBody.appendTab(infoBox,"JSON",$STR("JSON"));
5529if(FBTrace.DBG_JSONVIEWER){FBTrace.sysout("jsonviewer.initTabBody; JSON object available "+(typeof(file.jsonObject)!="undefined"),file.jsonObject)
5530}}},isJSON:function(contentType,data){var responseText=data?trim(data):null;
5531if(responseText&&responseText.indexOf("{")==0){return true
5532}if(!contentType){return false
5533}contentType=contentType.split(";")[0];
5534contentType=trim(contentType);
5535return contentTypes[contentType]
5536},updateTabBody:function(infoBox,file,context){var tab=infoBox.selectedTab;
5537var tabBody=$$(".netInfoJSONText",infoBox)[0];
5538if(!hasClass(tab,"netInfoJSONTab")||tabBody.updated){return
5539}tabBody.updated=true;
5540if(file.jsonObject){Firebug.DOMPanel.DirTable.tag.replace({object:file.jsonObject,toggles:this.toggles},tabBody)
5541}},parseJSON:function(file){var jsonString=new String(file.responseText);
5542return parseJSONString(jsonString)
5543}});
5544Firebug.registerModule(Firebug.JSONViewerModel)
5545}});
5546FBL.ns(function(){with(FBL){var xmlContentTypes=["text/xml","application/xml","application/xhtml+xml","application/rss+xml","application/atom+xml",,"application/vnd.mozilla.maybe.feed","application/rdf+xml","application/vnd.mozilla.xul+xml"];
5547Firebug.XMLViewerModel=extend(Firebug.Module,{dispatchName:"xmlViewer",initialize:function(){Firebug.Module.initialize.apply(this,arguments);
5548Firebug.NetMonitor.NetInfoBody.addListener(this)
5549},shutdown:function(){Firebug.Module.shutdown.apply(this,arguments);
5550Firebug.NetMonitor.NetInfoBody.removeListener(this)
5551},initTabBody:function(infoBox,file){if(FBTrace.DBG_XMLVIEWER){FBTrace.sysout("xmlviewer.initTabBody",infoBox)
5552}if(this.isXML(file.mimeType,file.responseText)){Firebug.NetMonitor.NetInfoBody.appendTab(infoBox,"XML",$STR("XML"));
5553if(FBTrace.DBG_XMLVIEWER){FBTrace.sysout("xmlviewer.initTabBody; XML response available")
5554}}},isXML:function(contentType){if(!contentType){return false
5555}for(var i=0;
5556i<xmlContentTypes.length;
5557i++){if(contentType.indexOf(xmlContentTypes[i])==0){return true
5558}}return false
5559},updateTabBody:function(infoBox,file,context){var tab=infoBox.selectedTab;
5560var tabBody=$$(".netInfoXMLText",infoBox)[0];
5561if(!hasClass(tab,"netInfoXMLTab")||tabBody.updated){return
5562}tabBody.updated=true;
5563this.insertXML(tabBody,Firebug.NetMonitor.Utils.getResponseText(file,context))
5564},insertXML:function(parentNode,text){var xmlText=text.replace(/^\s*<?.+?>\s*/,"");
5565var div=parentNode.ownerDocument.createElement("div");
5566div.innerHTML=xmlText;
5567var root=div.getElementsByTagName("*")[0];
5568if(FBTrace.DBG_XMLVIEWER){FBTrace.sysout("xmlviewer.updateTabBody; XML response parsed",doc)
5569}var html=[];
5570Firebug.Reps.appendNode(root,html);
5571parentNode.innerHTML=html.join("")
5572}});
5573Firebug.XMLViewerModel.ParseError=domplate(Firebug.Rep,{tag:DIV({"class":"xmlInfoError"},DIV({"class":"xmlInfoErrorMsg"},"$error.message"),PRE({"class":"xmlInfoErrorSource"},"$error|getSource")),getSource:function(error){var parts=error.source.split("\n");
5574if(parts.length!=2){return error.source
5575}var limit=50;
5576var column=parts[1].length;
5577if(column>=limit){parts[0]="..."+parts[0].substr(column-limit);
5578parts[1]="..."+parts[1].substr(column-limit)
5579}if(parts[0].length>80){parts[0]=parts[0].substr(0,80)+"..."
5580}return parts.join("\n")
5581}});
5582Firebug.registerModule(Firebug.XMLViewerModel)
5583}});
5584FBL.ns(function(){with(FBL){var consoleQueue=[];
5585var lastHighlightedObject;
5586var FirebugContext=Env.browser;
5587var maxQueueRequests=500;
5588Firebug.ConsoleBase={log:function(object,context,className,rep,noThrottle,sourceLink){return this.logRow(appendObject,object,context,className,rep,sourceLink,noThrottle)
5589},logFormatted:function(objects,context,className,noThrottle,sourceLink){return this.logRow(appendFormatted,objects,context,className,null,sourceLink,noThrottle)
5590},openGroup:function(objects,context,className,rep,noThrottle,sourceLink,noPush){return this.logRow(appendOpenGroup,objects,context,className,rep,sourceLink,noThrottle)
5591},closeGroup:function(context,noThrottle){return this.logRow(appendCloseGroup,null,context,null,null,null,noThrottle,true)
5592},logRow:function(appender,objects,context,className,rep,sourceLink,noThrottle,noRow){noThrottle=true;
5593if(!context){context=FirebugContext
5594}if(FBTrace.DBG_ERRORS&&!context){FBTrace.sysout("Console.logRow has no context, skipping objects",objects)
5595}if(!context){return
5596}if(noThrottle||!context){var panel=this.getPanel(context);
5597if(panel){var row=panel.append(appender,objects,className,rep,sourceLink,noRow);
5598var container=panel.panelNode;
5599return row
5600}else{consoleQueue.push([appender,objects,context,className,rep,sourceLink,noThrottle,noRow])
5601}}else{if(!context.throttle){return
5602}var args=[appender,objects,context,className,rep,sourceLink,true,noRow];
5603context.throttle(this.logRow,this,args)
5604}},appendFormatted:function(args,row,context){if(!context){context=FirebugContext
5605}var panel=this.getPanel(context);
5606panel.appendFormatted(args,row)
5607},clear:function(context){if(!context){context=Firebug.context
5608}var panel=this.getPanel(context,true);
5609if(panel){panel.clear()
5610}},getPanel:function(context,noCreate){return Firebug.chrome?Firebug.chrome.getPanel("Console"):null
5611}};
5612var ActivableConsole=extend(Firebug.ConsoleBase,{isAlwaysEnabled:function(){return true
5613}});
5614Firebug.Console=Firebug.Console=extend(ActivableConsole,{dispatchName:"console",error:function(){Firebug.Console.logFormatted(arguments,Firebug.browser,"error")
5615},flush:function(){dispatch(this.fbListeners,"flush",[]);
5616for(var i=0,length=consoleQueue.length;
5617i<length;
5618i++){var args=consoleQueue[i];
5619this.logRow.apply(this,args)
5620}},showPanel:function(browser,panel){},getFirebugConsoleElement:function(context,win){var element=win.document.getElementById("_firebugConsole");
5621if(!element){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("getFirebugConsoleElement forcing element")
5622}var elementForcer="(function(){var r=null; try { r = window._getFirebugConsoleElement();}catch(exc){r=exc;} return r;})();";
5623if(context.stopped){Firebug.Console.injector.evaluateConsoleScript(context)
5624}else{var r=Firebug.CommandLine.evaluateInWebPage(elementForcer,context,win)
5625}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("getFirebugConsoleElement forcing element result "+r,r)
5626}var element=win.document.getElementById("_firebugConsole");
5627if(!element){if(FBTrace.DBG_ERRORS){FBTrace.sysout("console.getFirebugConsoleElement: no _firebugConsole in win:",win)
5628}Firebug.Console.logFormatted(["Firebug cannot find _firebugConsole element",r,win],context,"error",true)
5629}}return element
5630},isReadyElsePreparing:function(context,win){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.isReadyElsePreparing, win is "+(win?"an argument: ":"null, context.window: ")+(win?win.location:context.window.location),(win?win:context.window))
5631}if(win){return this.injector.attachIfNeeded(context,win)
5632}else{var attached=true;
5633for(var i=0;
5634i<context.windows.length;
5635i++){attached=attached&&this.injector.attachIfNeeded(context,context.windows[i])
5636}if(context.windows.indexOf(context.window)==-1){FBTrace.sysout("isReadyElsePreparing ***************** context.window not in context.windows")
5637}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.isReadyElsePreparing attached to "+context.windows.length+" and returns "+attached)
5638}return attached
5639}},initialize:function(){this.panelName="console"
5640},enable:function(){if(Firebug.Console.isAlwaysEnabled()){this.watchForErrors()
5641}},disable:function(){if(Firebug.Console.isAlwaysEnabled()){this.unwatchForErrors()
5642}},initContext:function(context,persistedState){Firebug.ActivableModule.initContext.apply(this,arguments);
5643context.consoleReloadWarning=true
5644},loadedContext:function(context){for(var url in context.sourceFileMap){return
5645}this.clearReloadWarning(context)
5646},clearReloadWarning:function(context){if(context.consoleReloadWarning){var panel=context.getPanel(this.panelName);
5647panel.clearReloadWarning();
5648delete context.consoleReloadWarning
5649}},togglePersist:function(context){var panel=context.getPanel(this.panelName);
5650panel.persistContent=panel.persistContent?false:true;
5651Firebug.chrome.setGlobalAttribute("cmd_togglePersistConsole","checked",panel.persistContent)
5652},showContext:function(browser,context){Firebug.chrome.setGlobalAttribute("cmd_clearConsole","disabled",!context);
5653Firebug.ActivableModule.showContext.apply(this,arguments)
5654},destroyContext:function(context,persistedState){Firebug.Console.injector.detachConsole(context,context.window)
5655},onPanelEnable:function(panelName){if(panelName!=this.panelName){return
5656}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onPanelEnable**************")
5657}this.watchForErrors();
5658Firebug.Debugger.addDependentModule(this)
5659},onPanelDisable:function(panelName){if(panelName!=this.panelName){return
5660}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onPanelDisable**************")
5661}Firebug.Debugger.removeDependentModule(this);
5662this.unwatchForErrors();
5663this.clear()
5664},onSuspendFirebug:function(){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onSuspendFirebug\n")
5665}if(Firebug.Console.isAlwaysEnabled()){this.unwatchForErrors()
5666}},onResumeFirebug:function(){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onResumeFirebug\n")
5667}if(Firebug.Console.isAlwaysEnabled()){this.watchForErrors()
5668}},watchForErrors:function(){Firebug.Errors.checkEnabled();
5669$("fbStatusIcon").setAttribute("console","on")
5670},unwatchForErrors:function(){Firebug.Errors.checkEnabled();
5671$("fbStatusIcon").removeAttribute("console")
5672},onMonitorScript:function(context,frame){Firebug.Console.log(frame,context)
5673},onFunctionCall:function(context,frame,depth,calling){if(calling){Firebug.Console.openGroup([frame,"depth:"+depth],context)
5674}else{Firebug.Console.closeGroup(context)
5675}},logRow:function(appender,objects,context,className,rep,sourceLink,noThrottle,noRow){if(!context){context=FirebugContext
5676}if(FBTrace.DBG_WINDOWS&&!context){FBTrace.sysout("Console.logRow: no context \n")
5677}if(this.isAlwaysEnabled()){return Firebug.ConsoleBase.logRow.apply(this,arguments)
5678}}});
5679Firebug.ConsoleListener={log:function(context,object,className,sourceLink){},logFormatted:function(context,objects,className,sourceLink){}};
5680Firebug.ConsolePanel=function(){};
5681Firebug.ConsolePanel.prototype=extend(Firebug.Panel,{wasScrolledToBottom:false,messageCount:0,lastLogTime:0,groups:null,limit:null,append:function(appender,objects,className,rep,sourceLink,noRow){var container=this.getTopContainer();
5682if(noRow){appender.apply(this,[objects])
5683}else{var row=this.createRow("logRow",className);
5684appender.apply(this,[objects,row,rep]);
5685if(sourceLink){FirebugReps.SourceLink.tag.append({object:sourceLink},row)
5686}container.appendChild(row);
5687this.filterLogRow(row,this.wasScrolledToBottom);
5688if(this.wasScrolledToBottom){scrollToBottom(this.panelNode)
5689}return row
5690}},clear:function(){if(this.panelNode){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("ConsolePanel.clear")
5691}clearNode(this.panelNode);
5692this.insertLogLimit(this.context)
5693}},insertLogLimit:function(){var row=this.createRow("limitRow");
5694var limitInfo={totalCount:0,limitPrefsTitle:$STRF("LimitPrefsTitle",[Firebug.prefDomain+".console.logLimit"])};
5695return;
5696var netLimitRep=Firebug.NetMonitor.NetLimit;
5697var nodes=netLimitRep.createTable(row,limitInfo);
5698this.limit=nodes[1];
5699var container=this.panelNode;
5700container.insertBefore(nodes[0],container.firstChild)
5701},insertReloadWarning:function(){this.warningRow=this.append(appendObject,$STR("message.Reload to activate window console"),"info")
5702},clearReloadWarning:function(){if(this.warningRow){this.warningRow.parentNode.removeChild(this.warningRow);
5703delete this.warningRow
5704}},appendObject:function(object,row,rep){if(!rep){rep=Firebug.getRep(object)
5705}return rep.tag.append({object:object},row)
5706},appendFormatted:function(objects,row,rep){if(!objects||!objects.length){return
5707}function logText(text,row){var node=row.ownerDocument.createTextNode(text);
5708row.appendChild(node)
5709}var format=objects[0];
5710var objIndex=0;
5711if(typeof(format)!="string"){format="";
5712objIndex=-1
5713}else{if(objects.length===1){if(format.length<1){logText("(an empty string)",row);
5714return
5715}}}var parts=parseFormat(format);
5716var trialIndex=objIndex;
5717for(var i=0;
5718i<parts.length;
5719i++){var part=parts[i];
5720if(part&&typeof(part)=="object"){if(++trialIndex>objects.length){format="";
5721objIndex=-1;
5722parts.length=0;
5723break
5724}}}for(var i=0;
5725i<parts.length;
5726++i){var part=parts[i];
5727if(part&&typeof(part)=="object"){var object=objects[++objIndex];
5728if(typeof(object)!="undefined"){this.appendObject(object,row,part.rep)
5729}else{this.appendObject(part.type,row,FirebugReps.Text)
5730}}else{FirebugReps.Text.tag.append({object:part},row)
5731}}for(var i=objIndex+1;
5732i<objects.length;
5733++i){logText(" ",row);
5734var object=objects[i];
5735if(typeof(object)=="string"){FirebugReps.Text.tag.append({object:object},row)
5736}else{this.appendObject(object,row)
5737}}},appendOpenGroup:function(objects,row,rep){if(!this.groups){this.groups=[]
5738}setClass(row,"logGroup");
5739setClass(row,"opened");
5740var innerRow=this.createRow("logRow");
5741setClass(innerRow,"logGroupLabel");
5742if(rep){rep.tag.replace({objects:objects},innerRow)
5743}else{this.appendFormatted(objects,innerRow,rep)
5744}row.appendChild(innerRow);
5745var groupBody=this.createRow("logGroupBody");
5746row.appendChild(groupBody);
5747groupBody.setAttribute("role","group");
5748this.groups.push(groupBody);
5749addEvent(innerRow,"mousedown",function(event){if(isLeftClick(event)){var target=event.target||event.srcElement;
5750target=getAncestorByClass(target,"logGroupLabel");
5751var groupRow=target.parentNode;
5752if(hasClass(groupRow,"opened")){removeClass(groupRow,"opened");
5753target.setAttribute("aria-expanded","false")
5754}else{setClass(groupRow,"opened");
5755target.setAttribute("aria-expanded","true")
5756}}})
5757},appendCloseGroup:function(object,row,rep){if(this.groups){this.groups.pop()
5758}},onMouseMove:function(event){if(!Firebug.Inspector){return
5759}var target=event.srcElement||event.target;
5760var object=getAncestorByClass(target,"objectLink-element");
5761object=object?object.repObject:null;
5762if(object&&instanceOf(object,"Element")&&object.nodeType==1){if(object!=lastHighlightedObject){Firebug.Inspector.drawBoxModel(object);
5763object=lastHighlightedObject
5764}}else{Firebug.Inspector.hideBoxModel()
5765}},onMouseDown:function(event){var target=event.srcElement||event.target;
5766var object=getAncestorByClass(target,"objectLink");
5767var repObject=object?object.repObject:null;
5768if(!repObject){return
5769}if(hasClass(object,"objectLink-object")){Firebug.chrome.selectPanel("DOM");
5770Firebug.chrome.getPanel("DOM").select(repObject,true)
5771}else{if(hasClass(object,"objectLink-element")){Firebug.chrome.selectPanel("HTML");
5772Firebug.chrome.getPanel("HTML").select(repObject,true)
5773}}},name:"Console",title:"Console",options:{hasCommandLine:true,hasToolButtons:true,isPreRendered:true},create:function(){Firebug.Panel.create.apply(this,arguments);
5774this.context=Firebug.browser.window;
5775this.document=Firebug.chrome.document;
5776this.onMouseMove=bind(this.onMouseMove,this);
5777this.onMouseDown=bind(this.onMouseDown,this);
5778this.clearButton=new Button({element:$("fbConsole_btClear"),owner:Firebug.Console,onClick:Firebug.Console.clear})
5779},initialize:function(){Firebug.Panel.initialize.apply(this,arguments);
5780if(!this.persistedContent&&Firebug.Console.isAlwaysEnabled()){this.insertLogLimit(this.context);
5781this.updateMaxLimit();
5782if(this.context.consoleReloadWarning){this.insertReloadWarning()
5783}}addEvent(this.panelNode,"mouseover",this.onMouseMove);
5784addEvent(this.panelNode,"mousedown",this.onMouseDown);
5785this.clearButton.initialize()
5786},initializeNode:function(){if(FBTrace.DBG_CONSOLE){this.onScroller=bind(this.onScroll,this);
5787addEvent(this.panelNode,"scroll",this.onScroller)
5788}this.onResizer=bind(this.onResize,this);
5789this.resizeEventTarget=Firebug.chrome.$("fbContentBox");
5790addEvent(this.resizeEventTarget,"resize",this.onResizer)
5791},destroyNode:function(){if(this.onScroller){removeEvent(this.panelNode,"scroll",this.onScroller)
5792}},shutdown:function(){this.clearButton.shutdown();
5793removeEvent(this.panelNode,"mousemove",this.onMouseMove);
5794removeEvent(this.panelNode,"mousedown",this.onMouseDown);
5795this.destroyNode();
5796Firebug.Panel.shutdown.apply(this,arguments)
5797},ishow:function(state){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.panel show; "+this.context.getName(),state)
5798}var enabled=Firebug.Console.isAlwaysEnabled();
5799if(enabled){Firebug.Console.disabledPanelPage.hide(this);
5800this.showCommandLine(true);
5801this.showToolbarButtons("fbConsoleButtons",true);
5802Firebug.chrome.setGlobalAttribute("cmd_togglePersistConsole","checked",this.persistContent);
5803if(state&&state.wasScrolledToBottom){this.wasScrolledToBottom=state.wasScrolledToBottom;
5804delete state.wasScrolledToBottom
5805}if(this.wasScrolledToBottom){scrollToBottom(this.panelNode)
5806}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.show ------------------ wasScrolledToBottom: "+this.wasScrolledToBottom+", "+this.context.getName())
5807}}else{this.hide(state);
5808Firebug.Console.disabledPanelPage.show(this)
5809}},ihide:function(state){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.panel hide; "+this.context.getName(),state)
5810}this.showToolbarButtons("fbConsoleButtons",false);
5811this.showCommandLine(false);
5812if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.hide ------------------ wasScrolledToBottom: "+this.wasScrolledToBottom+", "+this.context.getName())
5813}},destroy:function(state){if(this.panelNode.offsetHeight){this.wasScrolledToBottom=isScrolledToBottom(this.panelNode)
5814}if(state){state.wasScrolledToBottom=this.wasScrolledToBottom
5815}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.destroy ------------------ wasScrolledToBottom: "+this.wasScrolledToBottom+", "+this.context.getName())
5816}},shouldBreakOnNext:function(){return Firebug.getPref(Firebug.servicePrefDomain,"breakOnErrors")
5817},getBreakOnNextTooltip:function(enabled){return(enabled?$STR("console.Disable Break On All Errors"):$STR("console.Break On All Errors"))
5818},enablePanel:function(module){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.ConsolePanel.enablePanel; "+this.context.getName())
5819}Firebug.ActivablePanel.enablePanel.apply(this,arguments);
5820this.showCommandLine(true);
5821if(this.wasScrolledToBottom){scrollToBottom(this.panelNode)
5822}},disablePanel:function(module){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.ConsolePanel.disablePanel; "+this.context.getName())
5823}Firebug.ActivablePanel.disablePanel.apply(this,arguments);
5824this.showCommandLine(false)
5825},getOptionsMenuItems:function(){return[optionMenu("ShowJavaScriptErrors","showJSErrors"),optionMenu("ShowJavaScriptWarnings","showJSWarnings"),optionMenu("ShowCSSErrors","showCSSErrors"),optionMenu("ShowXMLErrors","showXMLErrors"),optionMenu("ShowXMLHttpRequests","showXMLHttpRequests"),optionMenu("ShowChromeErrors","showChromeErrors"),optionMenu("ShowChromeMessages","showChromeMessages"),optionMenu("ShowExternalErrors","showExternalErrors"),optionMenu("ShowNetworkErrors","showNetworkErrors"),this.getShowStackTraceMenuItem(),this.getStrictOptionMenuItem(),"-",optionMenu("LargeCommandLine","largeCommandLine")]
5826},getShowStackTraceMenuItem:function(){var menuItem=serviceOptionMenu("ShowStackTrace","showStackTrace");
5827if(FirebugContext&&!Firebug.Debugger.isAlwaysEnabled()){menuItem.disabled=true
5828}return menuItem
5829},getStrictOptionMenuItem:function(){var strictDomain="javascript.options";
5830var strictName="strict";
5831var strictValue=prefs.getBoolPref(strictDomain+"."+strictName);
5832return{label:"JavascriptOptionsStrict",type:"checkbox",checked:strictValue,command:bindFixed(Firebug.setPref,Firebug,strictDomain,strictName,!strictValue)}
5833},getBreakOnMenuItems:function(){return[]
5834},search:function(text){if(!text){return
5835}if(this.matchSet){for(var i in this.matchSet){removeClass(this.matchSet[i],"matched")
5836}}this.matchSet=[];
5837function findRow(node){return getAncestorByClass(node,"logRow")
5838}var search=new TextSearch(this.panelNode,findRow);
5839var logRow=search.find(text);
5840if(!logRow){dispatch([Firebug.A11yModel],"onConsoleSearchMatchFound",[this,text,[]]);
5841return false
5842}for(;
5843logRow;
5844logRow=search.findNext()){setClass(logRow,"matched");
5845this.matchSet.push(logRow)
5846}dispatch([Firebug.A11yModel],"onConsoleSearchMatchFound",[this,text,this.matchSet]);
5847return true
5848},breakOnNext:function(breaking){Firebug.setPref(Firebug.servicePrefDomain,"breakOnErrors",breaking)
5849},createRow:function(rowName,className){var elt=this.document.createElement("div");
5850elt.className=rowName+(className?" "+rowName+"-"+className:"");
5851return elt
5852},getTopContainer:function(){if(this.groups&&this.groups.length){return this.groups[this.groups.length-1]
5853}else{return this.panelNode
5854}},filterLogRow:function(logRow,scrolledToBottom){if(this.searchText){setClass(logRow,"matching");
5855setClass(logRow,"matched");
5856setTimeout(bindFixed(function(){if(this.searchFilter(this.searchText,logRow)){this.matchSet.push(logRow)
5857}else{removeClass(logRow,"matched")
5858}removeClass(logRow,"matching");
5859if(scrolledToBottom){scrollToBottom(this.panelNode)
5860}},this),100)
5861}},searchFilter:function(text,logRow){var count=this.panelNode.childNodes.length;
5862var searchRange=this.document.createRange();
5863searchRange.setStart(this.panelNode,0);
5864searchRange.setEnd(this.panelNode,count);
5865var startPt=this.document.createRange();
5866startPt.setStartBefore(logRow);
5867var endPt=this.document.createRange();
5868endPt.setStartAfter(logRow);
5869return finder.Find(text,searchRange,startPt,endPt)!=null
5870},observe:function(subject,topic,data){if(topic!="nsPref:changed"){return
5871}var prefDomain="Firebug.extension.";
5872var prefName=data.substr(prefDomain.length);
5873if(prefName=="console.logLimit"){this.updateMaxLimit()
5874}},updateMaxLimit:function(){var value=1000;
5875maxQueueRequests=value?value:maxQueueRequests
5876},showCommandLine:function(shouldShow){return;
5877if(shouldShow){collapse(Firebug.chrome.$("fbCommandBox"),false);
5878Firebug.CommandLine.setMultiLine(Firebug.largeCommandLine,Firebug.chrome)
5879}else{Firebug.CommandLine.setMultiLine(false,Firebug.chrome,Firebug.largeCommandLine);
5880collapse(Firebug.chrome.$("fbCommandBox"),true)
5881}},onScroll:function(event){this.wasScrolledToBottom=FBL.isScrolledToBottom(this.panelNode);
5882if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onScroll ------------------ wasScrolledToBottom: "+this.wasScrolledToBottom+", wasScrolledToBottom: "+this.context.getName(),event)
5883}},onResize:function(event){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("console.onResize ------------------ wasScrolledToBottom: "+this.wasScrolledToBottom+", offsetHeight: "+this.panelNode.offsetHeight+", scrollTop: "+this.panelNode.scrollTop+", scrollHeight: "+this.panelNode.scrollHeight+", "+this.context.getName(),event)
5884}if(this.wasScrolledToBottom){scrollToBottom(this.panelNode)
5885}}});
5886function parseFormat(format){var parts=[];
5887if(format.length<=0){return parts
5888}var reg=/((^%|.%)(\d+)?(\.)([a-zA-Z]))|((^%|.%)([a-zA-Z]))/;
5889for(var m=reg.exec(format);
5890m;
5891m=reg.exec(format)){if(m[0].substr(0,2)=="%%"){parts.push(format.substr(0,m.index));
5892parts.push(m[0].substr(1))
5893}else{var type=m[8]?m[8]:m[5];
5894var precision=m[3]?parseInt(m[3]):(m[4]=="."?-1:0);
5895var rep=null;
5896switch(type){case"s":rep=FirebugReps.Text;
5897break;
5898case"f":case"i":case"d":rep=FirebugReps.Number;
5899break;
5900case"o":rep=null;
5901break
5902}parts.push(format.substr(0,m[0][0]=="%"?m.index:m.index+1));
5903parts.push({rep:rep,precision:precision,type:("%"+type)})
5904}format=format.substr(m.index+m[0].length)
5905}parts.push(format);
5906return parts
5907}var appendObject=Firebug.ConsolePanel.prototype.appendObject;
5908var appendFormatted=Firebug.ConsolePanel.prototype.appendFormatted;
5909var appendOpenGroup=Firebug.ConsolePanel.prototype.appendOpenGroup;
5910var appendCloseGroup=Firebug.ConsolePanel.prototype.appendCloseGroup;
5911Firebug.registerModule(Firebug.Console);
5912Firebug.registerPanel(Firebug.ConsolePanel)
5913}});
5914FBL.ns(function(){with(FBL){var frameCounters={};
5915var traceRecursion=0;
5916Firebug.Console.injector={install:function(context){var win=context.window;
5917var consoleHandler=new FirebugConsoleHandler(context,win);
5918var properties=["log","debug","info","warn","error","assert","dir","dirxml","group","groupCollapsed","groupEnd","time","timeEnd","count","trace","profile","profileEnd","clear","open","close"];
5919var Handler=function(name){var c=consoleHandler;
5920var f=consoleHandler[name];
5921return function(){return f.apply(c,arguments)
5922}
5923};
5924var installer=function(c){for(var i=0,l=properties.length;
5925i<l;
5926i++){var name=properties[i];
5927c[name]=new Handler(name);
5928c.firebuglite=Firebug.version
5929}};
5930var sandbox;
5931if(win.console){if(Env.Options.overrideConsole){sandbox=new win.Function("arguments.callee.install(window.console={})")
5932}else{return
5933}}else{try{sandbox=new win.Function("arguments.callee.install(window.console={})")
5934}catch(E){sandbox=new win.Function("arguments.callee.install(window.firebug={})")
5935}}sandbox.install=installer;
5936sandbox()
5937},isAttached:function(context,win){if(win.wrappedJSObject){var attached=(win.wrappedJSObject._getFirebugConsoleElement?true:false);
5938if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.isAttached:"+attached+" to win.wrappedJSObject "+safeGetWindowLocation(win.wrappedJSObject))
5939}return attached
5940}else{if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.isAttached? to win "+win.location+" fnc:"+win._getFirebugConsoleElement)
5941}return(win._getFirebugConsoleElement?true:false)
5942}},attachIfNeeded:function(context,win){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.attachIfNeeded has win "+(win?((win.wrappedJSObject?"YES":"NO")+" wrappedJSObject"):"null"))
5943}if(this.isAttached(context,win)){return true
5944}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("Console.attachIfNeeded found isAttached false ")
5945}this.attachConsoleInjector(context,win);
5946this.addConsoleListener(context,win);
5947Firebug.Console.clearReloadWarning(context);
5948var attached=this.isAttached(context,win);
5949if(attached){dispatch(Firebug.Console.fbListeners,"onConsoleInjected",[context,win])
5950}return attached
5951},attachConsoleInjector:function(context,win){var consoleInjection=this.getConsoleInjectionScript();
5952if(FBTrace.DBG_CONSOLE){FBTrace.sysout("attachConsoleInjector evaluating in "+win.location,consoleInjection)
5953}Firebug.CommandLine.evaluateInWebPage(consoleInjection,context,win);
5954if(FBTrace.DBG_CONSOLE){FBTrace.sysout("attachConsoleInjector evaluation completed for "+win.location)
5955}},getConsoleInjectionScript:function(){if(!this.consoleInjectionScript){var script="";
5956script+="window.__defineGetter__('console', function() {\n";
5957script+=" return (window._firebug ? window._firebug : window.loadFirebugConsole()); })\n\n";
5958script+="window.loadFirebugConsole = function() {\n";
5959script+="window._firebug =  new _FirebugConsole();";
5960if(FBTrace.DBG_CONSOLE){script+=" window.dump('loadFirebugConsole '+window.location+'\\n');\n"
5961}script+=" return window._firebug };\n";
5962var theFirebugConsoleScript=getResource("chrome://firebug/content/consoleInjected.js");
5963script+=theFirebugConsoleScript;
5964this.consoleInjectionScript=script
5965}return this.consoleInjectionScript
5966},forceConsoleCompilationInPage:function(context,win){if(!win){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("no win in forceConsoleCompilationInPage!")
5967}return
5968}var consoleForcer="window.loadFirebugConsole();";
5969if(context.stopped){Firebug.Console.injector.evaluateConsoleScript(context)
5970}else{Firebug.CommandLine.evaluateInWebPage(consoleForcer,context,win)
5971}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("forceConsoleCompilationInPage "+win.location,consoleForcer)
5972}},evaluateConsoleScript:function(context){var scriptSource=this.getConsoleInjectionScript();
5973Firebug.Debugger.evaluate(scriptSource,context)
5974},addConsoleListener:function(context,win){if(!context.activeConsoleHandlers){context.activeConsoleHandlers=[]
5975}else{for(var i=0;
5976i<context.activeConsoleHandlers.length;
5977i++){if(context.activeConsoleHandlers[i].window==win){context.activeConsoleHandlers[i].detach();
5978if(FBTrace.DBG_CONSOLE){FBTrace.sysout("consoleInjector addConsoleListener removed handler("+context.activeConsoleHandlers[i].handler_name+") from _firebugConsole in : "+win.location+"\n")
5979}context.activeConsoleHandlers.splice(i,1)
5980}}}var element=Firebug.Console.getFirebugConsoleElement(context,win);
5981if(element){element.setAttribute("FirebugVersion",Firebug.version)
5982}else{return false
5983}var handler=new FirebugConsoleHandler(context,win);
5984handler.attachTo(element);
5985context.activeConsoleHandlers.push(handler);
5986if(FBTrace.DBG_CONSOLE){FBTrace.sysout("consoleInjector addConsoleListener attached handler("+handler.handler_name+") to _firebugConsole in : "+win.location+"\n")
5987}return true
5988},detachConsole:function(context,win){if(win&&win.document){var element=win.document.getElementById("_firebugConsole");
5989if(element){element.parentNode.removeChild(element)
5990}}}};
5991var total_handlers=0;
5992var FirebugConsoleHandler=function FirebugConsoleHandler(context,win){this.window=win;
5993this.attachTo=function(element){this.element=element;
5994this.boundHandler=bind(this.handleEvent,this);
5995this.element.addEventListener("firebugAppendConsole",this.boundHandler,true)
5996};
5997this.detach=function(){this.element.removeEventListener("firebugAppendConsole",this.boundHandler,true)
5998};
5999this.handler_name=++total_handlers;
6000this.handleEvent=function(event){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("FirebugConsoleHandler("+this.handler_name+") "+event.target.getAttribute("methodName")+", event",event)
6001}if(!Firebug.CommandLine.CommandHandler.handle(event,this,win)){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("FirebugConsoleHandler",this)
6002}var methodName=event.target.getAttribute("methodName");
6003Firebug.Console.log($STRF("console.MethodNotSupported",[methodName]))
6004}};
6005this.firebuglite=Firebug.version;
6006this.init=function(){var consoleElement=win.document.getElementById("_firebugConsole");
6007consoleElement.setAttribute("FirebugVersion",Firebug.version)
6008};
6009this.log=function(){logFormatted(arguments,"log")
6010};
6011this.debug=function(){logFormatted(arguments,"debug",true)
6012};
6013this.info=function(){logFormatted(arguments,"info",true)
6014};
6015this.warn=function(){logFormatted(arguments,"warn",true)
6016};
6017this.error=function(){logFormatted(arguments,"error",true)
6018};
6019this.exception=function(){logAssert("error",arguments)
6020};
6021this.assert=function(x){if(!x){var rest=[];
6022for(var i=1;
6023i<arguments.length;
6024i++){rest.push(arguments[i])
6025}logAssert("assert",rest)
6026}};
6027this.dir=function(o){Firebug.Console.log(o,context,"dir",Firebug.DOMPanel.DirTable)
6028};
6029this.dirxml=function(o){if(instanceOf(o,"Window")){o=o.document.documentElement
6030}else{if(instanceOf(o,"Document")){o=o.documentElement
6031}}Firebug.Console.log(o,context,"dirxml",Firebug.HTMLPanel.SoloElement)
6032};
6033this.group=function(){var sourceLink=null;
6034Firebug.Console.openGroup(arguments,null,"group",null,false,sourceLink)
6035};
6036this.groupEnd=function(){Firebug.Console.closeGroup(context)
6037};
6038this.groupCollapsed=function(){var sourceLink=getStackLink();
6039var row=Firebug.Console.openGroup(arguments,null,"group",null,true,sourceLink);
6040removeClass(row,"opened")
6041};
6042this.profile=function(title){logFormatted(["console.profile() not supported."],"warn",true)
6043};
6044this.profileEnd=function(){logFormatted(["console.profile() not supported."],"warn",true)
6045};
6046this.count=function(key){var frameId="0";
6047if(frameId){if(!frameCounters){frameCounters={}
6048}if(key!=undefined){frameId+=key
6049}var frameCounter=frameCounters[frameId];
6050if(!frameCounter){var logRow=logFormatted(["0"],null,true,true);
6051frameCounter={logRow:logRow,count:1};
6052frameCounters[frameId]=frameCounter
6053}else{++frameCounter.count
6054}var label=key==undefined?frameCounter.count:key+" "+frameCounter.count;
6055frameCounter.logRow.firstChild.firstChild.nodeValue=label
6056}};
6057this.trace=function(){var getFuncName=function getFuncName(f){if(f.getName instanceof Function){return f.getName()
6058}if(f.name){return f.name
6059}var name=f.toString().match(/function\s*([_$\w\d]*)/)[1];
6060return name||"anonymous"
6061};
6062var wasVisited=function(fn){for(var i=0,l=frames.length;
6063i<l;
6064i++){if(frames[i].fn==fn){return true
6065}}return false
6066};
6067traceRecursion++;
6068if(traceRecursion>1){traceRecursion--;
6069return
6070}var frames=[];
6071for(var fn=arguments.callee.caller.caller;
6072fn;
6073fn=fn.caller){if(wasVisited(fn)){break
6074}var args=[];
6075for(var i=0,l=fn.arguments.length;
6076i<l;
6077++i){args.push({value:fn.arguments[i]})
6078}frames.push({fn:fn,name:getFuncName(fn),args:args})
6079}try{(0)()
6080}catch(e){var result=e;
6081var stack=result.stack||result.stacktrace||"";
6082stack=stack.replace(/\n\r|\r\n/g,"\n");
6083var items=stack.split(/[\n\r]/);
6084if(FBL.isSafari){var reChromeStackItem=/^\s+at\s+(.*)((?:http|https|ftp|file):\/\/.*)$/;
6085var reChromeStackItemName=/\s*\($/;
6086var reChromeStackItemValue=/^(.+)\:(\d+\:\d+)\)?$/;
6087var framePos=0;
6088for(var i=4,length=items.length;
6089i<length;
6090i++,framePos++){var frame=frames[framePos];
6091var item=items[i];
6092var match=item.match(reChromeStackItem);
6093if(match){var name=match[1];
6094if(name){name=name.replace(reChromeStackItemName,"");
6095frame.name=name
6096}var value=match[2].match(reChromeStackItemValue);
6097if(value){frame.href=value[1];
6098frame.lineNo=value[2]
6099}}}}else{if(FBL.isFirefox){var reFirefoxStackItem=/^(.*)@(.*)$/;
6100var reFirefoxStackItemValue=/^(.+)\:(\d+)$/;
6101var framePos=0;
6102for(var i=2,length=items.length;
6103i<length;
6104i++,framePos++){var frame=frames[framePos]||{};
6105var item=items[i];
6106var match=item.match(reFirefoxStackItem);
6107if(match){var name=match[1];
6108var value=match[2].match(reFirefoxStackItemValue);
6109if(value){frame.href=value[1];
6110frame.lineNo=value[2]
6111}}}}}}Firebug.Console.log({frames:frames},context,"stackTrace",FirebugReps.StackTrace);
6112traceRecursion--
6113};
6114this.trace_ok=function(){var getFuncName=function getFuncName(f){if(f.getName instanceof Function){return f.getName()
6115}if(f.name){return f.name
6116}var name=f.toString().match(/function\s*([_$\w\d]*)/)[1];
6117return name||"anonymous"
6118};
6119var wasVisited=function(fn){for(var i=0,l=frames.length;
6120i<l;
6121i++){if(frames[i].fn==fn){return true
6122}}return false
6123};
6124var frames=[];
6125for(var fn=arguments.callee.caller;
6126fn;
6127fn=fn.caller){if(wasVisited(fn)){break
6128}var args=[];
6129for(var i=0,l=fn.arguments.length;
6130i<l;
6131++i){args.push({value:fn.arguments[i]})
6132}frames.push({fn:fn,name:getFuncName(fn),args:args})
6133}Firebug.Console.log({frames:frames},context,"stackTrace",FirebugReps.StackTrace)
6134};
6135this.clear=function(){Firebug.Console.clear(context)
6136};
6137this.time=function(name,reset){if(!name){return
6138}var time=new Date().getTime();
6139if(!this.timeCounters){this.timeCounters={}
6140}var key="KEY"+name.toString();
6141if(!reset&&this.timeCounters[key]){return
6142}this.timeCounters[key]=time
6143};
6144this.timeEnd=function(name){var time=new Date().getTime();
6145if(!this.timeCounters){return
6146}var key="KEY"+name.toString();
6147var timeCounter=this.timeCounters[key];
6148if(timeCounter){var diff=time-timeCounter;
6149var label=name+": "+diff+"ms";
6150this.info(label);
6151delete this.timeCounters[key]
6152}return diff
6153};
6154this.evaluated=function(result,context){if(FBTrace.DBG_CONSOLE){FBTrace.sysout("consoleInjector.FirebugConsoleHandler evalutated default called",result)
6155}Firebug.Console.log(result,context)
6156};
6157this.evaluateError=function(result,context){Firebug.Console.log(result,context,"errorMessage")
6158};
6159function logFormatted(args,className,linkToSource,noThrottle){var sourceLink=linkToSource?getStackLink():null;
6160return Firebug.Console.logFormatted(args,context,className,noThrottle,sourceLink)
6161}function logAssert(category,args){Firebug.Errors.increaseCount(context);
6162if(!args||!args.length||args.length==0){var msg=[FBL.$STR("Assertion")]
6163}else{var msg=args[0]
6164}if(Firebug.errorStackTrace){var trace=Firebug.errorStackTrace;
6165delete Firebug.errorStackTrace;
6166if(FBTrace.DBG_CONSOLE){FBTrace.sysout("logAssert trace from errorStackTrace",trace)
6167}}else{if(msg.stack){var trace=parseToStackTrace(msg.stack);
6168if(FBTrace.DBG_CONSOLE){FBTrace.sysout("logAssert trace from msg.stack",trace)
6169}}else{var trace=getJSDUserStack();
6170if(FBTrace.DBG_CONSOLE){FBTrace.sysout("logAssert trace from getJSDUserStack",trace)
6171}}}var errorObject=new FBL.ErrorMessage(msg,(msg.fileName?msg.fileName:win.location),(msg.lineNumber?msg.lineNumber:0),"",category,context,trace);
6172if(trace&&trace.frames&&trace.frames[0]){errorObject.correctWithStackTrace(trace)
6173}errorObject.resetSource();
6174var objects=errorObject;
6175if(args.length>1){objects=[errorObject];
6176for(var i=1;
6177i<args.length;
6178i++){objects.push(args[i])
6179}}var row=Firebug.Console.log(objects,context,"errorMessage",null,true);
6180row.scrollIntoView()
6181}function getComponentsStackDump(){var frame=Components.stack;
6182var userURL=win.location.href.toString();
6183if(FBTrace.DBG_CONSOLE){FBTrace.sysout("consoleInjector.getComponentsStackDump initial stack for userURL "+userURL,frame)
6184}while(frame&&FBL.isSystemURL(frame.filename)){frame=frame.caller
6185}if(frame){frame=frame.caller
6186}if(frame){frame=frame.caller
6187}if(FBTrace.DBG_CONSOLE){FBTrace.sysout("consoleInjector.getComponentsStackDump final stack for userURL "+userURL,frame)
6188}return frame
6189}function getStackLink(){return
6190}function getJSDUserStack(){var trace=FBL.getCurrentStackTrace(context);
6191var frames=trace?trace.frames:null;
6192if(frames&&(frames.length>0)){var oldest=frames.length-1;
6193for(var i=0;
6194i<frames.length;
6195i++){if(frames[oldest-i].href.indexOf("chrome:")==0){break
6196}var fn=frames[oldest-i].fn+"";
6197if(fn&&(fn.indexOf("_firebugEvalEvent")!=-1)){break
6198}}FBTrace.sysout("consoleInjector getJSDUserStack: "+frames.length+" oldest: "+oldest+" i: "+i+" i - oldest + 2: "+(i-oldest+2),trace);
6199trace.frames=trace.frames.slice(2-i);
6200return trace
6201}else{return"Firebug failed to get stack trace with any frames"
6202}}};
6203FBL.registerConsole=function(){var win=Env.browser.window;
6204Firebug.Console.injector.install(win)
6205};
6206registerConsole()
6207}});
6208FBL.ns(function(){with(FBL){var commandPrefix=">>>";
6209var reOpenBracket=/[\[\(\{]/;
6210var reCloseBracket=/[\]\)\}]/;
6211var commandHistory=[];
6212var commandPointer=-1;
6213var isAutoCompleting=null;
6214var autoCompletePrefix=null;
6215var autoCompleteExpr=null;
6216var autoCompleteBuffer=null;
6217var autoCompletePosition=null;
6218var fbCommandLine=null;
6219var fbLargeCommandLine=null;
6220var fbLargeCommandButtons=null;
6221var _completion={window:["console"],document:["getElementById","getElementsByTagName"]};
6222var _stack=function(command){Firebug.context.persistedState.commandHistory.push(command);
6223Firebug.context.persistedState.commandPointer=Firebug.context.persistedState.commandHistory.length
6224};
6225Firebug.CommandLine=extend(Firebug.Module,{element:null,isMultiLine:false,isActive:false,initialize:function(doc){this.clear=bind(this.clear,this);
6226this.enter=bind(this.enter,this);
6227this.onError=bind(this.onError,this);
6228this.onKeyDown=bind(this.onKeyDown,this);
6229this.onMultiLineKeyDown=bind(this.onMultiLineKeyDown,this);
6230addEvent(Firebug.browser.window,"error",this.onError);
6231addEvent(Firebug.chrome.window,"error",this.onError)
6232},shutdown:function(doc){this.deactivate();
6233removeEvent(Firebug.browser.window,"error",this.onError);
6234removeEvent(Firebug.chrome.window,"error",this.onError)
6235},activate:function(multiLine,hideToggleIcon,onRun){defineCommandLineAPI();
6236Firebug.context.persistedState.commandHistory=Firebug.context.persistedState.commandHistory||[];
6237Firebug.context.persistedState.commandPointer=Firebug.context.persistedState.commandPointer||-1;
6238if(this.isActive){if(this.isMultiLine==multiLine){return
6239}this.deactivate()
6240}fbCommandLine=$("fbCommandLine");
6241fbLargeCommandLine=$("fbLargeCommandLine");
6242fbLargeCommandButtons=$("fbLargeCommandButtons");
6243if(multiLine){onRun=onRun||this.enter;
6244this.isMultiLine=true;
6245this.element=fbLargeCommandLine;
6246addEvent(this.element,"keydown",this.onMultiLineKeyDown);
6247addEvent($("fbSmallCommandLineIcon"),"click",Firebug.chrome.hideLargeCommandLine);
6248this.runButton=new Button({element:$("fbCommand_btRun"),owner:Firebug.CommandLine,onClick:onRun});
6249this.runButton.initialize();
6250this.clearButton=new Button({element:$("fbCommand_btClear"),owner:Firebug.CommandLine,onClick:this.clear});
6251this.clearButton.initialize()
6252}else{this.isMultiLine=false;
6253this.element=fbCommandLine;
6254if(!fbCommandLine){return
6255}addEvent(this.element,"keydown",this.onKeyDown)
6256}if(isOpera){fixOperaTabKey(this.element)
6257}if(this.lastValue){this.element.value=this.lastValue
6258}this.isActive=true
6259},deactivate:function(){if(!this.isActive){return
6260}this.isActive=false;
6261this.lastValue=this.element.value;
6262if(this.isMultiLine){removeEvent(this.element,"keydown",this.onMultiLineKeyDown);
6263removeEvent($("fbSmallCommandLineIcon"),"click",Firebug.chrome.hideLargeCommandLine);
6264this.runButton.destroy();
6265this.clearButton.destroy()
6266}else{removeEvent(this.element,"keydown",this.onKeyDown)
6267}this.element=null;
6268delete this.element;
6269fbCommandLine=null;
6270fbLargeCommandLine=null;
6271fbLargeCommandButtons=null
6272},focus:function(){this.element.focus()
6273},blur:function(){this.element.blur()
6274},clear:function(){this.element.value=""
6275},evaluate:function(expr){var api="Firebug.CommandLine.API";
6276var result=Firebug.context.evaluate(expr,"window",api,Firebug.Console.error);
6277return result
6278},enter:function(){var command=this.element.value;
6279if(!command){return
6280}_stack(command);
6281Firebug.Console.log(commandPrefix+" "+stripNewLines(command),Firebug.browser,"command",FirebugReps.Text);
6282var result=this.evaluate(command);
6283Firebug.Console.log(result)
6284},prevCommand:function(){if(Firebug.context.persistedState.commandPointer>0&&Firebug.context.persistedState.commandHistory.length>0){this.element.value=Firebug.context.persistedState.commandHistory[--Firebug.context.persistedState.commandPointer]
6285}},nextCommand:function(){var element=this.element;
6286var limit=Firebug.context.persistedState.commandHistory.length-1;
6287var i=Firebug.context.persistedState.commandPointer;
6288if(i<limit){element.value=Firebug.context.persistedState.commandHistory[++Firebug.context.persistedState.commandPointer]
6289}else{if(i==limit){++Firebug.context.persistedState.commandPointer;
6290element.value=""
6291}}},autocomplete:function(reverse){var element=this.element;
6292var command=element.value;
6293var offset=getExpressionOffset(command);
6294var valBegin=offset?command.substr(0,offset):"";
6295var val=command.substr(offset);
6296var buffer,obj,objName,commandBegin,result,prefix;
6297if(!isAutoCompleting){var reObj=/(.*[^_$\w\d\.])?((?:[_$\w][_$\w\d]*\.)*)([_$\w][_$\w\d]*)?$/;
6298var r=reObj.exec(val);
6299if(r[1]||r[2]||r[3]){commandBegin=r[1]||"";
6300objName=r[2]||"";
6301prefix=r[3]||""
6302}else{if(val==""){commandBegin=objName=prefix=""
6303}else{return
6304}}isAutoCompleting=true;
6305if(objName==""){obj=window
6306}else{objName=objName.replace(/\.$/,"");
6307var n=objName.split(".");
6308var target=window,o;
6309for(var i=0,ni;
6310ni=n[i];
6311i++){if(o=target[ni]){target=o
6312}else{target=null;
6313break
6314}}obj=target
6315}if(obj){autoCompletePrefix=prefix;
6316autoCompleteExpr=valBegin+commandBegin+(objName?objName+".":"");
6317autoCompletePosition=-1;
6318buffer=autoCompleteBuffer=isIE?_completion[objName||"window"]||[]:[];
6319for(var p in obj){buffer.push(p)
6320}}}else{buffer=autoCompleteBuffer
6321}if(buffer){prefix=autoCompletePrefix;
6322var diff=reverse?-1:1;
6323for(var i=autoCompletePosition+diff,l=buffer.length,bi;
6324i>=0&&i<l;
6325i+=diff){bi=buffer[i];
6326if(bi.indexOf(prefix)==0){autoCompletePosition=i;
6327result=bi;
6328break
6329}}}if(result){element.value=autoCompleteExpr+result
6330}},setMultiLine:function(multiLine){if(multiLine==this.isMultiLine){return
6331}this.activate(multiLine)
6332},onError:function(msg,href,lineNo){href=href||"";
6333var lastSlash=href.lastIndexOf("/");
6334var fileName=lastSlash==-1?href:href.substr(lastSlash+1);
6335var html=['<span class="errorMessage">',msg,"</span>",'<div class="objectBox-sourceLink">',fileName," (line ",lineNo,")</div>"]
6336},onKeyDown:function(e){e=e||event;
6337var code=e.keyCode;
6338if(code!=9&&code!=16&&code!=17&&code!=18){isAutoCompleting=false
6339}if(code==13){this.enter();
6340this.clear()
6341}else{if(code==27){setTimeout(this.clear,0)
6342}else{if(code==38){this.prevCommand()
6343}else{if(code==40){this.nextCommand()
6344}else{if(code==9){this.autocomplete(e.shiftKey)
6345}else{return
6346}}}}}cancelEvent(e,true);
6347return false
6348},onMultiLineKeyDown:function(e){e=e||event;
6349var code=e.keyCode;
6350if(code==13&&e.ctrlKey){this.enter()
6351}}});
6352Firebug.registerModule(Firebug.CommandLine);
6353function getExpressionOffset(command){var bracketCount=0;
6354var start=command.length-1;
6355for(;
6356start>=0;
6357--start){var c=command[start];
6358if((c==","||c==";"||c==" ")&&!bracketCount){break
6359}if(reOpenBracket.test(c)){if(bracketCount){--bracketCount
6360}else{break
6361}}else{if(reCloseBracket.test(c)){++bracketCount
6362}}}return start+1
6363}var CommandLineAPI={$:function(id){return Firebug.browser.document.getElementById(id)
6364},$$:function(selector,context){context=context||Firebug.browser.document;
6365return Firebug.Selector?Firebug.Selector(selector,context):Firebug.Console.error("Firebug.Selector module not loaded.")
6366},$0:null,$1:null,dir:function(o){Firebug.Console.log(o,Firebug.context,"dir",Firebug.DOMPanel.DirTable)
6367},dirxml:function(o){if(instanceOf(o,"Window")){o=o.document.documentElement
6368}else{if(instanceOf(o,"Document")){o=o.documentElement
6369}}Firebug.Console.log(o,Firebug.context,"dirxml",Firebug.HTMLPanel.SoloElement)
6370}};
6371var defineCommandLineAPI=function defineCommandLineAPI(){Firebug.CommandLine.API={};
6372for(var m in CommandLineAPI){if(!Env.browser.window[m]){Firebug.CommandLine.API[m]=CommandLineAPI[m]
6373}}var stack=FirebugChrome.htmlSelectionStack;
6374if(stack){Firebug.CommandLine.API.$0=stack[0];
6375Firebug.CommandLine.API.$1=stack[1]
6376}}
6377}});
6378FBL.ns(function(){with(FBL){var ElementCache=Firebug.Lite.Cache.Element;
6379var cacheID=Firebug.Lite.Cache.ID;
6380var ignoreHTMLProps={sizcache:1,sizset:1};
6381if(Firebug.ignoreFirebugElements){ignoreHTMLProps[cacheID]=1
6382}Firebug.HTML=extend(Firebug.Module,{appendTreeNode:function(nodeArray,html){var reTrim=/^\s+|\s+$/g;
6383if(!nodeArray.length){nodeArray=[nodeArray]
6384}for(var n=0,node;
6385node=nodeArray[n];
6386n++){if(node.nodeType==1){if(Firebug.ignoreFirebugElements&&node.firebugIgnore){continue
6387}var uid=ElementCache(node);
6388var child=node.childNodes;
6389var childLength=child.length;
6390var nodeName=node.nodeName.toLowerCase();
6391var nodeVisible=isVisible(node);
6392var hasSingleTextChild=childLength==1&&node.firstChild.nodeType==3&&nodeName!="script"&&nodeName!="style";
6393var nodeControl=!hasSingleTextChild&&childLength>0?('<div class="nodeControl"></div>'):"";
6394if(isIE&&nodeControl){html.push(nodeControl)
6395}if(typeof uid!="undefined"){html.push('<div class="objectBox-element" ','id="',uid,'">',!isIE&&nodeControl?nodeControl:"","<span ",cacheID,'="',uid,'"  class="nodeBox',nodeVisible?"":" nodeHidden",'">&lt;<span class="nodeTag">',nodeName,"</span>")
6396}else{html.push('<div class="objectBox-element"><span class="nodeBox',nodeVisible?"":" nodeHidden",'">&lt;<span class="nodeTag">',nodeName,"</span>")
6397}for(var i=0;
6398i<node.attributes.length;
6399++i){var attr=node.attributes[i];
6400if(!attr.specified||isIE&&(browserVersion-0<9)&&typeof attr.nodeValue!="string"||Firebug.ignoreFirebugElements&&ignoreHTMLProps.hasOwnProperty(attr.nodeName)){continue
6401}var name=attr.nodeName.toLowerCase();
6402var value=name=="style"?formatStyles(node.style.cssText):attr.nodeValue;
6403html.push('&nbsp;<span class="nodeName">',name,'</span>=&quot;<span class="nodeValue">',escapeHTML(value),"</span>&quot;")
6404}if(hasSingleTextChild){var value=child[0].nodeValue.replace(reTrim,"");
6405if(value){html.push('&gt;<span class="nodeText">',escapeHTML(value),'</span>&lt;/<span class="nodeTag">',nodeName,"</span>&gt;</span></div>")
6406}else{html.push("/&gt;</span></div>")
6407}}else{if(childLength>0){html.push("&gt;</span></div>")
6408}else{html.push("/&gt;</span></div>")
6409}}}else{if(node.nodeType==3){if(node.parentNode&&(node.parentNode.nodeName.toLowerCase()=="script"||node.parentNode.nodeName.toLowerCase()=="style")){var value=node.nodeValue.replace(reTrim,"");
6410if(isIE){var src=value+"\n"
6411}else{var src="\n"+value+"\n"
6412}var match=src.match(/\n/g);
6413var num=match?match.length:0;
6414var s=[],sl=0;
6415for(var c=1;
6416c<num;
6417c++){s[sl++]='<div line="'+c+'">'+c+"</div>"
6418}html.push('<div class="lineNo">',s.join(""),'</div><pre class="sourceCode">',escapeHTML(src),"</pre>")
6419}else{var value=node.nodeValue.replace(reTrim,"");
6420if(value){html.push('<div class="nodeText">',escapeHTML(value),"</div>")
6421}}}}}},appendTreeChildren:function(treeNode){var doc=Firebug.chrome.document;
6422var uid=treeNode.id;
6423var parentNode=ElementCache.get(uid);
6424if(parentNode.childNodes.length==0){return
6425}var treeNext=treeNode.nextSibling;
6426var treeParent=treeNode.parentNode;
6427var control=isIE?treeNode.previousSibling:treeNode.firstChild;
6428control.className="nodeControl nodeMaximized";
6429var html=[];
6430var children=doc.createElement("div");
6431children.className="nodeChildren";
6432this.appendTreeNode(parentNode.childNodes,html);
6433children.innerHTML=html.join("");
6434treeParent.insertBefore(children,treeNext);
6435var closeElement=doc.createElement("div");
6436closeElement.className="objectBox-element";
6437closeElement.innerHTML='&lt;/<span class="nodeTag">'+parentNode.nodeName.toLowerCase()+"&gt;</span>";
6438treeParent.insertBefore(closeElement,treeNext)
6439},removeTreeChildren:function(treeNode){var children=treeNode.nextSibling;
6440var closeTag=children.nextSibling;
6441var control=isIE?treeNode.previousSibling:treeNode.firstChild;
6442control.className="nodeControl";
6443children.parentNode.removeChild(children);
6444closeTag.parentNode.removeChild(closeTag)
6445},isTreeNodeVisible:function(id){return $(id)
6446},select:function(el){var id=el&&ElementCache(el);
6447if(id){this.selectTreeNode(id)
6448}},selectTreeNode:function(id){id=""+id;
6449var node,stack=[];
6450while(id&&!this.isTreeNodeVisible(id)){stack.push(id);
6451var node=ElementCache.get(id).parentNode;
6452if(node){id=ElementCache(node)
6453}else{break
6454}}stack.push(id);
6455while(stack.length>0){id=stack.pop();
6456node=$(id);
6457if(stack.length>0&&ElementCache.get(id).childNodes.length>0){this.appendTreeChildren(node)
6458}}selectElement(node);
6459if(fbPanel1){fbPanel1.scrollTop=Math.round(node.offsetTop-fbPanel1.clientHeight/2)
6460}}});
6461Firebug.registerModule(Firebug.HTML);
6462function HTMLPanel(){}HTMLPanel.prototype=extend(Firebug.Panel,{name:"HTML",title:"HTML",options:{hasSidePanel:true,isPreRendered:!Firebug.flexChromeEnabled,innerHTMLSync:true},create:function(){Firebug.Panel.create.apply(this,arguments);
6463this.panelNode.style.padding="4px 3px 1px 15px";
6464this.panelNode.style.minWidth="500px";
6465if(Env.Options.enablePersistent||Firebug.chrome.type!="popup"){this.createUI()
6466}if(this.sidePanelBar&&!this.sidePanelBar.selectedPanel){this.sidePanelBar.selectPanel("css")
6467}},destroy:function(){selectedElement=null;
6468fbPanel1=null;
6469selectedSidePanelTS=null;
6470selectedSidePanelTimer=null;
6471Firebug.Panel.destroy.apply(this,arguments)
6472},createUI:function(){var rootNode=Firebug.browser.document.documentElement;
6473var html=[];
6474Firebug.HTML.appendTreeNode(rootNode,html);
6475this.panelNode.innerHTML=html.join("")
6476},initialize:function(){Firebug.Panel.initialize.apply(this,arguments);
6477addEvent(this.panelNode,"click",Firebug.HTML.onTreeClick);
6478fbPanel1=$("fbPanel1");
6479if(!selectedElement){Firebug.context.persistedState.selectedHTMLElementId=Firebug.context.persistedState.selectedHTMLElementId&&ElementCache.get(Firebug.context.persistedState.selectedHTMLElementId)?Firebug.context.persistedState.selectedHTMLElementId:ElementCache(Firebug.browser.document.body);
6480Firebug.HTML.selectTreeNode(Firebug.context.persistedState.selectedHTMLElementId)
6481}addEvent(fbPanel1,"mousemove",Firebug.HTML.onListMouseMove);
6482addEvent($("fbContent"),"mouseout",Firebug.HTML.onListMouseMove);
6483addEvent(Firebug.chrome.node,"mouseout",Firebug.HTML.onListMouseMove)
6484},shutdown:function(){removeEvent(fbPanel1,"mousemove",Firebug.HTML.onListMouseMove);
6485removeEvent($("fbContent"),"mouseout",Firebug.HTML.onListMouseMove);
6486removeEvent(Firebug.chrome.node,"mouseout",Firebug.HTML.onListMouseMove);
6487removeEvent(this.panelNode,"click",Firebug.HTML.onTreeClick);
6488fbPanel1=null;
6489Firebug.Panel.shutdown.apply(this,arguments)
6490},reattach:function(){if(Firebug.context.persistedState.selectedHTMLElementId){Firebug.HTML.selectTreeNode(Firebug.context.persistedState.selectedHTMLElementId)
6491}},updateSelection:function(object){var id=ElementCache(object);
6492if(id){Firebug.HTML.selectTreeNode(id)
6493}}});
6494Firebug.registerPanel(HTMLPanel);
6495var formatStyles=function(styles){return isIE?styles.replace(/([^\s]+)\s*:/g,function(m,g){return g.toLowerCase()+":"
6496}):styles
6497};
6498var selectedElement=null;
6499var fbPanel1=null;
6500var selectedSidePanelTS,selectedSidePanelTimer;
6501var selectElement=function selectElement(e){if(e!=selectedElement){if(selectedElement){selectedElement.className="objectBox-element"
6502}e.className=e.className+" selectedElement";
6503if(FBL.isFirefox){e.style.MozBorderRadius="2px"
6504}else{if(FBL.isSafari){e.style.WebkitBorderRadius="2px"
6505}}e.style.borderRadius="2px";
6506selectedElement=e;
6507Firebug.context.persistedState.selectedHTMLElementId=e.id;
6508var target=ElementCache.get(e.id);
6509var sidePanelBar=Firebug.chrome.getPanel("HTML").sidePanelBar;
6510var selectedSidePanel=sidePanelBar?sidePanelBar.selectedPanel:null;
6511var stack=FirebugChrome.htmlSelectionStack;
6512stack.unshift(target);
6513if(stack.length>2){stack.pop()
6514}var lazySelect=function(){selectedSidePanelTS=new Date().getTime();
6515if(selectedSidePanel){selectedSidePanel.select(target,true)
6516}};
6517if(selectedSidePanelTimer){clearTimeout(selectedSidePanelTimer);
6518selectedSidePanelTimer=null
6519}if(new Date().getTime()-selectedSidePanelTS>100){setTimeout(lazySelect,0)
6520}else{selectedSidePanelTimer=setTimeout(lazySelect,150)
6521}}};
6522Firebug.HTML.onTreeClick=function(e){e=e||event;
6523var targ;
6524if(e.target){targ=e.target
6525}else{if(e.srcElement){targ=e.srcElement
6526}}if(targ.nodeType==3){targ=targ.parentNode
6527}if(targ.className.indexOf("nodeControl")!=-1||targ.className=="nodeTag"){if(targ.className=="nodeTag"){var control=isIE?(targ.parentNode.previousSibling||targ):(targ.parentNode.previousSibling||targ);
6528selectElement(targ.parentNode.parentNode);
6529if(control.className.indexOf("nodeControl")==-1){return
6530}}else{control=targ
6531}FBL.cancelEvent(e);
6532var treeNode=isIE?control.nextSibling:control.parentNode;
6533if(control.className.indexOf(" nodeMaximized")!=-1){FBL.Firebug.HTML.removeTreeChildren(treeNode)
6534}else{FBL.Firebug.HTML.appendTreeChildren(treeNode)
6535}}else{if(targ.className=="nodeValue"||targ.className=="nodeName"){}}};
6536function onListMouseOut(e){e=e||event||window;
6537var targ;
6538if(e.target){targ=e.target
6539}else{if(e.srcElement){targ=e.srcElement
6540}}if(targ.nodeType==3){targ=targ.parentNode
6541}if(hasClass(targ,"fbPanel")){FBL.Firebug.Inspector.hideBoxModel();
6542hoverElement=null
6543}}var hoverElement=null;
6544var hoverElementTS=0;
6545Firebug.HTML.onListMouseMove=function onListMouseMove(e){try{e=e||event||window;
6546var targ;
6547if(e.target){targ=e.target
6548}else{if(e.srcElement){targ=e.srcElement
6549}}if(targ.nodeType==3){targ=targ.parentNode
6550}var found=false;
6551while(targ&&!found){if(!/\snodeBox\s|\sobjectBox-selector\s/.test(" "+targ.className+" ")){targ=targ.parentNode
6552}else{found=true
6553}}if(!targ){FBL.Firebug.Inspector.hideBoxModel();
6554hoverElement=null;
6555return
6556}if(typeof targ.attributes[cacheID]=="undefined"){return
6557}var uid=targ.attributes[cacheID];
6558if(!uid){return
6559}var el=ElementCache.get(uid.value);
6560var nodeName=el.nodeName.toLowerCase();
6561if(FBL.isIE&&" meta title script link ".indexOf(" "+nodeName+" ")!=-1){return
6562}if(!/\snodeBox\s|\sobjectBox-selector\s/.test(" "+targ.className+" ")){return
6563}if(el.id=="FirebugUI"||" html head body br script link iframe ".indexOf(" "+nodeName+" ")!=-1){FBL.Firebug.Inspector.hideBoxModel();
6564hoverElement=null;
6565return
6566}if((new Date().getTime()-hoverElementTS>40)&&hoverElement!=el){hoverElementTS=new Date().getTime();
6567hoverElement=el;
6568FBL.Firebug.Inspector.drawBoxModel(el)
6569}}catch(E){}};
6570Firebug.Reps={appendText:function(object,html){html.push(escapeHTML(objectToString(object)))
6571},appendNull:function(object,html){html.push('<span class="objectBox-null">',escapeHTML(objectToString(object)),"</span>")
6572},appendString:function(object,html){html.push('<span class="objectBox-string">&quot;',escapeHTML(objectToString(object)),"&quot;</span>")
6573},appendInteger:function(object,html){html.push('<span class="objectBox-number">',escapeHTML(objectToString(object)),"</span>")
6574},appendFloat:function(object,html){html.push('<span class="objectBox-number">',escapeHTML(objectToString(object)),"</span>")
6575},appendFunction:function(object,html){var reName=/function ?(.*?)\(/;
6576var m=reName.exec(objectToString(object));
6577var name=m&&m[1]?m[1]:"function";
6578html.push('<span class="objectBox-function">',escapeHTML(name),"()</span>")
6579},appendObject:function(object,html){try{if(object==undefined){this.appendNull("undefined",html)
6580}else{if(object==null){this.appendNull("null",html)
6581}else{if(typeof object=="string"){this.appendString(object,html)
6582}else{if(typeof object=="number"){this.appendInteger(object,html)
6583}else{if(typeof object=="boolean"){this.appendInteger(object,html)
6584}else{if(typeof object=="function"){this.appendFunction(object,html)
6585}else{if(object.nodeType==1){this.appendSelector(object,html)
6586}else{if(typeof object=="object"){if(typeof object.length!="undefined"){this.appendArray(object,html)
6587}else{this.appendObjectFormatted(object,html)
6588}}else{this.appendText(object,html)
6589}}}}}}}}}catch(exc){}},appendObjectFormatted:function(object,html){var text=objectToString(object);
6590var reObject=/\[object (.*?)\]/;
6591var m=reObject.exec(text);
6592html.push('<span class="objectBox-object">',m?m[1]:text,"</span>")
6593},appendSelector:function(object,html){var uid=ElementCache(object);
6594var uidString=uid?[cacheID,'="',uid,'"'].join(""):"";
6595html.push('<span class="objectBox-selector"',uidString,">");
6596html.push('<span class="selectorTag">',escapeHTML(object.nodeName.toLowerCase()),"</span>");
6597if(object.id){html.push('<span class="selectorId">#',escapeHTML(object.id),"</span>")
6598}if(object.className){html.push('<span class="selectorClass">.',escapeHTML(object.className),"</span>")
6599}html.push("</span>")
6600},appendNode:function(node,html){if(node.nodeType==1){var uid=ElementCache(node);
6601var uidString=uid?[cacheID,'="',uid,'"'].join(""):"";
6602html.push('<div class="objectBox-element"',uidString,'">',"<span ",cacheID,'="',uid,'" class="nodeBox">','&lt;<span class="nodeTag">',node.nodeName.toLowerCase(),"</span>");
6603for(var i=0;
6604i<node.attributes.length;
6605++i){var attr=node.attributes[i];
6606if(!attr.specified||attr.nodeName==cacheID){continue
6607}var name=attr.nodeName.toLowerCase();
6608var value=name=="style"?node.style.cssText:attr.nodeValue;
6609html.push('&nbsp;<span class="nodeName">',name,'</span>=&quot;<span class="nodeValue">',escapeHTML(value),"</span>&quot;")
6610}if(node.firstChild){html.push('&gt;</div><div class="nodeChildren">');
6611for(var child=node.firstChild;
6612child;
6613child=child.nextSibling){this.appendNode(child,html)
6614}html.push('</div><div class="objectBox-element">&lt;/<span class="nodeTag">',node.nodeName.toLowerCase(),"&gt;</span></span></div>")
6615}else{html.push("/&gt;</span></div>")
6616}}else{if(node.nodeType==3){var value=trim(node.nodeValue);
6617if(value){html.push('<div class="nodeText">',escapeHTML(value),"</div>")
6618}}}},appendArray:function(object,html){html.push('<span class="objectBox-array"><b>[</b> ');
6619for(var i=0,l=object.length,obj;
6620i<l;
6621++i){this.appendObject(object[i],html);
6622if(i<l-1){html.push(", ")
6623}}html.push(" <b>]</b></span>")
6624}}
6625}});
6626FBL.ns(function(){with(FBL){var maxWidth=100,maxHeight=80;
6627var infoTipMargin=10;
6628var infoTipWindowPadding=25;
6629Firebug.InfoTip=extend(Firebug.Module,{dispatchName:"infoTip",tags:domplate({infoTipTag:DIV({"class":"infoTip"}),colorTag:DIV({style:"background: $rgbValue; width: 100px; height: 40px"},"&nbsp;"),imgTag:DIV({"class":"infoTipImageBox infoTipLoading"},IMG({"class":"infoTipImage",src:"$urlValue",repeat:"$repeat",onload:"$onLoadImage"}),IMG({"class":"infoTipBgImage",collapsed:true,src:"blank.gif"}),DIV({"class":"infoTipCaption"})),onLoadImage:function(event){var img=event.currentTarget||event.srcElement;
6630var innerBox=img.parentNode;
6631var caption=getElementByClass(innerBox,"infoTipCaption");
6632var bgImg=getElementByClass(innerBox,"infoTipBgImage");
6633if(!bgImg){return
6634}if(isIE){removeClass(innerBox,"infoTipLoading")
6635}var updateInfoTip=function(){var w=img.naturalWidth||img.width||10,h=img.naturalHeight||img.height||10;
6636var repeat=img.getAttribute("repeat");
6637if(repeat=="repeat-x"||(w==1&&h>1)){collapse(img,true);
6638collapse(bgImg,false);
6639bgImg.style.background="url("+img.src+") repeat-x";
6640bgImg.style.width=maxWidth+"px";
6641if(h>maxHeight){bgImg.style.height=maxHeight+"px"
6642}else{bgImg.style.height=h+"px"
6643}}else{if(repeat=="repeat-y"||(h==1&&w>1)){collapse(img,true);
6644collapse(bgImg,false);
6645bgImg.style.background="url("+img.src+") repeat-y";
6646bgImg.style.height=maxHeight+"px";
6647if(w>maxWidth){bgImg.style.width=maxWidth+"px"
6648}else{bgImg.style.width=w+"px"
6649}}else{if(repeat=="repeat"||(w==1&&h==1)){collapse(img,true);
6650collapse(bgImg,false);
6651bgImg.style.background="url("+img.src+") repeat";
6652bgImg.style.width=maxWidth+"px";
6653bgImg.style.height=maxHeight+"px"
6654}else{if(w>maxWidth||h>maxHeight){if(w>h){img.style.width=maxWidth+"px";
6655img.style.height=Math.round((h/w)*maxWidth)+"px"
6656}else{img.style.width=Math.round((w/h)*maxHeight)+"px";
6657img.style.height=maxHeight+"px"
6658}}}}}caption.innerHTML=$STRF(w+" x "+h)
6659};
6660if(isIE){setTimeout(updateInfoTip,0)
6661}else{updateInfoTip();
6662removeClass(innerBox,"infoTipLoading")
6663}}}),initializeBrowser:function(browser){browser.onInfoTipMouseOut=bind(this.onMouseOut,this,browser);
6664browser.onInfoTipMouseMove=bind(this.onMouseMove,this,browser);
6665var doc=browser.document;
6666if(!doc){return
6667}addEvent(doc,"mouseover",browser.onInfoTipMouseMove);
6668addEvent(doc,"mouseout",browser.onInfoTipMouseOut);
6669addEvent(doc,"mousemove",browser.onInfoTipMouseMove);
6670return browser.infoTip=this.tags.infoTipTag.append({},getBody(doc))
6671},uninitializeBrowser:function(browser){if(browser.infoTip){var doc=browser.document;
6672removeEvent(doc,"mouseover",browser.onInfoTipMouseMove);
6673removeEvent(doc,"mouseout",browser.onInfoTipMouseOut);
6674removeEvent(doc,"mousemove",browser.onInfoTipMouseMove);
6675browser.infoTip.parentNode.removeChild(browser.infoTip);
6676delete browser.infoTip;
6677delete browser.onInfoTipMouseMove
6678}},showInfoTip:function(infoTip,panel,target,x,y,rangeParent,rangeOffset){if(!Firebug.showInfoTips){return
6679}var scrollParent=getOverflowParent(target);
6680var scrollX=x+(scrollParent?scrollParent.scrollLeft:0);
6681if(panel.showInfoTip(infoTip,target,scrollX,y,rangeParent,rangeOffset)){var htmlElt=infoTip.ownerDocument.documentElement;
6682var panelWidth=htmlElt.clientWidth;
6683var panelHeight=htmlElt.clientHeight;
6684if(x+infoTip.offsetWidth+infoTipMargin>panelWidth){infoTip.style.left=Math.max(0,panelWidth-(infoTip.offsetWidth+infoTipMargin))+"px";
6685infoTip.style.right="auto"
6686}else{infoTip.style.left=(x+infoTipMargin)+"px";
6687infoTip.style.right="auto"
6688}if(y+infoTip.offsetHeight+infoTipMargin>panelHeight){infoTip.style.top=Math.max(0,panelHeight-(infoTip.offsetHeight+infoTipMargin))+"px";
6689infoTip.style.bottom="auto"
6690}else{infoTip.style.top=(y+infoTipMargin)+"px";
6691infoTip.style.bottom="auto"
6692}if(FBTrace.DBG_INFOTIP){FBTrace.sysout("infotip.showInfoTip; top: "+infoTip.style.top+", left: "+infoTip.style.left+", bottom: "+infoTip.style.bottom+", right:"+infoTip.style.right+", offsetHeight: "+infoTip.offsetHeight+", offsetWidth: "+infoTip.offsetWidth+", x: "+x+", panelWidth: "+panelWidth+", y: "+y+", panelHeight: "+panelHeight)
6693}infoTip.setAttribute("active","true")
6694}else{this.hideInfoTip(infoTip)
6695}},hideInfoTip:function(infoTip){if(infoTip){infoTip.removeAttribute("active")
6696}},onMouseOut:function(event,browser){if(!event.relatedTarget){this.hideInfoTip(browser.infoTip)
6697}},onMouseMove:function(event,browser){if(getAncestorByClass(event.target,"infoTip")){return
6698}if(browser.currentPanel){var x=event.clientX,y=event.clientY,target=event.target||event.srcElement;
6699this.showInfoTip(browser.infoTip,browser.currentPanel,target,x,y,event.rangeParent,event.rangeOffset)
6700}else{this.hideInfoTip(browser.infoTip)
6701}},populateColorInfoTip:function(infoTip,color){this.tags.colorTag.replace({rgbValue:color},infoTip);
6702return true
6703},populateImageInfoTip:function(infoTip,url,repeat){if(!repeat){repeat="no-repeat"
6704}this.tags.imgTag.replace({urlValue:url,repeat:repeat},infoTip);
6705return true
6706},disable:function(){},showPanel:function(browser,panel){if(panel){var infoTip=panel.panelBrowser.infoTip;
6707if(!infoTip){infoTip=this.initializeBrowser(panel.panelBrowser)
6708}this.hideInfoTip(infoTip)
6709}},showSidePanel:function(browser,panel){this.showPanel(browser,panel)
6710}});
6711Firebug.registerModule(Firebug.InfoTip)
6712}});
6713FBL.ns(function(){with(FBL){var CssParser=null;
6714CssParser=(function(){function rule(start,body_start,end){return{start:start||0,body_start:body_start||0,end:end||0,line:-1,selector:null,parent:null,children:[],addChild:function(start,body_start,end){var r=rule(start,body_start,end);
6715r.parent=this;
6716this.children.push(r);
6717return r
6718},lastChild:function(){return this.children[this.children.length-1]
6719}}
6720}function removeAll(str,re){var m;
6721while(m=str.match(re)){str=str.substring(m[0].length)
6722}return str
6723}function trim(str){return str.replace(/^\s+|\s+$/g,"")
6724}function normalizeSelector(selector){selector=selector.replace(/[\n\r]/g," ");
6725selector=trim(selector);
6726selector=selector.replace(/\s*,\s*/g,",");
6727return selector
6728}function preprocessRules(text,rule_node){for(var i=0,il=rule_node.children.length;
6729i<il;
6730i++){var r=rule_node.children[i],rule_start=text.substring(r.start,r.body_start),cur_len=rule_start.length;
6731rule_start=rule_start.replace(/[\n\r]/g," ");
6732rule_start=removeAll(rule_start,/^\s*\/\*.*?\*\/[\s\t]*/);
6733rule_start=rule_start.replace(/^[\s\t]+/,"");
6734r.start+=(cur_len-rule_start.length);
6735r.selector=normalizeSelector(rule_start)
6736}return rule_node
6737}function saveLineIndexes(text){var result=[0],i=0,il=text.length,ch,ch2;
6738while(i<il){ch=text.charAt(i);
6739if(ch=="\n"||ch=="\r"){if(ch=="\r"&&i<il-1&&text.charAt(i+1)=="\n"){i++
6740}result.push(i+1)
6741}i++
6742}return result
6743}function saveLineNumbers(text,rule_node,line_indexes,startLine){preprocessRules(text,rule_node);
6744startLine=startLine||0;
6745if(!line_indexes){var line_indexes=saveLineIndexes(text)
6746}for(var i=0,il=rule_node.children.length;
6747i<il;
6748i++){var r=rule_node.children[i];
6749r.line=line_indexes.length+startLine;
6750for(var j=0,jl=line_indexes.length-1;
6751j<jl;
6752j++){var line_ix=line_indexes[j];
6753if(r.start>=line_indexes[j]&&r.start<line_indexes[j+1]){r.line=j+1+startLine;
6754break
6755}}saveLineNumbers(text,r,line_indexes)
6756}return rule_node
6757}return{read:function(text,startLine){var rule_start=[],rule_body_start=[],rules=[],in_comment=0,root=rule(),cur_parent=root,last_rule=null,stack=[],ch,ch2;
6758stack.last=function(){return this[this.length-1]
6759};
6760function hasStr(pos,substr){return text.substr(pos,substr.length)==substr
6761}for(var i=0,il=text.length;
6762i<il;
6763i++){ch=text.charAt(i);
6764ch2=i<il-1?text.charAt(i+1):"";
6765if(!rule_start.length){rule_start.push(i)
6766}switch(ch){case"@":if(!in_comment){if(hasStr(i,"@import")){var m=text.substr(i).match(/^@import\s*url\((['"])?.+?\1?\)\;?/);
6767if(m){cur_parent.addChild(i,i+7,i+m[0].length);
6768i+=m[0].length;
6769rule_start.pop()
6770}break
6771}}case"/":if(!in_comment&&ch2=="*"){in_comment++
6772}break;
6773case"*":if(ch2=="/"){in_comment--
6774}break;
6775case"{":if(!in_comment){rule_body_start.push(i);
6776cur_parent=cur_parent.addChild(rule_start.pop());
6777stack.push(cur_parent)
6778}break;
6779case"}":if(!in_comment){var last_rule=stack.pop();
6780rule_start.pop();
6781last_rule.body_start=rule_body_start.pop();
6782last_rule.end=i;
6783cur_parent=last_rule.parent||root
6784}break
6785}}return saveLineNumbers(text,root,null,startLine)
6786},normalizeSelector:normalizeSelector,findBySelector:function(rule_node,selector,source){var selector=normalizeSelector(selector),result=[];
6787if(rule_node){for(var i=0,il=rule_node.children.length;
6788i<il;
6789i++){var r=rule_node.children[i];
6790if(r.selector==selector){result.push(r)
6791}}}if(result.length){return result
6792}else{return null
6793}}}
6794})();
6795FBL.CssParser=CssParser
6796}});
6797FBL.ns(function(){with(FBL){var CssAnalyzer={};
6798var CSSRuleMap={};
6799var ElementCSSRulesMap={};
6800var internalStyleSheetIndex=-1;
6801var reSelectorTag=/(^|\s)(?:\w+)/g;
6802var reSelectorClass=/\.[\w\d_-]+/g;
6803var reSelectorId=/#[\w\d_-]+/g;
6804var globalCSSRuleIndex;
6805var processAllStyleSheetsTimeout=null;
6806var externalStyleSheetURLs=[];
6807var ElementCache=Firebug.Lite.Cache.Element;
6808var StyleSheetCache=Firebug.Lite.Cache.StyleSheet;
6809CssAnalyzer.externalStyleSheetWarning=domplate(Firebug.Rep,{tag:DIV({"class":"warning focusRow",style:"font-weight:normal;",role:"listitem"},SPAN("$object|STR"),A({href:"$href",target:"_blank"},"$link|STR"))});
6810CssAnalyzer.processAllStyleSheets=function(doc,styleSheetIterator){try{processAllStyleSheets(doc,styleSheetIterator)
6811}catch(e){FBTrace.sysout("CssAnalyzer.processAllStyleSheets fails: ",e)
6812}};
6813CssAnalyzer.getElementCSSRules=function(element){try{return getElementCSSRules(element)
6814}catch(e){FBTrace.sysout("CssAnalyzer.getElementCSSRules fails: ",e)
6815}};
6816CssAnalyzer.getRuleData=function(ruleId){return CSSRuleMap[ruleId]
6817};
6818CssAnalyzer.getRuleLine=function(){};
6819CssAnalyzer.hasExternalStyleSheet=function(){return externalStyleSheetURLs.length>0
6820};
6821CssAnalyzer.parseStyleSheet=function(href){var sourceData=extractSourceData(href);
6822var parsedObj=CssParser.read(sourceData.source,sourceData.startLine);
6823var parsedRules=parsedObj.children;
6824for(var i=0;
6825i<parsedRules.length;
6826){if(parsedRules[i].selector.indexOf("@")!=-1){parsedRules.splice(i,1)
6827}else{i++
6828}}return parsedRules
6829};
6830var processAllStyleSheets=function(doc,styleSheetIterator){styleSheetIterator=styleSheetIterator||processStyleSheet;
6831globalCSSRuleIndex=-1;
6832var styleSheets=doc.styleSheets;
6833var importedStyleSheets=[];
6834if(FBTrace.DBG_CSS){var start=new Date().getTime()
6835}for(var i=0,length=styleSheets.length;
6836i<length;
6837i++){try{var styleSheet=styleSheets[i];
6838if("firebugIgnore" in styleSheet){continue
6839}var rules=isIE?styleSheet.rules:styleSheet.cssRules;
6840rules.length
6841}catch(e){externalStyleSheetURLs.push(styleSheet.href);
6842styleSheet.restricted=true;
6843var ssid=StyleSheetCache(styleSheet)
6844}styleSheetIterator(doc,styleSheet);
6845var importedStyleSheet,importedRules;
6846if(isIE){var imports=styleSheet.imports;
6847for(var j=0,importsLength=imports.length;
6848j<importsLength;
6849j++){try{importedStyleSheet=imports[j];
6850importedRules=importedStyleSheet.rules;
6851importedRules.length
6852}catch(e){externalStyleSheetURLs.push(styleSheet.href);
6853importedStyleSheet.restricted=true;
6854var ssid=StyleSheetCache(importedStyleSheet)
6855}styleSheetIterator(doc,importedStyleSheet)
6856}}else{if(rules){for(var j=0,rulesLength=rules.length;
6857j<rulesLength;
6858j++){try{var rule=rules[j];
6859importedStyleSheet=rule.styleSheet;
6860if(importedStyleSheet){importedRules=importedStyleSheet.cssRules;
6861importedRules.length
6862}else{break
6863}}catch(e){externalStyleSheetURLs.push(styleSheet.href);
6864importedStyleSheet.restricted=true;
6865var ssid=StyleSheetCache(importedStyleSheet)
6866}styleSheetIterator(doc,importedStyleSheet)
6867}}}}if(FBTrace.DBG_CSS){FBTrace.sysout("FBL.processAllStyleSheets","all stylesheet rules processed in "+(new Date().getTime()-start)+"ms")
6868}};
6869var processStyleSheet=function(doc,styleSheet){if(styleSheet.restricted){return
6870}var rules=isIE?styleSheet.rules:styleSheet.cssRules;
6871var ssid=StyleSheetCache(styleSheet);
6872var href=styleSheet.href;
6873var shouldParseCSS=typeof CssParser!="undefined"&&!Firebug.disableResourceFetching;
6874if(shouldParseCSS){try{var parsedRules=CssAnalyzer.parseStyleSheet(href)
6875}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("processStyleSheet FAILS",e.message||e)
6876}shouldParseCSS=false
6877}finally{var parsedRulesIndex=0;
6878var dontSupportGroupedRules=isIE&&browserVersion<9;
6879var group=[];
6880var groupItem
6881}}for(var i=0,length=rules.length;
6882i<length;
6883i++){var rid=ssid+":"+i;
6884var rule=rules[i];
6885var selector=rule.selectorText||"";
6886var lineNo=null;
6887if(!selector||selector.indexOf("@")!=-1){continue
6888}if(isIE){selector=selector.replace(reSelectorTag,function(s){return s.toLowerCase()
6889})
6890}if(shouldParseCSS){var parsedRule=parsedRules[parsedRulesIndex];
6891var parsedSelector=parsedRule.selector;
6892if(dontSupportGroupedRules&&parsedSelector.indexOf(",")!=-1&&group.length==0){group=parsedSelector.split(",")
6893}if(dontSupportGroupedRules&&group.length>0){groupItem=group.shift();
6894if(CssParser.normalizeSelector(selector)==groupItem){lineNo=parsedRule.line
6895}if(group.length==0){parsedRulesIndex++
6896}}else{if(CssParser.normalizeSelector(selector)==parsedRule.selector){lineNo=parsedRule.line;
6897parsedRulesIndex++
6898}}}CSSRuleMap[rid]={styleSheetId:ssid,styleSheetIndex:i,order:++globalCSSRuleIndex,specificity:selector&&selector.indexOf(",")==-1?getCSSRuleSpecificity(selector):0,rule:rule,lineNo:lineNo,selector:selector,cssText:rule.style?rule.style.cssText:rule.cssText?rule.cssText:""};
6899var elements=Firebug.Selector(selector,doc);
6900for(var j=0,elementsLength=elements.length;
6901j<elementsLength;
6902j++){var element=elements[j];
6903var eid=ElementCache(element);
6904if(!ElementCSSRulesMap[eid]){ElementCSSRulesMap[eid]=[]
6905}ElementCSSRulesMap[eid].push(rid)
6906}}};
6907var loadExternalStylesheet=function(doc,styleSheetIterator,styleSheet){var url=styleSheet.href;
6908styleSheet.firebugIgnore=true;
6909var source=Firebug.Lite.Proxy.load(url);
6910source=source.replace(/url\(([^\)]+)\)/g,function(a,name){var hasDomain=/\w+:\/\/./.test(name);
6911if(!hasDomain){name=name.replace(/^(["'])(.+)\1$/,"$2");
6912var first=name.charAt(0);
6913if(first=="/"){var m=/^([^:]+:\/{1,3}[^\/]+)/.exec(url);
6914return m?"url("+m[1]+name+")":"url("+name+")"
6915}else{var path=url.replace(/[^\/]+\.[\w\d]+(\?.+|#.+)?$/g,"");
6916path=path+name;
6917var reBack=/[^\/]+\/\.\.\//;
6918while(reBack.test(path)){path=path.replace(reBack,"")
6919}return"url("+path+")"
6920}}return a
6921});
6922var oldStyle=styleSheet.ownerNode;
6923if(!oldStyle){return
6924}if(!oldStyle.parentNode){return
6925}var style=createGlobalElement("style");
6926style.setAttribute("charset","utf-8");
6927style.setAttribute("type","text/css");
6928style.innerHTML=source;
6929oldStyle.parentNode.insertBefore(style,oldStyle.nextSibling);
6930oldStyle.parentNode.removeChild(oldStyle);
6931doc.styleSheets[doc.styleSheets.length-1].externalURL=url;
6932console.log(url,"call "+externalStyleSheetURLs.length,source);
6933externalStyleSheetURLs.pop();
6934if(processAllStyleSheetsTimeout){clearTimeout(processAllStyleSheetsTimeout)
6935}processAllStyleSheetsTimeout=setTimeout(function(){console.log("processing");
6936FBL.processAllStyleSheets(doc,styleSheetIterator);
6937processAllStyleSheetsTimeout=null
6938},200)
6939};
6940var getElementCSSRules=function(element){var eid=ElementCache(element);
6941var rules=ElementCSSRulesMap[eid];
6942if(!rules){return
6943}var arr=[element];
6944var Selector=Firebug.Selector;
6945var ruleId,rule;
6946for(var i=0,length=rules.length;
6947i<length;
6948i++){ruleId=rules[i];
6949rule=CSSRuleMap[ruleId];
6950if(rule.selector.indexOf(",")!=-1){var selectors=rule.selector.split(",");
6951var maxSpecificity=-1;
6952var sel,spec,mostSpecificSelector;
6953for(var j,len=selectors.length;
6954j<len;
6955j++){sel=selectors[j];
6956if(Selector.matches(sel,arr).length==1){spec=getCSSRuleSpecificity(sel);
6957if(spec>maxSpecificity){maxSpecificity=spec;
6958mostSpecificSelector=sel
6959}}}rule.specificity=maxSpecificity
6960}}rules.sort(sortElementRules);
6961return rules
6962};
6963var sortElementRules=function(a,b){var ruleA=CSSRuleMap[a];
6964var ruleB=CSSRuleMap[b];
6965var specificityA=ruleA.specificity;
6966var specificityB=ruleB.specificity;
6967if(specificityA>specificityB){return 1
6968}else{if(specificityA<specificityB){return -1
6969}else{return ruleA.order>ruleB.order?1:-1
6970}}};
6971var solveRulesTied=function(a,b){var ruleA=CSSRuleMap[a];
6972var ruleB=CSSRuleMap[b];
6973if(ruleA.specificity==ruleB.specificity){return ruleA.order>ruleB.order?1:-1
6974}return null
6975};
6976var getCSSRuleSpecificity=function(selector){var match=selector.match(reSelectorTag);
6977var tagCount=match?match.length:0;
6978match=selector.match(reSelectorClass);
6979var classCount=match?match.length:0;
6980match=selector.match(reSelectorId);
6981var idCount=match?match.length:0;
6982return tagCount+10*classCount+100*idCount
6983};
6984var extractSourceData=function(href){var sourceData={source:null,startLine:0};
6985if(href){sourceData.source=Firebug.Lite.Proxy.load(href)
6986}else{var index=0;
6987var ssIndex=++internalStyleSheetIndex;
6988var reStyleTag=/\<\s*style.*\>/gi;
6989var reEndStyleTag=/\<\/\s*style.*\>/gi;
6990var source=Firebug.Lite.Proxy.load(Env.browser.location.href);
6991source=source.replace(/\n\r|\r\n/g,"\n");
6992var startLine=0;
6993do{var matchStyleTag=source.match(reStyleTag);
6994var i0=source.indexOf(matchStyleTag[0])+matchStyleTag[0].length;
6995for(var i=0;
6996i<i0;
6997i++){if(source.charAt(i)=="\n"){startLine++
6998}}source=source.substr(i0);
6999index++
7000}while(index<=ssIndex);
7001var matchEndStyleTag=source.match(reEndStyleTag);
7002var i1=source.indexOf(matchEndStyleTag[0]);
7003var extractedSource=source.substr(0,i1);
7004sourceData.source=extractedSource;
7005sourceData.startLine=startLine
7006}return sourceData
7007};
7008FBL.CssAnalyzer=CssAnalyzer
7009}});
7010(function(){this.getElementXPath=function(element){try{if(element&&element.id){return'//*[@id="'+element.id+'"]'
7011}else{return this.getElementTreeXPath(element)
7012}}catch(E){}};
7013this.getElementTreeXPath=function(element){var paths=[];
7014for(;
7015element&&element.nodeType==1;
7016element=element.parentNode){var index=0;
7017var nodeName=element.nodeName;
7018for(var sibling=element.previousSibling;
7019sibling;
7020sibling=sibling.previousSibling){if(sibling.nodeType!=1){continue
7021}if(sibling.nodeName==nodeName){++index
7022}}var tagName=element.nodeName.toLowerCase();
7023var pathIndex=(index?"["+(index+1)+"]":"");
7024paths.splice(0,0,tagName+pathIndex)
7025}return paths.length?"/"+paths.join("/"):null
7026};
7027this.getElementsByXPath=function(doc,xpath){var nodes=[];
7028try{var result=doc.evaluate(xpath,doc,null,XPathResult.ANY_TYPE,null);
7029for(var item=result.iterateNext();
7030item;
7031item=result.iterateNext()){nodes.push(item)
7032}}catch(exc){}return nodes
7033};
7034this.getRuleMatchingElements=function(rule,doc){var css=rule.selectorText;
7035var xpath=this.cssToXPath(css);
7036return this.getElementsByXPath(doc,xpath)
7037}
7038}).call(FBL);
7039FBL.ns(function(){with(FBL){var toCamelCase=function toCamelCase(s){return s.replace(reSelectorCase,toCamelCaseReplaceFn)
7040};
7041var toSelectorCase=function toSelectorCase(s){return s.replace(reCamelCase,"-$1").toLowerCase()
7042};
7043var reCamelCase=/([A-Z])/g;
7044var reSelectorCase=/\-(.)/g;
7045var toCamelCaseReplaceFn=function toCamelCaseReplaceFn(m,g){return g.toUpperCase()
7046};
7047var ElementCache=Firebug.Lite.Cache.Element;
7048var StyleSheetCache=Firebug.Lite.Cache.StyleSheet;
7049Firebug.SourceBoxPanel=Firebug.Panel;
7050var reSelectorTag=/(^|\s)(?:\w+)/g;
7051var domUtils=null;
7052var textContent=isIE?"innerText":"textContent";
7053var CSSDomplateBase={isEditable:function(rule){return !rule.isSystemSheet
7054},isSelectorEditable:function(rule){return rule.isSelectorEditable&&this.isEditable(rule)
7055}};
7056var CSSPropTag=domplate(CSSDomplateBase,{tag:DIV({"class":"cssProp focusRow",$disabledStyle:"$prop.disabled",$editGroup:"$rule|isEditable",$cssOverridden:"$prop.overridden",role:"option"},A({"class":"cssPropDisable"},"&nbsp;&nbsp;"),SPAN({"class":"cssPropName",$editable:"$rule|isEditable"},"$prop.name"),SPAN({"class":"cssColon"},":"),SPAN({"class":"cssPropValue",$editable:"$rule|isEditable"},"$prop.value$prop.important"),SPAN({"class":"cssSemi"},";"))});
7057var CSSRuleTag=TAG("$rule.tag",{rule:"$rule"});
7058var CSSImportRuleTag=domplate({tag:DIV({"class":"cssRule insertInto focusRow importRule",_repObject:"$rule.rule"},"@import &quot;",A({"class":"objectLink",_repObject:"$rule.rule.styleSheet"},"$rule.rule.href"),"&quot;;")});
7059var CSSStyleRuleTag=domplate(CSSDomplateBase,{tag:DIV({"class":"cssRule insertInto",$cssEditableRule:"$rule|isEditable",$editGroup:"$rule|isSelectorEditable",_repObject:"$rule.rule",ruleId:"$rule.id",role:"presentation"},DIV({"class":"cssHead focusRow",role:"listitem"},SPAN({"class":"cssSelector",$editable:"$rule|isSelectorEditable"},"$rule.selector")," {"),DIV({role:"group"},DIV({"class":"cssPropertyListBox",role:"listbox"},FOR("prop","$rule.props",TAG(CSSPropTag.tag,{rule:"$rule",prop:"$prop"})))),DIV({"class":"editable insertBefore",role:"presentation"},"}"))});
7060var reSplitCSS=/(url\("?[^"\)]+?"?\))|(rgb\(.*?\))|(#[\dA-Fa-f]+)|(-?\d+(\.\d+)?(%|[a-z]{1,2})?)|([^,\s]+)|"(.*?)"/;
7061var reURL=/url\("?([^"\)]+)?"?\)/;
7062var reRepeat=/no-repeat|repeat-x|repeat-y|repeat/;
7063var sothinkInstalled=false;
7064var styleGroups={text:["font-family","font-size","font-weight","font-style","color","text-transform","text-decoration","letter-spacing","word-spacing","line-height","text-align","vertical-align","direction","column-count","column-gap","column-width"],background:["background-color","background-image","background-repeat","background-position","background-attachment","opacity"],box:["width","height","top","right","bottom","left","margin-top","margin-right","margin-bottom","margin-left","padding-top","padding-right","padding-bottom","padding-left","border-top-width","border-right-width","border-bottom-width","border-left-width","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","-moz-border-top-radius","-moz-border-right-radius","-moz-border-bottom-radius","-moz-border-left-radius","outline-top-width","outline-right-width","outline-bottom-width","outline-left-width","outline-top-color","outline-right-color","outline-bottom-color","outline-left-color","outline-top-style","outline-right-style","outline-bottom-style","outline-left-style"],layout:["position","display","visibility","z-index","overflow-x","overflow-y","overflow-clip","white-space","clip","float","clear","-moz-box-sizing"],other:["cursor","list-style-image","list-style-position","list-style-type","marker-offset","user-focus","user-select","user-modify","user-input"]};
7065var styleGroupTitles={text:"Text",background:"Background",box:"Box Model",layout:"Layout",other:"Other"};
7066Firebug.CSSModule=extend(Firebug.Module,{freeEdit:function(styleSheet,value){if(!styleSheet.editStyleSheet){var ownerNode=getStyleSheetOwnerNode(styleSheet);
7067styleSheet.disabled=true;
7068var url=CCSV("@mozilla.org/network/standard-url;1",Components.interfaces.nsIURL);
7069url.spec=styleSheet.href;
7070var editStyleSheet=ownerNode.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml","style");
7071unwrapObject(editStyleSheet).firebugIgnore=true;
7072editStyleSheet.setAttribute("type","text/css");
7073editStyleSheet.setAttributeNS("http://www.w3.org/XML/1998/namespace","base",url.directory);
7074if(ownerNode.hasAttribute("media")){editStyleSheet.setAttribute("media",ownerNode.getAttribute("media"))
7075}ownerNode.parentNode.insertBefore(editStyleSheet,ownerNode.nextSibling);
7076styleSheet.editStyleSheet=editStyleSheet
7077}styleSheet.editStyleSheet.innerHTML=value;
7078if(FBTrace.DBG_CSS){FBTrace.sysout("css.saveEdit styleSheet.href:"+styleSheet.href+" got innerHTML:"+value+"\n")
7079}dispatch(this.fbListeners,"onCSSFreeEdit",[styleSheet,value])
7080},insertRule:function(styleSheet,cssText,ruleIndex){if(FBTrace.DBG_CSS){FBTrace.sysout("Insert: "+ruleIndex+" "+cssText)
7081}var insertIndex=styleSheet.insertRule(cssText,ruleIndex);
7082dispatch(this.fbListeners,"onCSSInsertRule",[styleSheet,cssText,ruleIndex]);
7083return insertIndex
7084},deleteRule:function(styleSheet,ruleIndex){if(FBTrace.DBG_CSS){FBTrace.sysout("deleteRule: "+ruleIndex+" "+styleSheet.cssRules.length,styleSheet.cssRules)
7085}dispatch(this.fbListeners,"onCSSDeleteRule",[styleSheet,ruleIndex]);
7086styleSheet.deleteRule(ruleIndex)
7087},setProperty:function(rule,propName,propValue,propPriority){var style=rule.style||rule;
7088var baseText=style.cssText;
7089if(style.getPropertyValue){var prevValue=style.getPropertyValue(propName);
7090var prevPriority=style.getPropertyPriority(propName);
7091style.removeProperty(propName);
7092style.setProperty(propName,propValue,propPriority)
7093}else{style[toCamelCase(propName)]=propValue
7094}if(propName){dispatch(this.fbListeners,"onCSSSetProperty",[style,propName,propValue,propPriority,prevValue,prevPriority,rule,baseText])
7095}},removeProperty:function(rule,propName,parent){var style=rule.style||rule;
7096var baseText=style.cssText;
7097if(style.getPropertyValue){var prevValue=style.getPropertyValue(propName);
7098var prevPriority=style.getPropertyPriority(propName);
7099style.removeProperty(propName)
7100}else{style[toCamelCase(propName)]=""
7101}if(propName){dispatch(this.fbListeners,"onCSSRemoveProperty",[style,propName,prevValue,prevPriority,rule,baseText])
7102}}});
7103Firebug.CSSStyleSheetPanel=function(){};
7104Firebug.CSSStyleSheetPanel.prototype=extend(Firebug.SourceBoxPanel,{template:domplate({tag:DIV({"class":"cssSheet insertInto a11yCSSView"},FOR("rule","$rules",CSSRuleTag),DIV({"class":"cssSheet editable insertBefore"},""))}),refresh:function(){if(this.location){this.updateLocation(this.location)
7105}else{if(this.selection){this.updateSelection(this.selection)
7106}}},toggleEditing:function(){if(!this.stylesheetEditor){this.stylesheetEditor=new StyleSheetEditor(this.document)
7107}if(this.editing){Firebug.Editor.stopEditing()
7108}else{if(!this.location){return
7109}var styleSheet=this.location.editStyleSheet?this.location.editStyleSheet.sheet:this.location;
7110var css=getStyleSheetCSS(styleSheet,this.context);
7111this.stylesheetEditor.styleSheet=this.location;
7112Firebug.Editor.startEditing(this.panelNode,css,this.stylesheetEditor)
7113}},getStylesheetURL:function(rule){if(this.location.href){return this.location.href
7114}else{return this.context.window.location.href
7115}},getRuleByLine:function(styleSheet,line){if(!domUtils){return null
7116}var cssRules=styleSheet.cssRules;
7117for(var i=0;
7118i<cssRules.length;
7119++i){var rule=cssRules[i];
7120if(rule instanceof CSSStyleRule){var ruleLine=domUtils.getRuleLine(rule);
7121if(ruleLine>=line){return rule
7122}}}},highlightRule:function(rule){var ruleElement=Firebug.getElementByRepObject(this.panelNode.firstChild,rule);
7123if(ruleElement){scrollIntoCenterView(ruleElement,this.panelNode);
7124setClassTimed(ruleElement,"jumpHighlight",this.context)
7125}},getStyleSheetRules:function(context,styleSheet){var isSystemSheet=isSystemStyleSheet(styleSheet);
7126function appendRules(cssRules){for(var i=0;
7127i<cssRules.length;
7128++i){var rule=cssRules[i];
7129if(instanceOf(rule,"CSSStyleRule")){var props=this.getRuleProperties(context,rule);
7130var line=null;
7131var selector=rule.selectorText;
7132if(isIE){selector=selector.replace(reSelectorTag,function(s){return s.toLowerCase()
7133})
7134}var ruleId=rule.selectorText+"/"+line;
7135rules.push({tag:CSSStyleRuleTag.tag,rule:rule,id:ruleId,selector:selector,props:props,isSystemSheet:isSystemSheet,isSelectorEditable:true})
7136}else{if(instanceOf(rule,"CSSImportRule")){rules.push({tag:CSSImportRuleTag.tag,rule:rule})
7137}else{if(instanceOf(rule,"CSSMediaRule")){appendRules.apply(this,[rule.cssRules])
7138}else{if(FBTrace.DBG_ERRORS||FBTrace.DBG_CSS){FBTrace.sysout("css getStyleSheetRules failed to classify a rule ",rule)
7139}}}}}}var rules=[];
7140appendRules.apply(this,[styleSheet.cssRules||styleSheet.rules]);
7141return rules
7142},parseCSSProps:function(style,inheritMode){var props=[];
7143if(Firebug.expandShorthandProps){var count=style.length-1,index=style.length;
7144while(index--){var propName=style.item(count-index);
7145this.addProperty(propName,style.getPropertyValue(propName),!!style.getPropertyPriority(propName),false,inheritMode,props)
7146}}else{var lines=style.cssText.match(/(?:[^;\(]*(?:\([^\)]*?\))?[^;\(]*)*;?/g);
7147var propRE=/\s*([^:\s]*)\s*:\s*(.*?)\s*(! important)?;?$/;
7148var line,i=0;
7149var m;
7150while(line=lines[i++]){m=propRE.exec(line);
7151if(!m){continue
7152}if(m[2]){this.addProperty(m[1],m[2],!!m[3],false,inheritMode,props)
7153}}}return props
7154},getRuleProperties:function(context,rule,inheritMode){var props=this.parseCSSProps(rule.style,inheritMode);
7155var line;
7156var ruleId=rule.selectorText+"/"+line;
7157this.addOldProperties(context,ruleId,inheritMode,props);
7158sortProperties(props);
7159return props
7160},addOldProperties:function(context,ruleId,inheritMode,props){if(context.selectorMap&&context.selectorMap.hasOwnProperty(ruleId)){var moreProps=context.selectorMap[ruleId];
7161for(var i=0;
7162i<moreProps.length;
7163++i){var prop=moreProps[i];
7164this.addProperty(prop.name,prop.value,prop.important,true,inheritMode,props)
7165}}},addProperty:function(name,value,important,disabled,inheritMode,props){name=name.toLowerCase();
7166if(inheritMode&&!inheritedStyleNames[name]){return
7167}name=this.translateName(name,value);
7168if(name){value=stripUnits(rgbToHex(value));
7169important=important?" !important":"";
7170var prop={name:name,value:value,important:important,disabled:disabled};
7171props.push(prop)
7172}},translateName:function(name,value){if((value=="-moz-initial"&&(name=="-moz-background-clip"||name=="-moz-background-origin"||name=="-moz-background-inline-policy"))||(value=="physical"&&(name=="margin-left-ltr-source"||name=="margin-left-rtl-source"||name=="margin-right-ltr-source"||name=="margin-right-rtl-source"))||(value=="physical"&&(name=="padding-left-ltr-source"||name=="padding-left-rtl-source"||name=="padding-right-ltr-source"||name=="padding-right-rtl-source"))){return null
7173}if(name=="margin-left-value"){return"margin-left"
7174}else{if(name=="margin-right-value"){return"margin-right"
7175}else{if(name=="margin-top-value"){return"margin-top"
7176}else{if(name=="margin-bottom-value"){return"margin-bottom"
7177}else{if(name=="padding-left-value"){return"padding-left"
7178}else{if(name=="padding-right-value"){return"padding-right"
7179}else{if(name=="padding-top-value"){return"padding-top"
7180}else{if(name=="padding-bottom-value"){return"padding-bottom"
7181}else{return name
7182}}}}}}}}},editElementStyle:function(){var rulesBox=$$(".cssElementRuleContainer",this.panelNode)[0];
7183var styleRuleBox=rulesBox&&Firebug.getElementByRepObject(rulesBox,this.selection);
7184if(!styleRuleBox){var rule={rule:this.selection,inherited:false,selector:"element.style",props:[]};
7185if(!rulesBox){styleRuleBox=this.template.cascadedTag.replace({rules:[rule],inherited:[],inheritLabel:"Inherited from"},this.panelNode);
7186styleRuleBox=$$(".cssElementRuleContainer",styleRuleBox)[0]
7187}else{styleRuleBox=this.template.ruleTag.insertBefore({rule:rule},rulesBox)
7188}styleRuleBox=$$(".insertInto",styleRuleBox)[0]
7189}Firebug.Editor.insertRowForObject(styleRuleBox)
7190},insertPropertyRow:function(row){Firebug.Editor.insertRowForObject(row)
7191},insertRule:function(row){var location=getAncestorByClass(row,"cssRule");
7192if(!location){location=getChildByClass(this.panelNode,"cssSheet");
7193Firebug.Editor.insertRowForObject(location)
7194}else{Firebug.Editor.insertRow(location,"before")
7195}},editPropertyRow:function(row){var propValueBox=getChildByClass(row,"cssPropValue");
7196Firebug.Editor.startEditing(propValueBox)
7197},deletePropertyRow:function(row){var rule=Firebug.getRepObject(row);
7198var propName=getChildByClass(row,"cssPropName")[textContent];
7199Firebug.CSSModule.removeProperty(rule,propName);
7200var ruleId=Firebug.getRepNode(row).getAttribute("ruleId");
7201if(this.context.selectorMap&&this.context.selectorMap.hasOwnProperty(ruleId)){var map=this.context.selectorMap[ruleId];
7202for(var i=0;
7203i<map.length;
7204++i){if(map[i].name==propName){map.splice(i,1);
7205break
7206}}}if(this.name=="stylesheet"){dispatch([Firebug.A11yModel],"onInlineEditorClose",[this,row.firstChild,true])
7207}row.parentNode.removeChild(row);
7208this.markChange(this.name=="stylesheet")
7209},disablePropertyRow:function(row){toggleClass(row,"disabledStyle");
7210var rule=Firebug.getRepObject(row);
7211var propName=getChildByClass(row,"cssPropName")[textContent];
7212if(!this.context.selectorMap){this.context.selectorMap={}
7213}var ruleId=Firebug.getRepNode(row).getAttribute("ruleId");
7214if(!(this.context.selectorMap.hasOwnProperty(ruleId))){this.context.selectorMap[ruleId]=[]
7215}var map=this.context.selectorMap[ruleId];
7216var propValue=getChildByClass(row,"cssPropValue")[textContent];
7217var parsedValue=parsePriority(propValue);
7218if(hasClass(row,"disabledStyle")){Firebug.CSSModule.removeProperty(rule,propName);
7219map.push({name:propName,value:parsedValue.value,important:parsedValue.priority})
7220}else{Firebug.CSSModule.setProperty(rule,propName,parsedValue.value,parsedValue.priority);
7221var index=findPropByName(map,propName);
7222map.splice(index,1)
7223}this.markChange(this.name=="stylesheet")
7224},onMouseDown:function(event){var offset=event.clientX-this.panelNode.parentNode.offsetLeft;
7225if(!isLeftClick(event)||offset>20){return
7226}var target=event.target||event.srcElement;
7227if(hasClass(target,"textEditor")){return
7228}var row=getAncestorByClass(target,"cssProp");
7229if(row&&hasClass(row,"editGroup")){this.disablePropertyRow(row);
7230cancelEvent(event)
7231}},onDoubleClick:function(event){var offset=event.clientX-this.panelNode.parentNode.offsetLeft;
7232if(!isLeftClick(event)||offset<=20){return
7233}var target=event.target||event.srcElement;
7234if(hasClass(target,"textEditorInner")){return
7235}var row=getAncestorByClass(target,"cssRule");
7236if(row&&!getAncestorByClass(target,"cssPropName")&&!getAncestorByClass(target,"cssPropValue")){this.insertPropertyRow(row);
7237cancelEvent(event)
7238}},name:"stylesheet",title:"CSS",parentPanel:null,searchable:true,dependents:["css","stylesheet","dom","domSide","layout"],options:{hasToolButtons:true},create:function(){Firebug.Panel.create.apply(this,arguments);
7239this.onMouseDown=bind(this.onMouseDown,this);
7240this.onDoubleClick=bind(this.onDoubleClick,this);
7241if(this.name=="stylesheet"){this.onChangeSelect=bind(this.onChangeSelect,this);
7242var doc=Firebug.browser.document;
7243var selectNode=this.selectNode=createElement("select");
7244CssAnalyzer.processAllStyleSheets(doc,function(doc,styleSheet){var key=StyleSheetCache.key(styleSheet);
7245var fileName=getFileName(styleSheet.href)||getFileName(doc.location.href);
7246var option=createElement("option",{value:key});
7247option.appendChild(Firebug.chrome.document.createTextNode(fileName));
7248selectNode.appendChild(option)
7249});
7250this.toolButtonsNode.appendChild(selectNode)
7251}},onChangeSelect:function(event){event=event||window.event;
7252var target=event.srcElement||event.currentTarget;
7253var key=target.value;
7254var styleSheet=StyleSheetCache.get(key);
7255this.updateLocation(styleSheet)
7256},initialize:function(){Firebug.Panel.initialize.apply(this,arguments);
7257this.context=Firebug.chrome;
7258this.document=Firebug.chrome.document;
7259this.initializeNode();
7260if(this.name=="stylesheet"){var styleSheets=Firebug.browser.document.styleSheets;
7261if(styleSheets.length>0){addEvent(this.selectNode,"change",this.onChangeSelect);
7262this.updateLocation(styleSheets[0])
7263}}},shutdown:function(){Firebug.Editor.stopEditing();
7264if(this.name=="stylesheet"){removeEvent(this.selectNode,"change",this.onChangeSelect)
7265}this.destroyNode();
7266Firebug.Panel.shutdown.apply(this,arguments)
7267},destroy:function(state){Firebug.Panel.destroy.apply(this,arguments)
7268},initializeNode:function(oldPanelNode){addEvent(this.panelNode,"mousedown",this.onMouseDown);
7269addEvent(this.panelNode,"dblclick",this.onDoubleClick)
7270},destroyNode:function(){removeEvent(this.panelNode,"mousedown",this.onMouseDown);
7271removeEvent(this.panelNode,"dblclick",this.onDoubleClick)
7272},ishow:function(state){Firebug.Inspector.stopInspecting(true);
7273this.showToolbarButtons("fbCSSButtons",true);
7274if(this.context.loaded&&!this.location){restoreObjects(this,state);
7275if(!this.location){this.location=this.getDefaultLocation()
7276}if(state&&state.scrollTop){this.panelNode.scrollTop=state.scrollTop
7277}}},ihide:function(){this.showToolbarButtons("fbCSSButtons",false);
7278this.lastScrollTop=this.panelNode.scrollTop
7279},supportsObject:function(object){if(object instanceof CSSStyleSheet){return 1
7280}else{if(object instanceof CSSStyleRule){return 2
7281}else{if(object instanceof CSSStyleDeclaration){return 2
7282}else{if(object instanceof SourceLink&&object.type=="css"&&reCSS.test(object.href)){return 2
7283}else{return 0
7284}}}}},updateLocation:function(styleSheet){if(!styleSheet){return
7285}if(styleSheet.editStyleSheet){styleSheet=styleSheet.editStyleSheet.sheet
7286}if(styleSheet.restricted){FirebugReps.Warning.tag.replace({object:"AccessRestricted"},this.panelNode);
7287CssAnalyzer.externalStyleSheetWarning.tag.append({object:"The stylesheet could not be loaded due to access restrictions. ",link:"more...",href:"http://getfirebug.com/wiki/index.php/Firebug_Lite_FAQ#I_keep_seeing_.22Access_to_restricted_URI_denied.22"},this.panelNode);
7288return
7289}var rules=this.getStyleSheetRules(this.context,styleSheet);
7290var result;
7291if(rules.length){result=this.template.tag.replace({rules:rules},this.panelNode)
7292}else{result=FirebugReps.Warning.tag.replace({object:"EmptyStyleSheet"},this.panelNode)
7293}},updateSelection:function(object){this.selection=null;
7294if(object instanceof CSSStyleDeclaration){object=object.parentRule
7295}if(object instanceof CSSStyleRule){this.navigate(object.parentStyleSheet);
7296this.highlightRule(object)
7297}else{if(object instanceof CSSStyleSheet){this.navigate(object)
7298}else{if(object instanceof SourceLink){try{var sourceLink=object;
7299var sourceFile=getSourceFileByHref(sourceLink.href,this.context);
7300if(sourceFile){clearNode(this.panelNode);
7301this.showSourceFile(sourceFile);
7302var lineNo=object.line;
7303if(lineNo){this.scrollToLine(lineNo,this.jumpHighlightFactory(lineNo,this.context))
7304}}else{var stylesheet=getStyleSheetByHref(sourceLink.href,this.context);
7305if(stylesheet){this.navigate(stylesheet)
7306}else{if(FBTrace.DBG_CSS){FBTrace.sysout("css.updateSelection no sourceFile for "+sourceLink.href,sourceLink)
7307}}}}catch(exc){if(FBTrace.DBG_CSS){FBTrace.sysout("css.upDateSelection FAILS "+exc,exc)
7308}}}}}},updateOption:function(name,value){if(name=="expandShorthandProps"){this.refresh()
7309}},getLocationList:function(){var styleSheets=getAllStyleSheets(this.context);
7310return styleSheets
7311},getOptionsMenuItems:function(){return[{label:"Expand Shorthand Properties",type:"checkbox",checked:Firebug.expandShorthandProps,command:bindFixed(Firebug.togglePref,Firebug,"expandShorthandProps")},"-",{label:"Refresh",command:bind(this.refresh,this)}]
7312},getContextMenuItems:function(style,target){var items=[];
7313if(this.infoTipType=="color"){items.push({label:"CopyColor",command:bindFixed(copyToClipboard,FBL,this.infoTipObject)})
7314}else{if(this.infoTipType=="image"){items.push({label:"CopyImageLocation",command:bindFixed(copyToClipboard,FBL,this.infoTipObject)},{label:"OpenImageInNewTab",command:bindFixed(openNewTab,FBL,this.infoTipObject)})
7315}}if(isElement(this.selection)){items.push({label:"EditStyle",command:bindFixed(this.editElementStyle,this)})
7316}else{if(!isSystemStyleSheet(this.selection)){items.push({label:"NewRule",command:bindFixed(this.insertRule,this,target)})
7317}}var cssRule=getAncestorByClass(target,"cssRule");
7318if(cssRule&&hasClass(cssRule,"cssEditableRule")){items.push("-",{label:"NewProp",command:bindFixed(this.insertPropertyRow,this,target)});
7319var propRow=getAncestorByClass(target,"cssProp");
7320if(propRow){var propName=getChildByClass(propRow,"cssPropName")[textContent];
7321var isDisabled=hasClass(propRow,"disabledStyle");
7322items.push({label:$STRF("EditProp",[propName]),nol10n:true,command:bindFixed(this.editPropertyRow,this,propRow)},{label:$STRF("DeleteProp",[propName]),nol10n:true,command:bindFixed(this.deletePropertyRow,this,propRow)},{label:$STRF("DisableProp",[propName]),nol10n:true,type:"checkbox",checked:isDisabled,command:bindFixed(this.disablePropertyRow,this,propRow)})
7323}}items.push("-",{label:"Refresh",command:bind(this.refresh,this)});
7324return items
7325},browseObject:function(object){if(this.infoTipType=="image"){openNewTab(this.infoTipObject);
7326return true
7327}},showInfoTip:function(infoTip,target,x,y){var propValue=getAncestorByClass(target,"cssPropValue");
7328if(propValue){var offset=getClientOffset(propValue);
7329var offsetX=x-offset.x;
7330var text=propValue[textContent];
7331var charWidth=propValue.offsetWidth/text.length;
7332var charOffset=Math.floor(offsetX/charWidth);
7333var cssValue=parseCSSValue(text,charOffset);
7334if(cssValue){if(cssValue.value==this.infoTipValue){return true
7335}this.infoTipValue=cssValue.value;
7336if(cssValue.type=="rgb"||(!cssValue.type&&isColorKeyword(cssValue.value))){this.infoTipType="color";
7337this.infoTipObject=cssValue.value;
7338return Firebug.InfoTip.populateColorInfoTip(infoTip,cssValue.value)
7339}else{if(cssValue.type=="url"){var propNameNode=getElementByClass(target.parentNode,"cssPropName");
7340if(propNameNode&&isImageRule(propNameNode[textContent])){var rule=Firebug.getRepObject(target);
7341var baseURL=this.getStylesheetURL(rule);
7342var relURL=parseURLValue(cssValue.value);
7343var absURL=isDataURL(relURL)?relURL:absoluteURL(relURL,baseURL);
7344var repeat=parseRepeatValue(text);
7345this.infoTipType="image";
7346this.infoTipObject=absURL;
7347return Firebug.InfoTip.populateImageInfoTip(infoTip,absURL,repeat)
7348}}}}}delete this.infoTipType;
7349delete this.infoTipValue;
7350delete this.infoTipObject
7351},getEditor:function(target,value){if(target==this.panelNode||hasClass(target,"cssSelector")||hasClass(target,"cssRule")||hasClass(target,"cssSheet")){if(!this.ruleEditor){this.ruleEditor=new CSSRuleEditor(this.document)
7352}return this.ruleEditor
7353}else{if(!this.editor){this.editor=new CSSEditor(this.document)
7354}return this.editor
7355}},getDefaultLocation:function(){try{var styleSheets=this.context.window.document.styleSheets;
7356if(styleSheets.length){var sheet=styleSheets[0];
7357return(Firebug.filterSystemURLs&&isSystemURL(getURLForStyleSheet(sheet)))?null:sheet
7358}}catch(exc){if(FBTrace.DBG_LOCATIONS){FBTrace.sysout("css.getDefaultLocation FAILS "+exc,exc)
7359}}},getObjectDescription:function(styleSheet){var url=getURLForStyleSheet(styleSheet);
7360var instance=getInstanceForStyleSheet(styleSheet);
7361var baseDescription=splitURLBase(url);
7362if(instance){baseDescription.name=baseDescription.name+" #"+(instance+1)
7363}return baseDescription
7364},search:function(text,reverse){var curDoc=this.searchCurrentDoc(!Firebug.searchGlobal,text,reverse);
7365if(!curDoc&&Firebug.searchGlobal){return this.searchOtherDocs(text,reverse)
7366}return curDoc
7367},searchOtherDocs:function(text,reverse){var scanRE=Firebug.Search.getTestingRegex(text);
7368function scanDoc(styleSheet){for(var i=0;
7369i<styleSheet.cssRules.length;
7370i++){if(scanRE.test(styleSheet.cssRules[i].cssText)){return true
7371}}}if(this.navigateToNextDocument(scanDoc,reverse)){return this.searchCurrentDoc(true,text,reverse)
7372}},searchCurrentDoc:function(wrapSearch,text,reverse){if(!text){delete this.currentSearch;
7373return false
7374}var row;
7375if(this.currentSearch&&text==this.currentSearch.text){row=this.currentSearch.findNext(wrapSearch,false,reverse,Firebug.Search.isCaseSensitive(text))
7376}else{if(this.editing){this.currentSearch=new TextSearch(this.stylesheetEditor.box);
7377row=this.currentSearch.find(text,reverse,Firebug.Search.isCaseSensitive(text));
7378if(row){var sel=this.document.defaultView.getSelection();
7379sel.removeAllRanges();
7380sel.addRange(this.currentSearch.range);
7381scrollSelectionIntoView(this);
7382return true
7383}else{return false
7384}}else{function findRow(node){return node.nodeType==1?node:node.parentNode
7385}this.currentSearch=new TextSearch(this.panelNode,findRow);
7386row=this.currentSearch.find(text,reverse,Firebug.Search.isCaseSensitive(text))
7387}}if(row){this.document.defaultView.getSelection().selectAllChildren(row);
7388scrollIntoCenterView(row,this.panelNode);
7389dispatch([Firebug.A11yModel],"onCSSSearchMatchFound",[this,text,row]);
7390return true
7391}else{dispatch([Firebug.A11yModel],"onCSSSearchMatchFound",[this,text,null]);
7392return false
7393}},getSearchOptionsMenuItems:function(){return[Firebug.Search.searchOptionMenu("search.Case_Sensitive","searchCaseSensitive"),Firebug.Search.searchOptionMenu("search.Multiple_Files","searchGlobal")]
7394}});
7395function CSSElementPanel(){}CSSElementPanel.prototype=extend(Firebug.CSSStyleSheetPanel.prototype,{template:domplate({cascadedTag:DIV({"class":"a11yCSSView",role:"presentation"},DIV({role:"list","aria-label":$STR("aria.labels.style rules")},FOR("rule","$rules",TAG("$ruleTag",{rule:"$rule"}))),DIV({role:"list","aria-label":$STR("aria.labels.inherited style rules")},FOR("section","$inherited",H1({"class":"cssInheritHeader groupHeader focusRow",role:"listitem"},SPAN({"class":"cssInheritLabel"},"$inheritLabel"),TAG(FirebugReps.Element.shortTag,{object:"$section.element"})),DIV({role:"group"},FOR("rule","$section.rules",TAG("$ruleTag",{rule:"$rule"})))))),ruleTag:isIE?DIV({"class":"cssElementRuleContainer"},TAG(FirebugReps.SourceLink.tag,{object:"$rule.sourceLink"}),TAG(CSSStyleRuleTag.tag,{rule:"$rule"})):DIV({"class":"cssElementRuleContainer"},TAG(CSSStyleRuleTag.tag,{rule:"$rule"}),TAG(FirebugReps.SourceLink.tag,{object:"$rule.sourceLink"}))}),updateCascadeView:function(element){var rules=[],sections=[],usedProps={};
7396this.getInheritedRules(element,sections,usedProps);
7397this.getElementRules(element,rules,usedProps);
7398if(rules.length||sections.length){var inheritLabel="Inherited from";
7399var result=this.template.cascadedTag.replace({rules:rules,inherited:sections,inheritLabel:inheritLabel},this.panelNode)
7400}else{var result=FirebugReps.Warning.tag.replace({object:"EmptyElementCSS"},this.panelNode)
7401}if(CssAnalyzer.hasExternalStyleSheet()){CssAnalyzer.externalStyleSheetWarning.tag.append({object:"The results here may be inaccurate because some stylesheets could not be loaded due to access restrictions. ",link:"more...",href:"http://getfirebug.com/wiki/index.php/Firebug_Lite_FAQ#I_keep_seeing_.22This_element_has_no_style_rules.22"},this.panelNode)
7402}},getStylesheetURL:function(rule){if(rule&&rule.parentStyleSheet&&rule.parentStyleSheet.href){return rule.parentStyleSheet.href
7403}else{return this.selection.ownerDocument.location.href
7404}},getInheritedRules:function(element,sections,usedProps){var parent=element.parentNode;
7405if(parent&&parent.nodeType==1){this.getInheritedRules(parent,sections,usedProps);
7406var rules=[];
7407this.getElementRules(parent,rules,usedProps,true);
7408if(rules.length){sections.splice(0,0,{element:parent,rules:rules})
7409}}},getElementRules:function(element,rules,usedProps,inheritMode){var inspectedRules,displayedRules={};
7410inspectedRules=CssAnalyzer.getElementCSSRules(element);
7411if(inspectedRules){for(var i=0,length=inspectedRules.length;
7412i<length;
7413++i){var ruleId=inspectedRules[i];
7414var ruleData=CssAnalyzer.getRuleData(ruleId);
7415var rule=ruleData.rule;
7416var ssid=ruleData.styleSheetId;
7417var parentStyleSheet=StyleSheetCache.get(ssid);
7418var href=parentStyleSheet.externalURL?parentStyleSheet.externalURL:parentStyleSheet.href;
7419var instance=null;
7420var isSystemSheet=false;
7421if(!Firebug.showUserAgentCSS&&isSystemSheet){continue
7422}if(!href){href=element.ownerDocument.location.href
7423}var props=this.getRuleProperties(this.context,rule,inheritMode);
7424if(inheritMode&&!props.length){continue
7425}var line=ruleData.lineNo;
7426var ruleId=rule.selectorText+"/"+line;
7427var sourceLink=new SourceLink(href,line,"css",rule,instance);
7428this.markOverridenProps(props,usedProps,inheritMode);
7429rules.splice(0,0,{rule:rule,id:ruleId,selector:ruleData.selector,sourceLink:sourceLink,props:props,inherited:inheritMode,isSystemSheet:isSystemSheet})
7430}}if(element.style){this.getStyleProperties(element,rules,usedProps,inheritMode)
7431}if(FBTrace.DBG_CSS){FBTrace.sysout("getElementRules "+rules.length+" rules for "+getElementXPath(element),rules)
7432}},markOverridenProps:function(props,usedProps,inheritMode){for(var i=0;
7433i<props.length;
7434++i){var prop=props[i];
7435if(usedProps.hasOwnProperty(prop.name)){var deadProps=usedProps[prop.name];
7436for(var j=0;
7437j<deadProps.length;
7438++j){var deadProp=deadProps[j];
7439if(!deadProp.disabled&&!deadProp.wasInherited&&deadProp.important&&!prop.important){prop.overridden=true
7440}else{if(!prop.disabled){deadProp.overridden=true
7441}}}}else{usedProps[prop.name]=[]
7442}prop.wasInherited=inheritMode?true:false;
7443usedProps[prop.name].push(prop)
7444}},getStyleProperties:function(element,rules,usedProps,inheritMode){var props=this.parseCSSProps(element.style,inheritMode);
7445this.addOldProperties(this.context,getElementXPath(element),inheritMode,props);
7446sortProperties(props);
7447this.markOverridenProps(props,usedProps,inheritMode);
7448if(props.length){rules.splice(0,0,{rule:element,id:getElementXPath(element),selector:"element.style",props:props,inherited:inheritMode})
7449}},name:"css",title:"Style",parentPanel:"HTML",order:0,initialize:function(){this.context=Firebug.chrome;
7450this.document=Firebug.chrome.document;
7451Firebug.CSSStyleSheetPanel.prototype.initialize.apply(this,arguments);
7452var selection=ElementCache.get(Firebug.context.persistedState.selectedHTMLElementId);
7453if(selection){this.select(selection,true)
7454}},ishow:function(state){},watchWindow:function(win){if(domUtils){var doc=win.document
7455}},unwatchWindow:function(win){var doc=win.document;
7456if(isAncestor(this.stateChangeEl,doc)){this.removeStateChangeHandlers()
7457}},supportsObject:function(object){return object instanceof Element?1:0
7458},updateView:function(element){this.updateCascadeView(element);
7459if(domUtils){this.contentState=safeGetContentState(element);
7460this.addStateChangeHandlers(element)
7461}},updateSelection:function(element){if(!instanceOf(element,"Element")){return
7462}if(sothinkInstalled){FirebugReps.Warning.tag.replace({object:"SothinkWarning"},this.panelNode);
7463return
7464}if(!element){return
7465}this.updateView(element)
7466},updateOption:function(name,value){if(name=="showUserAgentCSS"||name=="expandShorthandProps"){this.refresh()
7467}},getOptionsMenuItems:function(){var ret=[{label:"Show User Agent CSS",type:"checkbox",checked:Firebug.showUserAgentCSS,command:bindFixed(Firebug.togglePref,Firebug,"showUserAgentCSS")},{label:"Expand Shorthand Properties",type:"checkbox",checked:Firebug.expandShorthandProps,command:bindFixed(Firebug.togglePref,Firebug,"expandShorthandProps")}];
7468if(domUtils&&this.selection){var state=safeGetContentState(this.selection);
7469ret.push("-");
7470ret.push({label:":active",type:"checkbox",checked:state&STATE_ACTIVE,command:bindFixed(this.updateContentState,this,STATE_ACTIVE,state&STATE_ACTIVE)});
7471ret.push({label:":hover",type:"checkbox",checked:state&STATE_HOVER,command:bindFixed(this.updateContentState,this,STATE_HOVER,state&STATE_HOVER)})
7472}return ret
7473},updateContentState:function(state,remove){domUtils.setContentState(remove?this.selection.ownerDocument.documentElement:this.selection,state);
7474this.refresh()
7475},addStateChangeHandlers:function(el){this.removeStateChangeHandlers();
7476this.stateChangeEl=el
7477},removeStateChangeHandlers:function(){var sel=this.stateChangeEl;
7478if(sel){}},contentStateCheck:function(state){if(!state||this.contentState&state){var timeoutRunner=bindFixed(function(){var newState=safeGetContentState(this.selection);
7479if(newState!=this.contentState){this.context.invalidatePanels(this.name)
7480}},this);
7481setTimeout(timeoutRunner,0)
7482}}});
7483function safeGetContentState(selection){try{return domUtils.getContentState(selection)
7484}catch(e){if(FBTrace.DBG_ERRORS){FBTrace.sysout("css.safeGetContentState; EXCEPTION",e)
7485}}}function CSSComputedElementPanel(){}CSSComputedElementPanel.prototype=extend(CSSElementPanel.prototype,{template:domplate({computedTag:DIV({"class":"a11yCSSView",role:"list","aria-label":$STR("aria.labels.computed styles")},FOR("group","$groups",H1({"class":"cssInheritHeader groupHeader focusRow",role:"listitem"},SPAN({"class":"cssInheritLabel"},"$group.title")),TABLE({width:"100%",role:"group"},TBODY({role:"presentation"},FOR("prop","$group.props",TR({"class":"focusRow computedStyleRow",role:"listitem"},TD({"class":"stylePropName",role:"presentation"},"$prop.name"),TD({"class":"stylePropValue",role:"presentation"},"$prop.value")))))))}),updateComputedView:function(element){var win=isIE?element.ownerDocument.parentWindow:element.ownerDocument.defaultView;
7486var style=isIE?element.currentStyle:win.getComputedStyle(element,"");
7487var groups=[];
7488for(var groupName in styleGroups){var title=styleGroupTitles[groupName];
7489var group={title:title,props:[]};
7490groups.push(group);
7491var props=styleGroups[groupName];
7492for(var i=0;
7493i<props.length;
7494++i){var propName=props[i];
7495var propValue=style.getPropertyValue?style.getPropertyValue(propName):""+style[toCamelCase(propName)];
7496if(propValue===undefined||propValue===null){continue
7497}propValue=stripUnits(rgbToHex(propValue));
7498if(propValue){group.props.push({name:propName,value:propValue})
7499}}}var result=this.template.computedTag.replace({groups:groups},this.panelNode)
7500},name:"computed",title:"Computed",parentPanel:"HTML",order:1,updateView:function(element){this.updateComputedView(element)
7501},getOptionsMenuItems:function(){return[{label:"Refresh",command:bind(this.refresh,this)}]
7502}});
7503function CSSEditor(doc){this.initializeInline(doc)
7504}CSSEditor.prototype=domplate(Firebug.InlineEditor.prototype,{insertNewRow:function(target,insertWhere){var rule=Firebug.getRepObject(target);
7505var emptyProp={name:"",value:"",important:""};
7506if(insertWhere=="before"){return CSSPropTag.tag.insertBefore({prop:emptyProp,rule:rule},target)
7507}else{return CSSPropTag.tag.insertAfter({prop:emptyProp,rule:rule},target)
7508}},saveEdit:function(target,value,previousValue){if(!value){return
7509}target.innerHTML=escapeForCss(value);
7510var row=getAncestorByClass(target,"cssProp");
7511if(hasClass(row,"disabledStyle")){toggleClass(row,"disabledStyle")
7512}var rule=Firebug.getRepObject(target);
7513if(hasClass(target,"cssPropName")){if(value&&previousValue!=value){var propValue=getChildByClass(row,"cssPropValue")[textContent];
7514var parsedValue=parsePriority(propValue);
7515if(propValue&&propValue!="undefined"){if(FBTrace.DBG_CSS){FBTrace.sysout("CSSEditor.saveEdit : "+previousValue+"->"+value+" = "+propValue+"\n")
7516}if(previousValue){Firebug.CSSModule.removeProperty(rule,previousValue)
7517}Firebug.CSSModule.setProperty(rule,value,parsedValue.value,parsedValue.priority)
7518}}else{if(!value){Firebug.CSSModule.removeProperty(rule,previousValue)
7519}}}else{if(getAncestorByClass(target,"cssPropValue")){var propName=getChildByClass(row,"cssPropName")[textContent];
7520var propValue=getChildByClass(row,"cssPropValue")[textContent];
7521if(FBTrace.DBG_CSS){FBTrace.sysout("CSSEditor.saveEdit propName=propValue: "+propName+" = "+propValue+"\n")
7522}if(value&&value!="null"){var parsedValue=parsePriority(value);
7523Firebug.CSSModule.setProperty(rule,propName,parsedValue.value,parsedValue.priority)
7524}else{if(previousValue&&previousValue!="null"){Firebug.CSSModule.removeProperty(rule,propName)
7525}}}}this.panel.markChange(this.panel.name=="stylesheet")
7526},advanceToNext:function(target,charCode){if(charCode==58&&hasClass(target,"cssPropName")){return true
7527}},getAutoCompleteRange:function(value,offset){if(hasClass(this.target,"cssPropName")){return{start:0,end:value.length-1}
7528}else{return parseCSSValue(value,offset)
7529}},getAutoCompleteList:function(preExpr,expr,postExpr){if(hasClass(this.target,"cssPropName")){return getCSSPropertyNames()
7530}else{var row=getAncestorByClass(this.target,"cssProp");
7531var propName=getChildByClass(row,"cssPropName")[textContent];
7532return getCSSKeywordsByProperty(propName)
7533}}});
7534function CSSRuleEditor(doc){this.initializeInline(doc);
7535this.completeAsYouType=false
7536}CSSRuleEditor.uniquifier=0;
7537CSSRuleEditor.prototype=domplate(Firebug.InlineEditor.prototype,{insertNewRow:function(target,insertWhere){var emptyRule={selector:"",id:"",props:[],isSelectorEditable:true};
7538if(insertWhere=="before"){return CSSStyleRuleTag.tag.insertBefore({rule:emptyRule},target)
7539}else{return CSSStyleRuleTag.tag.insertAfter({rule:emptyRule},target)
7540}},saveEdit:function(target,value,previousValue){if(FBTrace.DBG_CSS){FBTrace.sysout("CSSRuleEditor.saveEdit: '"+value+"'  '"+previousValue+"'",target)
7541}target.innerHTML=escapeForCss(value);
7542if(value===previousValue){return
7543}var row=getAncestorByClass(target,"cssRule");
7544var styleSheet=this.panel.location;
7545styleSheet=styleSheet.editStyleSheet?styleSheet.editStyleSheet.sheet:styleSheet;
7546var cssRules=styleSheet.cssRules;
7547var rule=Firebug.getRepObject(target),oldRule=rule;
7548var ruleIndex=cssRules.length;
7549if(rule||Firebug.getRepObject(row.nextSibling)){var searchRule=rule||Firebug.getRepObject(row.nextSibling);
7550for(ruleIndex=0;
7551ruleIndex<cssRules.length&&searchRule!=cssRules[ruleIndex];
7552ruleIndex++){}}if(oldRule){Firebug.CSSModule.deleteRule(styleSheet,ruleIndex)
7553}if(value){var cssText=[value,"{"];
7554var props=row.getElementsByClassName("cssProp");
7555for(var i=0;
7556i<props.length;
7557i++){var propEl=props[i];
7558if(!hasClass(propEl,"disabledStyle")){cssText.push(getChildByClass(propEl,"cssPropName")[textContent]);
7559cssText.push(":");
7560cssText.push(getChildByClass(propEl,"cssPropValue")[textContent]);
7561cssText.push(";")
7562}}cssText.push("}");
7563cssText=cssText.join("");
7564try{var insertLoc=Firebug.CSSModule.insertRule(styleSheet,cssText,ruleIndex);
7565rule=cssRules[insertLoc];
7566ruleIndex++
7567}catch(err){if(FBTrace.DBG_CSS||FBTrace.DBG_ERRORS){FBTrace.sysout("CSS Insert Error: "+err,err)
7568}target.innerHTML=escapeForCss(previousValue);
7569row.repObject=undefined;
7570return
7571}}else{rule=undefined
7572}row.repObject=rule;
7573if(!oldRule){var ruleId="new/"+value+"/"+(++CSSRuleEditor.uniquifier);
7574row.setAttribute("ruleId",ruleId)
7575}this.panel.markChange(this.panel.name=="stylesheet")
7576}});
7577function StyleSheetEditor(doc){this.box=this.tag.replace({},doc,this);
7578this.input=this.box.firstChild
7579}StyleSheetEditor.prototype=domplate(Firebug.BaseEditor,{multiLine:true,tag:DIV(TEXTAREA({"class":"styleSheetEditor fullPanelEditor",oninput:"$onInput"})),getValue:function(){return this.input.value
7580},setValue:function(value){return this.input.value=value
7581},show:function(target,panel,value,textSize,targetSize){this.target=target;
7582this.panel=panel;
7583this.panel.panelNode.appendChild(this.box);
7584this.input.value=value;
7585this.input.focus();
7586var command=Firebug.chrome.$("cmd_toggleCSSEditing");
7587command.setAttribute("checked",true)
7588},hide:function(){var command=Firebug.chrome.$("cmd_toggleCSSEditing");
7589command.setAttribute("checked",false);
7590if(this.box.parentNode==this.panel.panelNode){this.panel.panelNode.removeChild(this.box)
7591}delete this.target;
7592delete this.panel;
7593delete this.styleSheet
7594},saveEdit:function(target,value,previousValue){Firebug.CSSModule.freeEdit(this.styleSheet,value)
7595},endEditing:function(){this.panel.refresh();
7596return true
7597},onInput:function(){Firebug.Editor.update()
7598},scrollToLine:function(line,offset){this.startMeasuring(this.input);
7599var lineHeight=this.measureText().height;
7600this.stopMeasuring();
7601this.input.scrollTop=(line*lineHeight)+offset
7602}});
7603var rgbToHex=function rgbToHex(value){return value.replace(/\brgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)/gi,rgbToHexReplacer)
7604};
7605var rgbToHexReplacer=function(_,r,g,b){return"#"+((1<<24)+(r<<16)+(g<<8)+(b<<0)).toString(16).substr(-6).toUpperCase()
7606};
7607var stripUnits=function stripUnits(value){return value.replace(/(url\(.*?\)|[^0]\S*\s*)|0(%|em|ex|px|in|cm|mm|pt|pc)(\s|$)/gi,stripUnitsReplacer)
7608};
7609var stripUnitsReplacer=function(_,skip,remove,whitespace){return skip||("0"+whitespace)
7610};
7611function parsePriority(value){var rePriority=/(.*?)\s*(!important)?$/;
7612var m=rePriority.exec(value);
7613var propValue=m?m[1]:"";
7614var priority=m&&m[2]?"important":"";
7615return{value:propValue,priority:priority}
7616}function parseURLValue(value){var m=reURL.exec(value);
7617return m?m[1]:""
7618}function parseRepeatValue(value){var m=reRepeat.exec(value);
7619return m?m[0]:""
7620}function parseCSSValue(value,offset){var start=0;
7621var m;
7622while(1){m=reSplitCSS.exec(value);
7623if(m&&m.index+m[0].length<offset){value=value.substr(m.index+m[0].length);
7624start+=m.index+m[0].length;
7625offset-=m.index+m[0].length
7626}else{break
7627}}if(m){var type;
7628if(m[1]){type="url"
7629}else{if(m[2]||m[3]){type="rgb"
7630}else{if(m[4]){type="int"
7631}}}return{value:m[0],start:start+m.index,end:start+m.index+(m[0].length-1),type:type}
7632}}function findPropByName(props,name){for(var i=0;
7633i<props.length;
7634++i){if(props[i].name==name){return i
7635}}}function sortProperties(props){props.sort(function(a,b){return a.name>b.name?1:-1
7636})
7637}function getTopmostRuleLine(panelNode){for(var child=panelNode.firstChild;
7638child;
7639child=child.nextSibling){if(child.offsetTop+child.offsetHeight>panelNode.scrollTop){var rule=child.repObject;
7640if(rule){return{line:domUtils.getRuleLine(rule),offset:panelNode.scrollTop-child.offsetTop}
7641}}}return 0
7642}function getStyleSheetCSS(sheet,context){if(sheet.ownerNode instanceof HTMLStyleElement){return sheet.ownerNode.innerHTML
7643}else{return context.sourceCache.load(sheet.href).join("")
7644}}function getStyleSheetOwnerNode(sheet){for(;
7645sheet&&!sheet.ownerNode;
7646sheet=sheet.parentStyleSheet){}return sheet.ownerNode
7647}function scrollSelectionIntoView(panel){var selCon=getSelectionController(panel);
7648selCon.scrollSelectionIntoView(nsISelectionController.SELECTION_NORMAL,nsISelectionController.SELECTION_FOCUS_REGION,true)
7649}function getSelectionController(panel){var browser=Firebug.chrome.getPanelBrowser(panel);
7650return browser.docShell.QueryInterface(nsIInterfaceRequestor).getInterface(nsISelectionDisplay).QueryInterface(nsISelectionController)
7651}Firebug.registerModule(Firebug.CSSModule);
7652Firebug.registerPanel(Firebug.CSSStyleSheetPanel);
7653Firebug.registerPanel(CSSElementPanel);
7654Firebug.registerPanel(CSSComputedElementPanel)
7655}});
7656FBL.ns(function(){with(FBL){Firebug.Script=extend(Firebug.Module,{getPanel:function(){return Firebug.chrome?Firebug.chrome.getPanel("Script"):null
7657},selectSourceCode:function(index){this.getPanel().selectSourceCode(index)
7658}});
7659Firebug.registerModule(Firebug.Script);
7660function ScriptPanel(){}ScriptPanel.prototype=extend(Firebug.Panel,{name:"Script",title:"Script",selectIndex:0,sourceIndex:-1,options:{hasToolButtons:true},create:function(){Firebug.Panel.create.apply(this,arguments);
7661this.onChangeSelect=bind(this.onChangeSelect,this);
7662var doc=Firebug.browser.document;
7663var scripts=doc.getElementsByTagName("script");
7664var selectNode=this.selectNode=createElement("select");
7665for(var i=0,script;
7666script=scripts[i];
7667i++){if(Firebug.ignoreFirebugElements&&script.getAttribute("firebugIgnore")){continue
7668}var fileName=getFileName(script.src)||getFileName(doc.location.href);
7669var option=createElement("option",{value:i});
7670option.appendChild(Firebug.chrome.document.createTextNode(fileName));
7671selectNode.appendChild(option)
7672}this.toolButtonsNode.appendChild(selectNode)
7673},initialize:function(){this.selectSourceCode(this.selectIndex);
7674Firebug.Panel.initialize.apply(this,arguments);
7675addEvent(this.selectNode,"change",this.onChangeSelect)
7676},shutdown:function(){removeEvent(this.selectNode,"change",this.onChangeSelect);
7677Firebug.Panel.shutdown.apply(this,arguments)
7678},detach:function(oldChrome,newChrome){Firebug.Panel.detach.apply(this,arguments);
7679var oldPanel=oldChrome.getPanel("Script");
7680var index=oldPanel.selectIndex;
7681this.selectNode.selectedIndex=index;
7682this.selectIndex=index;
7683this.sourceIndex=-1
7684},onChangeSelect:function(event){var select=this.selectNode;
7685this.selectIndex=select.selectedIndex;
7686var option=select.options[select.selectedIndex];
7687if(!option){return
7688}var selectedSourceIndex=parseInt(option.value);
7689this.renderSourceCode(selectedSourceIndex)
7690},selectSourceCode:function(index){var select=this.selectNode;
7691select.selectedIndex=index;
7692var option=select.options[index];
7693if(!option){return
7694}var selectedSourceIndex=parseInt(option.value);
7695this.renderSourceCode(selectedSourceIndex)
7696},renderSourceCode:function(index){if(this.sourceIndex!=index){var renderProcess=function renderProcess(src){var html=[],hl=0;
7697src=isIE&&!isExternal?src+"\n":"\n"+src;
7698src=src.replace(/\n\r|\r\n/g,"\n");
7699var match=src.match(/[\n]/g);
7700var lines=match?match.length:0;
7701html[hl++]='<div><div class="sourceBox" style="left:';
7702html[hl++]=35+7*(lines+"").length;
7703html[hl++]='px;"><pre class="sourceCode">';
7704html[hl++]=escapeHTML(src);
7705html[hl++]='</pre></div><div class="lineNo">';
7706for(var l=1,lines;
7707l<=lines;
7708l++){html[hl++]='<div line="';
7709html[hl++]=l;
7710html[hl++]='">';
7711html[hl++]=l;
7712html[hl++]="</div>"
7713}html[hl++]="</div></div>";
7714updatePanel(html)
7715};
7716var updatePanel=function(html){self.panelNode.innerHTML=html.join("");
7717setTimeout(function(){self.synchronizeUI()
7718},0)
7719};
7720var onFailure=function(){FirebugReps.Warning.tag.replace({object:"AccessRestricted"},self.panelNode)
7721};
7722var self=this;
7723var doc=Firebug.browser.document;
7724var script=doc.getElementsByTagName("script")[index];
7725var url=getScriptURL(script);
7726var isExternal=url&&url!=doc.location.href;
7727try{if(Firebug.disableResourceFetching){renderProcess(Firebug.Lite.Proxy.fetchResourceDisabledMessage)
7728}else{if(isExternal){Ajax.request({url:url,onSuccess:renderProcess,onFailure:onFailure})
7729}else{var src=script.innerHTML;
7730renderProcess(src)
7731}}}catch(e){onFailure()
7732}this.sourceIndex=index
7733}}});
7734Firebug.registerPanel(ScriptPanel);
7735var getScriptURL=function getScriptURL(script){var reFile=/([^\/\?#]+)(#.+)?$/;
7736var rePath=/^(.*\/)/;
7737var reProtocol=/^\w+:\/\//;
7738var path=null;
7739var doc=Firebug.browser.document;
7740var file=reFile.exec(script.src);
7741if(file){var fileName=file[1];
7742var fileOptions=file[2];
7743if(reProtocol.test(script.src)){path=rePath.exec(script.src)[1]
7744}else{var r=rePath.exec(script.src);
7745var src=r?r[1]:script.src;
7746var backDir=/^((?:\.\.\/)+)(.*)/.exec(src);
7747var reLastDir=/^(.*\/)[^\/]+\/$/;
7748path=rePath.exec(doc.location.href)[1];
7749if(backDir){var j=backDir[1].length/3;
7750var p;
7751while(j-->0){path=reLastDir.exec(path)[1]
7752}path+=backDir[2]
7753}else{if(src.indexOf("/")!=-1){if(/^\.\/./.test(src)){path+=src.substring(2)
7754}else{if(/^\/./.test(src)){var domain=/^(\w+:\/\/[^\/]+)/.exec(path);
7755path=domain[1]+src
7756}else{path+=src
7757}}}}}}var m=path&&path.match(/([^\/]+)\/$/)||null;
7758if(path&&m){return path+fileName
7759}};
7760var getFileName=function getFileName(path){if(!path){return""
7761}var match=path&&path.match(/[^\/]+(\?.*)?(#.*)?$/);
7762return match&&match[0]||path
7763}
7764}});
7765FBL.ns(function(){with(FBL){var ElementCache=Firebug.Lite.Cache.Element;
7766var insertSliceSize=18;
7767var insertInterval=40;
7768var ignoreVars={__firebug__:1,"eval":1,java:1,sun:1,Packages:1,JavaArray:1,JavaMember:1,JavaObject:1,JavaClass:1,JavaPackage:1,_firebug:1,_FirebugConsole:1,_FirebugCommandLine:1};
7769if(Firebug.ignoreFirebugElements){ignoreVars[Firebug.Lite.Cache.ID]=1
7770}var memberPanelRep=isIE6?{"class":"memberLabel $member.type\\Label",href:"javacript:void(0)"}:{"class":"memberLabel $member.type\\Label"};
7771var RowTag=TR({"class":"memberRow $member.open $member.type\\Row",$hasChildren:"$member.hasChildren",role:"presentation",level:"$member.level"},TD({"class":"memberLabelCell",style:"padding-left: $member.indent\\px",role:"presentation"},A(memberPanelRep,SPAN({},"$member.name"))),TD({"class":"memberValueCell",role:"presentation"},TAG("$member.tag",{object:"$member.value"})));
7772var WatchRowTag=TR({"class":"watchNewRow",level:0},TD({"class":"watchEditCell",colspan:2},DIV({"class":"watchEditBox a11yFocusNoTab",role:"button",tabindex:"0","aria-label":$STR("press enter to add new watch expression")},$STR("NewWatch"))));
7773var SizerRow=TR({role:"presentation"},TD({width:"30%"}),TD({width:"70%"}));
7774var domTableClass=isIElt8?"domTable domTableIE":"domTable";
7775var DirTablePlate=domplate(Firebug.Rep,{tag:TABLE({"class":domTableClass,cellpadding:0,cellspacing:0,onclick:"$onClick",role:"tree"},TBODY({role:"presentation"},SizerRow,FOR("member","$object|memberIterator",RowTag))),watchTag:TABLE({"class":domTableClass,cellpadding:0,cellspacing:0,_toggles:"$toggles",_domPanel:"$domPanel",onclick:"$onClick",role:"tree"},TBODY({role:"presentation"},SizerRow,WatchRowTag)),tableTag:TABLE({"class":domTableClass,cellpadding:0,cellspacing:0,_toggles:"$toggles",_domPanel:"$domPanel",onclick:"$onClick",role:"tree"},TBODY({role:"presentation"},SizerRow)),rowTag:FOR("member","$members",RowTag),memberIterator:function(object,level){return getMembers(object,level)
7776},onClick:function(event){if(!isLeftClick(event)){return
7777}var target=event.target||event.srcElement;
7778var row=getAncestorByClass(target,"memberRow");
7779var label=getAncestorByClass(target,"memberLabel");
7780if(label&&hasClass(row,"hasChildren")){var row=label.parentNode.parentNode;
7781this.toggleRow(row)
7782}else{var object=Firebug.getRepObject(target);
7783if(typeof(object)=="function"){Firebug.chrome.select(object,"script");
7784cancelEvent(event)
7785}else{if(event.detail==2&&!object){var panel=row.parentNode.parentNode.domPanel;
7786if(panel){var rowValue=panel.getRowPropertyValue(row);
7787if(typeof(rowValue)=="boolean"){panel.setPropertyValue(row,!rowValue)
7788}else{panel.editProperty(row)
7789}cancelEvent(event)
7790}}}}return false
7791},toggleRow:function(row){var level=parseInt(row.getAttribute("level"));
7792var toggles=row.parentNode.parentNode.toggles;
7793if(hasClass(row,"opened")){removeClass(row,"opened");
7794if(toggles){var path=getPath(row);
7795for(var i=0;
7796i<path.length;
7797++i){if(i==path.length-1){delete toggles[path[i]]
7798}else{toggles=toggles[path[i]]
7799}}}var rowTag=this.rowTag;
7800var tbody=row.parentNode;
7801setTimeout(function(){for(var firstRow=row.nextSibling;
7802firstRow;
7803firstRow=row.nextSibling){if(parseInt(firstRow.getAttribute("level"))<=level){break
7804}tbody.removeChild(firstRow)
7805}},row.insertTimeout?row.insertTimeout:0)
7806}else{setClass(row,"opened");
7807if(toggles){var path=getPath(row);
7808for(var i=0;
7809i<path.length;
7810++i){var name=path[i];
7811if(toggles.hasOwnProperty(name)){toggles=toggles[name]
7812}else{toggles=toggles[name]={}
7813}}}var value=row.lastChild.firstChild.repObject;
7814var members=getMembers(value,level+1);
7815var rowTag=this.rowTag;
7816var lastRow=row;
7817var delay=0;
7818while(members.length){with({slice:members.splice(0,insertSliceSize),isLast:!members.length}){setTimeout(function(){if(lastRow.parentNode){var result=rowTag.insertRows({members:slice},lastRow);
7819lastRow=result[1]
7820}if(isLast){row.removeAttribute("insertTimeout")
7821}},delay)
7822}delay+=insertInterval
7823}row.insertTimeout=delay
7824}}});
7825Firebug.DOMBasePanel=function(){};
7826Firebug.DOMBasePanel.prototype=extend(Firebug.Panel,{tag:DirTablePlate.tableTag,getRealObject:function(object){if(!object){return object
7827}if(object.wrappedJSObject){return object.wrappedJSObject
7828}return object
7829},rebuild:function(update,scrollTop){var members=getMembers(this.selection);
7830expandMembers(members,this.toggles,0,0);
7831this.showMembers(members,update,scrollTop);
7832if(!this.parentPanel){updateStatusBar(this)
7833}},showMembers:function(members,update,scrollTop){if(this.timeouts){for(var i=0;
7834i<this.timeouts.length;
7835++i){this.context.clearTimeout(this.timeouts[i])
7836}delete this.timeouts
7837}if(!members.length){return this.showEmptyMembers()
7838}var panelNode=this.panelNode;
7839var priorScrollTop=scrollTop==undefined?panelNode.scrollTop:scrollTop;
7840var offscreen=update&&panelNode.firstChild;
7841var dest=offscreen?panelNode.ownerDocument:panelNode;
7842var table=this.tag.replace({domPanel:this,toggles:this.toggles},dest);
7843var tbody=table.lastChild;
7844var rowTag=DirTablePlate.rowTag;
7845var panel=this;
7846var result;
7847var timeouts=[];
7848var delay=0;
7849var renderStart=new Date().getTime();
7850while(members.length){with({slice:members.splice(0,insertSliceSize),isLast:!members.length}){timeouts.push(this.context.setTimeout(function(){if(!tbody.lastChild){return
7851}result=rowTag.insertRows({members:slice},tbody.lastChild);
7852if((panelNode.scrollHeight+panelNode.offsetHeight)>=priorScrollTop){panelNode.scrollTop=priorScrollTop
7853}},delay));
7854delay+=insertInterval
7855}}if(offscreen){timeouts.push(this.context.setTimeout(function(){if(panelNode.firstChild){panelNode.replaceChild(table,panelNode.firstChild)
7856}else{panelNode.appendChild(table)
7857}panelNode.scrollTop=priorScrollTop
7858},delay))
7859}else{timeouts.push(this.context.setTimeout(function(){panelNode.scrollTop=scrollTop==undefined?0:scrollTop
7860},delay))
7861}this.timeouts=timeouts
7862},showEmptyMembers:function(){FirebugReps.Warning.tag.replace({object:"NoMembersWarning"},this.panelNode)
7863},findPathObject:function(object){var pathIndex=-1;
7864for(var i=0;
7865i<this.objectPath.length;
7866++i){if(this.getPathObject(i)===object){return i
7867}}return -1
7868},getPathObject:function(index){var object=this.objectPath[index];
7869if(object instanceof Property){return object.getObject()
7870}else{return object
7871}},getRowObject:function(row){var object=getRowOwnerObject(row);
7872return object?object:this.selection
7873},getRowPropertyValue:function(row){var object=this.getRowObject(row);
7874object=this.getRealObject(object);
7875if(object){var propName=getRowName(row);
7876if(object instanceof jsdIStackFrame){return Firebug.Debugger.evaluate(propName,this.context)
7877}else{return object[propName]
7878}}},onMouseMove:function(event){var target=event.srcElement||event.target;
7879var object=getAncestorByClass(target,"objectLink-element");
7880object=object?object.repObject:null;
7881if(object&&instanceOf(object,"Element")&&object.nodeType==1){if(object!=lastHighlightedObject){Firebug.Inspector.drawBoxModel(object);
7882object=lastHighlightedObject
7883}}else{Firebug.Inspector.hideBoxModel()
7884}},create:function(){this.context=Firebug.browser;
7885this.objectPath=[];
7886this.propertyPath=[];
7887this.viewPath=[];
7888this.pathIndex=-1;
7889this.toggles={};
7890Firebug.Panel.create.apply(this,arguments);
7891this.panelNode.style.padding="0 1px"
7892},initialize:function(){Firebug.Panel.initialize.apply(this,arguments);
7893addEvent(this.panelNode,"mousemove",this.onMouseMove)
7894},shutdown:function(){removeEvent(this.panelNode,"mousemove",this.onMouseMove);
7895Firebug.Panel.shutdown.apply(this,arguments)
7896},ishow:function(state){if(this.context.loaded&&!this.selection){if(!state){this.select(null);
7897return
7898}if(state.viewPath){this.viewPath=state.viewPath
7899}if(state.propertyPath){this.propertyPath=state.propertyPath
7900}var defaultObject=this.getDefaultSelection(this.context);
7901var selectObject=defaultObject;
7902if(state.firstSelection){var restored=state.firstSelection(this.context);
7903if(restored){selectObject=restored;
7904this.objectPath=[defaultObject,restored]
7905}else{this.objectPath=[defaultObject]
7906}}else{this.objectPath=[defaultObject]
7907}if(this.propertyPath.length>1){for(var i=1;
7908i<this.propertyPath.length;
7909++i){var name=this.propertyPath[i];
7910if(!name){continue
7911}var object=selectObject;
7912try{selectObject=object[name]
7913}catch(exc){selectObject=null
7914}if(selectObject){this.objectPath.push(new Property(object,name))
7915}else{this.viewPath.splice(i);
7916this.propertyPath.splice(i);
7917this.objectPath.splice(i);
7918selectObject=this.getPathObject(this.objectPath.length-1);
7919break
7920}}}var selection=state.pathIndex<=this.objectPath.length-1?this.getPathObject(state.pathIndex):this.getPathObject(this.objectPath.length-1);
7921this.select(selection)
7922}},supportsObject:function(object){if(object==null){return 1000
7923}if(typeof(object)=="undefined"){return 1000
7924}else{if(object instanceof SourceLink){return 0
7925}else{return 1
7926}}},refresh:function(){this.rebuild(true)
7927},updateSelection:function(object){var previousIndex=this.pathIndex;
7928var previousView=previousIndex==-1?null:this.viewPath[previousIndex];
7929var newPath=this.pathToAppend;
7930delete this.pathToAppend;
7931var pathIndex=this.findPathObject(object);
7932if(newPath||pathIndex==-1){this.toggles={};
7933if(newPath){if(previousView){if(this.panelNode.scrollTop){previousView.scrollTop=this.panelNode.scrollTop
7934}var start=previousIndex+1,length=this.objectPath.length-start;
7935this.objectPath.splice(start,length);
7936this.propertyPath.splice(start,length);
7937this.viewPath.splice(start,length)
7938}var value=this.getPathObject(previousIndex);
7939if(!value){if(FBTrace.DBG_ERRORS){FBTrace.sysout("dom.updateSelection no pathObject for "+previousIndex+"\n")
7940}return
7941}for(var i=0,length=newPath.length;
7942i<length;
7943++i){var name=newPath[i];
7944var object=value;
7945try{value=value[name]
7946}catch(exc){if(FBTrace.DBG_ERRORS){FBTrace.sysout("dom.updateSelection FAILS at path_i="+i+" for name:"+name+"\n")
7947}return
7948}++this.pathIndex;
7949this.objectPath.push(new Property(object,name));
7950this.propertyPath.push(name);
7951this.viewPath.push({toggles:this.toggles,scrollTop:0})
7952}}else{this.toggles={};
7953var win=Firebug.browser.window;
7954if(object===win){this.pathIndex=0;
7955this.objectPath=[win];
7956this.propertyPath=[null];
7957this.viewPath=[{toggles:this.toggles,scrollTop:0}]
7958}else{this.pathIndex=1;
7959this.objectPath=[win,object];
7960this.propertyPath=[null,null];
7961this.viewPath=[{toggles:{},scrollTop:0},{toggles:this.toggles,scrollTop:0}]
7962}}this.panelNode.scrollTop=0;
7963this.rebuild()
7964}else{this.pathIndex=pathIndex;
7965var view=this.viewPath[pathIndex];
7966this.toggles=view.toggles;
7967if(previousView&&this.panelNode.scrollTop){previousView.scrollTop=this.panelNode.scrollTop
7968}this.rebuild(false,view.scrollTop)
7969}},getObjectPath:function(object){return this.objectPath
7970},getDefaultSelection:function(){return Firebug.browser.window
7971}});
7972var updateStatusBar=function(panel){var path=panel.propertyPath;
7973var index=panel.pathIndex;
7974var r=[];
7975for(var i=0,l=path.length;
7976i<l;
7977i++){r.push(i==index?'<a class="fbHover fbButton fbBtnSelected" ':'<a class="fbHover fbButton" ');
7978r.push("pathIndex=");
7979r.push(i);
7980if(isIE6){r.push(' href="javascript:void(0)"')
7981}r.push(">");
7982r.push(i==0?"window":path[i]||"Object");
7983r.push("</a>");
7984if(i<l-1){r.push('<span class="fbStatusSeparator">&gt;</span>')
7985}}panel.statusBarNode.innerHTML=r.join("")
7986};
7987var DOMMainPanel=Firebug.DOMPanel=function(){};
7988Firebug.DOMPanel.DirTable=DirTablePlate;
7989DOMMainPanel.prototype=extend(Firebug.DOMBasePanel.prototype,{onClickStatusBar:function(event){var target=event.srcElement||event.target;
7990var element=getAncestorByClass(target,"fbHover");
7991if(element){var pathIndex=element.getAttribute("pathIndex");
7992if(pathIndex){this.select(this.getPathObject(pathIndex))
7993}}},selectRow:function(row,target){if(!target){target=row.lastChild.firstChild
7994}if(!target||!target.repObject){return
7995}this.pathToAppend=getPath(row);
7996var valueBox=row.lastChild.firstChild;
7997if(hasClass(valueBox,"objectBox-array")){var arrayIndex=FirebugReps.Arr.getItemIndex(target);
7998this.pathToAppend.push(arrayIndex)
7999}this.select(target.repObject,true)
8000},onClick:function(event){var target=event.srcElement||event.target;
8001var repNode=Firebug.getRepNode(target);
8002if(repNode){var row=getAncestorByClass(target,"memberRow");
8003if(row){this.selectRow(row,repNode);
8004cancelEvent(event)
8005}}},name:"DOM",title:"DOM",searchable:true,statusSeparator:">",options:{hasToolButtons:true,hasStatusBar:true},create:function(){Firebug.DOMBasePanel.prototype.create.apply(this,arguments);
8006this.onClick=bind(this.onClick,this);
8007this.onClickStatusBar=bind(this.onClickStatusBar,this);
8008this.panelNode.style.padding="0 1px"
8009},initialize:function(oldPanelNode){Firebug.DOMBasePanel.prototype.initialize.apply(this,arguments);
8010addEvent(this.panelNode,"click",this.onClick);
8011this.ishow();
8012addEvent(this.statusBarNode,"click",this.onClickStatusBar)
8013},shutdown:function(){removeEvent(this.panelNode,"click",this.onClick);
8014Firebug.DOMBasePanel.prototype.shutdown.apply(this,arguments)
8015}});
8016Firebug.registerPanel(DOMMainPanel);
8017var getMembers=function getMembers(object,level){if(!level){level=0
8018}var ordinals=[],userProps=[],userClasses=[],userFuncs=[],domProps=[],domFuncs=[],domConstants=[];
8019try{var domMembers=getDOMMembers(object);
8020if(object.wrappedJSObject){var insecureObject=object.wrappedJSObject
8021}else{var insecureObject=object
8022}if(isIE&&isFunction(object)){addMember("user",userProps,"prototype",object.prototype,level)
8023}for(var name in insecureObject){if(ignoreVars[name]==1){continue
8024}var val;
8025try{val=insecureObject[name]
8026}catch(exc){if(FBTrace.DBG_ERRORS&&FBTrace.DBG_DOM){FBTrace.sysout("dom.getMembers cannot access "+name,exc)
8027}}var ordinal=parseInt(name);
8028if(ordinal||ordinal==0){addMember("ordinal",ordinals,name,val,level)
8029}else{if(isFunction(val)){if(isClassFunction(val)&&!(name in domMembers)){addMember("userClass",userClasses,name,val,level)
8030}else{if(name in domMembers){addMember("domFunction",domFuncs,name,val,level,domMembers[name])
8031}else{addMember("userFunction",userFuncs,name,val,level)
8032}}}else{var prefix="";
8033if(name in domMembers&&!(name in domConstantMap)){addMember("dom",domProps,(prefix+name),val,level,domMembers[name])
8034}else{if(name in domConstantMap){addMember("dom",domConstants,(prefix+name),val,level)
8035}else{addMember("user",userProps,(prefix+name),val,level)
8036}}}}}}catch(exc){throw exc;
8037if(FBTrace.DBG_ERRORS&&FBTrace.DBG_DOM){FBTrace.sysout("dom.getMembers FAILS: ",exc)
8038}}function sortName(a,b){return a.name>b.name?1:-1
8039}function sortOrder(a,b){return a.order>b.order?1:-1
8040}var members=[];
8041members.push.apply(members,ordinals);
8042Firebug.showUserProps=true;
8043Firebug.showUserFuncs=true;
8044Firebug.showDOMProps=true;
8045Firebug.showDOMFuncs=true;
8046Firebug.showDOMConstants=true;
8047if(Firebug.showUserProps){userProps.sort(sortName);
8048members.push.apply(members,userProps)
8049}if(Firebug.showUserFuncs){userClasses.sort(sortName);
8050members.push.apply(members,userClasses);
8051userFuncs.sort(sortName);
8052members.push.apply(members,userFuncs)
8053}if(Firebug.showDOMProps){domProps.sort(sortName);
8054members.push.apply(members,domProps)
8055}if(Firebug.showDOMFuncs){domFuncs.sort(sortName);
8056members.push.apply(members,domFuncs)
8057}if(Firebug.showDOMConstants){members.push.apply(members,domConstants)
8058}return members
8059};
8060function expandMembers(members,toggles,offset,level){var expanded=0;
8061for(var i=offset;
8062i<members.length;
8063++i){var member=members[i];
8064if(member.level>level){break
8065}if(toggles.hasOwnProperty(member.name)){member.open="opened";
8066var newMembers=getMembers(member.value,level+1);
8067var args=[i+1,0];
8068args.push.apply(args,newMembers);
8069members.splice.apply(members,args);
8070expanded+=newMembers.length;
8071i+=newMembers.length+expandMembers(members,toggles[member.name],i+1,level+1)
8072}}return expanded
8073}function isClassFunction(fn){try{for(var name in fn.prototype){return true
8074}}catch(exc){}return false
8075}FBL.ErrorCopy=function(message){this.message=message
8076};
8077var addMember=function addMember(type,props,name,value,level,order){var rep=Firebug.getRep(value);
8078var tag=rep.shortTag?rep.shortTag:rep.tag;
8079var ErrorCopy=function(){};
8080var valueType=typeof(value);
8081var hasChildren=hasProperties(value)&&!(value instanceof ErrorCopy)&&(isFunction(value)||(valueType=="object"&&value!=null)||(valueType=="string"&&value.length>Firebug.stringCropLength));
8082props.push({name:name,value:value,type:type,rowClass:"memberRow-"+type,open:"",order:order,level:level,indent:level*16,hasChildren:hasChildren,tag:tag})
8083};
8084var getWatchRowIndex=function getWatchRowIndex(row){var index=-1;
8085for(;
8086row&&hasClass(row,"watchRow");
8087row=row.previousSibling){++index
8088}return index
8089};
8090var getRowName=function getRowName(row){var node=row.firstChild;
8091return node.textContent?node.textContent:node.innerText
8092};
8093var getRowValue=function getRowValue(row){return row.lastChild.firstChild.repObject
8094};
8095var getRowOwnerObject=function getRowOwnerObject(row){var parentRow=getParentRow(row);
8096if(parentRow){return getRowValue(parentRow)
8097}};
8098var getParentRow=function getParentRow(row){var level=parseInt(row.getAttribute("level"))-1;
8099for(row=row.previousSibling;
8100row;
8101row=row.previousSibling){if(parseInt(row.getAttribute("level"))==level){return row
8102}}};
8103var getPath=function getPath(row){var name=getRowName(row);
8104var path=[name];
8105var level=parseInt(row.getAttribute("level"))-1;
8106for(row=row.previousSibling;
8107row;
8108row=row.previousSibling){if(parseInt(row.getAttribute("level"))==level){var name=getRowName(row);
8109path.splice(0,0,name);
8110--level
8111}}return path
8112};
8113Firebug.DOM=extend(Firebug.Module,{getPanel:function(){return Firebug.chrome?Firebug.chrome.getPanel("DOM"):null
8114}});
8115Firebug.registerModule(Firebug.DOM);
8116var lastHighlightedObject;
8117function DOMSidePanel(){}DOMSidePanel.prototype=extend(Firebug.DOMBasePanel.prototype,{selectRow:function(row,target){if(!target){target=row.lastChild.firstChild
8118}if(!target||!target.repObject){return
8119}this.pathToAppend=getPath(row);
8120var valueBox=row.lastChild.firstChild;
8121if(hasClass(valueBox,"objectBox-array")){var arrayIndex=FirebugReps.Arr.getItemIndex(target);
8122this.pathToAppend.push(arrayIndex)
8123}var object=target.repObject;
8124if(instanceOf(object,"Element")){Firebug.HTML.selectTreeNode(ElementCache(object))
8125}else{Firebug.chrome.selectPanel("DOM");
8126Firebug.chrome.getPanel("DOM").select(object,true)
8127}},onClick:function(event){var target=event.srcElement||event.target;
8128var repNode=Firebug.getRepNode(target);
8129if(repNode){var row=getAncestorByClass(target,"memberRow");
8130if(row){this.selectRow(row,repNode);
8131cancelEvent(event)
8132}}},name:"DOMSidePanel",parentPanel:"HTML",title:"DOM",options:{hasToolButtons:true},isInitialized:false,create:function(){Firebug.DOMBasePanel.prototype.create.apply(this,arguments);
8133this.onClick=bind(this.onClick,this)
8134},initialize:function(){Firebug.DOMBasePanel.prototype.initialize.apply(this,arguments);
8135addEvent(this.panelNode,"click",this.onClick);
8136var selection=ElementCache.get(Firebug.context.persistedState.selectedHTMLElementId);
8137if(selection){this.select(selection,true)
8138}},shutdown:function(){removeEvent(this.panelNode,"click",this.onClick);
8139Firebug.DOMBasePanel.prototype.shutdown.apply(this,arguments)
8140},reattach:function(oldChrome){this.toggles=oldChrome.getPanel("DOMSidePanel").toggles
8141}});
8142Firebug.registerPanel(DOMSidePanel)
8143}});
8144FBL.FBTrace={};
8145(function(){var traceOptions={DBG_TIMESTAMP:1,DBG_INITIALIZE:1,DBG_CHROME:1,DBG_ERRORS:1,DBG_DISPATCH:1,DBG_CSS:1};
8146this.module=null;
8147this.initialize=function(){if(!this.messageQueue){this.messageQueue=[]
8148}for(var name in traceOptions){this[name]=traceOptions[name]
8149}};
8150this.sysout=function(){return this.logFormatted(arguments,"")
8151};
8152this.dumpProperties=function(title,object){return this.logFormatted("dumpProperties() not supported.","warning")
8153};
8154this.dumpStack=function(){return this.logFormatted("dumpStack() not supported.","warning")
8155};
8156this.flush=function(module){this.module=module;
8157var queue=this.messageQueue;
8158this.messageQueue=[];
8159for(var i=0;
8160i<queue.length;
8161++i){this.writeMessage(queue[i][0],queue[i][1],queue[i][2])
8162}};
8163this.getPanel=function(){return this.module?this.module.getPanel():null
8164};
8165this.logFormatted=function(objects,className){var html=this.DBG_TIMESTAMP?[getTimestamp()," | "]:[];
8166var length=objects.length;
8167for(var i=0;
8168i<length;
8169++i){appendText(" ",html);
8170var object=objects[i];
8171if(i==0){html.push("<b>");
8172appendText(object,html);
8173html.push("</b>")
8174}else{appendText(object,html)
8175}}return this.logRow(html,className)
8176};
8177this.logRow=function(message,className){var panel=this.getPanel();
8178if(panel&&panel.panelNode){this.writeMessage(message,className)
8179}else{this.messageQueue.push([message,className])
8180}return this.LOG_COMMAND
8181};
8182this.writeMessage=function(message,className){var container=this.getPanel().containerNode;
8183var isScrolledToBottom=container.scrollTop+container.offsetHeight>=container.scrollHeight;
8184this.writeRow.call(this,message,className);
8185if(isScrolledToBottom){container.scrollTop=container.scrollHeight-container.offsetHeight
8186}};
8187this.appendRow=function(row){var container=this.getPanel().panelNode;
8188container.appendChild(row)
8189};
8190this.writeRow=function(message,className){var row=this.getPanel().panelNode.ownerDocument.createElement("div");
8191row.className="logRow"+(className?" logRow-"+className:"");
8192row.innerHTML=message.join("");
8193this.appendRow(row)
8194};
8195function appendText(object,html){html.push(escapeHTML(objectToString(object)))
8196}function getTimestamp(){var now=new Date();
8197var ms=""+(now.getMilliseconds()/1000).toFixed(3);
8198ms=ms.substr(2);
8199return now.toLocaleTimeString()+"."+ms
8200}var HTMLtoEntity={"<":"&lt;",">":"&gt;","&":"&amp;","'":"&#39;",'"':"&quot;"};
8201function replaceChars(ch){return HTMLtoEntity[ch]
8202}function escapeHTML(value){return(value+"").replace(/[<>&"']/g,replaceChars)
8203}function objectToString(object){try{return object+""
8204}catch(exc){return null
8205}}}).apply(FBL.FBTrace);
8206FBL.ns(function(){with(FBL){if(!Env.Options.enableTrace){return
8207}Firebug.Trace=extend(Firebug.Module,{getPanel:function(){return Firebug.chrome?Firebug.chrome.getPanel("Trace"):null
8208},clear:function(){this.getPanel().panelNode.innerHTML=""
8209}});
8210Firebug.registerModule(Firebug.Trace);
8211function TracePanel(){}TracePanel.prototype=extend(Firebug.Panel,{name:"Trace",title:"Trace",options:{hasToolButtons:true,innerHTMLSync:true},create:function(){Firebug.Panel.create.apply(this,arguments);
8212this.clearButton=new Button({caption:"Clear",title:"Clear FBTrace logs",owner:Firebug.Trace,onClick:Firebug.Trace.clear})
8213},initialize:function(){Firebug.Panel.initialize.apply(this,arguments);
8214this.clearButton.initialize()
8215},shutdown:function(){this.clearButton.shutdown();
8216Firebug.Panel.shutdown.apply(this,arguments)
8217}});
8218Firebug.registerPanel(TracePanel)
8219}});
8220FBL.ns(function(){with(FBL){var modules=[];
8221var panelTypes=[];
8222var panelTypeMap={};
8223var parentPanelMap={};
8224var registerModule=Firebug.registerModule;
8225var registerPanel=Firebug.registerPanel;
8226append(Firebug,{extend:function(fn){if(Firebug.chrome&&Firebug.chrome.addPanel){var namespace=ns(fn);
8227fn.call(namespace,FBL)
8228}else{setTimeout(function(){Firebug.extend(fn)
8229},100)
8230}},registerModule:function(){registerModule.apply(Firebug,arguments);
8231modules.push.apply(modules,arguments);
8232dispatch(modules,"initialize",[]);
8233if(FBTrace.DBG_INITIALIZE){FBTrace.sysout("Firebug.registerModule")
8234}},registerPanel:function(){registerPanel.apply(Firebug,arguments);
8235panelTypes.push.apply(panelTypes,arguments);
8236for(var i=0,panelType;
8237panelType=arguments[i];
8238++i){if(panelType.prototype.name=="Dev"){continue
8239}panelTypeMap[panelType.prototype.name]=arguments[i];
8240var parentPanelName=panelType.prototype.parentPanel;
8241if(parentPanelName){parentPanelMap[parentPanelName]=1
8242}else{var panelName=panelType.prototype.name;
8243var chrome=Firebug.chrome;
8244chrome.addPanel(panelName);
8245var onTabClick=function onTabClick(){chrome.selectPanel(panelName);
8246return false
8247};
8248chrome.addController([chrome.panelMap[panelName].tabNode,"mousedown",onTabClick])
8249}}if(FBTrace.DBG_INITIALIZE){for(var i=0;
8250i<arguments.length;
8251++i){FBTrace.sysout("Firebug.registerPanel",arguments[i].prototype.name)
8252}}}})
8253}});
8254FBL.ns(function(){with(FBL){FirebugChrome.Skin={CSS:'.obscured{left:-999999px !important;}.collapsed{display:none;}[collapsed="true"]{display:none;}#fbCSS{padding:0 !important;}.cssPropDisable{float:left;display:block;width:2em;cursor:default;}.infoTip{z-index:2147483647;position:fixed;padding:2px 3px;border:1px solid #CBE087;background:LightYellow;font-family:Monaco,monospace;color:#000000;display:none;white-space:nowrap;pointer-events:none;}.infoTip[active="true"]{display:block;}.infoTipLoading{width:16px;height:16px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/loading_16.gif) no-repeat;}.infoTipImageBox{font-size:11px;min-width:100px;text-align:center;}.infoTipCaption{font-size:11px;font:Monaco,monospace;}.infoTipLoading > .infoTipImage,.infoTipLoading > .infoTipCaption{display:none;}h1.groupHeader{padding:2px 4px;margin:0 0 4px 0;border-top:1px solid #CCCCCC;border-bottom:1px solid #CCCCCC;background:#eee url(https://getfirebug.com/releases/lite/latest/skin/xp/group.gif) repeat-x;font-size:11px;font-weight:bold;_position:relative;}.inlineEditor,.fixedWidthEditor{z-index:2147483647;position:absolute;display:none;}.inlineEditor{margin-left:-6px;margin-top:-3px;}.textEditorInner,.fixedWidthEditor{margin:0 0 0 0 !important;padding:0;border:none !important;font:inherit;text-decoration:inherit;background-color:#FFFFFF;}.fixedWidthEditor{border-top:1px solid #888888 !important;border-bottom:1px solid #888888 !important;}.textEditorInner{position:relative;top:-7px;left:-5px;outline:none;resize:none;}.textEditorInner1{padding-left:11px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorBorders.png) repeat-y;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorBorders.gif) repeat-y;_overflow:hidden;}.textEditorInner2{position:relative;padding-right:2px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorBorders.png) repeat-y 100% 0;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorBorders.gif) repeat-y 100% 0;_position:fixed;}.textEditorTop1{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.png) no-repeat 100% 0;margin-left:11px;height:10px;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.gif) no-repeat 100% 0;_overflow:hidden;}.textEditorTop2{position:relative;left:-11px;width:11px;height:10px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.png) no-repeat;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.gif) no-repeat;}.textEditorBottom1{position:relative;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.png) no-repeat 100% 100%;margin-left:11px;height:12px;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.gif) no-repeat 100% 100%;}.textEditorBottom2{position:relative;left:-11px;width:11px;height:12px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.png) no-repeat 0 100%;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/textEditorCorners.gif) no-repeat 0 100%;}.panelNode-css{overflow-x:hidden;}.cssSheet > .insertBefore{height:1.5em;}.cssRule{position:relative;margin:0;padding:1em 0 0 6px;font-family:Monaco,monospace;color:#000000;}.cssRule:first-child{padding-top:6px;}.cssElementRuleContainer{position:relative;}.cssHead{padding-right:150px;}.cssProp{}.cssPropName{color:DarkGreen;}.cssPropValue{margin-left:8px;color:DarkBlue;}.cssOverridden span{text-decoration:line-through;}.cssInheritedRule{}.cssInheritLabel{margin-right:0.5em;font-weight:bold;}.cssRule .objectLink-sourceLink{top:0;}.cssProp.editGroup:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/disable.png) no-repeat 2px 1px;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/disable.gif) no-repeat 2px 1px;}.cssProp.editGroup.editing{background:none;}.cssProp.disabledStyle{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/disableHover.png) no-repeat 2px 1px;_background:url(https://getfirebug.com/releases/lite/latest/skin/xp/disableHover.gif) no-repeat 2px 1px;opacity:1;color:#CCCCCC;}.disabledStyle .cssPropName,.disabledStyle .cssPropValue{color:#CCCCCC;}.cssPropValue.editing + .cssSemi,.inlineExpander + .cssSemi{display:none;}.cssPropValue.editing{white-space:nowrap;}.stylePropName{font-weight:bold;padding:0 4px 4px 4px;width:50%;}.stylePropValue{width:50%;}.panelNode-net{overflow-x:hidden;}.netTable{width:100%;}.hideCategory-undefined .category-undefined,.hideCategory-html .category-html,.hideCategory-css .category-css,.hideCategory-js .category-js,.hideCategory-image .category-image,.hideCategory-xhr .category-xhr,.hideCategory-flash .category-flash,.hideCategory-txt .category-txt,.hideCategory-bin .category-bin{display:none;}.netHeadRow{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/group.gif) repeat-x #FFFFFF;}.netHeadCol{border-bottom:1px solid #CCCCCC;padding:2px 4px 2px 18px;font-weight:bold;}.netHeadLabel{white-space:nowrap;overflow:hidden;}.netHeaderRow{height:16px;}.netHeaderCell{cursor:pointer;-moz-user-select:none;border-bottom:1px solid #9C9C9C;padding:0 !important;font-weight:bold;background:#BBBBBB url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/tableHeader.gif) repeat-x;white-space:nowrap;}.netHeaderRow > .netHeaderCell:first-child > .netHeaderCellBox{padding:2px 14px 2px 18px;}.netHeaderCellBox{padding:2px 14px 2px 10px;border-left:1px solid #D9D9D9;border-right:1px solid #9C9C9C;}.netHeaderCell:hover:active{background:#959595 url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/tableHeaderActive.gif) repeat-x;}.netHeaderSorted{background:#7D93B2 url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/tableHeaderSorted.gif) repeat-x;}.netHeaderSorted > .netHeaderCellBox{border-right-color:#6B7C93;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/arrowDown.png) no-repeat right;}.netHeaderSorted.sortedAscending > .netHeaderCellBox{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/arrowUp.png);}.netHeaderSorted:hover:active{background:#536B90 url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/tableHeaderSortedActive.gif) repeat-x;}.panelNode-net .netRowHeader{display:block;}.netRowHeader{cursor:pointer;display:none;height:15px;margin-right:0 !important;}.netRow .netRowHeader{background-position:5px 1px;}.netRow[breakpoint="true"] .netRowHeader{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/breakpoint.png);}.netRow[breakpoint="true"][disabledBreakpoint="true"] .netRowHeader{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/breakpointDisabled.png);}.netRow.category-xhr:hover .netRowHeader{background-color:#F6F6F6;}#netBreakpointBar{max-width:38px;}#netHrefCol > .netHeaderCellBox{border-left:0px;}.netRow .netRowHeader{width:3px;}.netInfoRow .netRowHeader{display:table-cell;}.netTable[hiddenCols~=netHrefCol] TD[id="netHrefCol"],.netTable[hiddenCols~=netHrefCol] TD.netHrefCol,.netTable[hiddenCols~=netStatusCol] TD[id="netStatusCol"],.netTable[hiddenCols~=netStatusCol] TD.netStatusCol,.netTable[hiddenCols~=netDomainCol] TD[id="netDomainCol"],.netTable[hiddenCols~=netDomainCol] TD.netDomainCol,.netTable[hiddenCols~=netSizeCol] TD[id="netSizeCol"],.netTable[hiddenCols~=netSizeCol] TD.netSizeCol,.netTable[hiddenCols~=netTimeCol] TD[id="netTimeCol"],.netTable[hiddenCols~=netTimeCol] TD.netTimeCol{display:none;}.netRow{background:LightYellow;}.netRow.loaded{background:#FFFFFF;}.netRow.loaded:hover{background:#EFEFEF;}.netCol{padding:0;vertical-align:top;border-bottom:1px solid #EFEFEF;white-space:nowrap;height:17px;}.netLabel{width:100%;}.netStatusCol{padding-left:10px;color:rgb(128,128,128);}.responseError > .netStatusCol{color:red;}.netDomainCol{padding-left:5px;}.netSizeCol{text-align:right;padding-right:10px;}.netHrefLabel{-moz-box-sizing:padding-box;overflow:hidden;z-index:10;position:absolute;padding-left:18px;padding-top:1px;max-width:15%;font-weight:bold;}.netFullHrefLabel{display:none;-moz-user-select:none;padding-right:10px;padding-bottom:3px;max-width:100%;background:#FFFFFF;z-index:200;}.netHrefCol:hover > .netFullHrefLabel{display:block;}.netRow.loaded:hover .netCol > .netFullHrefLabel{background-color:#EFEFEF;}.useA11y .a11yShowFullLabel{display:block;background-image:none !important;border:1px solid #CBE087;background-color:LightYellow;font-family:Monaco,monospace;color:#000000;font-size:10px;z-index:2147483647;}.netSizeLabel{padding-left:6px;}.netStatusLabel,.netDomainLabel,.netSizeLabel,.netBar{padding:1px 0 2px 0 !important;}.responseError{color:red;}.hasHeaders .netHrefLabel:hover{cursor:pointer;color:blue;text-decoration:underline;}.netLoadingIcon{position:absolute;border:0;margin-left:14px;width:16px;height:16px;background:transparent no-repeat 0 0;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/loading_16.gif);display:inline-block;}.loaded .netLoadingIcon{display:none;}.netBar,.netSummaryBar{position:relative;border-right:50px solid transparent;}.netResolvingBar{position:absolute;left:0;top:0;bottom:0;background:#FFFFFF url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarResolving.gif) repeat-x;z-index:60;}.netConnectingBar{position:absolute;left:0;top:0;bottom:0;background:#FFFFFF url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarConnecting.gif) repeat-x;z-index:50;}.netBlockingBar{position:absolute;left:0;top:0;bottom:0;background:#FFFFFF url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarWaiting.gif) repeat-x;z-index:40;}.netSendingBar{position:absolute;left:0;top:0;bottom:0;background:#FFFFFF url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarSending.gif) repeat-x;z-index:30;}.netWaitingBar{position:absolute;left:0;top:0;bottom:0;background:#FFFFFF url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarResponded.gif) repeat-x;z-index:20;min-width:1px;}.netReceivingBar{position:absolute;left:0;top:0;bottom:0;background:#38D63B url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarLoading.gif) repeat-x;z-index:10;}.netWindowLoadBar,.netContentLoadBar{position:absolute;left:0;top:0;bottom:0;width:1px;background-color:red;z-index:70;opacity:0.5;display:none;margin-bottom:-1px;}.netContentLoadBar{background-color:Blue;}.netTimeLabel{-moz-box-sizing:padding-box;position:absolute;top:1px;left:100%;padding-left:6px;color:#444444;min-width:16px;}.loaded .netReceivingBar,.loaded.netReceivingBar{background:#B6B6B6 url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarLoaded.gif) repeat-x;border-color:#B6B6B6;}.fromCache .netReceivingBar,.fromCache.netReceivingBar{background:#D6D6D6 url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/netBarCached.gif) repeat-x;border-color:#D6D6D6;}.netSummaryRow .netTimeLabel,.loaded .netTimeLabel{background:transparent;}.timeInfoTip{width:150px; height:40px}.timeInfoTipBar,.timeInfoTipEventBar{position:relative;display:block;margin:0;opacity:1;height:15px;width:4px;}.timeInfoTipEventBar{width:1px !important;}.timeInfoTipCell.startTime{padding-right:8px;}.timeInfoTipCell.elapsedTime{text-align:right;padding-right:8px;}.sizeInfoLabelCol{font-weight:bold;padding-right:10px;font-family:Lucida Grande,Tahoma,sans-serif;font-size:11px;}.sizeInfoSizeCol{font-weight:bold;}.sizeInfoDetailCol{color:gray;text-align:right;}.sizeInfoDescCol{font-style:italic;}.netSummaryRow .netReceivingBar{background:#BBBBBB;border:none;}.netSummaryLabel{color:#222222;}.netSummaryRow{background:#BBBBBB !important;font-weight:bold;}.netSummaryRow .netBar{border-right-color:#BBBBBB;}.netSummaryRow > .netCol{border-top:1px solid #999999;border-bottom:2px solid;-moz-border-bottom-colors:#EFEFEF #999999;padding-top:1px;padding-bottom:2px;}.netSummaryRow > .netHrefCol:hover{background:transparent !important;}.netCountLabel{padding-left:18px;}.netTotalSizeCol{text-align:right;padding-right:10px;}.netTotalTimeCol{text-align:right;}.netCacheSizeLabel{position:absolute;z-index:1000;left:0;top:0;}.netLimitRow{background:rgb(255,255,225) !important;font-weight:normal;color:black;font-weight:normal;}.netLimitLabel{padding-left:18px;}.netLimitRow > .netCol{border-bottom:2px solid;-moz-border-bottom-colors:#EFEFEF #999999;vertical-align:middle !important;padding-top:2px;padding-bottom:2px;}.netLimitButton{font-size:11px;padding-top:1px;padding-bottom:1px;}.netInfoCol{border-top:1px solid #EEEEEE;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/group.gif) repeat-x #FFFFFF;}.netInfoBody{margin:10px 0 4px 10px;}.netInfoTabs{position:relative;padding-left:17px;}.netInfoTab{position:relative;top:-3px;margin-top:10px;padding:4px 6px;border:1px solid transparent;border-bottom:none;_border:none;font-weight:bold;color:#565656;cursor:pointer;}.netInfoTabSelected{cursor:default !important;border:1px solid #D7D7D7 !important;border-bottom:none !important;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;background-color:#FFFFFF;}.logRow-netInfo.error .netInfoTitle{color:red;}.logRow-netInfo.loading .netInfoResponseText{font-style:italic;color:#888888;}.loading .netInfoResponseHeadersTitle{display:none;}.netInfoResponseSizeLimit{font-family:Lucida Grande,Tahoma,sans-serif;padding-top:10px;font-size:11px;}.netInfoText{display:none;margin:0;border:1px solid #D7D7D7;border-right:none;padding:8px;background-color:#FFFFFF;font-family:Monaco,monospace;white-space:pre-wrap;}.netInfoTextSelected{display:block;}.netInfoParamName{padding-right:10px;font-family:Lucida Grande,Tahoma,sans-serif;font-weight:bold;vertical-align:top;text-align:right;white-space:nowrap;}.netInfoPostText .netInfoParamName{width:1px;}.netInfoParamValue{width:100%;}.netInfoHeadersText,.netInfoPostText,.netInfoPutText{padding-top:0;}.netInfoHeadersGroup,.netInfoPostParams,.netInfoPostSource{margin-bottom:4px;border-bottom:1px solid #D7D7D7;padding-top:8px;padding-bottom:2px;font-family:Lucida Grande,Tahoma,sans-serif;font-weight:bold;color:#565656;}.netInfoPostParamsTable,.netInfoPostPartsTable,.netInfoPostJSONTable,.netInfoPostXMLTable,.netInfoPostSourceTable{margin-bottom:10px;width:100%;}.netInfoPostContentType{color:#bdbdbd;padding-left:50px;font-weight:normal;}.netInfoHtmlPreview{border:0;width:100%;height:100%;}.netHeadersViewSource{color:#bdbdbd;margin-left:200px;font-weight:normal;}.netHeadersViewSource:hover{color:blue;cursor:pointer;}.netActivationRow,.netPageSeparatorRow{background:rgb(229,229,229) !important;font-weight:normal;color:black;}.netActivationLabel{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/chrome://firebug/skin/infoIcon.png) no-repeat 3px 2px;padding-left:22px;}.netPageSeparatorRow{height:5px !important;}.netPageSeparatorLabel{padding-left:22px;height:5px !important;}.netPageRow{background-color:rgb(255,255,255);}.netPageRow:hover{background:#EFEFEF;}.netPageLabel{padding:1px 0 2px 18px !important;font-weight:bold;}.netActivationRow > .netCol{border-bottom:2px solid;-moz-border-bottom-colors:#EFEFEF #999999;padding-top:2px;padding-bottom:3px;}.twisty,.logRow-errorMessage > .hasTwisty > .errorTitle,.logRow-log > .objectBox-array.hasTwisty,.logRow-spy .spyHead .spyTitle,.logGroup > .logRow,.memberRow.hasChildren > .memberLabelCell > .memberLabel,.hasHeaders .netHrefLabel,.netPageRow > .netCol > .netPageTitle{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_open.gif);background-repeat:no-repeat;background-position:2px 2px;min-height:12px;}.logRow-errorMessage > .hasTwisty.opened > .errorTitle,.logRow-log > .objectBox-array.hasTwisty.opened,.logRow-spy.opened .spyHead .spyTitle,.logGroup.opened > .logRow,.memberRow.hasChildren.opened > .memberLabelCell > .memberLabel,.nodeBox.highlightOpen > .nodeLabel > .twisty,.nodeBox.open > .nodeLabel > .twisty,.netRow.opened > .netCol > .netHrefLabel,.netPageRow.opened > .netCol > .netPageTitle{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_close.gif);}.twisty{background-position:4px 4px;}* html .logRow-spy .spyHead .spyTitle,* html .logGroup .logGroupLabel,* html .hasChildren .memberLabelCell .memberLabel,* html .hasHeaders .netHrefLabel{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_open.gif);background-repeat:no-repeat;background-position:2px 2px;}* html .opened .spyHead .spyTitle,* html .opened .logGroupLabel,* html .opened .memberLabelCell .memberLabel{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_close.gif);background-repeat:no-repeat;background-position:2px 2px;}.panelNode-console{overflow-x:hidden;}.objectLink{text-decoration:none;}.objectLink:hover{cursor:pointer;text-decoration:underline;}.logRow{position:relative;margin:0;border-bottom:1px solid #D7D7D7;padding:2px 4px 1px 6px;background-color:#FFFFFF;overflow:hidden !important;}.useA11y .logRow:focus{border-bottom:1px solid #000000 !important;outline:none !important;background-color:#FFFFAD !important;}.useA11y .logRow:focus a.objectLink-sourceLink{background-color:#FFFFAD;}.useA11y .a11yFocus:focus,.useA11y .objectBox:focus{outline:2px solid #FF9933;background-color:#FFFFAD;}.useA11y .objectBox-null:focus,.useA11y .objectBox-undefined:focus{background-color:#888888 !important;}.useA11y .logGroup.opened > .logRow{border-bottom:1px solid #ffffff;}.logGroup{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/group.gif) repeat-x #FFFFFF;padding:0 !important;border:none !important;}.logGroupBody{display:none;margin-left:16px;border-left:1px solid #D7D7D7;border-top:1px solid #D7D7D7;background:#FFFFFF;}.logGroup > .logRow{background-color:transparent !important;font-weight:bold;}.logGroup.opened > .logRow{border-bottom:none;}.logGroup.opened > .logGroupBody{display:block;}.logRow-command > .objectBox-text{font-family:Monaco,monospace;color:#0000FF;white-space:pre-wrap;}.logRow-info,.logRow-warn,.logRow-error,.logRow-assert,.logRow-warningMessage,.logRow-errorMessage{padding-left:22px;background-repeat:no-repeat;background-position:4px 2px;}.logRow-assert,.logRow-warningMessage,.logRow-errorMessage{padding-top:0;padding-bottom:0;}.logRow-info,.logRow-info .objectLink-sourceLink{background-color:#FFFFFF;}.logRow-warn,.logRow-warningMessage,.logRow-warn .objectLink-sourceLink,.logRow-warningMessage .objectLink-sourceLink{background-color:cyan;}.logRow-error,.logRow-assert,.logRow-errorMessage,.logRow-error .objectLink-sourceLink,.logRow-errorMessage .objectLink-sourceLink{background-color:LightYellow;}.logRow-error,.logRow-assert,.logRow-errorMessage{color:#FF0000;}.logRow-info{}.logRow-warn,.logRow-warningMessage{}.logRow-error,.logRow-assert,.logRow-errorMessage{}.objectBox-string,.objectBox-text,.objectBox-number,.objectLink-element,.objectLink-textNode,.objectLink-function,.objectBox-stackTrace,.objectLink-profile{font-family:Monaco,monospace;}.objectBox-string,.objectBox-text,.objectLink-textNode{white-space:pre-wrap;}.objectBox-number,.objectLink-styleRule,.objectLink-element,.objectLink-textNode{color:#000088;}.objectBox-string{color:#FF0000;}.objectLink-function,.objectBox-stackTrace,.objectLink-profile{color:DarkGreen;}.objectBox-null,.objectBox-undefined{padding:0 2px;border:1px solid #666666;background-color:#888888;color:#FFFFFF;}.objectBox-exception{padding:0 2px 0 18px;color:red;}.objectLink-sourceLink{position:absolute;right:4px;top:2px;padding-left:8px;font-family:Lucida Grande,sans-serif;font-weight:bold;color:#0000FF;}.errorTitle{margin-top:0px;margin-bottom:1px;padding-top:2px;padding-bottom:2px;}.errorTrace{margin-left:17px;}.errorSourceBox{margin:2px 0;}.errorSource-none{display:none;}.errorSource-syntax > .errorBreak{visibility:hidden;}.errorSource{cursor:pointer;font-family:Monaco,monospace;color:DarkGreen;}.errorSource:hover{text-decoration:underline;}.errorBreak{cursor:pointer;display:none;margin:0 6px 0 0;width:13px;height:14px;vertical-align:bottom;opacity:0.1;}.hasBreakSwitch .errorBreak{display:inline;}.breakForError .errorBreak{opacity:1;}.assertDescription{margin:0;}.logRow-profile > .logRow > .objectBox-text{font-family:Lucida Grande,Tahoma,sans-serif;color:#000000;}.logRow-profile > .logRow > .objectBox-text:last-child{color:#555555;font-style:italic;}.logRow-profile.opened > .logRow{padding-bottom:4px;}.profilerRunning > .logRow{padding-left:22px !important;}.profileSizer{width:100%;overflow-x:auto;overflow-y:scroll;}.profileTable{border-bottom:1px solid #D7D7D7;padding:0 0 4px 0;}.profileTable tr[odd="1"]{background-color:#F5F5F5;vertical-align:middle;}.profileTable a{vertical-align:middle;}.profileTable td{padding:1px 4px 0 4px;}.headerCell{cursor:pointer;-moz-user-select:none;border-bottom:1px solid #9C9C9C;padding:0 !important;font-weight:bold;}.headerCellBox{padding:2px 4px;border-left:1px solid #D9D9D9;border-right:1px solid #9C9C9C;}.headerCell:hover:active{}.headerSorted{}.headerSorted > .headerCellBox{border-right-color:#6B7C93;}.headerSorted.sortedAscending > .headerCellBox{}.headerSorted:hover:active{}.linkCell{text-align:right;}.linkCell > .objectLink-sourceLink{position:static;}.logRow-stackTrace{padding-top:0;background:#f8f8f8;}.logRow-stackTrace > .objectBox-stackFrame{position:relative;padding-top:2px;}.objectLink-object{font-family:Lucida Grande,sans-serif;font-weight:bold;color:DarkGreen;white-space:pre-wrap;}.objectProp-object{color:DarkGreen;}.objectProps{color:#000;font-weight:normal;}.objectPropName{color:#777;}.objectProps .objectProp-string{color:#f55;}.objectProps .objectProp-number{color:#55a;}.objectProps .objectProp-object{color:#585;}.selectorTag,.selectorId,.selectorClass{font-family:Monaco,monospace;font-weight:normal;}.selectorTag{color:#0000FF;}.selectorId{color:DarkBlue;}.selectorClass{color:red;}.selectorHidden > .selectorTag{color:#5F82D9;}.selectorHidden > .selectorId{color:#888888;}.selectorHidden > .selectorClass{color:#D86060;}.selectorValue{font-family:Lucida Grande,sans-serif;font-style:italic;color:#555555;}.panelNode.searching .logRow{display:none;}.logRow.matched{display:block !important;}.logRow.matching{position:absolute;left:-1000px;top:-1000px;max-width:0;max-height:0;overflow:hidden;}.objectLeftBrace,.objectRightBrace,.objectEqual,.objectComma,.arrayLeftBracket,.arrayRightBracket,.arrayComma{font-family:Monaco,monospace;}.objectLeftBrace,.objectRightBrace,.arrayLeftBracket,.arrayRightBracket{font-weight:bold;}.objectLeftBrace,.arrayLeftBracket{margin-right:4px;}.objectRightBrace,.arrayRightBracket{margin-left:4px;}.logRow-dir{padding:0;}.logRow-errorMessage .hasTwisty .errorTitle,.logRow-spy .spyHead .spyTitle,.logGroup .logRow{cursor:pointer;padding-left:18px;background-repeat:no-repeat;background-position:3px 3px;}.logRow-errorMessage > .hasTwisty > .errorTitle{background-position:2px 3px;}.logRow-errorMessage > .hasTwisty > .errorTitle:hover,.logRow-spy .spyHead .spyTitle:hover,.logGroup > .logRow:hover{text-decoration:underline;}.logRow-spy{padding:0 !important;}.logRow-spy,.logRow-spy .objectLink-sourceLink{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/group.gif) repeat-x #FFFFFF;padding-right:4px;right:0;}.logRow-spy.opened{padding-bottom:4px;border-bottom:none;}.spyTitle{color:#000000;font-weight:bold;-moz-box-sizing:padding-box;overflow:hidden;z-index:100;padding-left:18px;}.spyCol{padding:0;white-space:nowrap;height:16px;}.spyTitleCol:hover > .objectLink-sourceLink,.spyTitleCol:hover > .spyTime,.spyTitleCol:hover > .spyStatus,.spyTitleCol:hover > .spyTitle{display:none;}.spyFullTitle{display:none;-moz-user-select:none;max-width:100%;background-color:Transparent;}.spyTitleCol:hover > .spyFullTitle{display:block;}.spyStatus{padding-left:10px;color:rgb(128,128,128);}.spyTime{margin-left:4px;margin-right:4px;color:rgb(128,128,128);}.spyIcon{margin-right:4px;margin-left:4px;width:16px;height:16px;vertical-align:middle;background:transparent no-repeat 0 0;display:none;}.loading .spyHead .spyRow .spyIcon{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/loading_16.gif);display:block;}.logRow-spy.loaded:not(.error) .spyHead .spyRow .spyIcon{width:0;margin:0;}.logRow-spy.error .spyHead .spyRow .spyIcon{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/errorIcon-sm.png);display:block;background-position:2px 2px;}.logRow-spy .spyHead .netInfoBody{display:none;}.logRow-spy.opened .spyHead .netInfoBody{margin-top:10px;display:block;}.logRow-spy.error .spyTitle,.logRow-spy.error .spyStatus,.logRow-spy.error .spyTime{color:red;}.logRow-spy.loading .spyResponseText{font-style:italic;color:#888888;}.caption{font-family:Lucida Grande,Tahoma,sans-serif;font-weight:bold;color:#444444;}.warning{padding:10px;font-family:Lucida Grande,Tahoma,sans-serif;font-weight:bold;color:#888888;}.panelNode-dom{overflow-x:hidden !important;}.domTable{font-size:1em;width:100%;table-layout:fixed;background:#fff;}.domTableIE{width:auto;}.memberLabelCell{padding:2px 0 2px 0;vertical-align:top;}.memberValueCell{padding:1px 0 1px 5px;display:block;overflow:hidden;}.memberLabel{display:block;cursor:default;-moz-user-select:none;overflow:hidden;padding-left:18px;background-color:#FFFFFF;text-decoration:none;}.memberRow.hasChildren .memberLabelCell .memberLabel:hover{cursor:pointer;color:blue;text-decoration:underline;}.userLabel{color:#000000;font-weight:bold;}.userClassLabel{color:#E90000;font-weight:bold;}.userFunctionLabel{color:#025E2A;font-weight:bold;}.domLabel{color:#000000;}.domFunctionLabel{color:#025E2A;}.ordinalLabel{color:SlateBlue;font-weight:bold;}.scopesRow{padding:2px 18px;background-color:LightYellow;border-bottom:5px solid #BEBEBE;color:#666666;}.scopesLabel{background-color:LightYellow;}.watchEditCell{padding:2px 18px;background-color:LightYellow;border-bottom:1px solid #BEBEBE;color:#666666;}.editor-watchNewRow,.editor-memberRow{font-family:Monaco,monospace !important;}.editor-memberRow{padding:1px 0 !important;}.editor-watchRow{padding-bottom:0 !important;}.watchRow > .memberLabelCell{font-family:Monaco,monospace;padding-top:1px;padding-bottom:1px;}.watchRow > .memberLabelCell > .memberLabel{background-color:transparent;}.watchRow > .memberValueCell{padding-top:2px;padding-bottom:2px;}.watchRow > .memberLabelCell,.watchRow > .memberValueCell{background-color:#F5F5F5;border-bottom:1px solid #BEBEBE;}.watchToolbox{z-index:2147483647;position:absolute;right:0;padding:1px 2px;}#fbConsole{overflow-x:hidden !important;}#fbCSS{font:1em Monaco,monospace;padding:0 7px;}#fbstylesheetButtons select,#fbScriptButtons select{font:11px Lucida Grande,Tahoma,sans-serif;margin-top:1px;padding-left:3px;background:#fafafa;border:1px inset #fff;width:220px;outline:none;}.Selector{margin-top:10px}.CSSItem{margin-left:4%}.CSSText{padding-left:20px;}.CSSProperty{color:#005500;}.CSSValue{padding-left:5px; color:#000088;}#fbHTMLStatusBar{display:inline;}.fbToolbarButtons{display:none;}.fbStatusSeparator{display:block;float:left;padding-top:4px;}#fbStatusBarBox{display:none;}#fbToolbarContent{display:block;position:absolute;_position:absolute;top:0;padding-top:4px;height:23px;clip:rect(0,2048px,27px,0);}.fbTabMenuTarget{display:none !important;float:left;width:10px;height:10px;margin-top:6px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuTarget.png);}.fbTabMenuTarget:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuTargetHover.png);}.fbShadow{float:left;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/shadowAlpha.png) no-repeat bottom right !important;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/shadow2.gif) no-repeat bottom right;margin:10px 0 0 10px !important;margin:10px 0 0 5px;}.fbShadowContent{display:block;position:relative;background-color:#fff;border:1px solid #a9a9a9;top:-6px;left:-6px;}.fbMenu{display:none;position:absolute;font-size:11px;line-height:13px;z-index:2147483647;}.fbMenuContent{padding:2px;}.fbMenuSeparator{display:block;position:relative;padding:1px 18px 0;text-decoration:none;color:#000;cursor:default;background:#ACA899;margin:4px 0;}.fbMenuOption{display:block;position:relative;padding:2px 18px;text-decoration:none;color:#000;cursor:default;}.fbMenuOption:hover{color:#fff;background:#316AC5;}.fbMenuGroup{background:transparent url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuPin.png) no-repeat right 0;}.fbMenuGroup:hover{background:#316AC5 url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuPin.png) no-repeat right -17px;}.fbMenuGroupSelected{color:#fff;background:#316AC5 url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuPin.png) no-repeat right -17px;}.fbMenuChecked{background:transparent url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuCheckbox.png) no-repeat 4px 0;}.fbMenuChecked:hover{background:#316AC5 url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuCheckbox.png) no-repeat 4px -17px;}.fbMenuRadioSelected{background:transparent url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuRadio.png) no-repeat 4px 0;}.fbMenuRadioSelected:hover{background:#316AC5 url(https://getfirebug.com/releases/lite/latest/skin/xp/tabMenuRadio.png) no-repeat 4px -17px;}.fbMenuShortcut{padding-right:85px;}.fbMenuShortcutKey{position:absolute;right:0;top:2px;width:77px;}#fbFirebugMenu{top:22px;left:0;}.fbMenuDisabled{color:#ACA899 !important;}#fbFirebugSettingsMenu{left:245px;top:99px;}#fbConsoleMenu{top:42px;left:48px;}.fbIconButton{display:block;}.fbIconButton{display:block;}.fbIconButton{display:block;float:left;height:20px;width:20px;color:#000;margin-right:2px;text-decoration:none;cursor:default;}.fbIconButton:hover{position:relative;top:-1px;left:-1px;margin-right:0;_margin-right:1px;color:#333;border:1px solid #fff;border-bottom:1px solid #bbb;border-right:1px solid #bbb;}.fbIconPressed{position:relative;margin-right:0;_margin-right:1px;top:0 !important;left:0 !important;height:19px;color:#333 !important;border:1px solid #bbb !important;border-bottom:1px solid #cfcfcf !important;border-right:1px solid #ddd !important;}#fbErrorPopup{position:absolute;right:0;bottom:0;height:19px;width:75px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #f1f2ee 0 0;z-index:999;}#fbErrorPopupContent{position:absolute;right:0;top:1px;height:18px;width:75px;_width:74px;border-left:1px solid #aca899;}#fbErrorIndicator{position:absolute;top:2px;right:5px;}.fbBtnInspectActive{background:#aaa;color:#fff !important;}.fbBody{margin:0;padding:0;overflow:hidden;font-family:Lucida Grande,Tahoma,sans-serif;font-size:11px;background:#fff;}.clear{clear:both;}#fbMiniChrome{display:none;right:0;height:27px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #f1f2ee 0 0;margin-left:1px;}#fbMiniContent{display:block;position:relative;left:-1px;right:0;top:1px;height:25px;border-left:1px solid #aca899;}#fbToolbarSearch{float:right;border:1px solid #ccc;margin:0 5px 0 0;background:#fff url(https://getfirebug.com/releases/lite/latest/skin/xp/search.png) no-repeat 4px 2px !important;background:#fff url(https://getfirebug.com/releases/lite/latest/skin/xp/search.gif) no-repeat 4px 2px;padding-left:20px;font-size:11px;}#fbToolbarErrors{float:right;margin:1px 4px 0 0;font-size:11px;}#fbLeftToolbarErrors{float:left;margin:7px 0px 0 5px;font-size:11px;}.fbErrors{padding-left:20px;height:14px;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/errorIcon.png) no-repeat !important;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/errorIcon.gif) no-repeat;color:#f00;font-weight:bold;}#fbMiniErrors{display:inline;display:none;float:right;margin:5px 2px 0 5px;}#fbMiniIcon{float:right;margin:3px 4px 0;height:20px;width:20px;float:right;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) 0 -135px;cursor:pointer;}#fbChrome{font-family:Lucida Grande,Tahoma,sans-serif;font-size:11px;position:absolute;_position:static;top:0;left:0;height:100%;width:100%;border-collapse:collapse;border-spacing:0;background:#fff;overflow:hidden;}#fbChrome > tbody > tr > td{padding:0;}#fbTop{height:49px;}#fbToolbar{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #f1f2ee 0 0;height:27px;font-size:11px;line-height:13px;}#fbPanelBarBox{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #dbd9c9 0 -27px;height:22px;}#fbContent{height:100%;vertical-align:top;}#fbBottom{height:18px;background:#fff;}#fbToolbarIcon{float:left;padding:0 5px 0;}#fbToolbarIcon a{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) 0 -135px;}#fbToolbarButtons{padding:0 2px 0 5px;}#fbToolbarButtons{padding:0 2px 0 5px;}.fbButton{text-decoration:none;display:block;float:left;color:#000;padding:4px 6px 4px 7px;cursor:default;}.fbButton:hover{color:#333;background:#f5f5ef url(https://getfirebug.com/releases/lite/latest/skin/xp/buttonBg.png);padding:3px 5px 3px 6px;border:1px solid #fff;border-bottom:1px solid #bbb;border-right:1px solid #bbb;}.fbBtnPressed{background:#e3e3db url(https://getfirebug.com/releases/lite/latest/skin/xp/buttonBgHover.png) !important;padding:3px 4px 2px 6px !important;margin:1px 0 0 1px !important;border:1px solid #ACA899 !important;border-color:#ACA899 #ECEBE3 #ECEBE3 #ACA899 !important;}#fbStatusBarBox{top:4px;cursor:default;}.fbToolbarSeparator{overflow:hidden;border:1px solid;border-color:transparent #fff transparent #777;_border-color:#eee #fff #eee #777;height:7px;margin:6px 3px;float:left;}.fbBtnSelected{font-weight:bold;}.fbStatusBar{color:#aca899;}.fbStatusBar a{text-decoration:none;color:black;}.fbStatusBar a:hover{color:blue;cursor:pointer;}#fbWindowButtons{position:absolute;white-space:nowrap;right:0;top:0;height:17px;width:48px;padding:5px;z-index:6;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #f1f2ee 0 0;}#fbPanelBar1{width:1024px; z-index:8;left:0;white-space:nowrap;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #dbd9c9 0 -27px;position:absolute;left:4px;}#fbPanelBar2Box{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #dbd9c9 0 -27px;position:absolute;height:22px;width:300px; z-index:9;right:0;}#fbPanelBar2{position:absolute;width:290px; height:22px;padding-left:4px;}.fbPanel{display:none;}#fbPanelBox1,#fbPanelBox2{max-height:inherit;height:100%;font-size:1em;}#fbPanelBox2{background:#fff;}#fbPanelBox2{width:300px;background:#fff;}#fbPanel2{margin-left:6px;background:#fff;}#fbLargeCommandLine{display:none;position:absolute;z-index:9;top:27px;right:0;width:294px;height:201px;border-width:0;margin:0;padding:2px 0 0 2px;resize:none;outline:none;font-size:11px;overflow:auto;border-top:1px solid #B9B7AF;_right:-1px;_border-left:1px solid #fff;}#fbLargeCommandButtons{display:none;background:#ECE9D8;bottom:0;right:0;width:294px;height:21px;padding-top:1px;position:fixed;border-top:1px solid #ACA899;z-index:9;}#fbSmallCommandLineIcon{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/down.png) no-repeat;position:absolute;right:2px;bottom:3px;z-index:99;}#fbSmallCommandLineIcon:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/downHover.png) no-repeat;}.hide{overflow:hidden !important;position:fixed !important;display:none !important;visibility:hidden !important;}#fbCommand{height:18px;}#fbCommandBox{position:fixed;_position:absolute;width:100%;height:18px;bottom:0;overflow:hidden;z-index:9;background:#fff;border:0;border-top:1px solid #ccc;}#fbCommandIcon{position:absolute;color:#00f;top:2px;left:6px;display:inline;font:11px Monaco,monospace;z-index:10;}#fbCommandLine{position:absolute;width:100%;top:0;left:0;border:0;margin:0;padding:2px 0 2px 32px;font:11px Monaco,monospace;z-index:9;outline:none;}#fbLargeCommandLineIcon{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/up.png) no-repeat;position:absolute;right:1px;bottom:1px;z-index:10;}#fbLargeCommandLineIcon:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/upHover.png) no-repeat;}div.fbFitHeight{overflow:auto;position:relative;}.fbSmallButton{overflow:hidden;width:16px;height:16px;display:block;text-decoration:none;cursor:default;}#fbWindowButtons .fbSmallButton{float:right;}#fbWindow_btClose{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/min.png);}#fbWindow_btClose:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/minHover.png);}#fbWindow_btDetach{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/detach.png);}#fbWindow_btDetach:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/detachHover.png);}#fbWindow_btDeactivate{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/off.png);}#fbWindow_btDeactivate:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/offHover.png);}.fbTab{text-decoration:none;display:none;float:left;width:auto;float:left;cursor:default;font-family:Lucida Grande,Tahoma,sans-serif;font-size:11px;line-height:13px;font-weight:bold;height:22px;color:#565656;}.fbPanelBar span{float:left;}.fbPanelBar .fbTabL,.fbPanelBar .fbTabR{height:22px;width:8px;}.fbPanelBar .fbTabText{padding:4px 1px 0;}a.fbTab:hover{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) 0 -73px;}a.fbTab:hover .fbTabL{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) -16px -96px;}a.fbTab:hover .fbTabR{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) -24px -96px;}.fbSelectedTab{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) #f1f2ee 0 -50px !important;color:#000;}.fbSelectedTab .fbTabL{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) 0 -96px !important;}.fbSelectedTab .fbTabR{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/sprite.png) -8px -96px !important;}#fbHSplitter{position:fixed;_position:absolute;left:0;top:0;width:100%;height:5px;overflow:hidden;cursor:n-resize !important;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/pixel_transparent.gif);z-index:9;}#fbHSplitter.fbOnMovingHSplitter{height:100%;z-index:100;}.fbVSplitter{background:#ece9d8;color:#000;border:1px solid #716f64;border-width:0 1px;border-left-color:#aca899;width:4px;cursor:e-resize;overflow:hidden;right:294px;text-decoration:none;z-index:10;position:absolute;height:100%;top:27px;}div.lineNo{font:1em/1.4545em Monaco,monospace;position:relative;float:left;top:0;left:0;margin:0 5px 0 0;padding:0 5px 0 10px;background:#eee;color:#888;border-right:1px solid #ccc;text-align:right;}.sourceBox{position:absolute;}.sourceCode{font:1em Monaco,monospace;overflow:hidden;white-space:pre;display:inline;}.nodeControl{margin-top:3px;margin-left:-14px;float:left;width:9px;height:9px;overflow:hidden;cursor:default;background:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_open.gif);_float:none;_display:inline;_position:absolute;}div.nodeMaximized{background:url(https://getfirebug.com/releases/lite/latest/skin/xp/tree_close.gif);}div.objectBox-element{padding:1px 3px;}.objectBox-selector{cursor:default;}.selectedElement{background:highlight;color:#fff !important;}.selectedElement span{color:#fff !important;}* html .selectedElement{position:relative;}@media screen and (-webkit-min-device-pixel-ratio:0){.selectedElement{background:#316AC5;color:#fff !important;}}.logRow *{font-size:1em;}.logRow{position:relative;border-bottom:1px solid #D7D7D7;padding:2px 4px 1px 6px;zbackground-color:#FFFFFF;}.logRow-command{font-family:Monaco,monospace;color:blue;}.objectBox-string,.objectBox-text,.objectBox-number,.objectBox-function,.objectLink-element,.objectLink-textNode,.objectLink-function,.objectBox-stackTrace,.objectLink-profile{font-family:Monaco,monospace;}.objectBox-null{padding:0 2px;border:1px solid #666666;background-color:#888888;color:#FFFFFF;}.objectBox-string{color:red;}.objectBox-number{color:#000088;}.objectBox-function{color:DarkGreen;}.objectBox-object{color:DarkGreen;font-weight:bold;font-family:Lucida Grande,sans-serif;}.objectBox-array{color:#000;}.logRow-info,.logRow-error,.logRow-warn{background:#fff no-repeat 2px 2px;padding-left:20px;padding-bottom:3px;}.logRow-info{background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/infoIcon.png) !important;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/infoIcon.gif);}.logRow-warn{background-color:cyan;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/warningIcon.png) !important;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/warningIcon.gif);}.logRow-error{background-color:LightYellow;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/errorIcon.png) !important;background-image:url(https://getfirebug.com/releases/lite/latest/skin/xp/errorIcon.gif);color:#f00;}.errorMessage{vertical-align:top;color:#f00;}.objectBox-sourceLink{position:absolute;right:4px;top:2px;padding-left:8px;font-family:Lucida Grande,sans-serif;font-weight:bold;color:#0000FF;}.selectorTag,.selectorId,.selectorClass{font-family:Monaco,monospace;font-weight:normal;}.selectorTag{color:#0000FF;}.selectorId{color:DarkBlue;}.selectorClass{color:red;}.objectBox-element{font-family:Monaco,monospace;color:#000088;}.nodeChildren{padding-left:26px;}.nodeTag{color:blue;cursor:pointer;}.nodeValue{color:#FF0000;font-weight:normal;}.nodeText,.nodeComment{margin:0 2px;vertical-align:top;}.nodeText{color:#333333;font-family:Monaco,monospace;}.nodeComment{color:DarkGreen;}.nodeHidden,.nodeHidden *{color:#888888;}.nodeHidden .nodeTag{color:#5F82D9;}.nodeHidden .nodeValue{color:#D86060;}.selectedElement .nodeHidden,.selectedElement .nodeHidden *{color:SkyBlue !important;}.log-object{}.property{position:relative;clear:both;height:15px;}.propertyNameCell{vertical-align:top;float:left;width:28%;position:absolute;left:0;z-index:0;}.propertyValueCell{float:right;width:68%;background:#fff;position:absolute;padding-left:5px;display:table-cell;right:0;z-index:1;}.propertyName{font-weight:bold;}.FirebugPopup{height:100% !important;}.FirebugPopup #fbWindowButtons{display:none !important;}.FirebugPopup #fbHSplitter{display:none !important;}',HTML:'<table id="fbChrome" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td id="fbTop" colspan="2"><div id="fbWindowButtons"><a id="fbWindow_btDeactivate" class="fbSmallButton fbHover" title="Deactivate Firebug for this web page">&nbsp;</a><a id="fbWindow_btDetach" class="fbSmallButton fbHover" title="Open Firebug in popup window">&nbsp;</a><a id="fbWindow_btClose" class="fbSmallButton fbHover" title="Minimize Firebug">&nbsp;</a></div><div id="fbToolbar"><div id="fbToolbarContent"><span id="fbToolbarIcon"><a id="fbFirebugButton" class="fbIconButton" class="fbHover" target="_blank">&nbsp;</a></span><span id="fbToolbarButtons"><span id="fbFixedButtons"><a id="fbChrome_btInspect" class="fbButton fbHover" title="Click an element in the page to inspect">Inspect</a></span><span id="fbConsoleButtons" class="fbToolbarButtons"><a id="fbConsole_btClear" class="fbButton fbHover" title="Clear the console">Clear</a></span></span><span id="fbStatusBarBox"><span class="fbToolbarSeparator"></span></span></div></div><div id="fbPanelBarBox"><div id="fbPanelBar1" class="fbPanelBar"><a id="fbConsoleTab" class="fbTab fbHover"><span class="fbTabL"></span><span class="fbTabText">Console</span><span class="fbTabMenuTarget"></span><span class="fbTabR"></span></a><a id="fbHTMLTab" class="fbTab fbHover"><span class="fbTabL"></span><span class="fbTabText">HTML</span><span class="fbTabR"></span></a><a class="fbTab fbHover"><span class="fbTabL"></span><span class="fbTabText">CSS</span><span class="fbTabR"></span></a><a class="fbTab fbHover"><span class="fbTabL"></span><span class="fbTabText">Script</span><span class="fbTabR"></span></a><a class="fbTab fbHover"><span class="fbTabL"></span><span class="fbTabText">DOM</span><span class="fbTabR"></span></a></div><div id="fbPanelBar2Box" class="hide"><div id="fbPanelBar2" class="fbPanelBar"></div></div></div><div id="fbHSplitter">&nbsp;</div></td></tr><tr id="fbContent"><td id="fbPanelBox1"><div id="fbPanel1" class="fbFitHeight"><div id="fbConsole" class="fbPanel"></div><div id="fbHTML" class="fbPanel"></div></div></td><td id="fbPanelBox2" class="hide"><div id="fbVSplitter" class="fbVSplitter">&nbsp;</div><div id="fbPanel2" class="fbFitHeight"><div id="fbHTML_Style" class="fbPanel"></div><div id="fbHTML_Layout" class="fbPanel"></div><div id="fbHTML_DOM" class="fbPanel"></div></div><textarea id="fbLargeCommandLine" class="fbFitHeight"></textarea><div id="fbLargeCommandButtons"><a id="fbCommand_btRun" class="fbButton fbHover">Run</a><a id="fbCommand_btClear" class="fbButton fbHover">Clear</a><a id="fbSmallCommandLineIcon" class="fbSmallButton fbHover"></a></div></td></tr><tr id="fbBottom" class="hide"><td id="fbCommand" colspan="2"><div id="fbCommandBox"><div id="fbCommandIcon">&gt;&gt;&gt;</div><input id="fbCommandLine" name="fbCommandLine" type="text"/><a id="fbLargeCommandLineIcon" class="fbSmallButton fbHover"></a></div></td></tr></tbody></table><span id="fbMiniChrome"><span id="fbMiniContent"><span id="fbMiniIcon" title="Open Firebug Lite"></span><span id="fbMiniErrors" class="fbErrors"></span></span></span>'}
8255}});
8256FBL.initialize()
8257})();