window.log=function(){log.history=log.history||[];log.history.push(arguments);if(this.console){arguments.callee=arguments.callee.caller;var a=[].slice.call(arguments);(typeof console.log==="object"?log.apply.call(console.log,console,a):console.log.apply(console,a))}};
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try
{console.log();return window.console;}catch(err){return window.console={};}})());

// round a number to specified decimal places
function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

/*
 * jQuery Orbit Plugin 1.2.3
 * www.ZURB.com/playground
 * Copyright 2010, ZURB
 * Free to use under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
*/



(function($) {
	$.fn.orbit = function(options) {
		var defaults = {
			animation: 'horizontal-push',
			animationSpeed: 600,
			timer: true,
			advanceSpeed: 4000,
			pauseOnHover: false,
			startClockOnMouseOut: false,
			startClockOnMouseOutAfter: 1000,
			directionalNav: true,
			captions: true,
			captionAnimation: 'fade',
			captionAnimationSpeed: 600,
			bullets: false,
			bulletThumbs: false,
			bulletThumbLocation: '',
			afterSlideChange: function() {}
		};
		var options = $.extend(defaults, options);
		return this.each(function() {
			var activeSlide = 0,
				numberSlides = 0,
				orbitWidth, orbitHeight, locked;
			var orbit = $(this).addClass('orbit'),
				orbitWrapper = orbit.wrap('<div class="orbit-wrapper" />').parent();
			orbit.add(orbitWidth).width('1px').height('1px');
			var slides = orbit.children('img, a, div');
			slides.each(function() {
				var _slide = $(this),
					_slideWidth = _slide.width(),
					_slideHeight = _slide.height();
				if (_slideWidth > orbit.width()) {
					orbit.add(orbitWrapper).width(_slideWidth);
					orbitWidth = orbit.width();
				}
				if (_slideHeight > orbit.height()) {
					orbit.add(orbitWrapper).height(_slideHeight);
					orbitHeight = orbit.height();
				}
				numberSlides++;
			});

			function unlock() {
				locked = false;
			}


			function lock() {
				locked = true;
			}
			if (slides.length == 1) {
				options.directionalNav = false;
				options.timer = false;
				options.bullets = false;
			}
			slides.eq(activeSlide).css({
				"z-index": 3
			}).fadeIn(function() {
				slides.css({
					"display": "block"
				})
			});

			function startClock() {
				if (!options.timer || options.timer == 'false') {
					return false;
				} else if (timer.is(':hidden')) {
					clock = setInterval(function(e) {
						shift("next");
					},
					options.advanceSpeed);
				} else {
					timerRunning = true;
					pause.removeClass('active')
					clock = setInterval(function(e) {
						var degreeCSS = "rotate(" + degrees + "deg)"
						degrees += 2
						rotator.css({
							"-webkit-transform": degreeCSS,
							"-moz-transform": degreeCSS,
							"-o-transform": degreeCSS
						});
						if (degrees > 180) {
							rotator.addClass('move');
							mask.addClass('move');
						}
						if (degrees > 360) {
							rotator.removeClass('move');
							mask.removeClass('move');
							degrees = 0;
							shift("next");
						}
					},
					options.advanceSpeed / 180);
				}
			}


			function stopClock() {
				if (!options.timer || options.timer == 'false') {
					return false;
				} else {
					timerRunning = false;
					clearInterval(clock);
					pause.addClass('active');
				}
			}
			if (options.timer) {
				var timerHTML = '<div class="timer"><span class="mask"><span class="rotator"></span></span><span class="pause"></span></div>'
				orbitWrapper.append(timerHTML);
				var timer = orbitWrapper.children('div.timer'),
					timerRunning;
				if (timer.length != 0) {
					var rotator = $('div.timer span.rotator'),
						mask = $('div.timer span.mask'),
						pause = $('div.timer span.pause'),
						degrees = 0,
						clock;
					startClock();
					timer.click(function() {
						if (!timerRunning) {
							startClock();
						} else {
							stopClock();
						}
					});
					if (options.startClockOnMouseOut) {
						var outTimer;
						orbitWrapper.mouseleave(function() {
							outTimer = setTimeout(function() {
								if (!timerRunning) {
									startClock();
								}
							},
							options.startClockOnMouseOutAfter)
						})
						orbitWrapper.mouseenter(function() {
							clearTimeout(outTimer);
						})
					}
				}
			}
			if (options.pauseOnHover) {
				orbitWrapper.mouseenter(function() {
					stopClock();
				});
			}
			if (options.captions) {
				var captionHTML = '<div class="orbit-custom-outer"><div class="orbit-caption"></div></div>';
				orbitWrapper.append(captionHTML);
				var caption = orbitWrapper.find('.orbit-custom-outer .orbit-caption');
				setCaption();
			}

			function setCaption() {
				if (!options.captions || options.captions == "false") {
					return false;
				} else {
					var _captionLocation = slides.eq(activeSlide).data('caption');
					_captionHTML = $(_captionLocation).html();
					if (_captionHTML) {
						caption.attr('id', _captionLocation).html(_captionHTML);
						if (options.captionAnimation == 'none') {
							caption.show();
						}
						if (options.captionAnimation == 'fade') {
							caption.fadeIn(options.captionAnimationSpeed);
						}
						if (options.captionAnimation == 'slideOpen') {
							caption.slideDown(options.captionAnimationSpeed);
						}
					} else {
						if (options.captionAnimation == 'none') {
							caption.hide();
						}
						if (options.captionAnimation == 'fade') {
							caption.fadeOut(options.captionAnimationSpeed);
						}
						if (options.captionAnimation == 'slideOpen') {
							caption.slideUp(options.captionAnimationSpeed);
						}
					}
				}
			}
			if (options.directionalNav) {
				if (options.directionalNav == "false") {
					return false;
				}
				var directionalNavHTML = '<div class="slider-nav"><span class="right">Right</span><span class="left">Left</span></div>';
				orbitWrapper.append(directionalNavHTML);
				var leftBtn = orbitWrapper.children('div.slider-nav').children('span.left'),
					rightBtn = orbitWrapper.children('div.slider-nav').children('span.right');
				leftBtn.click(function() {
					stopClock();
					shift("prev");
				});
				rightBtn.click(function() {
					stopClock();
					shift("next")
				});
			}
			if (options.bullets) {
				var bulletHTML = '<ul class="orbit-bullets"></ul>';
				orbitWrapper.append(bulletHTML);
				var bullets = orbitWrapper.children('ul.orbit-bullets');
				for (i = 0; i < numberSlides; i++) {
					var liMarkup = $('<li>' + (i + 1) + '</li>');
					if (options.bulletThumbs) {
						var thumbName = slides.eq(i).data('thumb');
						if (thumbName) {
							var liMarkup = $('<li class="has-thumb">' + i + '</li>')
							liMarkup.css({
								"background": "url(" + options.bulletThumbLocation + thumbName + ") no-repeat"
							});
						}
					}
					orbitWrapper.children('ul.orbit-bullets').append(liMarkup);
					liMarkup.data('index', i);
					liMarkup.click(function() {
						stopClock();
						shift($(this).data('index'));
					});
				}
				setActiveBullet();
			}

			function setActiveBullet() {
				if (!options.bullets) {
					return false;
				} else {
					bullets.children('li').removeClass('active').eq(activeSlide).addClass('active');
				}
			}


			function shift(direction) {
				var prevActiveSlide = activeSlide,
					slideDirection = direction;
				if (prevActiveSlide == slideDirection) {
					return false;
				}

				function resetAndUnlock() {
					slides.eq(prevActiveSlide).css({
						"z-index": 1
					});
					unlock();
					options.afterSlideChange.call(this);
				}
				if (slides.length == "1") {
					return false;
				}
				if (!locked) {
					lock();
					if (direction == "next") {
						activeSlide++
						if (activeSlide == numberSlides) {
							activeSlide = 0;
						}
					} else if (direction == "prev") {
						activeSlide--
						if (activeSlide < 0) {
							activeSlide = numberSlides - 1;
						}
					} else {
						activeSlide = direction;
						if (prevActiveSlide < activeSlide) {
							slideDirection = "next";
						} else if (prevActiveSlide > activeSlide) {
							slideDirection = "prev"
						}
					}
					setActiveBullet();
					slides.eq(prevActiveSlide).css({
						"z-index": 2
					});
					if (options.animation == "fade") {
						slides.eq(activeSlide).css({
							"opacity": 0,
							"z-index": 3
						}).animate({
							"opacity": 1
						},
						options.animationSpeed, resetAndUnlock);
					}
					if (options.animation == "horizontal-slide") {
						if (slideDirection == "next") {
							slides.eq(activeSlide).css({
								"left": orbitWidth,
								"z-index": 3
							}).animate({
								"left": 0
							},
							options.animationSpeed, resetAndUnlock);
						}
						if (slideDirection == "prev") {
							slides.eq(activeSlide).css({
								"left": -orbitWidth,
								"z-index": 3
							}).animate({
								"left": 0
							},
							options.animationSpeed, resetAndUnlock);
						}
					}
					if (options.animation == "vertical-slide") {
						if (slideDirection == "prev") {
							slides.eq(activeSlide).css({
								"top": orbitHeight,
								"z-index": 3
							}).animate({
								"top": 0
							},
							options.animationSpeed, resetAndUnlock);
						}
						if (slideDirection == "next") {
							slides.eq(activeSlide).css({
								"top": -orbitHeight,
								"z-index": 3
							}).animate({
								"top": 0
							},
							options.animationSpeed, resetAndUnlock);
						}
					}
					if (options.animation == "horizontal-push") {
						if (slideDirection == "next") {
							slides.eq(activeSlide).css({
								"left": orbitWidth,
								"z-index": 3
							}).animate({
								"left": 0
							},
							options.animationSpeed, resetAndUnlock);
							slides.eq(prevActiveSlide).animate({
								"left": -orbitWidth
							},
							options.animationSpeed);
						}
						if (slideDirection == "prev") {
							slides.eq(activeSlide).css({
								"left": -orbitWidth,
								"z-index": 3
							}).animate({
								"left": 0
							},
							options.animationSpeed, resetAndUnlock);
							slides.eq(prevActiveSlide).animate({
								"left": orbitWidth
							},
							options.animationSpeed);
						}
					}
					setCaption();
					_gaq.push(['_trackEvent', 'Facilities', 'Change Picture']);
				}
			}
		});
	}
})(jQuery);





