/*
jQUERY PLUGINS
--------------------------------------------------*/

/* BEGIN: Example */
(function(A){A.fn.example=function(D,C){var B=A.extend({},A.fn.example.defaults,C,{example_text:D});var E=A.isFunction(B.example_text);if(!A.fn.example.bound_class_names[B.class_name]){A(window).unload(function(){A("."+B.class_name).val("")});A("form").submit(function(){A(this).find("."+B.class_name).val("")});A.fn.example.bound_class_names[B.class_name]=true}return this.each(function(){var G=A(this);var H=A.metadata?A.extend({},B,G.metadata()):B;if(A.browser.msie&&!G.attr("defaultValue")&&(E?G.val()!="":G.val()==H.example_text)){G.val("")}if(G.val()==""){G.addClass(B.class_name);G.val(E?H.example_text.call(this):H.example_text)}if(B.hide_label){var F=A("label[@for="+G.attr("id")+"]");F.next("br").hide();F.hide()}G.focus(function(){if(A(this).is("."+B.class_name)){A(this).val("");A(this).removeClass(B.class_name)}});G.blur(function(){if(A(this).val()==""){A(this).addClass(B.class_name);A(this).val(E?H.example_text.call(this):H.example_text)}})})};A.fn.example.defaults={example_text:"",class_name:"example",hide_label:false};A.fn.example.bound_class_names=[]})(jQuery);
/* END: Example */

/* BEGIN: Easing */
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}});
/* END: Easing */

