Skip to content

Instantly share code, notes, and snippets.

@mattsnider
mattsnider / super_simple_image_viewer_v3.js
Created December 14, 2012 00:48
Standalone version of the super simple image viewer
(function(w, d) {
// simple function to get element by ID
function _getEl(el) {
if ('string' === typeof(el)) {
var sError = 'element' + el + ' does not exist';
el = d.getElementById(el);
if (! el) {
alert(sError);
}
@mattsnider
mattsnider / super_simple_image_viewer_jquery.js
Created December 14, 2012 02:27
jQuery version of the super simple image viewer
(function(w, d) {
/**
* Instantiation function for the jQuery-based SimpleImageViewer.
* @param elImage {String|Element} Required. The ID or element instance for the image element to be updated.
* @param conf {Object} Optional. Additional configuration options:
* caption - The ID or element instance for the caption element to be updated.
* defaultGroup - The label for your default group of images. If you have just one collection of images,
* just leave this blank.
* next - The ID or element instance for the element to trigger changing to the next image.
* previous - The ID or element instance for the element to trigger changing to the previous image.
@mattsnider
mattsnider / somewhat_simple_image_viewer.js
Created December 14, 2012 18:55
Improved Somewhat Simple Image Viewer
/**
* Copyright (c) 2007, Matt Snider, LLC. All rights reserved.
* Version: 1.2
*/
var Core = {Widget: {}};
/**
* The PhotoViewer class manages the slide show logic , requires a data object and a configuration object of DOM elements.
* @namespace Core.Widget
@mattsnider
mattsnider / yahoo-dom-event.js
Created December 14, 2012 18:56
Minified Dom and Event modules from YUI 2.3
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.3.0
*/
if(typeof YAHOO=="undefined"){var YAHOO={};}
YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;i=i+1){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;j=j+1){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;};YAHOO.log=function(msg,cat,src){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(msg,cat,src);}else{return false;}};YAHOO.register=function(name,mainClass,data){var mods=YAHOO.env.modules;if(!mods[name]){mods[name]={versions:[],builds:[]};}
@mattsnider
mattsnider / gist:4288138
Created December 14, 2012 19:55
YUI 2.x version of the super simple image viewer
(function(w, d) {
// simple function to get element by ID
var _getEl = YAHOO.util.Dom.get;
/**
* Instantiation function for the SimpleImageViewer.
* @param elImage {String|Element} Required. The ID or element instance for the image element to be updated.
* @param conf {Object} Optional. Additional configuration options:
* caption - The ID or element instance for the caption element to be updated.
* defaultGroup - The label for your default group of images. If you have just one collection of images,
@mattsnider
mattsnider / simple_javascript_event_wrapper.js
Created February 15, 2013 23:24
Dead simple wrapper for event functions in JavaScript. Adds addListener and removeListener to the global namespace.
(function(w) {
// Create the Event Function wrappers
if (w.addEventListener) {
// standards compliant method
w.addListener = function(el, eType, fn, capture) {
el.addEventListener(eType, fn, capture);
};
w.removeListener = function (el, eType, fn, capture) {
el.removeEventListener(eType, fn, capture);
};
@mattsnider
mattsnider / annotation.js
Last active October 8, 2017 16:47
JavaScript function for annotating other JavaScript
function annotate(fnToAnnotate) {
// already annotation aware, use the original annotation chain
if (fnToAnnotate.by) {
return fnToAnnotate;
}
var aAnnotationChain = [fnToAnnotate];
function applyChainFunctions(fn) {
fn.by = function(fnAnnotation, arg1, /*...*/ argN) {
@mattsnider
mattsnider / hashHackReceiver.js
Created March 30, 2013 21:02
Cross-Domain Iframe Receiver Using Hack-Hack
var HashHack = {
PREFIX: '#hhMessage=',
aCallbacks: [],
sLastHash: '',
handleInterval: function() {
var sHash = window.location.hash,
sDecodedHash, sMessage, i;
if (sHash !== HashHack.sLastHash) {
@mattsnider
mattsnider / hashHackSender.js
Created March 30, 2013 21:03
Cross-Domain Iframe Receiver Using Hack-Hack
var HashHack = {
PREFIX: '#hhMessage=',
postMessage: function(el, sMessage) {
if ('string' === typeof el) {
el = document.getElementById(el);
}
var sUrl = el.src.replace(/#.*/, '');
el.src = sUrl + HashHack.PREFIX + encodeURIComponent(sMessage);
@mattsnider
mattsnider / window_messenger.js
Created April 12, 2013 01:05
JavaScript only messaging system for communicating between windows/tabs
(function(w, d) {
"use strict";
// simple cookie writer
function createCookie(sName, sValue, sPath, sDomain, iMillis) {
var aCookie = [encodeURI(sName) + "=" + encodeURI(sValue)],
expires, oDate;
if (iMillis) {
oDate = new Date();
oDate.setTime(oDate.getTime() + iMillis);