// storage polyfill by Remy Sharp
if(typeof window.localStorage=='undefined'||typeof window.sessionStorage=='undefined')(function(){var Storage=function(type){function createCookie(name,value,days){var date,expires;if(days){date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();}else{expires="";}
document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=",ca=document.cookie.split(';'),i,c;for(i=0;i<ca.length;i++){c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length);}
if(c.indexOf(nameEQ)==0){return c.substring(nameEQ.length,c.length);}}
return null;}
function setData(data){data=JSON.stringify(data);if(type=='session'){window.name=data;}else{createCookie('localStorage',data,365);}}
function clearData(){if(type=='session'){window.name='';}else{createCookie('localStorage','',365);}}
function getData(){var data=type=='session'?window.name:readCookie('localStorage');return data?JSON.parse(data):{};}
var data=getData();return{length:0,clear:function(){data={};this.length=0;clearData();},getItem:function(key){return data[key]===undefined?null:data[key];},key:function(i){var ctr=0;for(var k in data){if(ctr==i)return k;else ctr++;}
return null;},removeItem:function(key){delete data[key];this.length--;setData(data);},setItem:function(key,value){data[key]=value+'';this.length++;setData(data);}};};if(typeof window.localStorage=='undefined')window.localStorage=new Storage('local');if(typeof window.sessionStorage=='undefined')window.sessionStorage=new Storage('session');})();