/* BEGIN: jCarousel */
(function($){$.fn.jcarousel=function(o){return this.each(function(){new $jc(this,o)})};var defaults={vertical:false,start:1,offset:1,size:null,scroll:3,visible:null,animation:'normal',easing:'swing',auto:0,wrap:null,initCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,buttonNextHTML:'<div></div>',buttonPrevHTML:'<div></div>',buttonNextEvent:'click',buttonPrevEvent:'click',buttonNextCallback:null,buttonPrevCallback:null};$.jcarousel=function(e,o){this.options=$.extend({},defaults,o||{});this.locked=false;this.container=null;this.clip=null;this.list=null;this.buttonNext=null;this.buttonPrev=null;this.wh=!this.options.vertical?'width':'height';this.lt=!this.options.vertical?'left':'top';var skin='',split=e.className.split(' ');for(var i=0;i<split.length;i++){if(split[i].indexOf('jcarousel-skin')!=-1){$(e).removeClass(split[i]);var skin=split[i];break}}if(e.nodeName=='UL'||e.nodeName=='OL'){this.list=$(e);this.container=this.list.parent();if(this.container.hasClass('jcarousel-clip')){if(!this.container.parent().hasClass('jcarousel-container'))this.container=this.container.wrap('<div></div>');this.container=this.container.parent()}else if(!this.container.hasClass('jcarousel-container'))this.container=this.list.wrap('<div></div>').parent()}else{this.container=$(e);this.list=$(e).find('>ul,>ol,div>ul,div>ol')}if(skin!=''&&this.container.parent()[0].className.indexOf('jcarousel-skin')==-1)this.container.wrap('<div class=" '+skin+'"></div>');this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass('jcarousel-clip'))this.clip=this.list.wrap('<div></div>').parent();this.buttonPrev=$('.jcarousel-prev',this.container);if(this.buttonPrev.size()==0&&this.options.buttonPrevHTML!=null)this.buttonPrev=this.clip.before(this.options.buttonPrevHTML).prev();this.buttonPrev.addClass(this.className('jcarousel-prev'));this.buttonNext=$('.jcarousel-next',this.container);if(this.buttonNext.size()==0&&this.options.buttonNextHTML!=null)this.buttonNext=this.clip.before(this.options.buttonNextHTML).prev();this.buttonNext.addClass(this.className('jcarousel-next'));this.clip.addClass(this.className('jcarousel-clip'));this.list.addClass(this.className('jcarousel-list'));this.container.addClass(this.className('jcarousel-container'));var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;var li=this.list.children('li');var self=this;if(li.size()>0){var wh=0,i=this.options.offset;li.each(function(){self.format(this,i++);wh+=self.dimension(this,di)});this.list.css(this.wh,wh+'px');if(!o||o.size===undefined)this.options.size=li.size()}this.container.css('display','block');this.buttonNext.css('display','block');this.buttonPrev.css('display','block');this.funcNext=function(){self.next()};this.funcPrev=function(){self.prev()};this.funcResize=function(){self.reload()};if(this.options.initCallback!=null)this.options.initCallback(this,'init');if($.browser.safari){this.buttons(false,false);$(window).bind('load',function(){self.setup()})}else this.setup()};var $jc=$.jcarousel;$jc.fn=$jc.prototype={jcarousel:'0.2.3'};$jc.fn.extend=$jc.extend=$.extend;$jc.fn.extend({setup:function(){this.first=null;this.last=null;this.prevFirst=null;this.prevLast=null;this.animating=false;this.timer=null;this.tail=null;this.inTail=false;if(this.locked)return;this.list.css(this.lt,this.pos(this.options.offset)+'px');var p=this.pos(this.options.start);this.prevFirst=this.prevLast=null;this.animate(p,false);$(window).unbind('resize',this.funcResize).bind('resize',this.funcResize)},reset:function(){this.list.empty();this.list.css(this.lt,'0px');this.list.css(this.wh,'10px');if(this.options.initCallback!=null)this.options.initCallback(this,'reset');this.setup()},reload:function(){if(this.tail!=null&&this.inTail)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=false;if(this.options.reloadCallback!=null)this.options.reloadCallback(this);if(this.options.visible!=null){var self=this;var di=Math.ceil(this.clipping()/this.options.visible),wh=0,lt=0;$('li',this.list).each(function(i){wh+=self.dimension(this,di);if(i+1<self.first)lt=wh});this.list.css(this.wh,wh+'px');this.list.css(this.lt,-lt+'px')}this.scroll(this.first,false)},lock:function(){this.locked=true;this.buttons()},unlock:function(){this.locked=false;this.buttons()},size:function(s){if(s!=undefined){this.options.size=s;if(!this.locked)this.buttons()}return this.options.size},has:function(i,i2){if(i2==undefined||!i2)i2=i;if(this.options.size!==null&&i2>this.options.size)i2=this.options.size;for(var j=i;j<=i2;j++){var e=this.get(j);if(!e.length||e.hasClass('jcarousel-item-placeholder'))return false}return true},get:function(i){return $('.jcarousel-item-'+i,this.list)},add:function(i,s){var e=this.get(i),old=0,add=0;if(e.length==0){var c,e=this.create(i),j=$jc.intval(i);while(c=this.get(--j)){if(j<=0||c.length){j<=0?this.list.prepend(e):c.after(e);break}}}else old=this.dimension(e);e.removeClass(this.className('jcarousel-item-placeholder'));typeof s=='string'?e.html(s):e.empty().append(s);var di=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;var wh=this.dimension(e,di)-old;if(i>0&&i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-wh+'px');this.list.css(this.wh,$jc.intval(this.list.css(this.wh))+wh+'px');return e},remove:function(i){var e=this.get(i);if(!e.length||(i>=this.first&&i<=this.last))return;var d=this.dimension(e);if(i<this.first)this.list.css(this.lt,$jc.intval(this.list.css(this.lt))+d+'px');e.remove();this.list.css(this.wh,$jc.intval(this.list.css(this.wh))-d+'px')},next:function(){this.stopAuto();if(this.tail!=null&&!this.inTail)this.scrollTail(false);else 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.stopAuto();if(this.tail!=null&&this.inTail)this.scrollTail(true);else 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(b){if(this.locked||this.animating||!this.tail)return;var pos=$jc.intval(this.list.css(this.lt));!b?pos-=this.tail:pos+=this.tail;this.inTail=!b;this.prevFirst=this.first;this.prevLast=this.last;this.animate(pos)},scroll:function(i,a){if(this.locked||this.animating)return;this.animate(this.pos(i),a)},pos:function(i){if(this.locked||this.animating)return;if(this.options.wrap!='circular')i=i<1?1:(this.options.size&&i>this.options.size?this.options.size:i);var back=this.first>i;var pos=$jc.intval(this.list.css(this.lt));var f=this.options.wrap!='circular'&&this.first<=1?1:this.first;var c=back?this.get(f):this.get(this.last);var j=back?f:f-1;var e=null,l=0,p=false,d=0;while(back?--j>=i:++j<i){e=this.get(j);p=!e.length;if(e.length==0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));c[back?'before':'after'](e)}c=e;d=this.dimension(e);if(p)l+=d;if(this.first!=null&&(this.options.wrap=='circular'||(j>=1&&(this.options.size==null||j<=this.options.size))))pos=back?pos+d:pos-d}var clipping=this.clipping();var cache=[];var visible=0,j=i,v=0;var c=this.get(i-1);while(++visible){e=this.get(j);p=!e.length;if(e.length==0){e=this.create(j).addClass(this.className('jcarousel-item-placeholder'));c.length==0?this.list.prepend(e):c[back?'before':'after'](e)}c=e;var d=this.dimension(e);if(d==0){alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...');return 0}if(this.options.wrap!='circular'&&this.options.size!==null&&j>this.options.size)cache.push(e);else if(p)l+=d;v+=d;if(v>=clipping)break;j++}for(var x=0;x<cache.length;x++)cache[x].remove();if(l>0){this.list.css(this.wh,this.dimension(this.list)+l+'px');if(back){pos-=l;this.list.css(this.lt,$jc.intval(this.list.css(this.lt))-l+'px')}}var last=i+visible-1;if(this.options.wrap!='circular'&&this.options.size&&last>this.options.size)last=this.options.size;if(j>last){visible=0,j=last,v=0;while(++visible){var e=this.get(j--);if(!e.length)break;v+=this.dimension(e);if(v>=clipping)break}}var first=last-visible+1;if(this.options.wrap!='circular'&&first<1)first=1;if(this.inTail&&back){pos+=this.tail;this.inTail=false}this.tail=null;if(this.options.wrap!='circular'&&last==this.options.size&&(last-visible+1)>=1){var m=$jc.margin(this.get(last),!this.options.vertical?'marginRight':'marginBottom');if((v-m)>clipping)this.tail=v-clipping-m}while(i-->first)pos+=this.dimension(this.get(i));this.prevFirst=this.first;this.prevLast=this.last;this.first=first;this.last=last;return pos},animate:function(p,a){if(this.locked||this.animating)return;this.animating=true;var self=this;var scrolled=function(){self.animating=false;if(p==0)self.list.css(self.lt,0);if(self.options.wrap=='both'||self.options.wrap=='last'||self.options.size==null||self.last<self.options.size)self.startAuto();self.buttons();self.notify('onAfterAnimation')};this.notify('onBeforeAnimation');if(!this.options.animation||a==false){this.list.css(this.lt,p+'px');scrolled()}else{var o=!this.options.vertical?{'left':p}:{'top':p};this.list.animate(o,this.options.animation,this.options.easing,scrolled)}},startAuto:function(s){if(s!=undefined)this.options.auto=s;if(this.options.auto==0)return this.stopAuto();if(this.timer!=null)return;var self=this;this.timer=setTimeout(function(){self.next()},this.options.auto*1000)},stopAuto:function(){if(this.timer==null)return;clearTimeout(this.timer);this.timer=null},buttons:function(n,p){if(n==undefined||n==null){var n=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='first')||this.options.size==null||this.last<this.options.size);if(!this.locked&&(!this.options.wrap||this.options.wrap=='first')&&this.options.size!=null&&this.last>=this.options.size)n=this.tail!=null&&!this.inTail}if(p==undefined||p==null){var p=!this.locked&&this.options.size!==0&&((this.options.wrap&&this.options.wrap!='last')||this.first>1);if(!this.locked&&(!this.options.wrap||this.options.wrap=='last')&&this.options.size!=null&&this.first==1)p=this.tail!=null&&this.inTail}var self=this;this.buttonNext[n?'bind':'unbind'](this.options.buttonNextEvent,this.funcNext)[n?'removeClass':'addClass'](this.className('jcarousel-next-disabled')).attr('disabled',n?false:true);this.buttonPrev[p?'bind':'unbind'](this.options.buttonPrevEvent,this.funcPrev)[p?'removeClass':'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled',p?false:true);if(this.buttonNext.length>0&&(this.buttonNext[0].jcarouselstate==undefined||this.buttonNext[0].jcarouselstate!=n)&&this.options.buttonNextCallback!=null){this.buttonNext.each(function(){self.options.buttonNextCallback(self,this,n)});this.buttonNext[0].jcarouselstate=n}if(this.buttonPrev.length>0&&(this.buttonPrev[0].jcarouselstate==undefined||this.buttonPrev[0].jcarouselstate!=p)&&this.options.buttonPrevCallback!=null){this.buttonPrev.each(function(){self.options.buttonPrevCallback(self,this,p)});this.buttonPrev[0].jcarouselstate=p}},notify:function(evt){var state=this.prevFirst==null?'init':(this.prevFirst<this.first?'next':'prev');this.callback('itemLoadCallback',evt,state);if(this.prevFirst!==this.first){this.callback('itemFirstInCallback',evt,state,this.first);this.callback('itemFirstOutCallback',evt,state,this.prevFirst)}if(this.prevLast!==this.last){this.callback('itemLastInCallback',evt,state,this.last);this.callback('itemLastOutCallback',evt,state,this.prevLast)}this.callback('itemVisibleInCallback',evt,state,this.first,this.last,this.prevFirst,this.prevLast);this.callback('itemVisibleOutCallback',evt,state,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(cb,evt,state,i1,i2,i3,i4){if(this.options[cb]==undefined||(typeof this.options[cb]!='object'&&evt!='onAfterAnimation'))return;var callback=typeof this.options[cb]=='object'?this.options[cb][evt]:this.options[cb];if(!$.isFunction(callback))return;var self=this;if(i1===undefined)callback(self,state,evt);else if(i2===undefined)this.get(i1).each(function(){callback(self,this,i1,state,evt)});else{for(var i=i1;i<=i2;i++)if(i!==null&&!(i>=i3&&i<=i4))this.get(i).each(function(){callback(self,this,i,state,evt)})}},create:function(i){return this.format('<li></li>',i)},format:function(e,i){var $e=$(e).addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-'+i));$e.attr('jcarouselindex',i);return $e},className:function(c){return c+' '+c+(!this.options.vertical?'-horizontal':'-vertical')},dimension:function(e,d){var el=e.jquery!=undefined?e[0]:e;var old=!this.options.vertical?el.offsetWidth+$jc.margin(el,'marginLeft')+$jc.margin(el,'marginRight'):el.offsetHeight+$jc.margin(el,'marginTop')+$jc.margin(el,'marginBottom');if(d==undefined||old==d)return old;var w=!this.options.vertical?d-$jc.margin(el,'marginLeft')-$jc.margin(el,'marginRight'):d-$jc.margin(el,'marginTop')-$jc.margin(el,'marginBottom');$(el).css(this.wh,w+'px');return this.dimension(el)},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-$jc.intval(this.clip.css('borderLeftWidth'))-$jc.intval(this.clip.css('borderRightWidth')):this.clip[0].offsetHeight-$jc.intval(this.clip.css('borderTopWidth'))-$jc.intval(this.clip.css('borderBottomWidth'))},index:function(i,s){if(s==undefined)s=this.options.size;return Math.round((((i-1)/s)-Math.floor((i-1)/s))*s)+1}});$jc.extend({defaults:function(d){return $.extend(defaults,d||{})},margin:function(e,p){if(!e)return 0;var el=e.jquery!=undefined?e[0]:e;if(p=='marginRight'&&$.browser.safari){var old={'display':'block','float':'none','width':'auto'},oWidth,oWidth2;$.swap(el,old,function(){oWidth=el.offsetWidth});old['marginRight']=0;$.swap(el,old,function(){oWidth2=el.offsetWidth});return oWidth2-oWidth}return $jc.intval($.css(el,p))},intval:function(v){v=parseInt(v);return isNaN(v)?0:v}})})(jQuery);
/* END: jCarousel */

