text: /*
  	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  	Available via Academic Free License >= 2.1 OR the modified BSD license.
  	see: http://dojotoolkit.org/license for details
  */
  
  
  if(!dojo._hasResource["dojox.dtl.tag.loader"]){
  dojo._hasResource["dojox.dtl.tag.loader"]=true;
  dojo.provide("dojox.dtl.tag.loader");
  dojo.require("dojox.dtl._base");
  (function(){
  var dd=dojox.dtl;
  var _2=dd.tag.loader;
  _2.BlockNode=dojo.extend(function(_3,_4){
  this.name=_3;
  this.nodelist=_4;
  },{"super":function(){
  if(this.parent){
  var _5=this.parent.nodelist.dummyRender(this.context,null,true);
  if(typeof _5=="string"){
  _5=new String(_5);
  }
  _5.safe=true;
  return _5;
  }
  return "";
  },render:function(_6,_7){
  var _8=this.name;
  var _9=this.nodelist;
  var _a;
  if(_7.blocks){
  var _b=_7.blocks[_8];
  if(_b){
  _a=_b.parent;
  _9=_b.nodelist;
  _b.used=true;
  }
  }
  this.rendered=_9;
  _6=_6.push();
  this.context=_6;
  this.parent=null;
  if(_9!=this.nodelist){
  this.parent=this;
  }
  _6.block=this;
  if(_7.getParent){
  var _c=_7.getParent();
  var _d=dojo.connect(_7,"onSetParent",function(_e,up,_10){
  if(up&&_10){
  _7.setParent(_c);
  }
  });
  }
  _7=_9.render(_6,_7,this);
  _d&&dojo.disconnect(_d);
  _6=_6.pop();
  return _7;
  },unrender:function(_11,_12){
  return this.rendered.unrender(_11,_12);
  },clone:function(_13){
  return new this.constructor(this.name,this.nodelist.clone(_13));
  },toString:function(){
  return "dojox.dtl.tag.loader.BlockNode";
  }});
  _2.ExtendsNode=dojo.extend(function(_14,_15,_16,_17,key){
  this.getTemplate=_14;
  this.nodelist=_15;
  this.shared=_16;
  this.parent=_17;
  this.key=key;
  },{parents:{},getParent:function(_19){
  var _1a=this.parent;
  if(!_1a){
  var _1b;
  _1a=this.parent=_19.get(this.key,false);
  if(!_1a){
  throw new Error("extends tag used a variable that did not resolve");
  }
  if(typeof _1a=="object"){
  var url=_1a.url||_1a.templatePath;
  if(_1a.shared){
  this.shared=true;
  }
  if(url){
  _1a=this.parent=url.toString();
  }else{
  if(_1a.templateString){
  _1b=_1a.templateString;
  _1a=this.parent=" ";
  }else{
  _1a=this.parent=this.parent.toString();
  }
  }
  }
  if(_1a&&_1a.indexOf("shared:")===0){
  this.shared=true;
  _1a=this.parent=_1a.substring(7,_1a.length);
  }
  }
  if(!_1a){
  throw new Error("Invalid template name in 'extends' tag.");
  }
  if(_1a.render){
  return _1a;
  }
  if(this.parents[_1a]){
  return this.parents[_1a];
  }
  this.parent=this.getTemplate(_1b||dojox.dtl.text.getTemplateString(_1a));
  if(this.shared){
  this.parents[_1a]=this.parent;
  }
  return this.parent;
  },render:function(_1d,_1e){
  var _1f=this.getParent(_1d);
  _1f.blocks=_1f.blocks||{};
  _1e.blocks=_1e.blocks||{};
  for(var i=0,_21;_21=this.nodelist.contents[i];i++){
  if(_21 instanceof dojox.dtl.tag.loader.BlockNode){
  var old=_1f.blocks[_21.name];
  if(old&&old.nodelist!=_21.nodelist){
  _1e=old.nodelist.unrender(_1d,_1e);
  }
  _1f.blocks[_21.name]=_1e.blocks[_21.name]={shared:this.shared,nodelist:_21.nodelist,used:false};
  }
  }
  this.rendered=_1f;
  return _1f.nodelist.render(_1d,_1e,this);
  },unrender:function(_23,_24){
  return this.rendered.unrender(_23,_24,this);
  },toString:function(){
  return "dojox.dtl.block.ExtendsNode";
  }});
  _2.IncludeNode=dojo.extend(function(_25,_26,_27,_28,_29){
  this._path=_25;
  this.constant=_26;
  this.path=(_26)?_25:new dd._Filter(_25);
  this.getTemplate=_27;
  this.text=_28;
  this.parsed=(arguments.length==5)?_29:true;
  },{_cache:[{},{}],render:function(_2a,_2b){
  var _2c=((this.constant)?this.path:this.path.resolve(_2a)).toString();
  var _2d=Number(this.parsed);
  var _2e=false;
  if(_2c!=this.last){
  _2e=true;
  if(this.last){
  _2b=this.unrender(_2a,_2b);
  }
  this.last=_2c;
  }
  var _2f=this._cache[_2d];
  if(_2d){
  if(!_2f[_2c]){
  _2f[_2c]=dd.text._resolveTemplateArg(_2c,true);
  }
  if(_2e){
  var _30=this.getTemplate(_2f[_2c]);
  this.rendered=_30.nodelist;
  }
  return this.rendered.render(_2a,_2b,this);
  }else{
  if(this.text instanceof dd._TextNode){
  if(_2e){
  this.rendered=this.text;
  this.rendered.set(dd.text._resolveTemplateArg(_2c,true));
  }
  return this.rendered.render(_2a,_2b);
  }else{
  if(!_2f[_2c]){
  var _31=[];
  var div=document.createElement("div");
  div.innerHTML=dd.text._resolveTemplateArg(_2c,true);
  var _33=div.childNodes;
  while(_33.length){
  var _34=div.removeChild(_33[0]);
  _31.push(_34);
  }
  _2f[_2c]=_31;
  }
  if(_2e){
  this.nodelist=[];
  var _35=true;
  for(var i=0,_37;_37=_2f[_2c][i];i++){
  this.nodelist.push(_37.cloneNode(true));
  }
  }
  for(var i=0,_38;_38=this.nodelist[i];i++){
  _2b=_2b.concat(_38);
  }
  }
  }
  return _2b;
  },unrender:function(_39,_3a){
  if(this.rendered){
  _3a=this.rendered.unrender(_39,_3a);
  }
  if(this.nodelist){
  for(var i=0,_3c;_3c=this.nodelist[i];i++){
  _3a=_3a.remove(_3c);
  }
  }
  return _3a;
  },clone:function(_3d){
  return new this.constructor(this._path,this.constant,this.getTemplate,this.text.clone(_3d),this.parsed);
  }});
  dojo.mixin(_2,{block:function(_3e,_3f){
  var _40=_3f.contents.split();
  var _41=_40[1];
  _3e._blocks=_3e._blocks||{};
  _3e._blocks[_41]=_3e._blocks[_41]||[];
  _3e._blocks[_41].push(_41);
  var _42=_3e.parse(["endblock","endblock "+_41]).rtrim();
  _3e.next_token();
  return new dojox.dtl.tag.loader.BlockNode(_41,_42);
  },extends_:function(_43,_44){
  var _45=_44.contents.split();
  var _46=false;
  var _47=null;
  var key=null;
  if(_45[1].charAt(0)=="\""||_45[1].charAt(0)=="'"){
  _47=_45[1].substring(1,_45[1].length-1);
  }else{
  key=_45[1];
  }
  if(_47&&_47.indexOf("shared:")==0){
  _46=true;
  _47=_47.substring(7,_47.length);
  }
  var _49=_43.parse();
  return new dojox.dtl.tag.loader.ExtendsNode(_43.getTemplate,_49,_46,_47,key);
  },include:function(_4a,_4b){
  var _4c=_4b.contents.split();
  if(_4c.length!=2){
  throw new Error(_4c[0]+" tag takes one argument: the name of the template to be included");
  }
  var _4d=_4c[1];
  var _4e=false;
  if((_4d.charAt(0)=="\""||_4d.slice(-1)=="'")&&_4d.charAt(0)==_4d.slice(-1)){
  _4d=_4d.slice(1,-1);
  _4e=true;
  }
  return new _2.IncludeNode(_4d,_4e,_4a.getTemplate,_4a.create_text_node());
  },ssi:function(_4f,_50){
  var _51=_50.contents.split();
  var _52=false;
  if(_51.length==3){
  _52=(_51.pop()=="parsed");
  if(!_52){
  throw new Error("Second (optional) argument to ssi tag must be 'parsed'");
  }
  }
  var _53=_2.include(_4f,new dd.Token(_50.token_type,_51.join(" ")));
  _53.parsed=_52;
  return _53;
  }});
  })();
  }
  