// Generated by CoffeeScript 1.3.3 (function() { (function($) { var debug, methods; if (!((debug = window.debug) != null)) { debug = { log: function() {} }; } methods = { init: function(options) { var settings; settings = $.extend({ selector: ".content", tolerance: 0 }, options); debug.log("initializing", settings, options); return this.each(function() { var element; debug.log("initializing on", this); element = $(this); element.data(settings); return $(window).on("scroll", null, element, methods.handleScroll); }); }, align: function(element) {}, handleScroll: function(event) { var element; element = event.data; return methods.findActiveElement(event); }, findActiveElement: function(event) { var children, element, newActiveElement, settings; element = event.data; settings = element.data(); children = element.find(settings.selector).filter(":visible"); newActiveElement = null; children.each(function(index, item) { var top; top = $(item).viewportOffset().top; if (top > -settings.tolerance) { newActiveElement = item; return false; } }); if (newActiveElement !== settings.activeElement) { element.trigger("activify.newActiveElement", [newActiveElement]); } settings.activeElement = newActiveElement; clearTimeout(settings.scrollTimeout); settings.scrollTimeout = setTimeout((function() { return $("html, body").animate({ "scrollTop": $(newActiveElement).offset().top }, "slow"); }), 1000); return element.data(settings); } }; $.fn.viewportOffset = function() { var left, offset, top; offset = this.offset(); top = offset.top - $(window).scrollTop(); left = offset.left - $(window).scrollLeft(); return { top: top, left: left }; }; $.fn.visibleKarma = function() { var karma, windowSurface, x1, x2, y1, y2; karma = { document: { viewport: { top: null, left: null }, element: { top: null, left: null } }, viewport: { width: null, height: null, area: null, element: { top: null, left: null }, visible: { top: null, right: null, bottom: null, left: null, area: null, ratio: null } }, element: { width: null, height: null } }; windowSurface = $(window).height() * $(window).width(); karma.document.viewport.top = $(window).scrollTop(); karma.document.viewport.left = $(window).scrollLeft(); karma.viewport.width = $(window).width(); karma.viewport.height = $(window).height(); karma.viewport.area = karma.viewport.width * karma.viewport.height; karma.document.element = this.offset(); karma.viewport.element.top = karma.document.element.top - karma.document.viewport.top; karma.viewport.element.left = karma.document.element.left - karma.document.viewport.left; karma.element.width = this.width(); karma.element.height = this.height(); x1 = karma.viewport.element.left > 0 ? karma.viewport.element.left : 0; y1 = karma.viewport.element.top > 0 ? karma.viewport.element.top : 0; x2 = karma.document.element.left + karma.element.width - Math.abs(karma.viewport.element.top); if (0 > x2) { x2 = 0; } if (karma.viewport.width < x2) { x2 = karma.viewport.width; } y2 = karma.document.element.top + karma.element.height - Math.abs(karma.viewport.element.left); if (0 > y2) { y2 = 0; } if (karma.viewport.height < y2) { y2 = karma.viewport.height; } karma.viewport.visible = { x1: x1, x2: x2, y1: y1, y2: y2 }; karma.viewport.visible.area = x2 * y2; karma.viewport.visible.ratio = karma.viewport.visible.area / karma.viewport.area; this.css("opacity", karma.viewport.visible.ratio); return karma; }; return $.fn.activeElement = function(method) { debug.log("calling method", method); if (methods[method] != null) { return methods[method].apply(this, arguments); } if ('object' === typeof method || !(method != null)) { return methods.init.apply(this, arguments); } return $.error("Method " + method + " does not exist on jQuery.activeElement."); }; })(jQuery); (function($) { return $.fn.arrowscrollers = function(options) { var debug, settings; settings = $.extend({ classNames: { arrowscroller: 'arrowscroller', arrow: 'arrow', left: 'left', right: 'right' }, arrow: { width: 36 } }, options); if (false === ((debug = window.debug) != null)) { debug = { log: function() {} }; } debug.log("InSideOut10 Arrow Scrollers", this, settings); return this.each(function() { var arrowLeft, arrowRight, doScrollLeft, doScrollRight, element, height, margin, width, _this = this; element = $(this); doScrollLeft = function() { var page, scrollLeft; page = element.scrollLeft() / element.width(); scrollLeft = element.width() * ++page; if (scrollLeft > element.get(0).scrollWidth) { return; } return element.animate({ scrollLeft: scrollLeft }); }; doScrollRight = function() { var page, scrollLeft; page = element.scrollLeft() / element.width(); scrollLeft = element.width() * --page; if (0 > scrollLeft) { scrollLeft = 0; } return element.animate({ scrollLeft: scrollLeft }); }; element.css("overflow", "hidden"); height = element.height(); width = element.width(); margin = settings.arrow.width / 2; arrowLeft = $("
").css('width', settings.arrow.width).css('height', height).css('cursor', 'pointer').css('margin-left', -margin).click(doScrollRight); arrowRight = $("").css('width', settings.arrow.width).css('height', height).css('margin-left', width + margin).css('margin-top', -height).css('cursor', 'pointer').click(doScrollLeft); return element.css('margin-left', margin).css('margin-top', -height).before(arrowLeft).after(arrowRight); }); }; })(jQuery); (function($) { var debug, methods; if (false === ((debug = window.debug) != null)) { debug = { log: function() {} }; } methods = { init: function(options) { var settings, _this = this; settings = $.extend({ selectors: { background: ".background", container: ".container", content: ".content", header: ".header" } }, options); $(window).on("resize scroll", function() { clearTimeout(_this.data("resizeTimeout")); return _this.data({ resizeTimeout: setTimeout((function() { return _this.fillify("resize", settings); }), 200) }); }); return this.fillify("resize", settings); }, resize: function(settings) { return this.each(function(index, item) { var backgroundImage, backgroundRatio, container, containerHeight, containerWidth, contentHeight, contentHorizontalMargin, contentWidth, contents, element, horizontalMargin, prevHeight, prevWidth, verticalMargin, width, windowHeight, windowWidth; element = $(item); windowHeight = methods.getWindowHeight(); windowWidth = methods.getWindowWidth(); prevWidth = element.data("windowWidth"); prevHeight = element.data("windowHeight"); if (windowHeight === prevHeight && windowWidth === prevWidth) { return true; } element.data({ windowWidth: windowWidth, windowHeight: windowHeight }); backgroundImage = element.find("" + settings.selectors.background + " img"); if (0 < backgroundImage.length) { backgroundRatio = backgroundImage.data("ratio"); if (!(backgroundRatio != null)) { backgroundRatio = parseInt(backgroundImage.css("width"), 10) / parseInt(backgroundImage.css("height"), 10); backgroundImage.data({ ratio: backgroundRatio }); } } width = element.css("width"); if ("%" === width.charAt(width.length - 1)) { width = $(window).width() * width; } else { width = parseInt(width, 10); } element.children().width(width); element.children("" + settings.selectors.background).css("overflow", "hidden"); element.children("" + settings.selectors.background).css("height", windowHeight).css("width", width); container = element.children("" + settings.selectors.container); horizontalMargin = parseInt(container.css("margin-left"), 10) + parseInt(container.css("margin-right"), 10) + parseInt(container.css("padding-left"), 10) + parseInt(container.css("padding-right"), 10); containerWidth = width - horizontalMargin; verticalMargin = parseInt(container.css("margin-top"), 10) + parseInt(container.css("margin-bottom"), 10) + parseInt(container.css("padding-top"), 10) + parseInt(container.css("padding-bottom"), 10); containerHeight = windowHeight - verticalMargin; container.css("width", containerWidth).css("height", containerHeight); contents = element.find("" + settings.selectors.container + " " + settings.selectors.content); contentHorizontalMargin = parseInt(contents.css("margin-left"), 10) + parseInt(contents.css("margin-right"), 10) + parseInt(contents.css("padding-left"), 10) + parseInt(contents.css("padding-right"), 10); contentWidth = containerWidth - contentHorizontalMargin; contentHeight = methods.getContentHeight(element, settings); contents.css("width", contentWidth).css("height", contentHeight); if (0 < backgroundImage.length) { backgroundImage.height(windowHeight).width(windowHeight * backgroundRatio); debug.log("background width and height set.", width, backgroundImage.width()); if (width > backgroundImage.width()) { backgroundImage.width(width).height(width / backgroundRatio); debug.log("forcing background width and height."); } } return element.trigger("fillify.fillify"); }); }, getWindowHeight: function() { if (window.innerHeight) { return window.innerHeight; } else { return $(window).height(); } }, getWindowWidth: function() { return $(window).width(); }, getContainerWidth: function(element, settings) { return element.find("" + settings.selectors.container).width(); }, getContentElement: function(element, settings) { return element.find("" + settings.selectors.container + " " + settings.selectors.content); }, getContentHeight: function(element, settings) { var containerHeight, contentElement, contentMargin, headerHeight; containerHeight = element.find("" + settings.selectors.container).height(); headerHeight = element.find("" + settings.selectors.container + " " + settings.selectors.header).height(); contentElement = methods.getContentElement(element, settings); contentMargin = contentElement.outerHeight() - contentElement.height(); return containerHeight - headerHeight - contentMargin; } }; return $.fn.fillify = function(method) { if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } if ('object' === typeof method || !(method != null)) { return methods.init.apply(this, arguments); } return $.error('Method ' + method + ' does not exist.'); }; })(jQuery); (function($) { var debug, methods; if (!((debug = window.debug) != null)) { debug = { log: function() {} }; } methods = { init: function(options) { var settings; settings = $.extend({ openLayersURL: "http://openlayers.org/api/OpenLayers.js", projection: "EPSG:4326", container: this, elementId: "map", location: null, zoom: 0, namespace: "mapify", layerSwitcher: true, cache: true, title: "Map" }, options); debug.log("loading OpenLayers from [" + settings.openLayersURL + "]."); $.ajax(settings.openLayersURL, { cache: settings.cache, context: this, dataType: "script", complete: function(jqXHR, textStatus) { return debug.log("OpenLayers load completed with " + textStatus); }, error: function(jqXHR, textStatus, errorThrown) { return debug.log("OpenLayers load error with " + textStatus); }, success: function(data, textStatus, jqXHR) { return methods.create.apply(this, [settings]); } }); return this; }, create: function(options) { debug.log("create with options: ", options, this); return this.each(function(index, item) { var container, elementId, location, map, osm, projection, title, zoom; container = $(item); elementId = options.elementId; location = options.location; zoom = options.zoom; projection = options.projection; title = options.title; debug.log("adding [" + elementId + "] to the document."); $("").appendTo(container); debug.log("creating the map's instance."); map = new OpenLayers.Map(elementId, { maxResolution: "auto" }); debug.log("adding the basic layer."); osm = new OpenLayers.Layer.OSM(title); map.addLayer(osm); if ((location != null) && (location.latitude != null) && (location.longitude != null)) { debug.log("setting the location."); map.setCenter(new OpenLayers.LonLat(location.longitude, location.latitude).transform(new OpenLayers.Projection(projection), map.getProjectionObject())); } debug.log("zooming."); if (0 === zoom) { map.zoomToMaxExtent(); } else { map.zoomTo(zoom); } if (true === options.layerSwitcher) { map.addControl(new OpenLayers.Control.LayerSwitcher()); } container.data({ map: map, options: options }); return $(item).trigger("" + options.namespace + ".create"); }); }, geoRSS: function(options) { var layers, settings, _ref, _ref1, _ref2, _ref3; settings = $.extend({ thumbnail: { tag: "thumbnail", attribute: "url" }, className: null, radius: { "default": 15, select: 25 }, url: null, title: "GeoRSS", id: "id", externalGraphic: { url: null, width: null, height: null, select: { width: null, height: null } } }, options); debug.log("creating GeoRSS layer.", options, settings); if (!(settings.url != null)) { $.error("url has not been set."); } if (!(((_ref = settings.thumbnail) != null ? _ref.tag : void 0) != null)) { $.error("thumbnail tag has not been set."); } if (!(((_ref1 = settings.thumbnail) != null ? _ref1.attribute : void 0) != null)) { $.error("thumbnail attribute has not been set."); } if (!(settings.id != null)) { $.error("id attribute has not been set."); } if (!(settings.title != null)) { $.error("title has not been set."); } if (!(((_ref2 = settings.radius) != null ? _ref2["default"] : void 0) != null)) { $.error("radius default has not been set."); } if (!(((_ref3 = settings.radius) != null ? _ref3.select : void 0) != null)) { $.error("radius select has not been set."); } layers = []; return this.each(function(index, item) { var layer, map, selectStyle, style; map = $(item).data("map"); if (!(map != null)) { $.error("this element is not mapified."); } debug.log("creating a new GeoRSS layer with title [" + settings.title + "] and url [" + settings.url + "].", settings); debug.log("creating a new style with [externalGraphic :: " + settings.externalGraphic + "]."); style = new OpenLayers.Style({ externalGraphic: settings.externalGraphic.url, graphicWidth: settings.externalGraphic.width, graphicHeight: settings.externalGraphic.height, graphicXOffset: -settings.externalGraphic.width / 2, graphicYOffset: -settings.externalGraphic.height / 2 }); selectStyle = new OpenLayers.Style({ graphicWidth: settings.externalGraphic.select.width, graphicHeight: settings.externalGraphic.select.height, graphicXOffset: -settings.externalGraphic.select.width / 2, graphicYOffset: -settings.externalGraphic.select.height / 2 }); layer = new OpenLayers.Layer.GML(settings.title, settings.url, { format: OpenLayers.Format.GeoRSS, formatOptions: { createFeatureFromItem: function(item) { var feature, _ref4, _ref5; feature = OpenLayers.Format.GeoRSS.prototype.createFeatureFromItem.apply(this, arguments); feature.attributes.link = escape(this.getElementsByTagNameNS(item, "*", "link")[0].getAttribute("href")); feature.attributes.id = this.getElementsByTagNameNS(item, "*", settings.id)[0].textContent; feature.attributes.thumbnail = this.getElementsByTagNameNS(item, "*", settings.thumbnail.tag)[0].getAttribute(settings.thumbnail.attribute); if ((((_ref4 = settings.className) != null ? _ref4.tag : void 0) != null) && (((_ref5 = settings.className) != null ? _ref5.attribute : void 0) != null)) { feature.attributes.className = this.getElementsByTagNameNS(item, "*", settings.className.tag)[0].getAttribute(settings.className.attribute); } return feature; } }, styleMap: new OpenLayers.StyleMap({ "default": style, select: selectStyle }) }); options = $(item).data("options"); layer.events.on({ "loadstart": function(event) { return $(item).trigger("" + options.namespace + ".loadStart"); }, "loadend": function(event) { return $(item).trigger("" + options.namespace + ".loadEnd"); }, scope: this }); map.addLayer(layer); return $(item).trigger("" + options.namespace + ".georss", [layer]); }); }, popupControl: function(options) { var settings; settings = $.extend({ layer: null, size: { width: 230, height: 250 }, content: null }, options); if (!(settings.layer != null)) { $.error("need to specify a layer."); } debug.log("creating a popupControl.", settings); return this.each(function(index, item) { var map, popupControl, _this = this; map = $(item).data("map"); if (!(map != null)) { $.error("this element is not mapified."); } popupControl = new OpenLayers.Control.SelectFeature(settings.layer, { onSelect: function(feature) { var popup, position; position = feature.geometry; popup = new OpenLayers.Popup("popup", new OpenLayers.LonLat(position.x, position.y), new OpenLayers.Size(settings.size.width, settings.size.height), methods.interpolate(settings.content, feature.attributes), true); popup.closeDiv.className = feature.attributes.className; return map.addPopup(popup, true); } }); map.addControl(popupControl); popupControl.activate(); options = $(item).data("options"); return $(item).trigger("" + options.namespace + ".popupControl"); }); }, interpolate: function(value, variables) { return value.replace(/{([^{}]*)}/g, function(a, b) { var r; r = variables[b]; if ("string" === typeof r || "number" === typeof r) { return r; } else { return a; } }); } }; return $.fn.mapify = function(method) { if (methods[method] != null) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } if (typeof method === 'object' || !(method != null)) { return methods.init.apply(this, arguments); } return $.error("Method " + method + " does not exist on jQuery.mapify"); }; })(jQuery); (function($) { var debug, methods; if (!((debug = window.debug) != null)) { debug = { log: function() {} }; } methods = { init: function(options) { var settings; settings = $.extend({ selectors: { item: ".item" } }, options); debug.log("menufying."); return this.each(function(index, item) { var container, items; container = $(item); container.data({ settings: settings }); container.find(".hideable:first").show(); container.click(function(event) { return methods.openClose(container); }); items = container.find(settings.selectors.item); items.each(function(index, item) { var element, menuSelector, sectionSelector; element = $(item); element.data({ "menu-index": index }); sectionSelector = element.data("section-selector"); menuSelector = element.data("menu-selector"); if (menuSelector != null) { return $(sectionSelector).data({ "menu-selector": menuSelector }); } }); return items.css("cursor", "pointer").click(function(event) { var sectionSelector, target, top; debug.log("menu-item clicked."); target = $(event.target); methods.openClose(target); sectionSelector = target.data("section-selector"); debug.log("element's section-selector is [" + sectionSelector + "]."); if (!(sectionSelector != null)) { return true; } top = $(sectionSelector).offset().top; debug.log("scrolling to [" + top + "]."); return $("html, body").animate({ scrollTop: top }, "slow"); }); }); }, select: function(item) { var activeIndex, activeItem, parent; debug.log("selecting", item.data("menu-selector")); parent = item.parent(); if (item.get(0) === parent.children().first().get(0)) { return; } activeItem = parent.children().first(); activeIndex = activeItem.data("menu-index"); debug.log("activeItem", activeItem, "activeIndex", activeIndex); parent.prepend(item.detach()); parent.children().each(function(index, item) { if ((activeIndex - 1) === $(item).data("menu-index")) { return activeItem.detach().insertAfter(item); } }); activeItem.hide(); return item.show(); }, openClose: function(item) { var first, target; target = item; if ("open" === target.data("state")) { target.find(".hideable").css("display", "none"); first = target.find(".hideable:first"); if (first != null) { target.find(".hideable:first").css("display", "block"); } return target.data({ state: "close" }); } else { target.find(".hideable").css("display", "block"); return target.data({ state: "open" }); } } }; return $.fn.menufy = function(method) { if (methods[method]) { return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); } debug.log("initialize."); if ('object' === typeof method || !(method != null)) { return methods.init.apply(this, arguments); } return $.error('Method ' + method + ' does not exist.'); }; })(jQuery); (function($) { return $.fn.playertools = function(player, options) { var debug, playertools, settings; if (false === ((debug = window.debug) != null)) { debug = { log: function() {} }; } debug.log("loading playertools."); settings = $.extend({ screens: { normal: { width: 640, height: 480 }, larger: { width: 960, height: 720 } }, urls: null }, options); playertools = { isFlash: function(element) { return "OBJECT" === element.get(0).tagName; }, playPause: function(player) { debug.log(player.getWidth() + "/" + player.getHeight()); if ("BUFFERING" === player.getState() || "PLAYING" === player.getState()) { return player.pause(true); } return player.play(true); }, share: function() { return debug.log("share"); } }; return this.each(function() { var element, fullScreenButton, largerScreenButton, normalScreenButton, playButton, progressBar, qualitySelector, shareButton, sizeTimeSlider, switchToPause, switchToPlay, timeSlider, toolbar, updateMute, updateProgress, volumeButton, volumeSlider, _this = this; element = $(this); toolbar = $("").width(player.getWidth()); playButton = $("").appendTo(toolbar).click(function() { return playertools.playPause(player); }); timeSlider = $("").appendTo(toolbar); progressBar = $("