/**
 * Unobtrusive scripting adapter for jQuery
 *
 * Requires jQuery 1.6.0 or later.
 * https://github.com/rails/jquery-ujs

 * Uploading file using rails.js
 * =============================
 *
 * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
 * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
 *
 * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
 *
 * Ex:
 *     $('form').live('ajax:aborted:file', function(event, elements){
 *       // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
 *       // Returning false in this handler tells rails.js to disallow standard form submission
 *       return false;
 *     });
 *
 * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
 *
 * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
 * techniques like the iframe method to upload the file instead.
 *
 * Required fields in rails.js
 * ===========================
 *
 * If any blank required inputs (required="required") are detected in the remote form, the whole form submission
 * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
 *
 * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
 *
 * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
 *    get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
 *
 * Ex:
 *     $('form').live('ajax:aborted:required', function(event, elements){
 *       // Returning false in this handler tells rails.js to submit the form anyway.
 *       // The blank required inputs are passed to this function in `elements`.
 *       return ! confirm("Would you like to submit the form with missing info?");
 *     });
 */
function setEqualHeight(a){var b=0;a.each(function(){currentHeight=$(this).height(),currentHeight>b&&(b=currentHeight)}),a.height(b)}(function(a,b){var c;a.rails=c={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input:file",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(b){var c=a('meta[name="csrf-token"]').attr("content");c&&b.setRequestHeader("X-CSRF-Token",c)},fire:function(b,c,d){var e=a.Event(c);return b.trigger(e,d),e.result!==!1},confirm:function(a){return confirm(a)},ajax:function(b){return a.ajax(b)},handleRemote:function(d){var e,f,g,h=d.data("cross-domain")||null,i=d.data("type")||a.ajaxSettings&&a.ajaxSettings.dataType,j;if(c.fire(d,"ajax:before")){if(d.is("form")){e=d.attr("method"),f=d.attr("action"),g=d.serializeArray();var k=d.data("ujs:submit-button");k&&(g.push(k),d.data("ujs:submit-button",null))}else d.is(c.inputChangeSelector)?(e=d.data("method"),f=d.data("url"),g=d.serialize(),d.data("params")&&(g=g+"&"+d.data("params"))):(e=d.data("method"),f=d.attr("href"),g=d.data("params")||null);j={type:e||"GET",data:g,dataType:i,crossDomain:h,beforeSend:function(a,e){return e.dataType===b&&a.setRequestHeader("accept","*/*;q=0.5, "+e.accepts.script),c.fire(d,"ajax:beforeSend",[a,e])},success:function(a,b,c){d.trigger("ajax:success",[a,b,c])},complete:function(a,b){d.trigger("ajax:complete",[a,b])},error:function(a,b,c){d.trigger("ajax:error",[a,b,c])}},f&&(j.url=f),c.ajax(j)}},handleMethod:function(c){var d=c.attr("href"),e=c.data("method"),f=a("meta[name=csrf-token]").attr("content"),g=a("meta[name=csrf-param]").attr("content"),h=a('<form method="post" action="'+d+'"></form>'),i='<input name="_method" value="'+e+'" type="hidden" />';g!==b&&f!==b&&(i+='<input name="'+g+'" value="'+f+'" type="hidden" />'),h.hide().append(i).appendTo("body"),h.submit()},disableFormElements:function(b){b.find(c.disableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with",b[c]()),b[c](b.data("disable-with")),b.attr("disabled","disabled")})},enableFormElements:function(b){b.find(c.enableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with")&&b[c](b.data("ujs:enable-with")),b.removeAttr("disabled")})},allowAction:function(a){var b=a.data("confirm"),d=!1,e;return b?(c.fire(a,"confirm")&&(d=c.confirm(b),e=c.fire(a,"confirm:complete",[d])),d&&e):!0},blankInputs:function(b,c,d){var e=a(),f,g=c||"input,textarea";return b.find(g).each(function(){f=a(this);if(d?f.val():!f.val())e=e.add(f)}),e.length?e:!1},nonBlankInputs:function(a,b){return c.blankInputs(a,b,!0)},stopEverything:function(b){return a(b.target).trigger("ujs:everythingStopped"),b.stopImmediatePropagation(),!1},callFormSubmitBindings:function(c){var d=c.data("events"),e=!0;return d!==b&&d.submit!==b&&a.each(d.submit,function(a,b){if(typeof b.handler=="function")return e=b.handler(b.data)}),e},disableElement:function(a){a.data("ujs:enable-with",a.html()),a.html(a.data("disable-with")),a.bind("click.railsDisable",function(a){return c.stopEverything(a)})},enableElement:function(a){a.data("ujs:enable-with")!==b&&(a.html(a.data("ujs:enable-with")),a.data("ujs:enable-with",!1)),a.unbind("click.railsDisable")}},a.ajaxPrefilter(function(a,b,d){a.crossDomain||c.CSRFProtection(d)}),a(c.linkDisableSelector).live("ajax:complete",function(){c.enableElement(a(this))}),a(c.linkClickSelector).live("click.rails",function(d){var e=a(this);if(!c.allowAction(e))return c.stopEverything(d);e.is(c.linkDisableSelector)&&c.disableElement(e);if(e.data("remote")!==b)return c.handleRemote(e),!1;if(e.data("method"))return c.handleMethod(e),!1}),a(c.inputChangeSelector).live("change.rails",function(b){var d=a(this);return c.allowAction(d)?(c.handleRemote(d),!1):c.stopEverything(b)}),a(c.formSubmitSelector).live("submit.rails",function(d){var e=a(this),f=e.data("remote")!==b,g=c.blankInputs(e,c.requiredInputSelector),h=c.nonBlankInputs(e,c.fileInputSelector);if(!c.allowAction(e))return c.stopEverything(d);if(g&&e.attr("novalidate")==b&&c.fire(e,"ajax:aborted:required",[g]))return c.stopEverything(d);if(f)return h?c.fire(e,"ajax:aborted:file",[h]):!a.support.submitBubbles&&c.callFormSubmitBindings(e)===!1?c.stopEverything(d):(c.handleRemote(e),!1);setTimeout(function(){c.disableFormElements(e)},13)}),a(c.formInputClickSelector).live("click.rails",function(b){var d=a(this);if(!c.allowAction(d))return c.stopEverything(b);var e=d.attr("name"),f=e?{name:e,value:d.val()}:null;d.closest("form").data("ujs:submit-button",f)}),a(c.formSubmitSelector).live("ajax:beforeSend.rails",function(b){this==b.target&&c.disableFormElements(a(this))}),a(c.formSubmitSelector).live("ajax:complete.rails",function(b){this==b.target&&c.enableFormElements(a(this))})})(jQuery),function(a){var b={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"<div></div>",buttonPrevHTML:"<div></div>",buttonNextEvent:"click",buttonPrevEvent:"click",buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},c=!1;a(window).bind("load.jcarousel",function(){c=!0}),a.jcarousel=function(d,e){this.options=a.extend({},b,e||{}),this.locked=!1,this.autoStopped=!1,this.container=null,this.clip=null,this.list=null,this.buttonNext=null,this.buttonPrev=null,this.buttonNextState=null,this.buttonPrevState=null;if(!e||e.rtl===undefined)this.options.rtl=(a(d).attr("dir")||a("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=this.options.vertical?"height":"width",this.lt=this.options.vertical?"top":this.options.rtl?"right":"left";var f="",g=d.className.split(" ");for(var h=0;h<g.length;h++)if(g[h].indexOf("jcarousel-skin")!=-1){a(d).removeClass(g[h]),f=g[h];break}d.nodeName.toUpperCase()=="UL"||d.nodeName.toUpperCase()=="OL"?(this.list=a(d),this.clip=this.list.parents(".jcarousel-clip"),this.container=this.list.parents(".jcarousel-container")):(this.container=a(d),this.list=this.container.find("ul,ol").eq(0),this.clip=this.container.find(".jcarousel-clip")),this.clip.size()===0&&(this.clip=this.list.wrap("<div></div>").parent()),this.container.size()===0&&(this.container=this.clip.wrap("<div></div>").parent()),f!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+f+'"></div>'),this.buttonPrev=a(".jcarousel-prev",this.container),this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null&&(this.buttonPrev=a(this.options.buttonPrevHTML).appendTo(this.container)),this.buttonPrev.addClass(this.className("jcarousel-prev")),this.buttonNext=a(".jcarousel-next",this.container),this.buttonNext.size()===0&&this.options.buttonNextHTML!==null&&(this.buttonNext=a(this.options.buttonNextHTML).appendTo(this.container)),this.buttonNext.addClass(this.className("jcarousel-next")),this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"}),this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0),this.container.addClass(this.className("jcarousel-container")).css({position:"relative"}),!this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var i=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,j=this.list.children("li"),k=this;if(j.size()>0){var l=0,m=this.options.offset;j.each(function(){k.format(this,m++),l+=k.dimension(this,i)}),this.list.css(this.wh,l+100+"px");if(!e||e.size===undefined)this.options.size=j.size()}this.container.css("display","block"),this.buttonNext.css("display","block"),this.buttonPrev.css("display","block"),this.funcNext=function(){return k.next(),!1},this.funcPrev=function(){return k.prev(),!1},this.funcResize=function(){k.resizeTimer&&clearTimeout(k.resizeTimer),k.resizeTimer=setTimeout(function(){k.reload()},100)},this.options.initCallback!==null&&this.options.initCallback(this,"init"),!c&&a.browser.safari?(this.buttons(!1,!1),a(window).bind("load.jcarousel",function(){k.setup()})):this.setup()};var d=a.jcarousel;d.fn=d.prototype={jcarousel:"0.2.8"},d.fn.extend=d.extend=a.extend,d.fn.extend({setup:function(){this.first=null,this.last=null,this.prevFirst=null,this.prevLast=null,this.animating=!1,this.timer=null,this.resizeTimer=null,this.tail=null,this.inTail=!1;if(this.locked)return;this.list.css(this.lt,this.pos(this.options.offset)+"px");var b=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null,this.animate(b,!1),a(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize),this.options.setupCallback!==null&&this.options.setupCallback(this)},reset:function(){this.list.empty(),this.list.css(this.lt,"0px"),this.list.css(this.wh,"10px"),this.options.initCallback!==null&&this.options.initCallback(this,"reset"),this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,d.intval(this.list.css(this.lt))+this.tail),this.tail=null,this.inTail=!1,this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,b=Math.ceil(this.clipping()/this.options.visible),c=0,e=0;this.list.children("li").each(function(d){c+=a.dimension(this,b),d+1<a.first&&(e=c)}),this.list.css(this.wh,c+"px"),this.list.css(this.lt,-e+"px")}this.scroll(this.first,!1)},lock:function(){this.locked=!0,this.buttons()},unlock:function(){this.locked=!1,this.buttons()},size:function(a){return a!==undefined&&(this.options.size=a,this.locked||this.buttons()),this.options.size},has:function(a,b){if(b===undefined||!b)b=a;this.options.size!==null&&b>this.options.size&&(b=this.options.size);for(var c=a;c<=b;c++){var d=this.get(c);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0},get:function(b){return a(">.jcarousel-item-"+b,this.list)},add:function(b,c){var e=this.get(b),f=0,g=a(c);if(e.length===0){var h,i=d.intval(b);e=this.create(b);for(;;){h=this.get(--i);if(i<=0||h.length){i<=0?this.list.prepend(e):h.after(e);break}}}else f=this.dimension(e);g.get(0).nodeName.toUpperCase()=="LI"?(e.replaceWith(g),e=g):e.empty().append(c),this.format(e.removeClass(this.className("jcarousel-item-placeholder")),b);var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,k=this.dimension(e,j)-f;return b>0&&b<this.first&&this.list.css(this.lt,d.intval(this.list.css(this.lt))-k+"px"),this.list.css(this.wh,d.intval(this.list.css(this.wh))+k+"px"),e},remove:function(a){var b=this.get(a);if(!b.length||a>=this.first&&a<=this.last)return;var c=this.dimension(b);a<this.first&&this.list.css(this.lt,d.intval(this.list.css(this.lt))+c+"px"),b.remove(),this.list.css(this.wh,d.intval(this.list.css(this.wh))-c+"px")},next:function(){this.tail!==null&&!this.inTail?this.scrollTail(!1):this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!==null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.tail!==null&&this.inTail?this.scrollTail(!0):this.scroll((this.options.wrap=="both"||this.options.wrap=="first")&&this.options.size!==null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(this.locked||this.animating||!this.tail)return;this.pauseAuto();var b=d.intval(this.list.css(this.lt));b=a?b+this.tail:b-this.tail,this.inTail=!a,this.prevFirst=this.first,this.prevLast=this.last,this.animate(b)},scroll:function(a,b){if(this.locked||this.animating)return;this.pauseAuto(),this.animate(this.pos(a),b)},pos:function(a,b){var c=d.intval(this.list.css(this.lt));if(this.locked||this.animating)return c;this.options.wrap!="circular"&&(a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a);var e=this.first>a,f=this.options.wrap!="circular"&&this.first<=1?1:this.first,g=e?this.get(f):this.get(this.last),h=e?f:f-1,i=null,j=0,k=!1,l=0,m;while(e?--h>=a:++h<a)i=this.get(h),k=!i.length,i.length===0&&(i=this.create(h).addClass(this.className("jcarousel-item-placeholder")),g[e?"before":"after"](i),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(h<=0||h>this.options.size)&&(m=this.get(this.index(h)),m.length&&(i=this.add(h,m.clone(!0))))),g=i,l=this.dimension(i),k&&(j+=l),this.first!==null&&(this.options.wrap=="circular"||h>=1&&(this.options.size===null||h<=this.options.size))&&(c=e?c+l:c-l);var n=this.clipping(),o=[],p=0,q=0;g=this.get(a-1),h=a;while(++p){i=this.get(h),k=!i.length,i.length===0&&(i=this.create(h).addClass(this.className("jcarousel-item-placeholder")),g.length===0?this.list.prepend(i):g[e?"before":"after"](i),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(h<=0||h>this.options.size)&&(m=this.get(this.index(h)),m.length&&(i=this.add(h,m.clone(!0))))),g=i,l=this.dimension(i);if(l===0)throw new Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...");this.options.wrap!="circular"&&this.options.size!==null&&h>this.options.size?o.push(i):k&&(j+=l),q+=l;if(q>=n)break;h++}for(var r=0;r<o.length;r++)o[r].remove();j>0&&(this.list.css(this.wh,this.dimension(this.list)+j+"px"),e&&(c-=j,this.list.css(this.lt,d.intval(this.list.css(this.lt))-j+"px")));var s=a+p-1;this.options.wrap!="circular"&&this.options.size&&s>this.options.size&&(s=this.options.size);if(h>s){p=0,h=s,q=0;while(++p){i=this.get(h--);if(!i.length)break;q+=this.dimension(i);if(q>=n)break}}var t=s-p+1;this.options.wrap!="circular"&&t<1&&(t=1),this.inTail&&e&&(c+=this.tail,this.inTail=!1),this.tail=null;if(this.options.wrap!="circular"&&s==this.options.size&&s-p+1>=1){var u=d.intval(this.get(s).css(this.options.vertical?"marginBottom":"marginRight"));q-u>n&&(this.tail=q-n-u)}b&&a===this.options.size&&this.tail&&(c-=this.tail,this.inTail=!0);while(a-->t)c+=this.dimension(this.get(a));return this.prevFirst=this.first,this.prevLast=this.last,this.first=t,this.last=s,c},animate:function(b,c){if(this.locked||this.animating)return;this.animating=!0;var d=this,e=function(){d.animating=!1,b===0&&d.list.css(d.lt,0),!d.autoStopped&&(d.options.wrap=="circular"||d.options.wrap=="both"||d.options.wrap=="last"||d.options.size===null||d.last<d.options.size||d.last==d.options.size&&d.tail!==null&&!d.inTail)&&d.startAuto(),d.buttons(),d.notify("onAfterAnimation");if(d.options.wrap=="circular"&&d.options.size!==null)for(var a=d.prevFirst;a<=d.prevLast;a++)a!==null&&!(a>=d.first&&a<=d.last)&&(a<1||a>d.options.size)&&d.remove(a)};this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,b+"px"),e();else{var f=this.options.vertical?{top:b}:this.options.rtl?{right:b}:{left:b},g={duration:this.options.animation,easing:this.options.easing,complete:e};a.isFunction(this.options.animationStepCallback)&&(g.step=this.options.animationStepCallback),this.list.animate(f,g)}},startAuto:function(a){a!==undefined&&(this.options.auto=a);if(this.options.auto===0)return this.stopAuto();if(this.timer!==null)return;this.autoStopped=!1;var b=this;this.timer=window.setTimeout(function(){b.next()},this.options.auto*1e3)},stopAuto:function(){this.pauseAuto(),this.autoStopped=!0},pauseAuto:function(){if(this.timer===null)return;window.clearTimeout(this.timer),this.timer=null},buttons:function(a,b){a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last<this.options.size),!this.locked&&(!this.options.wrap||this.options.wrap=="first")&&this.options.size!==null&&this.last>=this.options.size&&(a=this.tail!==null&&!this.inTail)),b==null&&(b=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1&&(b=this.tail!==null&&this.inTail));var c=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext),this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){c.options.buttonNextCallback(c,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(c,null,a),this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),b&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[b?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",b?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=b&&this.buttonPrev.each(function(){c.options.buttonPrevCallback(c,this,b)}).data("jcarouselstate",b)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=b&&this.options.buttonPrevCallback(c,null,b),this.buttonNextState=a,this.buttonPrevState=b},notify:function(a){var b=this.prevFirst===null?"init":this.prevFirst<this.first?"next":"prev";this.callback("itemLoadCallback",a,b),this.prevFirst!==this.first&&(this.callback("itemFirstInCallback",a,b,this.first),this.callback("itemFirstOutCallback",a,b,this.prevFirst)),this.prevLast!==this.last&&(this.callback("itemLastInCallback",a,b,this.last),this.callback("itemLastOutCallback",a,b,this.prevLast)),this.callback("itemVisibleInCallback",a,b,this.first,this.last,this.prevFirst,this.prevLast),this.callback("itemVisibleOutCallback",a,b,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(b,c,d,e,f,g,h){if(this.options[b]==null||typeof this.options[b]!="object"&&c!="onAfterAnimation")return;var i=typeof this.options[b]=="object"?this.options[b][c]:this.options[b];if(!a.isFunction(i))return;var j=this;if(e===undefined)i(j,d,c);else if(f===undefined)this.get(e).each(function(){i(j,this,e,d,c)});else{var k=function(a){j.get(a).each(function(){i(j,this,a,d,c)})};for(var l=e;l<=f;l++)l!==null&&!(l>=g&&l<=h)&&k(l)}},create:function(a){return this.format("<li></li>",a)},format:function(b,c){b=a(b);var d=b.get(0).className.split(" ");for(var e=0;e<d.length;e++)d[e].indexOf("jcarousel-")!=-1&&b.removeClass(d[e]);return b.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c),b},className:function(a){return a+" "+a+(this.options.vertical?"-vertical":"-horizontal")},dimension:function(b,c){var e=a(b);if(c==null)return this.options.vertical?e.outerHeight(!0)||d.intval(this.options.itemFallbackDimension):e.outerWidth(!0)||d.intval(this.options.itemFallbackDimension);var f=this.options.vertical?c-d.intval(e.css("marginTop"))-d.intval(e.css("marginBottom")):c-d.intval(e.css("marginLeft"))-d.intval(e.css("marginRight"));return a(e).css(this.wh,f+"px"),this.dimension(e)},clipping:function(){return this.options.vertical?this.clip[0].offsetHeight-d.intval(this.clip.css("borderTopWidth"))-d.intval(this.clip.css("borderBottomWidth")):this.clip[0].offsetWidth-d.intval(this.clip.css("borderLeftWidth"))-d.intval(this.clip.css("borderRightWidth"))},index:function(a,b){return b==null&&(b=this.options.size),Math.round(((a-1)/b-Math.floor((a-1)/b))*b)+1}}),d.extend({defaults:function(c){return a.extend(b,c||{})},intval:function(a){return a=parseInt(a,10),isNaN(a)?0:a},windowLoaded:function(){c=!0}}),a.fn.jcarousel=function(b){if(typeof b=="string"){var c=a(this).data("jcarousel"),e=Array.prototype.slice.call(arguments,1);return c[b].apply(c,e)}return this.each(function(){var c=a(this).data("jcarousel");c?(b&&a.extend(c.options,b),c.reload()):a(this).data("jcarousel",new d(this,b))})}}(jQuery),$(document).ready(function(){window.setTimeout(function(){setEqualHeight($(".equalheight > div"))},1e3)}),function(a){a.fn.validate=function(){return this.filter("form[data-validate]").each(function(){var b=a(this),c=window[b.attr("id")];b.submit(function(){return b.isValid(c.validators)}).bind("ajax:beforeSend",function(){return b.isValid(c.validators)}).bind("form:validate:after",function(a){clientSideValidations.callbacks.form.after(b,a)}).bind("form:validate:before",function(a){clientSideValidations.callbacks.form.before(b,a)}).bind("form:validate:fail",function(a){clientSideValidations.callbacks.form.fail(b,a)}).bind("form:validate:pass",function(a){clientSideValidations.callbacks.form.pass(b,a)}).find("[data-validate]:input:not(:radio)").live("focusout",function(){a(this).isValid(c.validators)}).live("change",function(){a(this).data("changed",!0)}).live("element:validate:after",function(b){clientSideValidations.callbacks.element.after(a(this),b)}).live("element:validate:before",function(b){clientSideValidations.callbacks.element.before(a(this),b)}).live("element:validate:fail",function(b,c){var e=a(this);clientSideValidations.callbacks.element.fail(e,c,function(){d(e,c)},b)}).live("element:validate:pass",function(b){var c=a(this);clientSideValidations.callbacks.element.pass(c,function(){e(c)},b)}).end().find("[data-validate]:checkbox").live("click",function(){a(this).isValid(c.validators)}).end().find("[id*=_confirmation]").each(function(){var d=a(this),e=b.find("#"+this.id.match(/(.+)_confirmation/)[1]+"[data-validate]:input");e[0]&&a("#"+d.attr("id")).live("focusout",function(){e.data("changed",!0).isValid(c.validators)}).live("keyup",function(){e.data("changed",!0).isValid(c.validators)})});var d=function(a,b){clientSideValidations.formBuilders[c.type].add(a,c,b)},e=function(a){clientSideValidations.formBuilders[c.type].remove(a,c)}})},a.fn.isValid=function(d){return a(this[0]).is("form")?b(a(this[0]),d):c(a(this[0]),d[this[0].name])};var b=function(b,c){var d=!0;return b.trigger("form:validate:before").find("[data-validate]:input").each(function(){a(this).isValid(c)||(d=!1)}),d?b.trigger("form:validate:pass"):b.trigger("form:validate:fail"),b.trigger("form:validate:after"),d},c=function(a,b){a.trigger("element:validate:before");if(a.data("changed")!==!1){var c=!0;a.data("changed",!1);for(kind in clientSideValidations.validators.all())if(b[kind]&&(message=clientSideValidations.validators.all()[kind](a,b[kind]))){a.trigger("element:validate:fail",message).data("valid",!1),c=!1;break}c&&(a.data("valid",null),a.trigger("element:validate:pass"))}return a.trigger("element:validate:after"),a.data("valid")===!1?!1:!0};a(function(){a("form[data-validate]").validate()})}(jQuery);var clientSideValidations={validators:{all:function(){return jQuery.extend({},clientSideValidations.validators.local,clientSideValidations.validators.remote)},local:{presence:function(a,b){if(/^\s*$/.test(a.val()||""))return b.message},acceptance:function(a,b){switch(a.attr("type")){case"checkbox":if(!a.attr("checked"))return b.message;break;case"text":if(a.val()!=(b.accept||"1"))return b.message}},format:function(a,b){if((message=this.presence(a,b))&&b.allow_blank==!0)return;if(message)return message;if(b["with"]&&!b["with"].test(a.val()))return b.message;if(b.without&&b.without.test(a.val()))return b.message},numericality:function(a,b){if(!/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d*)?$/.test(a.val()))return b.messages.numericality;if(b.only_integer&&!/^\d+$/.test(a.val()))return b.messages.only_integer;var c={greater_than:">",greater_than_or_equal_to:">=",equal_to:"==",less_than:"<",less_than_or_equal_to:"<="};for(var d in c)if(b[d]!=undefined&&!(new Function("return "+a.val()+c[d]+b[d]))())return b.messages[d];if(b.odd&&!(parseInt(a.val())%2))return b.messages.odd;if(b.even&&parseInt(a.val())%2)return b.messages.even},length:function(a,b){var c={};b.is?c.message=b.messages.is:b.minimum&&(c.message=b.messages.minimum);if((message=this.presence(a,c))&&b.allow_blank==!0)return;if(message)return message;var d={is:"==",minimum:">=",maximum:"<="},e=b.js_tokenizer||"split('')",f=(new Function("element","return (element.val()."+e+" || '').length;"))(a);for(var g in d)if(b[g]&&!(new Function("return "+f+d[g]+b[g]))())return b.messages[g]},exclusion:function(a,b){if((message=this.presence(a,b))&&b.allow_blank==!0)return;if(message)return message;if(b["in"]){for(var c=0;c<b["in"].length;c++)if(b["in"][c]==a.val())return b.message}else if(b.range){var d=b.range[0],e=b.range[1];if(a.val()>=d&&a.val()<=e)return b.message}},inclusion:function(a,b){if((message=this.presence(a,b))&&b.allow_blank==!0)return;if(message)return message;if(b["in"]){for(var c=0;c<b["in"].length;c++)if(b["in"][c]==a.val())return;return b.message}if(b.range){var d=b.range[0],e=b.range[1];if(a.val()>=d&&a.val()<=e)return;return b.message}},confirmation:function(a,b){if(a.val()!=jQuery("#"+a.attr("id")+"_confirmation").val())return b.message}},remote:{uniqueness:function(a,b){var c={};c.case_sensitive=!!b.case_sensitive,b.id&&(c.id=b.id);if(b.scope){c.scope={};for(key in b.scope){var d=jQuery('[name="'+a.attr("name").replace(/\[\w+]$/,"["+key+"]"+'"]'));d[0]&&d.val()!=b.scope[key]?(c.scope[key]=d.val(),d.unbind("change."+a.id).bind("change."+a.id,function(){a.trigger("change"),a.trigger("focusout")})):c.scope[key]=b.scope[key]}}if(/_attributes]/.test(a.attr("name"))){var e=a.attr("name").match(/\[\w+_attributes]/g).pop().match(/\[(\w+)_attributes]/).pop();e+=/(\[\w+])$/.exec(a.attr("name"))[1]}else var e=a.attr("name");b["class"]&&(e=b["class"]+"["+e.split("[")[1]),c[e]=a.val();if(jQuery.ajax({url:"/validators/uniqueness",data:c,async:!1}).status==200)return b.message}}},formBuilders:{"ActionView::Helpers::FormBuilder":{add:function(a,b,c){if(a.data("valid")!==!1&&jQuery('label.message[for="'+a.attr("id")+'"]')[0]==undefined){var d=jQuery(b.input_tag),e=jQuery(b.label_tag),f=jQuery('label[for="'+a.attr("id")+'"]:not(.message)');a.attr("autofocus")&&a.attr("autofocus",!1),a.before(d),d.find("span#input_tag").replaceWith(a),d.find("label.message").attr("for",a.attr("id")),e.find("label.message").attr("for",a.attr("id")),f.replaceWith(e),e.find("label#label_tag").replaceWith(f)}jQuery('label.message[for="'+a.attr("id")+'"]').text(c)},remove:function(a,b){var c=jQuery(b.input_tag).attr("class"),d=a.closest("."+c),e=jQuery('label[for="'+a.attr("id")+'"]:not(.message)'),f=e.closest("."+c);d[0]&&(d.find("#"+a.attr("id")).detach(),d.replaceWith(a),e.detach(),f.replaceWith(e))}},"SimpleForm::FormBuilder":{add:function(a,b,c){if(a.data("valid")!==!1){var d=a.closest(b.wrapper_tag);d.addClass(b.wrapper_error_class);var e=$("<"+b.error_tag+' class="'+b.error_class+'">'+c+"</"+b.error_tag+">");d.append(e)}else a.parent().find(b.error_tag+"."+b.error_class).text(c)},remove:function(a,b){var c=a.closest(b.wrapper_tag+"."+b.wrapper_error_class);c.removeClass(b.wrapper_error_class);var d=c.find(b.error_tag+"."+b.error_class);d.remove()}},"Formtastic::FormBuilder":{add:function(a,b,c){if(a.data("valid")!==!1){var d=a.closest("li");d.addClass("error");var e=$('<p class="'+b.inline_error_class+'">'+c+"</p>");d.append(e)}else a.parent().find("p."+b.inline_error_class).text(c)},remove:function(a,b){var c=a.closest("li.error");c.removeClass("error");var d=c.find("p."+b.inline_error_class);d.remove()}},"NestedForm::Builder":{add:function(a,b,c){clientSideValidations.formBuilders["ActionView::Helpers::FormBuilder"].add(a,b,c)},remove:function(a,b,c){clientSideValidations.formBuilders["ActionView::Helpers::FormBuilder"].remove(a,b,c)}}},callbacks:{element:{after:function(a,b){},before:function(a,b){},fail:function(a,b,c,d){c()},pass:function(a,b,c){b()}},form:{after:function(a,b){},before:function(a,b){},fail:function(a,b){},pass:function(a,b){}}}};$.fn.infiniteCarousel=function(){function a(a,b){return Array(b+1).join(a)}return this.each(function(){function k(a){var c=a<i?-1:1,d=Math.abs(i-a),e=f*c*g*d;return b.filter(":not(:animated)").animate({scrollLeft:"+="+e},500,function(){a==0?(b.scrollLeft(f*g*j),a=j):a>j&&(b.scrollLeft(f*g),a=1),i=a}),!1}var b=$("> div",this).css("overflow","hidden"),c=b.find("> ul"),d=c.find("> li"),e=d.filter(":first"),f=e.outerWidth(),g=1,h=Math.ceil(b.innerWidth()/f),i=1,j=Math.ceil(d.length/g);d.length%g!=0&&(c.append(a('<li class="empty" />',g-d.length%g)),d=c.find("> li")),d.filter(":first").before(d.slice(-h+1).clone().addClass("cloned")),d.filter(":last").after(d.slice(0,h+1).clone().addClass("cloned")),d=c.find("> li"),b.scrollLeft(f*g),$("a.back",this).click(function(){return k(i-1)}),$("a.forward",this).click(function(){return k(i+1)}),$(this).bind("goto",function(a,b){k(b)})})}
