// Generated by CoffeeScript 1.3.3 (function() { var $; (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($) { var methods; methods = { init: function(options) { var debug, settings; settings = $.extend({ classNames: { arrowscroller: 'arrowscroller', arrow: 'arrow', left: 'left', right: 'right' }, arrow: { width: 36 }, marginTop: true }, 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('cursor', 'pointer').css('margin-top', -height).click(doScrollLeft); element.css('margin-left', margin).before(arrowLeft).after(arrowRight); if (true === settings.marginTop) { return element.css('margin-top', -height); } }); } }; return $.fn.arrowscrollers = function(method) { if (methods[method] != null) { 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 on arrowscrollers."); }; })(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); return debug.log("forcing background width and height."); } } }); return this.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); feature.attributes.summary = 0 < this.getElementsByTagNameNS(item, "*", "summary").length ? this.getElementsByTagNameNS(item, "*", "summary")[0].textContent : void 0; 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; debug.log("Popup will interpolate with the following attributes:", feature); 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; map.addPopup(popup, true); return feature.popup = popup; }, onUnselect: function(feature) { if (feature.popup != null) { map.removePopup(feature.popup); feature.popup.destroy(); return feature.popup = null; } } }); 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($) { var debug, methods; if (false === ((debug = window.debug) != null)) { debug = { log: function() {} }; } methods = { init: function(options) { var player, settings; settings = $.extend({ screens: { normal: { width: 640, height: 480 }, larger: { width: 960, height: 720 } }, urls: null, player: null, webtrends: { host: null, path: null, title: null } }, options); player = settings.player; debug.log("PlayerTools initializing.", player, settings); return this.each(function(index, item) { var element, fullScreenButton, largerScreenButton, normalScreenButton, playButton, progressBar, qualitySelector, shareButton, sizeTimeSlider, switchToPause, switchToPlay, timeSlider, toolbar, updateMute, updateProgress, volumeButton, volumeSlider, _this = this; element = $(item); element.data({ settings: settings }); toolbar = $("
").width(player.getWidth()); playButton = $("
").appendTo(toolbar).click(function() { if ("BUFFERING" === player.getState() || "PLAYING" === player.getState()) { return player.pause(true); } return player.play(true); }); timeSlider = $("
").appendTo(toolbar); progressBar = $("
").appendTo(timeSlider).click(function(event) { var duration, maxWidth, position, x; maxWidth = progressBar.width(); x = event.pageX - progressBar.offset().left; duration = player.getDuration(); position = x * (duration / maxWidth); return player.seek(position); }); $("
").appendTo(toolbar); volumeButton = $("
").appendTo(toolbar).click(function() { return player.setMute(); }); if (true === player.getMute()) { volumeButton.addClass("mute"); } volumeSlider = $("
").appendTo(toolbar); volumeSlider.find("#volume-slider").slider({ min: 0, max: 100, range: "min", value: player.getVolume(), slide: function(event, ui) { return player.setVolume(ui.value); } }); $("
").appendTo(toolbar); normalScreenButton = $("
").appendTo(toolbar).click(function() { element.trigger("playertools.willresize", "normal"); player.resize(settings.screens.normal.width, settings.screens.normal.height); normalScreenButton.addClass("selected"); largerScreenButton.removeClass("selected"); fullScreenButton.removeClass("selected"); return element.trigger("playertools.resize", "normal"); }); $(document.documentElement).keyup(function(event) { if (27 === event.keyCode) { return normalScreenButton.trigger("click"); } }); largerScreenButton = $("
").appendTo(toolbar).click(function() { element.trigger("playertools.willresize", "large"); player.resize(settings.screens.larger.width, settings.screens.larger.height); largerScreenButton.addClass("selected"); normalScreenButton.removeClass("selected"); fullScreenButton.removeClass("selected"); return element.trigger("playertools.resize", "large"); }); fullScreenButton = $("
").appendTo(toolbar).click(function() { var height, width; element.trigger("playertools.willresize", "full"); width = $(window).width(); height = $(window).height() - toolbar.height() - element.position().top; player.resize(width, height); fullScreenButton.addClass("selected"); largerScreenButton.removeClass("selected"); normalScreenButton.removeClass("selected"); return element.trigger("playertools.resize", "full"); }); qualitySelector = $("
").appendTo(toolbar); qualitySelector.mouseenter(function(event) { var add, width; width = qualitySelector.width(); qualitySelector.find("li").show(); add = qualitySelector.width() - width; return qualitySelector.css("margin-left", -add); }).mouseleave(function(event) { qualitySelector.find("li").not(".selected").hide(); return qualitySelector.css("margin-left", 0); }).find(".item").click(function(event) { var position, selector, target, url, urls; target = $(event.target); target.addClass("selected").siblings().removeClass("selected"); qualitySelector.trigger("mouseleave"); urls = settings.urls; selector = target.data("quality"); url = urls[selector]; position = player.getPosition(); return player.load({ file: url, start: position }); }).not(".selected").hide(); $("
").appendTo(toolbar); shareButton = $("
").appendTo(toolbar).click(function() { return playertools.share(); }); switchToPause = function() { return playButton.removeClass("play").addClass("pause"); }; switchToPlay = function() { return playButton.removeClass("pause").addClass("play"); }; updateProgress = function(event) { if (_this.updateProgressTimeout != null) { return; } return _this.updateProgressTimeout = setTimeout(function() { var maxWidth; maxWidth = timeSlider.children(".progress-container").width(); timeSlider.find(".progress").width(event.position * (maxWidth / event.duration)); _this.updateProgressTimeout = null; return element.data({ position: event.position }); }, 500); }; updateMute = function(event) { if (true === event.mute) { return volumeButton.addClass("mute"); } else { return volumeButton.removeClass("mute"); } }; sizeTimeSlider = function() { var margin, playerWidth, sliderWidth; sliderWidth = playerWidth = player.getWidth(); toolbar.width(playerWidth); toolbar.children().not(".slider.time").each(function(index, item) { return sliderWidth -= $(item).outerWidth(true); }); timeSlider.width(sliderWidth); margin = parseInt(progressBar.css('margin-left'), 10) + parseInt(progressBar.css('margin-right')); progressBar.width(timeSlider.width() - margin); return updateProgress({ position: player.getPosition(), duration: player.getDuration() }); }; element.after(toolbar); sizeTimeSlider(); player.onPlay(function() { return switchToPause(); }).onPause(function() { return switchToPlay(); }).onBuffer(function() { return switchToPause(); }).onIdle(function() { return switchToPlay(); }).onResize(function() { return sizeTimeSlider(); }).onTime(function() { return updateProgress.apply(null, arguments); }).onMute(function() { return updateMute.apply(null, arguments); }); return $(window).unload(function() { return element.playertools("log"); }); }); }, log: function() { return this.each(function(index, item) { var element, position, settings; element = $(item); position = element.data("position"); settings = element.data("settings"); return typeof Webtrends !== "undefined" && Webtrends !== null ? Webtrends.multiTrack({ args: { "DCS.dcssip": settings.webtrends.host, "DCS.dcsuri": settings.webtrends.path, "WT.clip_n": settings.webtrends.title, "WT.dl": "7", "WT.clip_ev": "" + position + "SEC" } }) : void 0; }); }, close: function() { return this.playertools("log"); } }; return $.fn.playertools = function(method) { if (methods[method] != null) { 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 on playertools"); }; })(jQuery); (function($) { var methods; $.fn.contentWidth = function() { return Math.max.apply(Math, this.children().map(function() { return $(this).width(); }).get()); }; $.fn.maxScrollLeft = function() { return this.get(0).scrollWidth - this.width(); }; methods = { init: function(options) { return this.each(function(index, item) { var $container, $scrollbar, $scroller, containment, scrollLeft, scrollbar, scroller, x1, x2, y1, y2; scroller = "scroller"; scrollbar = "scrollbar"; $container = $(item); if (false === (typeof Modernizr !== "undefined" && Modernizr !== null ? Modernizr.touch : void 0)) { $container.css("overflow", "hidden"); } $container.children("" + scrollbar).remove(); if (item.scrollWidth <= $container.width()) { return true; } $scrollbar = $("
").appendTo($container); $scroller = $("
").appendTo($scrollbar); $container.addClass("scroll-container"); $scrollbar.css("left", $container.scrollLeft()); $scrollbar.css("width", $container.width()); x1 = $container.offset().left; y1 = $scroller.offset().top; x2 = x1 + $container.width() - $scroller.width(); y2 = y1; containment = [x1, y1, x2, y2]; scrollLeft = function(scrollerLeft, container, scroller) { var containerMaxScrollLeft, scrollerLeftRatio, scrollerMaxLeft; scrollerMaxLeft = container.width() - scroller.width(); scrollerLeftRatio = scrollerLeft / scrollerMaxLeft; containerMaxScrollLeft = container.maxScrollLeft(); return scrollerLeftRatio * containerMaxScrollLeft; }; $scroller.draggable({ axis: "x", containment: containment, start: function(event, ui) { var $target; $target = $(event.target); return $target.data("dragging", true); }, stop: function(event, ui) { var $target; $target = $(event.target); return $target.data("dragging", false); }, drag: function(event, ui) { var left, scrollerLeft; $scroller = $(event.target); $scrollbar = $scroller.parent(); $container = $scrollbar.parent(); scrollerLeft = ui.offset.left - $container.offset().left; left = scrollLeft(scrollerLeft, $container, $scroller); if ("hidden" === $container.css("overflow")) { $scrollbar.css("left", left); } return $container.scrollLeft(left); } }); $container.mousewheel(function(event, delta, deltaX, deltaY) { var $target, left; $target = $(event.target); $container = $target.hasClass("scroll-container") ? $target : $target.parents(".scroll-container"); $scrollbar = $container.children("." + scrollbar); $scroller = $scrollbar.children("." + scroller); left = $container.scrollLeft() + (deltaX * 10); if (0 > left) { left = 0; } if ($container.maxScrollLeft() < left) { left = $container.maxScrollLeft(); } $container.scrollLeft(left); $scrollbar.css("left", left); return event.preventDefault(); }); return $container.scroll(function(event) { $container = $(event.target); $scrollbar = $container.children("." + scrollbar); $scroller = $scrollbar.children("." + scroller); if (true === $scroller.data("dragging")) { return; } $scrollbar.css('left', $container.scrollLeft()); return $scroller.css('left', $container.scrollbars("scrollerLeft", $scroller)); }); }); }, scrollerLeft: function(scroller) { var scrollLeft, scrollLeftRatio, scrollMaxLeft, scrollerMaxLeft; scrollLeft = this.scrollLeft(); scrollMaxLeft = this.maxScrollLeft(); scrollLeftRatio = scrollLeft / scrollMaxLeft; scrollerMaxLeft = this.width() - scroller.width(); return scrollerMaxLeft * scrollLeftRatio; } }; return $.fn.scrollbars = function(method) { if (methods[method] != null) { 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 on scrollbars"); }; })(jQuery); $ = jQuery; $(function() { var debug, methods, _ref; debug = (_ref = window.debug) != null ? _ref : window.debug = { log: function() {} }; methods = { init: function(options) { return this.each(function(index, item) { var container, html, scrollHeight, scroller; container = $(item); container.remove(".scrollbar.vertical"); scrollHeight = container.get(0).scrollHeight; if (scrollHeight <= container.height()) { return; } if (true !== (typeof Modernizr !== "undefined" && Modernizr !== null ? Modernizr.cssscrollbar : void 0)) { container.css("overflow-y", "hidden"); } html = "
"; $(html).appendTo(container); scroller = container.find(".scrollbar.vertical .scroller"); scroller.draggable({ axis: "y", containment: "parent", drag: function(event, ui) { return container.scrollTop((container.get(0).scrollHeight - container.height()) * (ui.position.top / (container.get(0).scrollHeight - scroller.height()))); }, start: function() { return container.data({ dragging: true }); }, stop: function() { return container.data({ dragging: false }); } }); container.scroll(function(event) { if (container.data("dragging")) { return; } return container.scrollify("alignScroller"); }); return container.resize(function() { return container.scrollify("resize").children().resize(function() { return container.scrollify("resize"); }); }); }); }, alignScroller: function() { return this.each(function(index, item) { var container, scroller; container = $(item); scroller = container.find(".scrollbar.vertical .scroller"); return scroller.css("top", (container.get(0).scrollHeight - scroller.height()) * (container.scrollTop() / (container.get(0).scrollHeight - container.height()))); }); }, resize: function() { return this.each(function(index, item) { var container; container = $(item); container.children(".scrollbar").css("height", container.get(0).scrollHeight); return container.scrollify("alignScroller"); }); } }; return $.fn.scrollify = function(method) { if (methods[method] != null) { 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 on scrollbars"); }; }); (function($) { return window.slidingMenu = function(containerSelector, menuSelector, minimumWidth) { var debug, slidingMenu; if (minimumWidth == null) { minimumWidth = null; } if (!((debug = window.debug) != null)) { debug = { log: function() {} }; } slidingMenu = { containerSelector: containerSelector, menuSelector: menuSelector, center: function() { var windowWidth, _this = this; debug.log('center'); windowWidth = this.getWidth(); $(this.menuSelector).each(function(index, item) { var itemWidth, leftDelta, margin; itemWidth = $(item).width(); margin = Math.floor((windowWidth - itemWidth) / 2); leftDelta = windowWidth % 2; return $(item).animate({ 'margin-left': margin + leftDelta, 'margin-right': margin }); }); debug.log("now centering the menu at index [currentIndex:" + this.currentIndex + "][windowWidth:" + windowWidth + "]"); return this.slideTo(); }, slideTo: function(index) { if (index == null) { index = this.currentIndex; } if ((0 > index && index > (this.menuCount() - 1))) { return; } $(this.containerSelector).css("margin-left", -this.getWidth() * index); return this.currentIndex = index; }, slideNext: function() { if ((this.menuCount() - 1) <= this.currentIndex) { return; } return this.slideTo(++this.currentIndex); }, slidePrevious: function() { if (0 >= this.currentIndex) { return; } return this.slideTo(--this.currentIndex); }, currentIndex: 0, menuCount: function() { return $(this.menuSelector).length; }, getWidth: function() { var windowWidth; windowWidth = $(window).width(); if (null !== minimumWidth && windowWidth < minimumWidth) { return minimumWidth; } else { return windowWidth; } } }; slidingMenu.center(); $(window).resize(function() { clearTimeout(this.resizeTimeout); return this.resizeTimeout = setTimeout((function() { return slidingMenu.center(); }), 100); }); return slidingMenu; }; })(jQuery); }).call(this);