/* BEGIN: Metadata */
(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);
/* END: Metadata */

/* BEGIN: hoverIntent */
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
/* END: hoverIntent */

/* BEGIN: Default Text */
(function($) {

    $.fn.defaultText = function(options) {

        return this.each(function() {

            var $this = $(this);
            if ($this.metadata().defaultvalue) {
                if ($(this).val() == "") {
                    $this.val( $this.metadata().defaultvalue ).addClass('defaultVal defaultVal_default');
                } else if ($(this).val() == $this.metadata().defaultvalue) {
                    $this.addClass('defaultVal defaultVal_default');
                } else {
                    $this.addClass('defaultVal');
                }
                
                $this.focus(function() {
	                if ($this.hasClass('defaultVal_default')) {
	                    $this.val('').removeClass('defaultVal_default');
	                }
	            });
	
	            $this.blur(function() {
	                if ($this.val() == "") {
	                    $this.val( $this.metadata().defaultvalue ).addClass('defaultVal_default');
	                }
	            });
            }

        });
    };

})(jQuery);
/* END: Default Text */

/* BEGIN: Facebox */
(function($) {
  $.facebox = function(data, klass) {
    $.facebox.init()
    $.facebox.loading()
    $.isFunction(data) ? data.call($) : $.facebox.reveal(data, klass)
  }

  $.facebox.settings = {
    loading_image : '/images/facebox.loading.gif',
    close_image   : '/images/facebox.closelabel.gif',
    image_types   : [ 'png', 'jpg', 'jpeg', 'gif' ],
    facebox_html  : '\
  <div id="facebox" style="display:none;"> \
    <div class="popup"> \
      <table> \
        <tbody> \
          <tr> \
            <td class="tl"/><td class="b"/><td class="tr"/> \
          </tr> \
          <tr> \
            <td class="b"/> \
            <td class="body"> \
              <div class="content"> \
              </div> \
              <div class="footer"> \
                <a href="#" class="close"> \
                  <img src="/images/facebox.closelabel.gif" title="close" class="close_image" /> \
                </a> \
              </div> \
            </td> \
            <td class="b"/> \
          </tr> \
          <tr> \
            <td class="bl"/><td class="b"/><td class="br"/> \
          </tr> \
        </tbody> \
      </table> \
    </div> \
  </div>'
  }

  $.facebox.loading = function() {
    if ($('#facebox .loading').length == 1) return true

    $('#facebox .content').empty()
    $('#facebox .body').children().hide().end().
      append('<div class="loading"><img src="'+$.facebox.settings.loading_image+'"/></div>')

    var pageScroll = $.facebox.getPageScroll()
    $('#facebox').css({
      top:	pageScroll[1] + ($.facebox.getPageHeight() / 10),
      left:	pageScroll[0]
    }).show()

    $(document).bind('keydown.facebox', function(e) {
      if (e.keyCode == 27) $.facebox.close()
    })
  }

  $.facebox.reveal = function(data, klass) {
    if (klass) $('#facebox .content').addClass(klass)
    $('#facebox .content').append(data)
    $('#facebox .loading').remove()
    $('#facebox .body').children().fadeIn('normal')
  }

  $.facebox.close = function() {
    $(document).trigger('close.facebox')
    return false
  }

  $(document).bind('close.facebox', function() {
    $(document).unbind('keydown.facebox')
    $('#facebox').fadeOut(function() {
      $('#facebox .content').removeClass().addClass('content')
    })
  })

  $.fn.facebox = function(settings) {
    $.facebox.init(settings)

    var image_types = $.facebox.settings.image_types.join('|')
    image_types = new RegExp('\.' + image_types + '$', 'i')

    function click_handler() {
      $.facebox.loading(true)

      // support for rel="facebox[.inline_popup]" syntax, to add a class
      var klass = this.rel.match(/facebox\[\.(\w+)\]/)
      if (klass) klass = klass[1]

      // div
      if (this.href.match(/#/)) {
        var url    = window.location.href.split('#')[0]
        var target = this.href.replace(url,'')
        $.facebox.reveal($(target).clone().show(), klass)

      // image
      } else if (this.href.match(image_types)) {
        var image = new Image()
        image.onload = function() {
          $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
        }
        image.src = this.href

      // ajax
      } else {
        $.get(this.href, function(data) { $.facebox.reveal(data, klass) })
      }

      return false
    }

    this.click(click_handler)
    return this
  }

  $.facebox.init = function(settings) {
    if ($.facebox.settings.inited) {
      return true
    } else {
      $.facebox.settings.inited = true
    }

    if (settings) $.extend($.facebox.settings, settings)
    $('body').append($.facebox.settings.facebox_html)

    var preload = [ new Image(), new Image() ]
    preload[0].src = $.facebox.settings.close_image
    preload[1].src = $.facebox.settings.loading_image

    $('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
      preload.push(new Image())
      preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
    })

    $('#facebox .close').click($.facebox.close)
    $('#facebox .close_image').attr('src', $.facebox.settings.close_image)
  }

  // getPageScroll() by quirksmode.com
  $.facebox.getPageScroll = function() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
      yScroll = self.pageYOffset;
      xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
      yScroll = document.documentElement.scrollTop;
      xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
      yScroll = document.body.scrollTop;
      xScroll = document.body.scrollLeft;	
    }
    return new Array(xScroll,yScroll) 
  }

  // adapter from getPageSize() by quirksmode.com
  $.facebox.getPageHeight = function() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
  }
})(jQuery);
/* END: Facebox */

