/* http://plugins.jquery.com/project/Cookie 1.0 */
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1}var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000))}else{date=options.expires}expires='; expires='+date.toUTCString()}var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('')}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break}}}return cookieValue}};

/* http://www.methvin.com/jquery/jq-corner.html 1.92 */
(function($){$.fn.corner=function(o){var ie6=$.browser.msie&&/MSIE 6.0/.test(navigator.userAgent);function sz(el,p){return parseInt($.css(el,p))||0};function hex2(s){var s=parseInt(s).toString(16);return(s.length<2)?'0'+s:s};function gpc(node){for(;node&&node.nodeName.toLowerCase()!='html';node=node.parentNode){var v=$.css(node,'backgroundColor');if(v.indexOf('rgb')>=0){if($.browser.safari&&v=='rgba(0, 0, 0, 0)')continue;var rgb=v.match(/\d+/g);return'#'+hex2(rgb[0])+hex2(rgb[1])+hex2(rgb[2])}if(v&&v!='transparent')return v}return'#ffffff'};function getW(i){switch(fx){case'round':return Math.round(width*(1-Math.cos(Math.asin(i/width))));case'cool':return Math.round(width*(1+Math.cos(Math.asin(i/width))));case'sharp':return Math.round(width*(1-Math.cos(Math.acos(i/width))));case'bite':return Math.round(width*(Math.cos(Math.asin((width-i-1)/width))));case'slide':return Math.round(width*(Math.atan2(i,width/i)));case'jut':return Math.round(width*(Math.atan2(width,(width-i-1))));case'curl':return Math.round(width*(Math.atan(i)));case'tear':return Math.round(width*(Math.cos(i)));case'wicked':return Math.round(width*(Math.tan(i)));case'long':return Math.round(width*(Math.sqrt(i)));case'sculpt':return Math.round(width*(Math.log((width-i-1),width)));case'dog':return(i&1)?(i+1):width;case'dog2':return(i&2)?(i+1):width;case'dog3':return(i&3)?(i+1):width;case'fray':return(i%2)*width;case'notch':return width;case'bevel':return i+1}};o=(o||"").toLowerCase();var keep=/keep/.test(o);var cc=((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);var sc=((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);var width=parseInt((o.match(/(\d+)px/)||[])[1])||10;var re=/round|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dog/;var fx=((o.match(re)||['round'])[0]);var edges={T:0,B:1};var opts={TL:/top|tl/.test(o),TR:/top|tr/.test(o),BL:/bottom|bl/.test(o),BR:/bottom|br/.test(o)};if(!opts.TL&&!opts.TR&&!opts.BL&&!opts.BR)opts={TL:1,TR:1,BL:1,BR:1};var strip=document.createElement('div');strip.style.overflow='hidden';strip.style.height='1px';strip.style.backgroundColor=sc||'transparent';strip.style.borderStyle='solid';return this.each(function(index){var pad={T:parseInt($.css(this,'paddingTop'))||0,R:parseInt($.css(this,'paddingRight'))||0,B:parseInt($.css(this,'paddingBottom'))||0,L:parseInt($.css(this,'paddingLeft'))||0};if($.browser.msie)this.style.zoom=1;if(!keep)this.style.border='none';strip.style.borderColor=cc||gpc(this.parentNode);var cssHeight=$.curCSS(this,'height');for(var j in edges){var bot=edges[j];if((bot&&(opts.BL||opts.BR))||(!bot&&(opts.TL||opts.TR))){strip.style.borderStyle='none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none');var d=document.createElement('div');$(d).addClass('jquery-corner');var ds=d.style;bot?this.appendChild(d):this.insertBefore(d,this.firstChild);if(bot&&cssHeight!='auto'){if($.css(this,'position')=='static')this.style.position='relative';ds.position='absolute';ds.bottom=ds.left=ds.padding=ds.margin='0';if($.browser.msie)ds.setExpression('width','this.parentNode.offsetWidth');else ds.width='100%'}else if(!bot&&$.browser.msie){if($.css(this,'position')=='static')this.style.position='relative';ds.position='absolute';ds.top=ds.left=ds.right=ds.padding=ds.margin='0';var bw=0;if(ie6||!$.boxModel)bw=sz(this,'borderLeftWidth')+sz(this,'borderRightWidth');ie6?ds.setExpression('width','this.parentNode.offsetWidth - '+bw+'+ "px"'):ds.width='100%'}else{ds.margin=!bot?'-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px':(pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px'}for(var i=0;i<width;i++){var w=Math.max(0,getW(i));var e=strip.cloneNode(false);e.style.borderWidth='0 '+(opts[j+'R']?w:0)+'px 0 '+(opts[j+'L']?w:0)+'px';bot?d.appendChild(e):d.insertBefore(e,d.firstChild)}}}})};$.fn.uncorner=function(o){return $('.jquery-corner',this).remove()}})(jQuery);

//Tested partially working:
/* http://plugins.jquery.com/project/autogrow 1.2.2 */
/* http://plugins.jquery.com/project/Grow-field 2RC1 (Customized into "autogrow" style) */
/* http://www.unwrongest.com/projects/elastic/ 1.6 (Customized into "autogrow" style) */
/* http://github.com/jaz303/jquery-grab-bag/blob/master/javascripts/jquery.autogrow-textarea.js (customized to animate the grow) */
//Working:
/* http://www.unwrongest.com/projects/elastic/ 1.6 (Customized into "autogrow" style + replicate textarea width to the twin div) */
(function(a) { a.fn.extend({ autogrow: function() { var b=["paddingTop","paddingRight","paddingBottom","paddingLeft","fontSize","lineHeight","fontFamily","width","fontWeight"];return this.each(function() { if(this.type!="textarea") { return false } var g=a(this),c=a("<div />").css({ position: "absolute",display: "none" }),h=parseInt(g.css("lineHeight"),10)||parseInt(g.css("fontSize"),"10"),k=parseInt(g.css("height"),10)||h*3,j=parseInt(g.css("max-height"),10)||Number.MAX_VALUE,d=0,f=0;c.appendTo(g.parent());var f=b.length;while(f--) { c.css(b[f].toString(),g.css(b[f].toString())) } function l(i,m) { curratedHeight=Math.floor(parseInt(i,10))+3;if(g.height()!=curratedHeight) { g.css({ height: curratedHeight+"px",overflow: m }) } } function e() { var n=g.val().replace(/<|>/g," ").replace(/\n/g,"<br />").replace(/&/g,"&amp;");var i=c.html();if(n+"&nbsp;"!=i) { c.html(n+"&nbsp;");if(Math.abs(c.height()+h-g.height())>3) { var m=c.height()+h;if(m>=j) { l(j,"auto") } else { if(m<=k) { l(k,"hidden") } else { l(m,"hidden") } } } } } g.css({ overflow: "hidden" }).bind("focus",function() { c.css({ width: getElementDimensions(g.get(0)).width+"px" });self.periodicalUpdater=window.setInterval(function() { e() },50) }).bind("blur",function() { clearInterval(self.periodicalUpdater) });e() }) } }) })(jQuery);





/* http://plugins.jquery.com/project/autotab 1.1.0-b */
/* packer wasn't working on this script */
(function($){var check_element=function(name){var obj=null;var check_id=$('#'+name);var check_name=$('input[name='+name+']');if(check_id!=undefined)
obj=check_id;else if(check_name!=undefined)
obj=check_name;return obj;};$.fn.autotab_magic=function(focus){for(var i=0;i<this.length;i++)
{var n=i+1;var p=i-1;if(i>0&&n<this.length)
$(this[i]).autotab({target:$(this[n]),previous:$(this[p])});else if(i>0)
$(this[i]).autotab({previous:$(this[p])});else
$(this[i]).autotab({target:$(this[n])});if(focus!=null&&(isNaN(focus)&&focus==$(this[i]).attr('id'))||(!isNaN(focus)&&focus==i))
$(this[i]).focus();}};$.fn.autotab_filter=function(options){var defaults={format:'all',uppercase:false,lowercase:false,nospace:false,pattern:null};if(typeof options=='string'||typeof options=='function')
defaults.format=options;else
$.extend(defaults,options);for(var i=0;i<this.length;i++)
{$(this[i]).bind('keyup',function(e){var val=this.value;switch(defaults.format)
{case'text':var pattern=new RegExp('[0-9]+','g');val=val.replace(pattern,'');break;case'alpha':var pattern=new RegExp('[^a-zA-Z]+','g');val=val.replace(pattern,'');break;case'number':case'numeric':var pattern=new RegExp('[^0-9]+','g');val=val.replace(pattern,'');break;case'alphanumeric':var pattern=new RegExp('[^0-9a-zA-Z]+','g');val=val.replace(pattern,'');break;case'custom':var pattern=new RegExp(defaults.pattern,'g');var val=val.replace(pattern,'');break;case'all':default:if(typeof defaults.format=='function')
var val=defaults.format(val);break;}
if(defaults.nospace)
{var pattern=new RegExp('[ ]+','g');val=val.replace(pattern,'');}
if(defaults.uppercase)
val=val.toUpperCase();if(defaults.lowercase)
val=val.toLowerCase();if(val!=this.value)
this.value=val;});}};$.fn.autotab=function(options){var defaults={format:'all',maxlength:2147483647,uppercase:false,lowercase:false,nospace:false,target:null,previous:null,pattern:null};$.extend(defaults,options);if(typeof defaults.target=='string')
defaults.target=check_element(defaults.target);if(typeof defaults.previous=='string')
defaults.previous=check_element(defaults.previous);var maxlength=$(this).attr('maxlength');if(defaults.maxlength==2147483647&&maxlength!=2147483647)
defaults.maxlength=maxlength;else if(defaults.maxlength>0)
$(this).attr('maxlength',defaults.maxlength)
else
defaults.target=null;if(defaults.format!='all')
$(this).autotab_filter(defaults);return $(this).bind('keydown',function(e){if(e.which==8&&this.value.length==0&&defaults.previous)
defaults.previous.focus().val(defaults.previous.val());}).bind('keyup',function(e){var keys=[8,9,16,17,18,19,20,27,33,34,35,36,37,38,39,40,45,46,144,145];if(e.which!=8)
{var val=$(this).val();if($.inArray(e.which,keys)==-1&&val.length==defaults.maxlength&&defaults.target)
defaults.target.focus();}});};})(jQuery);

/* http://plugins.jquery.com/project/Columnizer 1.4.0 */
(function($){$.fn.columnize=function(options){var defaults={width:400,columns:false,buildOnce:false,overflow:false};var options=$.extend(defaults,options);return this.each(function(){var $inBox=$(this);var maxHeight=$inBox.height();var $cache=$('<div></div>');var lastWidth=0;var columnizing=false;var kids=$inBox[0].childNodes;$inBox.append($(kids));$cache.append($inBox.children().clone());columnizeIt();if(!options.buildOnce){$(window).resize(function(){if(!options.buildOnce&&$.browser.msie){if($inBox.data("timeout")){clearTimeout($inBox.data("timeout"));}
$inBox.data("timeout",setTimeout(columnizeIt,200));}else if(!options.buildOnce){columnizeIt();}else{}});}
function columnize($putInHere,$pullOutHere,$parentColumn,height){while($parentColumn.height()<height&&$pullOutHere[0].childNodes.length){$putInHere.append($pullOutHere[0].childNodes[0]);}
if($putInHere[0].childNodes.length==0)return;var kids=$putInHere[0].childNodes;var lastKid=kids[kids.length-1];$putInHere[0].removeChild(lastKid);var $item=$(lastKid);if($item[0].nodeType==3){var oText=$item[0].nodeValue;var counter2=options.width/18;if(options.accuracy)
counter2=options.accuracy;var columnText;var latestTextNode=null;while($parentColumn.height()<height&&oText.length){if(oText.indexOf(' ',counter2)!='-1'){columnText=oText.substring(0,oText.indexOf(' ',counter2));}else{columnText=oText;}
latestTextNode=document.createTextNode(columnText);$putInHere.append(latestTextNode);if(oText.length>counter2){oText=oText.substring(oText.indexOf(' ',counter2));}else{oText="";}}
if($parentColumn.height()>=height&&latestTextNode!=null){$putInHere[0].removeChild(latestTextNode);oText=latestTextNode.nodeValue+oText;}
if(oText.length){$item[0].nodeValue=oText;}else{return false;}}
if($pullOutHere.children().length){$pullOutHere.prepend($item);}else{$pullOutHere.append($item);}
return $item[0].nodeType==3;}
function split($putInHere,$pullOutHere,$parentColumn,height){if($pullOutHere.children().length){$cloneMe=$pullOutHere.children(":first");$clone=$cloneMe.clone();if($clone.attr("nodeType")==1&&!$clone.hasClass("dontend")){$putInHere.append($clone);if($clone.is("img")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if(!$cloneMe.hasClass("dontsplit")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if($clone.is("img")||$cloneMe.hasClass("dontsplit")){$clone.remove();}else{$clone.empty();if(!columnize($clone,$cloneMe,$parentColumn,height)){if($cloneMe.children().length){split($clone,$cloneMe,$parentColumn,height);}}}}}}
function singleColumnizeIt(){if($inBox.data("columnized")&&$inBox.children().length==1){return;}
$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div class='first last column' style='width:98%; padding: 3px; float: left;'></div>"));$col=$inBox.children().eq($inBox.children().length-1);$destroyable=$cache.clone();if(options.overflow){targetHeight=options.overflow.height;columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}
while(checkDontEndColumn($col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$col.append($destroyable);}
$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}}
function checkDontEndColumn(dom){if(dom.nodeType!=1)return false;if($(dom).hasClass("dontend"))return true;if(dom.childNodes.length==0)return false;return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);}
function columnizeIt(){if(lastWidth==$inBox.width())return;lastWidth=$inBox.width();var numCols=Math.round($inBox.width()/options.width);if(options.columns)numCols=options.columns;if(numCols<=1){return singleColumnizeIt();}
if($inBox.data("columnizing"))return;$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div style='width:"+(Math.round(100/numCols)-2)+"%; padding: 3px; float: left;'></div>"));$col=$inBox.children(":last");$col.append($cache.clone());maxHeight=$col.height();$inBox.empty();var targetHeight=maxHeight/numCols;var firstTime=true;var maxLoops=3;var scrollHorizontally=false;if(options.overflow){maxLoops=1;targetHeight=options.overflow.height;}else if(options.height&&options.width){maxLoops=1;targetHeight=options.height;scrollHorizontally=true;}
for(var loopCount=0;loopCount<maxLoops;loopCount++){$inBox.empty();var $destroyable=$cache.clone();$destroyable.css("visibility","hidden");for(var i=0;i<numCols;i++){var className=(i==0)?"first column":"column";var className=(i==numCols-1)?("last "+className):className;$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: left;'></div>"));}
var i=0;while(i<numCols-(options.overflow?0:1)||scrollHorizontally&&$destroyable.children().length){if($inBox.children().length<=i){$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: left;'></div>"));}
var $col=$inBox.children().eq(i);columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}else{}
while(checkDontEndColumn($col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
i++;}
if(options.overflow&&!scrollHorizontally){var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else if(!scrollHorizontally){$col=$inBox.children().eq($inBox.children().length-1);while($destroyable.children().length)$col.append($destroyable.children(":first"));var afterH=$col.height();var diff=afterH-targetHeight;var totalH=0;var min=10000000;var max=0;$inBox.children().each(function($inBox){return function($item){var h=$inBox.children().eq($item).height();totalH+=h;if(h>max)max=h;if(h<min)min=h;}}($inBox));var avgH=totalH/numCols;if(max-min>30){targetHeight=avgH+30;}else if(Math.abs(avgH-targetHeight)>20){targetHeight=avgH;}else{loopCount=maxLoops;}}else{$inBox.children().each(function(i){$col=$inBox.children().eq(i);$col.width(options.width+"px");if(i==0){$col.addClass("first");}else if(i==$inBox.children().length-1){$col.addClass("last");}else{$col.removeClass("first");$col.removeClass("last");}});$inBox.width($inBox.children().length*options.width+"px");}
$inBox.append($("<br style='clear:both;'>"));}
$inBox.find('.column').find(':first.removeiffirst').remove();$inBox.find('.column').find(':last.removeiflast').remove();$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}}});};})(jQuery);

/* ***customized*** http://plugins.jquery.com/project/spin-button 1.0.2 */
(function($){$.fn.extend({spin:function(opt){return this.each(function(){opt=$.extend({imageBasePath:'/img/spin/',spinBtnImage:'spin-button.png',spinUpImage:'spin-up.png',spinDownImage:'spin-down.png',interval:1,max:null,min:null,timeInterval:500,timeBlink:200,incrementFunction:plusPlus,decrementFunction:minusMinus},opt||{});var txt=$(this);var spinBtnImage=opt.imageBasePath+opt.spinBtnImage;var btnSpin=new Image();btnSpin.src=spinBtnImage;var spinUpImage=opt.imageBasePath+opt.spinUpImage;var btnSpinUp=new Image();btnSpinUp.src=spinUpImage;var spinDownImage=opt.imageBasePath+opt.spinDownImage;var btnSpinDown=new Image();btnSpinDown.src=spinDownImage;var btn=$(document.createElement('img'));btn.attr('src',spinBtnImage);btn.css({cursor:'pointer',verticalAlign:'middle',padding:0,margin:0});txt.after(btn);txt.css({marginRight:0,paddingRight:0});function spin(vector){var val=txt.val();if(!isNaN(val)){if(vector>0){val=opt.incrementFunction(parseFloat(val))}else{val=opt.decrementFunction(parseFloat(val))}if(opt.min!=null&&val<opt.min){val=opt.min}if(opt.max!=null&&val>opt.max){val=opt.max}if(val!=txt.val()){txt.val(val);txt.change();src=(vector>0?spinUpImage:spinDownImage);btn.attr('src',src);if(opt.timeBlink<opt.timeInterval)setTimeout(function(){btn.attr('src',spinBtnImage)},opt.timeBlink)}}txt.select()}function plusPlus(val){return val+opt.interval}function minusMinus(val){return val-opt.interval}txt.keypress(function(e){if(e.keyCode==38||e.keyCode==40){var vector=1;if(e.keyCode==40){vector=-1}spin(vector)}});btn.mousedown(function(e){var pos=e.pageY-btn.offset().top;var vector=(btn.height()/2>pos?1:-1);(function(){spin(vector);var tk=setTimeout(arguments.callee,opt.timeInterval);$(document).one('mouseup',function(){clearTimeout(tk);btn.attr('src',spinBtnImage)})})();return false})})}})})(jQuery);

/* value swapper *//* by Vincent Courcelle */
(function($){$.fn.extend({watermark:function(opt){return this.each(function(){opt=$.extend({swapTxt:null,initTxt:"",swapClass:"watermark",valueClass:""},opt||{});var box=$(this);var defaultTxt=box.attr("watermark:swapTxt")?box.attr("watermark:swapTxt"):((opt.swapTxt==null)?box.val():defaultValue);var initTxt=box.attr("watermark:initTxt")?box.attr("watermark:initTxt"):opt.initTxt;var firstValue=box.val();function focus(){if(isNullValue(box.val())||(initTxt&&box.val()==firstValue)){box.val(initTxt)}box.removeClass(opt.swapClass);box.addClass(opt.valueClass)}function blur(){if(isNullValue(box.val())){if(initTxt&&firstValue){box.val(firstValue)}if(isNullValue(box.val())){box.val(defaultTxt);box.removeClass(opt.valueClass);box.addClass(opt.swapClass)}}}function isNullValue(value){return!value||value==defaultTxt||value==initTxt}box.focus(focus);box.blur(blur);blur()})}})})(jQuery);
//http://www.unwrongest.com/projects/defaultvalue/ v1.0
(function(a) { a.fn.extend({ defaultValue: function(c,b) { b=a.extend({ createCloneForPassword: true },b||{});return this.each(function() { var e=c||a(this).attr("rel");var i=a(this).attr("type")||null;var g=null;var f=a(this);if(i=="password"&&b.createCloneForPassword) { d(this);a(this).blur(function() { if(a(f).val().length<=0) { a("#"+g).show();a(f).hide() } }) } else { a(this).click(function() { if(a(this).val()==e) { a(this).val("") } }).keypress(function() { if(a(this).val().length>0) { h(this) } }).blur(function() { h(this) }).focus(function() { if(a(this).val()==e) { a(this).val("") } });a.trim(a(this).val());h(this) } function h(j) { val=a.trim(a(j).val());if(val.length<=0||val==e) { a(j).val(e).addClass("empty") } else { a(j).removeClass("empty") } } function d(j) { g=a(j).attr("id")+"Clone";a("<input id='"+g+"' type='text' />").attr("value",e).insertAfter(j).show().focus(function() { a(this).hide();a(f).show();setTimeout(function() { a(f).focus() },10) }).addClass(a(j).attr("class")+" empty").attr("style",a(j).attr("style"));a(f).hide() } }) } }) })(jQuery);

/* http://weblogs.asp.net/dwahlin/archive/2009/04/17/minimize-code-by-using-jquery-and-data-templates.aspx */
$.fn.parseTemplate=function(data){var str=jQuery(this).html();var _tmplCache={};var err="";try{var func=_tmplCache[str];if(!func){var strFunc="var p=[],print=function(){p.push.apply(p,arguments);};"+"with(obj){p.push('"+str.replace(/[\r\t\n]/g," ").replace(/'(?=[^#]*#>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<#=(.+?)#>/g,"',$1,'").split("<#").join("');").split("#>").join("p.push('")+"');}return p.join('');";func=new Function("obj",strFunc);_tmplCache[str]=func}return func(data)}catch(e){err=e.message}return"< # ERROR: "+err.toString()+" # >"}