/* 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);

/* 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()+" # >"}