/*
jQUERY DOCUMENT ON READY
--------------------------------------------------*/
$(document).ready (function() {

	// Default Text
	$('input:text').defaultText();

	// HOME PAGE CAROUSEL
	$('#content-main-module-popular ul').jcarousel({
		scroll: 7,
		visible: 7
	});
	
	// CREATE ARTICLES NAV AND TAB INTERFACE
	$('#content-main-module-articles').prepend('<ul id="articles-nav">');
	$('#content-main-module-articles .title').each(function() {
		$(this).hide();
		$('#articles-nav').append('<li id="articles-nav-' + $(this).parent().attr('id') + '"><a href="#' + $(this).parent().attr('id') + '" rel="' + $(this).parent().attr('id') + '">' + $(this).html() + '</a></li>');
	});
	
	$('#articles-nav a[rel=content-module-blog]').addClass('selected');
	$('#content-module-about, #content-module-sell').hide();
	
	$('#articles-nav a').click(function() {
	
		$('#content-main-module-articles div').hide();
		$('#articles-nav a').removeClass('selected');
		
		$(this).addClass('selected')
		$('#' + $(this).attr('rel')).fadeIn('fast');
		
		if ($(this).attr('rel') == 'content-module-blog') {
			$('#articles-nav').css('background-position','0 0');
		} else if ($(this).attr('rel') == 'content-module-about') {
			$('#articles-nav').css('background-position','0 -41px');
		} else if ($(this).attr('rel') == 'content-module-sell') {
			$('#articles-nav').css('background-position','0 -82px');
		}
		
		return false;
	});
	
	// ADJUST TOP MARGIN OF ARTICLES
	$('#content-main-module-articles').css({
		marginTop: ( $('#content-main-module-browse').outerHeight() + $('#content-main-module-popular').outerHeight() + 60 ) + 'px'
	});
	
	$.fn.bindHelpClick = function() {
		$('a[rel*=facebox]').facebox();
	}
	$.fn.bindHelpClick();
	
	// Bookbag
	/*$('#bookbag-container').hide();
	$('#bookbag-container ul:last').css('border','none');
	
	$.fn.bindCloseClick = function() {
		$('#form-container-close').bind('click',function() {
			$('#nav-main a').removeClass('selected').removeClass('deselected');
			
			if ( $('body').is('.noForm') ) {
				
				$('#form-container form, #bookbag').animate({ opacity: 0.0 },100);
				$('#form-container').animate({
					height: '0px',
					paddingTop: '0px',
					paddingBottom: '0px'
				},'slow','easeInOutExpo',function() {
					$('#site-navigation ul#nav-main').css('background-position','bottom');
					$('#site-navigation ul#nav-main li a').css('background-image','url(/images/site-navigation-main-noForm.png)');
				});
				
			} else {
			
				$('body').append('<div id="temp-container">');
				$('#form-container form, #bookbag').animate({ opacity: 0.0 },100);
				
				if ( $('body').is('.home') ) {
					loadForm = '/pl/campusbooks/forms/textbook-buy.html form';
				} else {
					loadForm = '/pl/campusbooks/forms/textbook-simple.html form';
				}
				$('#temp-container').load( loadForm, function() {
					
					$('#form-container').animate({
						height: $('#temp-container').height() + 'px'
					},'slow','easeInOutExpo',function() {
						$('#form-container').html( $('#temp-container').html() );
						
						$('#temp-container').remove();
						
						$.fn.initializeForm();
						$.fn.bindHelpClick();
					});
					
				});
				
			}
			
			return false;
		});
	}*/
	
	// FORM CONTAINER LOAD
	/*
	$('#nav-main li#nav-buy a, #nav-main li#nav-sell a, #nav-main li#nav-bookbag a').click(function() {
        // Don't bind any of this stuff on the home page
        if ( $('body').is('.home') ) { return; }
		
		$('#nav-main a').removeClass('selected').addClass('deselected');
		$(this).removeClass('deselected').addClass('selected');
		
		if ( $('body').is('.noForm') ) {
			$('#site-navigation ul#nav-main').css('background-position','top');
			$('#site-navigation ul#nav-main li a').css('background-image','url(/images/site-navigation-main.png)');
		}
		
		$('#form-container form, #bookbag').animate({ opacity: 0.0 },100);
		
		if ( $(this).attr('rel') == "bookbag-container") {
			
			$('#form-container').animate({
				height: $('#bookbag-container').height() + 'px',
				paddingTop: '15px',
				paddingBottom: '15px'
			},'slow','easeInOutExpo',function() {
				$('#form-container').empty().append( $('#bookbag-container').html() );
				$('#bookbag').append('<a href="#" id="form-container-close">Close</a>');
				
				$('#bookbag').css('opacity','1.0');
				
				$.fn.bindCloseClick();
			});
			
		} else {
			
			$('body').append('<div id="temp-container">');
			$('#temp-container').load( '/pl/campusbooks/forms/' + $(this).attr('rel') + ' form', function() {
				
				$('#form-container').animate({
					height: $('#temp-container').height() + 'px',
					paddingTop: '15px',
					paddingBottom: '15px'
				},'slow','easeInOutExpo',function() {
					$('#form-container').html( $('#temp-container').html() );
					$('#form-container form').append('<a href="#" id="form-container-close">Close</a>');
					
					$('#temp-container').remove();
					
					$.fn.initializeForm();
					$.fn.bindHelpClick();
					$.fn.bindCloseClick();
				});
				
			});
			
		}
		
		return false;
	});
	*/

    // Home page functions
    $('<div id="content-main-searchbox-tooltip">Separate multiple ISBNs with commas.</div>').appendTo('div.content-main-searchbox, body.buy form#searchbox').hide();
    
    $('form#searchbox a.multiple-isbn').click(function() {
        return false;
    });
    $('form#searchbox a.multiple-isbn').hover(
        function() {
            $('div#content-main-searchbox-tooltip').fadeIn('fast');
        },
        function() {
            $('div#content-main-searchbox-tooltip').fadeOut('fast');
        }
    );
    
	
	/* BOOK DETAIL PAGE
	--------------------------------------------------*/
	/*function showIcon() {
		$(this).append('<div id="price-summary-icon"><img src="' + $(this).attr('rel') + '" /></div>');
	}
	function hideIcon() {
		$('div#price-summary-icon').remove();
	}
	var config = {    
		sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
		interval: 200, // number = milliseconds for onMouseOver polling interval    
		over: showIcon, // function = onMouseOver callback (REQUIRED)    
		timeout: 0, // number = milliseconds delay before onMouseOut    
		out: hideIcon // function = onMouseOut callback (REQUIRED)    
	};
	$('p.price-summary-title a').hoverIntent(config);*/
	
	// Book Description
	$('.book-details-description').append(' (<a href="#" class="description-show">Full Description</a>&hellip;)');
	$('.description-show').toggle(
		function() {
			$('.description-more').removeClass('description-hide');
			$(this).html('Summary Only');
			
			return false;
		},
		function() {
			$('.description-more').addClass('description-hide');
			$(this).html('Full Description');
			
			return false;
		}
	);
	$('#book-table-wrapper #book-table-guide').css({
		margin: 0,
		position: 'absolute',
		top: 25,
		right: 0,
		zIndex: 500
	});
	
	// Add carousel hook
	$('#book-table-wrapper').addClass('cbSlider');
	
	// Display first set
	$('#book-nav-summary a').addClass('selected');
	
	// stripe the tables
	$('.comparisonTable').each(function() {
		$('tbody tr:even', $(this)).addClass('stripe');
	});

	//$('.comparisonTable tr.featured td.merchant-logo').prepend('Recommended Bookstore');
	$('.comparisonTable tr.recommended td.merchant-logo').prepend('<img src="/images/comparison/icon-featured.gif" class="comparisonTable-featured" alt="Recommended Bookstore" />');
	$('.comparisonTable tr.featured td.merchant-logo').prepend('<img src="/images/comparison/icon-featured.gif" class="comparisonTable-featured" alt="Recommended Bookstore" />');

    // stripe the category listing pages
	$('.category-listing').each(function() {
		//$('li:even', $(this)).addClass('stripe');
		$('li:even', $(this)).addClass('stripe');
	});
	
	// Set the width of the carousel DIV
	var width = 0;
	$('#book-table-carousel table').each(function(){
		width = width + 760;
	});
	$('#book-table-carousel').css('width',width + 'px');
	
	$.fn.measureTable = function(table) {	
		var currHeight = $(table).height();

		currentTallest = $(this).height();
		if (currHeight < 275) { currHeight = 275; }
		if ((currHeight - 20) != currentTallest) {
			$('#book-table-wrapper, #book-table-carousel').animate({'height': currHeight + 20 + 'px'});
		}
	}
	$.fn.measureTable('#book-table-summary');
	
	$('#book-table-nav li a, .jumpLink').click(function() {

		if ($(this).attr('rel') == 'nofollow') {
            this.rel = '';
			isbn = $('#book-nav-all').attr('name');
			$('#book-table-all').load('/books/compare.php?all&ISBN='+isbn, function() {
				//$.fn.measureTable($(this).attr('href'));
				$.fn.bindjTip('#book-table-all .jTip');
                // Re-bind the jInfo items
				$.fn.bindjInfo('#book-table-all .jInfo');
				$('#book-table-all .comparisonTable tr.featured td.merchant-logo').prepend('<img src="/images/comparison/icon-featured.gif" class="comparisonTable-featured" alt="Recommended Bookstore" />');
			});
			
		}
		
		// Add overlay
		$('#book-table-wrapper').append('<div id="book-table-overlay">');
		$('#book-table-overlay').css({
			background: '#fff',
			height: '1000px',
			left: '0px',
			opacity: 0.0,
			position: 'absolute',
			top: '0px',
			width: '760px',
			zIndex: 1500
		}).animate({
			opacity: 0.8
		},'fast');
		
		// Change the selected tab
		$('#book-table-nav li a.selected').removeClass('selected');
		$('#book-table-nav li a[href=' + $(this).attr('href') + ']').addClass('selected');
		
		$.fn.measureTable($(this).attr('href'));
		
		tablePos = $( $(this).attr('href') ).position();

		$('#book-table-carousel').animate({
			left: '-' + tablePos.left + 'px'
		},400,'easeInOutExpo',function() {
			$('#book-table-overlay').fadeOut('fast',function() { $(this).remove() });
		});
		
		if ( $(this).hasClass('jumpLink') ) {
			window.scrollTo(0,$('#book-table-nav').offset().top);
		}
		
		return false;
	});

    // Show the extra buyback vendors on /books/sell.php
    $('#buyback-display-all').click(function() {
        $('#display-all-tr').fadeOut('fast');
        $('.buyback-hidden' ).fadeIn('slow');
        return false;
    });


	// Home grown jTip
	var tipHolder = "";
	$.fn.bindjTip = function(e) {
		$(e).hover(function() {

			$this = $(this);
			tipHolder = $this.attr('title');
			thisPos = $this.offset();
			thisHeight = $this.height();
			thisWidth = parseInt($this.width()) + parseInt($this.css('padding-left')) + parseInt($this.css('padding-right'));

			$this.attr('title','');
			$('body').append('<dl id="jTipContainer"><dt></dt><dd></dd></dl>')
			$('#jTipContainer dt').html( $this.attr('rel') );
			$('#jTipContainer dd').html(tipHolder);
			
			if ($(this).parent().parent('tr').hasClass('featured-top') || $(this).parent().is('th')) {
				$('#jTipContainer').addClass('jTipRight');
				$('#jTipContainer').css({
					left: thisPos.left + thisWidth - 5,
					opacity: 0.0,
					position: 'absolute',
					top: thisPos.top - (thisHeight/2)
				}).animate({
					left: thisPos.left + thisWidth + 5,
					opacity: 1
				},150);
			} else {
				$('#jTipContainer').css({
					left: thisPos.left - $('#jTipContainer').outerWidth() + 5,
					opacity: 1,
					position: 'absolute',
					top: thisPos.top - (thisHeight/2)
				}).animate({
					left: thisPos.left - $('#jTipContainer').outerWidth() - 5,
					opacity: 1
				},150);
			}
		},function() {
			$('#jTipContainer').remove();
			$this.attr('title',tipHolder);
		}).click(function() {
			return false;
		});
	};
	$.fn.bindjTip('a.jTip');


    // BEGIN Jinfo functions
    var jHovering = false;
	$.fn.bindjInfo = function(e) {
        $('body').append('<div class="jInfoContainer"><div class="jInfoContainer_Content"></div><img src="/images/jinfo-ajax-loader.gif" width="32" height="32" class="jInfoContainer_Loading" /></div>');
        
        $('.jInfo').mouseover(
            function() {
                
                $this = $(this);
                
                $('.jInfoContainer_Loading').css('left','120px');
                
                // Reset a lingering popup
                $('.jInfoContainer').stop();
                $('.jInfoContainer').css({
                    left: -9999
                });
                
                $('.jInfoContainer_Content').load($this.attr('href'),function() {
                    
                    $('.jInfoContainer_Loading').css('left','-9999px');
                    $('.jInfoContainer_Content').scrollTop(0);
                    $('.jInfoContainer').css({
                        top: $this.offset().top - $('.jInfoContainer').outerHeight() + 20,
                        left: $this.offset().left
                    });
                });
            }
        );
        $('.jInfo').mouseout(function() {
            $('.jInfoContainer').animate({
                opacity: 1
            },200,function() {
                if (jHovering == false) {
                    $('.jInfoContainer').css({
                        left: -9999
                    });
                    $('.jInfoContainer_Content').html('');
                }
            });
        });
        $('.jInfo').click(function() { return false; });
        
        $('.jInfoContainer').hover(
            function() {
                jHovering = true;
            },
            function() {
                jHovering = false;
                $('.jInfoContainer').css({
                    left: -9999
                });
            }
        );
    }
	$.fn.bindjInfo('a.jInfo');
    // END jinfo functions

            
});
