// remap jQuery to $
(function($){

// Redefine some jquery functions, create missing one
if (!$) {
  // Recreate $.post with 'error' callback
  $.post = function( url, data, callback, type ) {
		if ( jQuery.isFunction( data ) || (data != null && (jQuery.isFunction( data.success ) || jQuery.isFunction( data.error ))) ) {
			type = type || callback;
      callback = data;
			data = {};
		}
    settings = {
			type: "POST",
			url: url,
			data: data,
			dataType: type
		};
    if ( jQuery.isFunction( callback ) ) {
      settings.success = callback;
    } else {
      if ( jQuery.isFunction( callback.success ) ) {
        settings.success = callback.success;
      }
      if ( jQuery.isFunction( callback.error ) ) {
        settings.error = callback.error;
      }
    }

		return jQuery.ajax(settings);
	}
  // Recreate $.get with 'error' callback
  $.get = function( url, data, callback, type ) {
		if ( jQuery.isFunction( data ) || (data != null && (jQuery.isFunction( data.success ) || jQuery.isFunction( data.error ))) ) {
			type = type || callback;
      callback = data;
			data = null;
		}
    settings = {
			type: "GET",
			url: url,
			data: data,
			dataType: type
		};
    if ( jQuery.isFunction( callback ) ) {
      settings.success = callback;
    } else {
      if ( jQuery.isFunction( callback.success ) ) {
        settings.success = callback.success;
      }
      if ( jQuery.isFunction( callback.error ) ) {
        settings.error = callback.error;
      }
    }

		return jQuery.ajax(settings);
  };

  // Create missing postJSON function
  $.postJSON = function(url, data, callback) {

    // Force disable jQuery cache setting
    var cache = jQuery.ajaxSettings.cache; jQuery.ajaxSettings.cache = false;

    $.post(url, data, callback, "json");

    // Restore jQuery caching setting
    jQuery.ajaxSettings.cache = cache;
  };
}
// Superfish/supersubs
if (!$.fn.superfish) {
  // Superfish 1.4.8 minified, with slight modification to hideSuperfishUl
  $.fn.superfish=function(k){var g=$.fn.superfish,j=g.c,f=$(['<span class="',j.arrowClass,'"> &#187;</span>'].join("")),i=function(){var c=$(this),l=d(c);clearTimeout(l.sfTimer);c.showSuperfishUl().siblings().hideSuperfishUl()},e=function(){var c=$(this),m=d(c),l=g.op;clearTimeout(m.sfTimer);m.sfTimer=setTimeout(function(){l.retainPath=($.inArray(c[0],l.$path)>-1);c.hideSuperfishUl();if(l.$path.length&&c.parents(["li.",l.hoverClass].join("")).length<1){i.call(l.$path)}},l.delay)},d=function(c){var l=c.parents(["ul.",j.menuClass,":first"].join(""))[0];g.op=g.o[l.serial];return l},h=function(c){c.addClass(j.anchorClass).append(f.clone())};return this.each(function(){var c=this.serial=g.o.length;var m=$.extend({},g.defaults,k);m.$path=$("li."+m.pathClass,this).slice(0,m.pathLevels).each(function(){$(this).addClass([m.hoverClass,j.bcClass].join(" ")).filter("li:has(ul)").removeClass(m.pathClass)});g.o[c]=g.op=m;$("li:has(ul)",this)[($.fn.hoverIntent&&!m.disableHI)?"hoverIntent":"hover"](i,e).each(function(){if(m.autoArrows){h($(">a:first-child",this))}}).not("."+j.bcClass).hideSuperfishUl();var l=$("a",this);l.each(function(n){var o=l.eq(n).parents("li");l.eq(n).focus(function(){i.call(o)}).blur(function(){e.call(o)})});m.onInit.call(this)}).each(function(){var c=[j.menuClass];if(g.op.dropShadows&&!($.browser.msie&&$.browser.version<7)){c.push(j.shadowClass)}$(this).addClass(c.join(" "))})};var a=$.fn.superfish;a.o=[];a.op={};a.IE7fix=function(){var c=a.op;if($.browser.msie&&$.browser.version>6&&c.dropShadows&&c.animation.opacity!=undefined){this.toggleClass(a.c.shadowClass+"-off")}};a.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};a.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var e=a.op,d=(e.retainPath===true)?e.$path:"";e.retainPath=false;var c=$(["li.",e.hoverClass].join(""),this).add(this).not(d).removeClass(e.hoverClass).find(">ul");if (!c.hasClass('sfIgnore')) {c.hide().css("visibility","hidden");e.onHide.call(c);}return this},showSuperfishUl:function(){var e=a.op,d=a.c.shadowClass+"-off",c=this.addClass(e.hoverClass).find(">ul:hidden").css("visibility","visible");a.IE7fix.call(c);e.onBeforeShow.call(c);c.animate(e.animation,e.speed,function(){a.IE7fix.call(c);e.onShow.call(c)});return this}});
  // Supersubs
  $.fn.supersubs=function(a){var b=$.extend({},$.fn.supersubs.defaults,a);return this.each(function(){var c=$(this);var d=$.meta?$.extend({},b,c.data()):b;var e=$('<li id="menu-fontsize">&#8212;</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo(c).width();$("#menu-fontsize").remove();$ULs=c.find("ul");$ULs.each(function(k){var j=$ULs.eq(k);var h=j.children();var f=h.children("a");var l=h.css("white-space","nowrap").css("float");var g=j.add(h).add(f).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/e;g+=d.extraWidth;if(g>d.maxWidth){g=d.maxWidth}else{if(g<d.minWidth){g=d.minWidth}}g+="em";j.css("width",g);h.css({"float":l,width:"100%","white-space":"normal"}).each(function(){var m=$(">ul",this);var i=m.css("left")!==undefined?"left":"right";m.css(i,g)})})})};$.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0};
}
// Other misc plugins
if (!$.cookie) {
  // jquery.cookie
  $.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("");return true}else{var d=null;if(document.cookie&&document.cookie!==""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=$.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};
  // this is a small helper extension i stole from
  // http://www.texotela.co.uk/code/jquery/reverse/
  // it merely reverses the order of a jQuery set.
  // Used to restore order of elements removed by prevAll
  $.fn.reverse = function() { return this.pushStack(this.get().reverse(), arguments); };
  // jQuery :data selector
  (function(a){var b=function(c){return typeof c==="undefined"};a.expr[":"].data=function(e,c,f){if(b(e)||b(f)){return false}var l=f[3];if(!l){return false}var k=l.split("=");var m=k[0].charAt(k[0].length-1);if(m=="^"||m=="$"||m=="!"||m=="*"){k[0]=k[0].substring(0,k[0].length-1);if(!a.stringQuery&&m!="!"){return false}}else{m="="}var d=k[0];var j=d.split(".");var h=a(e).data(j[0]);if(b(h)){return false}if(j[1]){for(i=1,x=j.length;i<x;i++){h=h[j[i]];if(b(h)){return false}}}if(k[1]){var g=(h+"");switch(m){case"=":return g==k[1];break;case"!":return g!=k[1];break;case"^":return a.stringQuery.startsWith(g,k[1]);break;case"$":return a.stringQuery.endsWith(g,k[1]);break;case"*":return a.stringQuery.contains(g,k[1]);break;default:return false;break}}else{return true}}})(jQuery);
  /*
   * jQuery Url Plugin
	 * Version 1.0
	 * 2009-03-22 19:30:05
	 * URL: http://ajaxcssblog.com/jquery/url-read-get-variables/
	 * Description: jQuery Url Plugin gives the ability to read GET parameters from the actual URL
	 * Author: Matthias Jäggli
	 * Copyright: Copyright (c) 2009 Matthias Jäggli
	 * Licence: dual, MIT/GPLv2
   */
  (function($){$.url={};$.extend($.url,{_params:{},init:function(){var paramsRaw="";try{paramsRaw=(document.location.href.split("?",2)[1]||"").split("#")[0].split("&")||[];for(var i=0;i<paramsRaw.length;i++){var single=paramsRaw[i].split("=");if(single[0])this._params[single[0]]=unescape(single[1]);}}catch(e){alert(e);}},param:function(name){return this._params[name]||"";},paramAll:function(){return this._params;}});$.url.init();})(jQuery);
  /**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
 ;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
}
// Colorbox/popup
if (!$.colorbox) {
  // ColorBox v1.3.15 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
  // Copyright (c) 2010 Jack Moore - jack@colorpowered.com
  // Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
  (function(b,ib){var t="none",M="LoadedContent",c=false,v="resize.",o="y",q="auto",e=true,L="nofollow",m="x";function f(a,c){a=a?' id="'+i+a+'"':"";c=c?' style="'+c+'"':"";return b("<div"+a+c+"/>")}function p(a,b){b=b===m?n.width():n.height();return typeof a==="string"?Math.round(/%/.test(a)?b/100*parseInt(a,10):parseInt(a,10)):a}function U(b){return a.photo||/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i.test(b)}function cb(a){for(var c in a)if(b.isFunction(a[c])&&c.substring(0,2)!=="on")a[c]=a[c].call(l);a.rel=a.rel||l.rel||L;a.href=a.href||b(l).attr("href");a.title=a.title||l.title;return a}function w(c,a){a&&a.call(l);b.event.trigger(c)}function jb(){var b,e=i+"Slideshow_",c="click."+i,f,k;if(a.slideshow&&h[1]){f=function(){F.text(a.slideshowStop).unbind(c).bind(V,function(){if(g<h.length-1||a.loop)b=setTimeout(d.next,a.slideshowSpeed)}).bind(W,function(){clearTimeout(b)}).one(c+" "+N,k);j.removeClass(e+"off").addClass(e+"on");b=setTimeout(d.next,a.slideshowSpeed)};k=function(){clearTimeout(b);F.text(a.slideshowStart).unbind([V,W,N,c].join(" ")).one(c,f);j.removeClass(e+"on").addClass(e+"off")};a.slideshowAuto?f():k()}}function db(c){if(!O){l=c;a=cb(b.extend({},b.data(l,r)));h=b(l);g=0;if(a.rel!==L){h=b("."+G).filter(function(){return (b.data(this,r).rel||this.rel)===a.rel});g=h.index(l);if(g===-1){h=h.add(l);g=h.length-1}}if(!u){u=D=e;j.show();if(a.returnFocus)try{l.blur();b(l).one(eb,function(){try{this.focus()}catch(a){}})}catch(f){}x.css({opacity:+a.opacity,cursor:a.overlayClose?"pointer":q}).show();a.w=p(a.initialWidth,m);a.h=p(a.initialHeight,o);d.position(0);X&&n.bind(v+P+" scroll."+P,function(){x.css({width:n.width(),height:n.height(),top:n.scrollTop(),left:n.scrollLeft()})}).trigger("scroll."+P);w(fb,a.onOpen);Y.add(H).add(I).add(F).add(Z).hide();ab.html(a.close).show()}d.load(e)}}var gb={transition:"elastic",speed:300,width:c,initialWidth:"600",innerWidth:c,maxWidth:c,height:c,initialHeight:"450",innerHeight:c,maxHeight:c,scalePhotos:e,scrolling:e,inline:c,html:c,iframe:c,photo:c,href:c,title:c,rel:c,opacity:.9,preloading:e,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:c,returnFocus:e,loop:e,slideshow:c,slideshowAuto:e,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:c,onLoad:c,onComplete:c,onCleanup:c,onClosed:c,overlayClose:e,escKey:e,arrowKey:e},r="colorbox",i="cbox",fb=i+"_open",W=i+"_load",V=i+"_complete",N=i+"_cleanup",eb=i+"_closed",Q=i+"_purge",hb=i+"_loaded",E=b.browser.msie&&!b.support.opacity,X=E&&b.browser.version<7,P=i+"_IE6",x,j,A,s,bb,T,R,S,h,n,k,J,K,Z,Y,F,I,H,ab,B,C,y,z,l,g,a,u,D,O=c,d,G=i+"Element";d=b.fn[r]=b[r]=function(c,f){var a=this,d;if(!a[0]&&a.selector)return a;c=c||{};if(f)c.onComplete=f;if(!a[0]||a.selector===undefined){a=b("<a/>");c.open=e}a.each(function(){b.data(this,r,b.extend({},b.data(this,r)||gb,c));b(this).addClass(G)});d=c.open;if(b.isFunction(d))d=d.call(a);d&&db(a[0]);return a};d.init=function(){var l="hover",m="clear:left";n=b(ib);j=f().attr({id:r,"class":E?i+"IE":""});x=f("Overlay",X?"position:absolute":"").hide();A=f("Wrapper");s=f("Content").append(k=f(M,"width:0; height:0; overflow:hidden"),K=f("LoadingOverlay").add(f("LoadingGraphic")),Z=f("Title"),Y=f("Current"),I=f("Next"),H=f("Previous"),F=f("Slideshow").bind(fb,jb),ab=f("Close"));A.append(f().append(f("TopLeft"),bb=f("TopCenter"),f("TopRight")),f(c,m).append(T=f("MiddleLeft"),s,R=f("MiddleRight")),f(c,m).append(f("BottomLeft"),S=f("BottomCenter"),f("BottomRight"))).children().children().css({"float":"left"});J=f(c,"position:absolute; width:9999px; visibility:hidden; display:none");b("body").prepend(x,j.append(A,J));s.children().hover(function(){b(this).addClass(l)},function(){b(this).removeClass(l)}).addClass(l);B=bb.height()+S.height()+s.outerHeight(e)-s.height();C=T.width()+R.width()+s.outerWidth(e)-s.width();y=k.outerHeight(e);z=k.outerWidth(e);j.css({"padding-bottom":B,"padding-right":C}).hide();I.click(d.next);H.click(d.prev);ab.click(d.close);s.children().removeClass(l);b("."+G).live("click",function(a){if(!(a.button!==0&&typeof a.button!=="undefined"||a.ctrlKey||a.shiftKey||a.altKey)){a.preventDefault();db(this)}});x.click(function(){a.overlayClose&&d.close()});b(document).bind("keydown",function(b){if(u&&a.escKey&&b.keyCode===27){b.preventDefault();d.close()}if(u&&a.arrowKey&&!D&&h[1])if(b.keyCode===37&&(g||a.loop)){b.preventDefault();H.click()}else if(b.keyCode===39&&(g<h.length-1||a.loop)){b.preventDefault();I.click()}})};d.remove=function(){j.add(x).remove();b("."+G).die("click").removeData(r).removeClass(G)};d.position=function(f,d){function b(a){bb[0].style.width=S[0].style.width=s[0].style.width=a.style.width;K[0].style.height=K[1].style.height=s[0].style.height=T[0].style.height=R[0].style.height=a.style.height}var e,h=Math.max(document.documentElement.clientHeight-a.h-y-B,0)/2+n.scrollTop(),g=Math.max(n.width()-a.w-z-C,0)/2+n.scrollLeft();e=j.width()===a.w+z&&j.height()===a.h+y?0:f;A[0].style.width=A[0].style.height="9999px";j.dequeue().animate({width:a.w+z,height:a.h+y,top:h,left:g},{duration:e,complete:function(){b(this);D=c;A[0].style.width=a.w+z+C+"px";A[0].style.height=a.h+y+B+"px";d&&d()},step:function(){b(this)}})};d.resize=function(b){if(u){b=b||{};if(b.width)a.w=p(b.width,m)-z-C;if(b.innerWidth)a.w=p(b.innerWidth,m);k.css({width:a.w});if(b.height)a.h=p(b.height,o)-y-B;if(b.innerHeight)a.h=p(b.innerHeight,o);if(!b.innerHeight&&!b.height){b=k.wrapInner("<div style='overflow:auto'></div>").children();a.h=b.height();b.replaceWith(b.children())}k.css({height:a.h});d.position(a.transition===t?0:a.speed)}};d.prep=function(m){var c="hidden";function l(s){var p,f,m,c,l=h.length,q=a.loop;d.position(s,function(){function s(){E&&j[0].style.removeAttribute("filter")}if(u){E&&o&&k.fadeIn(100);k.show();w(hb);Z.show().html(a.title);if(l>1){typeof a.current==="string"&&Y.html(a.current.replace(/\{current\}/,g+1).replace(/\{total\}/,l)).show();I[q||g<l-1?"show":"hide"]().html(a.next);H[q||g?"show":"hide"]().html(a.previous);p=g?h[g-1]:h[l-1];m=g<l-1?h[g+1]:h[0];a.slideshow&&F.show();if(a.preloading){c=b.data(m,r).href||m.href;f=b.data(p,r).href||p.href;c=b.isFunction(c)?c.call(m):c;f=b.isFunction(f)?f.call(p):f;if(U(c))b("<img/>")[0].src=c;if(U(f))b("<img/>")[0].src=f}}K.hide();a.transition==="fade"?j.fadeTo(e,1,function(){s()}):s();n.bind(v+i,function(){d.position(0)});w(V,a.onComplete)}})}if(u){var o,e=a.transition===t?0:a.speed;n.unbind(v+i);k.remove();k=f(M).html(m);k.hide().appendTo(J.show()).css({width:function(){a.w=a.w||k.width();a.w=a.mw&&a.mw<a.w?a.mw:a.w;return a.w}(),overflow:a.scrolling?q:c}).css({height:function(){a.h=a.h||k.height();a.h=a.mh&&a.mh<a.h?a.mh:a.h;return a.h}()}).prependTo(s);J.hide();b("#"+i+"Photo").css({cssFloat:t,marginLeft:q,marginRight:q});X&&b("select").not(j.find("select")).filter(function(){return this.style.visibility!==c}).css({visibility:c}).one(N,function(){this.style.visibility="inherit"});a.transition==="fade"?j.fadeTo(e,0,function(){l(0)}):l(e)}};d.load=function(u){var n,c,s,q=d.prep;D=e;l=h[g];u||(a=cb(b.extend({},b.data(l,r))));w(Q);w(W,a.onLoad);a.h=a.height?p(a.height,o)-y-B:a.innerHeight&&p(a.innerHeight,o);a.w=a.width?p(a.width,m)-z-C:a.innerWidth&&p(a.innerWidth,m);a.mw=a.w;a.mh=a.h;if(a.maxWidth){a.mw=p(a.maxWidth,m)-z-C;a.mw=a.w&&a.w<a.mw?a.w:a.mw}if(a.maxHeight){a.mh=p(a.maxHeight,o)-y-B;a.mh=a.h&&a.h<a.mh?a.h:a.mh}n=a.href;K.show();if(a.inline){f().hide().insertBefore(b(n)[0]).one(Q,function(){b(this).replaceWith(k.children())});q(b(n))}else if(a.iframe){j.one(hb,function(){var c=b("<iframe frameborder='0' style='width:100%; height:100%; border:0; display:block'/>")[0];c.name=i+ +new Date;c.src=a.href;if(!a.scrolling)c.scrolling="no";if(E)c.allowtransparency="true";b(c).appendTo(k).one(Q,function(){c.src="//about:blank"})});q(" ")}else if(a.html)q(a.html);else if(U(n)){c=new Image;c.onload=function(){var e;c.onload=null;c.id=i+"Photo";b(c).css({border:t,display:"block",cssFloat:"left"});if(a.scalePhotos){s=function(){c.height-=c.height*e;c.width-=c.width*e};if(a.mw&&c.width>a.mw){e=(c.width-a.mw)/c.width;s()}if(a.mh&&c.height>a.mh){e=(c.height-a.mh)/c.height;s()}}if(a.h)c.style.marginTop=Math.max(a.h-c.height,0)/2+"px";h[1]&&(g<h.length-1||a.loop)&&b(c).css({cursor:"pointer"}).click(d.next);if(E)c.style.msInterpolationMode="bicubic";setTimeout(function(){q(c)},1)};setTimeout(function(){c.src=n},1)}else n&&J.load(n,function(d,c,a){q(c==="error"?"Request unsuccessful: "+a.statusText:b(this).children())})};d.next=function(){if(!D){g=g<h.length-1?g+1:0;d.load()}};d.prev=function(){if(!D){g=g?g-1:h.length-1;d.load()}};d.close=function(){if(u&&!O){O=e;u=c;w(N,a.onCleanup);n.unbind("."+i+" ."+P);x.fadeTo("fast",0);j.stop().fadeTo("fast",0,function(){w(Q);k.remove();j.add(x).css({opacity:1,cursor:q}).hide();setTimeout(function(){O=c;w(eb,a.onClosed)},1)})}};d.element=function(){return b(l)};d.settings=gb;b(d.init)})(jQuery,this);

  /*
  Popupwindow plugin for jQuery.
  by: Tony Petruzzi
  homepage: http://rip747.wordpress.com
  plugin download: http://rip747.wordpress.com/2007/03/02/the-return-of-popupwindow-jquery-plugin/
  */
  jQuery.fn.popupwindow=function(b){var a=b||{};return this.each(function(f){var h,j,d,c,e;d=(jQuery(this).attr("rel")||"").split(",");h={height:600,width:600,toolbar:0,scrollbars:0,status:0,resizable:1,left:0,top:0,center:0,createnew:1,location:0,menubar:0};if(d.length==1&&d[0].split(":").length==1){e=d[0];if(typeof a[e]!="undefined"){h=jQuery.extend(h,a[e])}}else{for(var g=0;g<d.length;g++){c=d[g].split(":");if(typeof h[c[0]]!="undefined"&&c.length==2){h[c[0]]=c[1]}}}if(h.center==1){h.top=(screen.height-(h.height+110))/2;h.left=(screen.width-h.width)/2}j="location="+h.location+",menubar="+h.menubar+",height="+h.height+",width="+h.width+",toolbar="+h.toolbar+",scrollbars="+h.scrollbars+",status="+h.status+",resizable="+h.resizable+",left="+h.left+",screenX="+h.left+",top="+h.top+",screenY="+h.top;jQuery(this).bind("click",function(){var i=h.createnew?"PopUpWindow"+f:"PopUpWindow";window.open(this.href,i,j).focus();return false})})};
}

  // jQuery 'document ready'
  $(function() {
    // Superfish
    $('#mainnav ul').supersubs({
      minWidth:   12,   // Minimum width in em
      maxWidth:   27,   // Maximum width in em
      extraWidth: 1     // Fix rounding errors
    }).superfish({
      delay: 400,
      animation: {height:'show'},
      autoArrows: false,
      dropShadows: false
    });

    // Video
    $('video,audio').mediaelementplayer(/* Options */);

    // contact email addresses, modal for contact-us map and form
    if ($('body').is('#contact-us')) {
      var meetTeam = $('<a class="meet-team georgia">Meet Our Team</a>');
      meetTeam.insertBefore('#content h1:first').click(function(e){
        e.preventDefault();
        $('#main').scrollTo('#request-info',1000);
      });
      $('#contactform').css({paddingLeft:'20px'}).wrap('<div style="display:none;"/>');
      $('a.modal').each(function(){
        var href = $(this).attr('href'),
            inline = (href == '#contactform');
        $(this).colorbox({
          opacity:  .30,
          inline:   inline,
          width: '640px',
          onOpen:   function(){
                      if (href == '#contactform') {
                        $('#frm-email').val($(this).data('eml'));
                      }
                    }
        });
      });
      // Show form immediately if it has errors
      if ($('#contactform').is('.has-errors')) {
        $.colorbox({
          opacity:  .30,
          title:    function(){
                      var emltgt = $('#frm-email'),
                          emllink = $('a:data(eml='+emltgt.val()+')');
                      return emllink.attr('title');
                    },
          inline:   true,
          href:     "#contactform",
          onClosed: function(){
                      // Reset form on close
                      $('#contactform').find('input:not(:hidden)').val('').end().find('.invalid').removeClass('invalid').end().find('.err').remove();
                      $('#frm-email').val('info at [imcportfolio dot com]');
                    }
        });
      }
      $('a[href^=mailto]').each(function(){
        $(this).attr('href',$(this).attr('href').replace(/(.*?) at \[(.*?) dot (.*?)\]/,'$1@$2.$3'));
      });
    }

    // Video Library external links
    if ($(document.body).is('#video-library')) {
      var popSettings = {
        externalVideo: {
          width:1025,
          height:625,
          resizable:0,
          center:1
        }
      };
      $('a[rel=externalVideo]').popupwindow(popSettings);
    }

    // Form placeholders, where req'd
    if (!Modernizr.input.placeholder) {
      var inputs = $("[placeholder]");
      if (inputs.length > 0) {
        inputs.focus(function() {
          var input = $(this);
          if (input.val() == input.attr("placeholder")) {
            input.val("").removeClass("placeholder");
          }
        }).blur(function() {
          var input = $(this);
          if (input.val() == "" || input.val() == input.attr("placeholder")) {
            input.addClass("placeholder").val(input.attr("placeholder"));
          }
        }).blur();
        inputs.parents("form").submit(function() {
          $(this).find("[placeholder]").each(function() {
            var input = $(this);
            if (input.val() == input.attr("placeholder")) {
              input.val("");
            }
          })
        });
      }
    }

    // Create function to get/update sidebar stock data
    $('#stocks').bind('getStocks',function(){
      var stocks = $(this);
      $('.header',stocks).css('background-position','98px 15px');
      $.getJSON('/includes/stocks.php',function(data){
        $('.header',stocks).css('background-position','-100px 0');
        // If data was not available, display error message
        if (typeof(data.msg) !== 'undefined') {
          $('.stockdata',stocks).html('<b class="error">'+data.msg+'</b>');
        }
        // If data was retrieved, display stock data
        else {
          var list = $('<dl class="clear"/>').appendTo($('.stockdata',stocks).empty());

          // Create each stock listing
          for (i in data) {
            // Create stock title and detail containers
            var stock = $('<dt/>'), stockdata = $('<dd/>');
            // Add css class to first stock
            if (i==0) {
              stock.add(stockdata).addClass('firststock');
            }

            // Create link in title container
            stock.html('<a href="/external-link.php?url='+data[i].Link+'">'+(data[i].AltName || data[i].Name)+'</a>');

            // Prep css for stock details
            changeCss = (data[i].Change.match(/\-.*/) ? 'loss' : 'gain');
            // Create html for stock details
            stockdata.html('<i class="quote">'+data[i].Quote+' </i><i class="change '+changeCss+'">'+data[i].Change+' </i><i class="time">'+data[i].Time+'</i>');

            // Append title and details to stock list
            list.append(stock,stockdata);
          }
        }
      });
    });

    // Update stocks now and set stocks to update every 10 seconds hereafter
    $('#stocks').trigger('getStocks');
    setInterval(function(){
      $('#stocks').trigger('getStocks');
    },10000);

    // Enable 'print' link
    var printcss = $('#printcss');
    $('a.print').click(function(e){
      var txt = $(this).text()
      e.preventDefault();
      if (txt=='Print') {
        printcss.attr('media','all');
        $(this).text('Back');
      } else {
        printcss.attr('media','print');
        $(this).text('Print');
      }
    });

    // Enable buttons for java calculator applets
    if ($('object.javaCalc').length > 0) {
      $('object.javaCalc').each(function(){
        // Isolate calculator, create buttons
        var obj = $(this),
            calcbtn = $('<button class="calcBtn"><span>Calculate</span></button>'),
            viewbtn = $('<button class="viewBtn"><span>View Report</span></button>');
        // Assign actions to buttons
        calcbtn.click(function(){ obj[0].calculate(); });
        viewbtn.click(function(e){
          e.preventDefault();
          var settings = {
                name:   obj[0].id+'win',
                width:  800,
                height: 600,
                top:    (screen.height-(600 + 110))/2,
                left:   (screen.width-800)/2
              },
              OpenWindow = window.open("",settings.name,
                                       "width="+settings.width+",height="+settings.height
                                       +",left="+settings.left+",top="+settings.top
                                       +",resizable=yes,scrollbars=yes,status=yes"
                                       +",toolbar=yes,menubar=yes,location=no");

          OpenWindow.document.write(obj[0].sJavaScriptReport('HTML'));
          OpenWindow.document.close();
          OpenWindow.focus();
        });
        // Insert buttons after calculator
        obj.after(viewbtn).after('&nbsp;&nbsp;').after(calcbtn);
      });
    }

    // Fade splash screen on first view, then set cookie so inline js can remove
    // it on subsequent page visits )
    if ($.url.param('splash') == 'true' || $.cookie('showsplash') == null || $.cookie('showsplash') != 0) {
      $('#splash').delay(1000).fadeOut('normal',function(){$.cookie('showsplash',0,{path:'/'});});
    }

  }); // End jQuery 'document ready'
})(this.jQuery);

