ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From oleew...@apache.org
Subject [2/4] ambari git commit: AMBARI-17309. Removing Event history module (Dharmesh Makwana via oleewere)
Date Tue, 21 Jun 2016 13:13:42 GMT
http://git-wip-us.apache.org/repos/asf/ambari/blob/ce695e8b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/other/timeline/js/timeline.js
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/other/timeline/js/timeline.js b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/other/timeline/js/timeline.js
deleted file mode 100644
index 6d8324b..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/libs/other/timeline/js/timeline.js
+++ /dev/null
@@ -1,10116 +0,0 @@
-/*
-    TimelineJS - ver. 2015-06-10-16-17-35 - 2015-06-10
-    Copyright (c) 2012-2015 Northwestern University
-    a project of the Northwestern University Knight Lab, originally created by Zach Wise
-    https://github.com/NUKnightLab/TimelineJS
-    This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
-    If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-*/
-
-/* **********************************************
-     Begin VMM.js
-********************************************** */
-
-/**
-	* VéritéCo JS Core
-	* Designed and built by Zach Wise at VéritéCo zach@verite.co
-
-	* This Source Code Form is subject to the terms of the Mozilla Public
-	* License, v. 2.0. If a copy of the MPL was not distributed with this
-	* file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-*/  
-
-
-/*	Simple JavaScript Inheritance
-	By John Resig http://ejohn.org/
-	MIT Licensed.
-================================================== */
-(function() {
-	var initializing = false,
-	fnTest = /xyz/.test(function() {
-		xyz;
-		}) ? /\b_super\b/: /.*/;
-		// The base Class implementation (does nothing)
-	this.Class = function() {};
-
-    // Create a new Class that inherits from this class
-	Class.extend = function(prop) {
-		var _super = this.prototype;
-
-        // Instantiate a base class (but only create the instance,
-        // don't run the init constructor)
-		initializing = true;
-		var prototype = new this();
-		initializing = false;
-
-        // Copy the properties over onto the new prototype
-		for (var name in prop) {
-            // Check if we're overwriting an existing function
-			prototype[name] = typeof prop[name] == "function" &&
-			typeof _super[name] == "function" && fnTest.test(prop[name]) ?
-			(function(name, fn) {
-				return function() {
-					var tmp = this._super;
-
-					// Add a new ._super() method that is the same method
-					// but on the super-class
-					this._super = _super[name];
-
-					// The method only need to be bound temporarily, so we
-					// remove it when we're done executing
-					var ret = fn.apply(this, arguments);
-					this._super = tmp;
-
-					return ret;
-				};
-			})(name, prop[name]) :
-			prop[name];
-		}
-
-		// The dummy class constructor
-		function Class() {
-			// All construction is actually done in the init method
-			if (!initializing && this.init)
-			this.init.apply(this, arguments);
-		}
-
-		// Populate our constructed prototype object
-		Class.prototype = prototype;
-
-		// Enforce the constructor to be what we expect
-		Class.prototype.constructor = Class;
-
-		// And make this class extendable
-		Class.extend = arguments.callee;
-
-		return Class;
-    };
-})();
-
-/*	Access to the Global Object
-	access the global object without hard-coding the identifier window
-================================================== */
-var global = (function () {
-   return this || (1,eval)('this');
-}());
-
-/* VMM
-================================================== */
-if (typeof VMM == 'undefined') {
-	
-	/* Main Scope Container
-	================================================== */
-	//var VMM = {};
-	var VMM = Class.extend({});
-	
-	/* Debug
-	================================================== */
-	VMM.debug = true;
-	
-	/* Master Config
-	================================================== */
-	
-	VMM.master_config = ({
-		
-		init: function() {
-			return this;
-		},
-		
-		sizes: {
-			api: {
-				width:			0,
-				height:			0
-			}
-		},
-		
-		vp:				"Pellentesque nibh felis, eleifend id, commodo in, interdum vitae, leo",
-		
-		api_keys_master: {
-			flickr:		"RAIvxHY4hE/Elm5cieh4X5ptMyDpj7MYIxziGxi0WGCcy1s+yr7rKQ==",
-			//google:		"jwNGnYw4hE9lmAez4ll0QD+jo6SKBJFknkopLS4FrSAuGfIwyj57AusuR0s8dAo=",
-			google:		"uQKadH1VMlCsp560gN2aOiMz4evWkl1s34yryl3F/9FJOsn+/948CbBUvKLN46U=",
-			twitter:	""
-		},
-		
-		timers: {
-			api:			7000
-		},
-		
-		api:	{
-			pushques:		[]
-			
-		},
-		
-		twitter: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		flickr: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		youtube: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		vimeo: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		vine: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		webthumb: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		googlemaps: {
-			active:			false,
-			map_active:		false,
-			places_active:	false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		googledocs: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		googleplus: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		},
-		
-		wikipedia: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[],
-			tries:			0
-		},
-		
-		soundcloud: {
-			active:			false,
-			array:			[],
-			api_loaded:		false,
-			que:			[]
-		}
-		
-	}).init();
-	
-	//VMM.createElement(tag, value, cName, attrs, styles);
-	VMM.createElement = function(tag, value, cName, attrs, styles) {
-		
-		var ce = "";
-		
-		if (tag != null && tag != "") {
-			
-			// TAG
-			ce += "<" + tag;
-			if (cName != null && cName != "") {
-				ce += " class='" + cName + "'";
-			};
-			
-			if (attrs != null && attrs != "") {
-				ce += " " + attrs;
-			};
-			
-			if (styles != null && styles != "") {
-				ce += " style='" + styles + "'";
-			};
-			
-			ce += ">";
-			
-			if (value != null && value != "") {
-				ce += value;
-			}
-			
-			// CLOSE TAG
-			ce = ce + "</" + tag + ">";
-		}
-		
-		return ce;
-		
-    };
-
-	VMM.createMediaElement = function(media, caption, credit) {
-		
-		var ce = "";
-		
-		var _valid = false;
-		
-		ce += "<div class='media'>";
-		
-		if (media != null && media != "") {
-			
-			valid = true;
-			
-			ce += "<img src='" + media + "'>";
-			
-			// CREDIT
-			if (credit != null && credit != "") {
-				ce += VMM.createElement("div", credit, "credit");
-			}
-			
-			// CAPTION
-			if (caption != null && caption != "") {
-				ce += VMM.createElement("div", caption, "caption");
-			}
-
-		}
-		
-		ce += "</div>";
-		
-		return ce;
-		
-    };
-
-	// Hide URL Bar for iOS and Android by Scott Jehl
-	// https://gist.github.com/1183357
-
-	VMM.hideUrlBar = function () {
-		var win = window,
-			doc = win.document;
-
-		// If there's a hash, or addEventListener is undefined, stop here
-		if( !location.hash || !win.addEventListener ){
-
-			//scroll to 1
-			window.scrollTo( 0, 1 );
-			var scrollTop = 1,
-
-			//reset to 0 on bodyready, if needed
-			bodycheck = setInterval(function(){
-				if( doc.body ){
-					clearInterval( bodycheck );
-					scrollTop = "scrollTop" in doc.body ? doc.body.scrollTop : 1;
-					win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
-				}	
-			}, 15 );
-
-			win.addEventListener( "load", function(){
-				setTimeout(function(){
-					//reset to hide addr bar at onload
-					win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
-				}, 0);
-			}, false );
-		}
-	};
-	
-
-}
-
-/* Trace (console.log)
-================================================== */
-function trace( msg ) {
-	VMM.debug = false;
-	if (VMM.debug) {
-		if (window.console) {
-			console.log(msg);
-		} else if ( typeof( jsTrace ) != 'undefined' ) {
-			jsTrace.send( msg );
-		} else {
-			//alert(msg);
-		}
-	}
-}
-
-/* Extending Date to include Week
-================================================== */
-Date.prototype.getWeek = function() {
-	var onejan = new Date(this.getFullYear(),0,1);
-	return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
-}
-
-/* Extending Date to include Day of Year
-================================================== */
-Date.prototype.getDayOfYear = function() {
-	var onejan = new Date(this.getFullYear(),0,1);
-	return Math.ceil((this - onejan) / 86400000);
-}
-
-/* A MORE SPECIFIC TYPEOF();
-//	http://rolandog.com/archives/2007/01/18/typeof-a-more-specific-typeof/
-================================================== */
-// type.of()
-var is={
-	Null:function(a){return a===null;},
-	Undefined:function(a){return a===undefined;},
-	nt:function(a){return(a===null||a===undefined);},
-	Function:function(a){return(typeof(a)==="function")?a.constructor.toString().match(/Function/)!==null:false;},
-	String:function(a){return(typeof(a)==="string")?true:(typeof(a)==="object")?a.constructor.toString().match(/string/i)!==null:false;},
-	Array:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/array/i)!==null||a.length!==undefined:false;},
-	Boolean:function(a){return(typeof(a)==="boolean")?true:(typeof(a)==="object")?a.constructor.toString().match(/boolean/i)!==null:false;},
-	Date:function(a){return(typeof(a)==="date")?true:(typeof(a)==="object")?a.constructor.toString().match(/date/i)!==null:false;},
-	HTML:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/html/i)!==null:false;},
-	Number:function(a){return(typeof(a)==="number")?true:(typeof(a)==="object")?a.constructor.toString().match(/Number/)!==null:false;},
-	Object:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/object/i)!==null:false;},
-	RegExp:function(a){return(typeof(a)==="function")?a.constructor.toString().match(/regexp/i)!==null:false;}
-};
-var type={
-	of:function(a){
-		for(var i in is){
-			if(is[i](a)){
-				return i.toLowerCase();
-			}
-		}
-	}
-};
-
-
-
-
-
-/* **********************************************
-     Begin VMM.Library.js
-********************************************** */
-
-/*	* LIBRARY ABSTRACTION
-================================================== */
-if(typeof VMM != 'undefined') {
-	
-	VMM.smoothScrollTo = function(elem, duration, ease) {
-		if( typeof( jQuery ) != 'undefined' ){
-			var _ease		= "easein",
-				_duration	= 1000;
-		
-			if (duration != null) {
-				if (duration < 1) {
-					_duration = 1;
-				} else {
-					_duration = Math.round(duration);
-				}
-				
-			}
-			
-			if (ease != null && ease != "") {
-				_ease = ease;
-			}
-			
-			if (jQuery(window).scrollTop() != VMM.Lib.offset(elem).top) {
-				VMM.Lib.animate('html,body', _duration, _ease, {scrollTop: VMM.Lib.offset(elem).top})
-			}
-			
-		}
-		
-	};
-	
-	VMM.attachElement = function(element, content) {
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery(element).html(content);
-		}
-		
-	};
-	
-	VMM.appendElement = function(element, content) {
-		
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery(element).append(content);
-		}
-		
-	};
-	
-	VMM.getHTML = function(element) {
-		var e;
-		if( typeof( jQuery ) != 'undefined' ){
-			e = jQuery(element).html();
-			return e;
-		}
-		
-	};
-	
-	VMM.getElement = function(element, p) {
-		var e;
-		if( typeof( jQuery ) != 'undefined' ){
-			if (p) {
-				e = jQuery(element).parent().get(0);
-				
-			} else {
-				e = jQuery(element).get(0);
-			}
-			return e;
-		}
-		
-	};
-	
-	VMM.bindEvent = function(element, the_handler, the_event_type, event_data) {
-		var e;
-		var _event_type = "click";
-		var _event_data = {};
-		
-		if (the_event_type != null && the_event_type != "") {
-			_event_type = the_event_type;
-		}
-		
-		if (_event_data != null && _event_data != "") {
-			_event_data = event_data;
-		}
-		
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery(element).bind(_event_type, _event_data, the_handler);
-			
-			//return e;
-		}
-		
-	};
-	
-	VMM.unbindEvent = function(element, the_handler, the_event_type) {
-		var e;
-		var _event_type = "click";
-		var _event_data = {};
-		
-		if (the_event_type != null && the_event_type != "") {
-			_event_type = the_event_type;
-		}
-		
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery(element).unbind(_event_type, the_handler);
-			
-			//return e;
-		}
-		
-	};
-	
-	VMM.fireEvent = function(element, the_event_type, the_data) {
-		var e;
-		var _event_type = "click";
-		var _data = [];
-		
-		if (the_event_type != null && the_event_type != "") {
-			_event_type = the_event_type;
-		}
-		if (the_data != null && the_data != "") {
-			_data = the_data;
-		}
-		
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery(element).trigger(_event_type, _data);
-			
-			//return e;
-		}
-		
-	};
-	
-	VMM.getJSON = function(url, data, callback) {
-		if( typeof( jQuery ) != 'undefined' ){
-			jQuery.ajaxSetup({
-			     timeout: 3000
-			});
-			/* CHECK FOR IE
-			================================================== */
-			if ( VMM.Browser.browser == "Explorer" && 
-				 parseInt(VMM.Browser.version, 10) >= 7 && 
-				 window.XDomainRequest && 
-				 url.match('^https?://')) {
-				trace("old IE JSON doesn't like retrieving from different protocol");
-					var colon = url.indexOf(':');
-					url = url.substr(colon+1); 
-			}
-			return jQuery.getJSON(url, data, callback);
-
-		}
-	}
-	
-	VMM.parseJSON = function(the_json) {
-		if( typeof( jQuery ) != 'undefined' ){
-			return jQuery.parseJSON(the_json);
-		}
-	}
-	
-	// ADD ELEMENT AND RETURN IT
-	VMM.appendAndGetElement = function(append_to_element, tag, cName, content) {
-		var e,
-			_tag		= "<div>",
-			_class		= "",
-			_content	= "",
-			_id			= "";
-		
-		if (tag != null && tag != "") {
-			_tag = tag;
-		}
-		
-		if (cName != null && cName != "") {
-			_class = cName;
-		}
-		
-		if (content != null && content != "") {
-			_content = content;
-		}
-		
-		if( typeof( jQuery ) != 'undefined' ){
-			
-			e = jQuery(tag);
-			
-			e.addClass(_class);
-			e.html(_content);
-			
-			jQuery(append_to_element).append(e);
-			
-		}
-		
-		return e;
-		
-	};
-	
-	VMM.Lib = {
-		
-		init: function() {
-			return this;
-		},
-		
-		hide: function(element, duration) {
-			if (duration != null && duration != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).hide(duration);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).hide();
-				}
-			}
-			
-		},
-		
-		remove: function(element) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).remove();
-			}
-		},
-		
-		detach: function(element) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).detach();
-			}
-		},
-		
-		append: function(element, value) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).append(value);
-			}
-		},
-		
-		prepend: function(element, value) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).prepend(value);
-			}
-		},
-		
-		show: function(element, duration) {
-			if (duration != null && duration != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).show(duration);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).show();
-				}
-			}
-			
-		},
-		
-		load: function(element, callback_function, event_data) {
-			var _event_data = {elem:element}; // return element by default
-			if (_event_data != null && _event_data != "") {
-				_event_data = event_data;
-			}
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).load(_event_data, callback_function);
-			}
-		},
-		
-		addClass: function(element, cName) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).addClass(cName);
-			}
-		},
-		
-		removeClass: function(element, cName) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).removeClass(cName);
-			}
-		},
-		
-		attr: function(element, aName, value) {
-			if (value != null && value != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).attr(aName, value);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					return jQuery(element).attr(aName);
-				}
-			}
-		},
-		
-		prop: function(element, aName, value) {
-			if (typeof jQuery == 'undefined' || !/[1-9]\.[3-9].[1-9]/.test(jQuery.fn.jquery)) {
-			    VMM.Lib.attribute(element, aName, value);
-			} else {
-				jQuery(element).prop(aName, value);
-			}
-		},
-		
-		attribute: function(element, aName, value) {
-			
-			if (value != null && value != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).attr(aName, value);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					return jQuery(element).attr(aName);
-				}
-			}
-		},
-		
-		visible: function(element, show) {
-			if (show != null) {
-				if( typeof( jQuery ) != 'undefined' ){
-					if (show) {
-						jQuery(element).show(0);
-					} else {
-						jQuery(element).hide(0);
-					}
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					if ( jQuery(element).is(':visible')){
-						return true;
-					} else {
-						return false;
-					}
-				}
-			}
-		},
-		
-		css: function(element, prop, value) {
-
-			if (value != null && value != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).css(prop, value);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					return jQuery(element).css(prop);
-				}
-			}
-		},
-		
-		cssmultiple: function(element, propval) {
-
-			if( typeof( jQuery ) != 'undefined' ){
-				return jQuery(element).css(propval);
-			}
-		},
-		
-		offset: function(element) {
-			var p;
-			if( typeof( jQuery ) != 'undefined' ){
-				p = jQuery(element).offset();
-			}
-			return p;
-		},
-		
-		position: function(element) {
-			var p;
-			if( typeof( jQuery ) != 'undefined' ){
-				p = jQuery(element).position();
-			}
-			return p;
-		},
-		
-		width: function(element, s) {
-			if (s != null && s != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).width(s);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					return jQuery(element).width();
-				}
-			}
-		},
-		
-		height: function(element, s) {
-			if (s != null && s != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).height(s);
-				}
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					return jQuery(element).height();
-				}
-			}
-		},
-		
-		toggleClass: function(element, cName) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).toggleClass(cName);
-			}
-		},
-		
-		each:function(element, return_function) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).each(return_function);
-			}
-			
-		},
-		
-		html: function(element, str) {
-			var e;
-			if( typeof( jQuery ) != 'undefined' ){
-				e = jQuery(element).html();
-				return e;
-			}
-			
-			if (str != null && str != "") {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).html(str);
-				}
-			} else {
-				var e;
-				if( typeof( jQuery ) != 'undefined' ){
-					e = jQuery(element).html();
-					return e;
-				}
-			}
-
-		},
-		
-		find: function(element, selec) {
-			if( typeof( jQuery ) != 'undefined' ){
-				return jQuery(element).find(selec);
-			}
-		},
-		
-		stop: function(element) {
-			if( typeof( jQuery ) != 'undefined' ){
-				jQuery(element).stop();
-			}
-		},
-		
-		delay_animate: function(delay, element, duration, ease, att, callback_function) {
-			if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") {
-				var _tdd		= Math.round((duration/1500)*10)/10,
-					__duration	= _tdd + 's';
-					
-				VMM.Lib.css(element, '-webkit-transition', 'all '+ __duration + ' ease');
-				VMM.Lib.css(element, '-moz-transition', 'all '+ __duration + ' ease');
-				VMM.Lib.css(element, '-o-transition', 'all '+ __duration + ' ease');
-				VMM.Lib.css(element, '-ms-transition', 'all '+ __duration + ' ease');
-				VMM.Lib.css(element, 'transition', 'all '+ __duration + ' ease');
-				VMM.Lib.cssmultiple(element, _att);
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					jQuery(element).delay(delay).animate(att, {duration:duration, easing:ease} );
-				}
-			}
-			
-		},
-		
-		animate: function(element, duration, ease, att, que, callback_function) {
-			
-			var _ease		= "easein",
-				_que		= false,
-				_duration	= 1000,
-				_att		= {};
-			
-			if (duration != null) {
-				if (duration < 1) {
-					_duration = 1;
-				} else {
-					_duration = Math.round(duration);
-				}
-				
-			}
-			
-			if (ease != null && ease != "") {
-				_ease = ease;
-			}
-			
-			if (que != null && que != "") {
-				_que = que;
-			}
-			
-			
-			if (att != null) {
-				_att = att
-			} else {
-				_att = {opacity: 0}
-			}
-			
-			
-			if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") {
-				
-				var _tdd		= Math.round((_duration/1500)*10)/10,
-					__duration	= _tdd + 's';
-					
-				_ease = " cubic-bezier(0.33, 0.66, 0.66, 1)";
-				//_ease = " ease-in-out";
-				for (x in _att) {
-					if (Object.prototype.hasOwnProperty.call(_att, x)) {
-						trace(x + " to " + _att[x]);
-						VMM.Lib.css(element, '-webkit-transition',  x + ' ' + __duration + _ease);
-						VMM.Lib.css(element, '-moz-transition', x + ' ' + __duration + _ease);
-						VMM.Lib.css(element, '-o-transition', x + ' ' + __duration + _ease);
-						VMM.Lib.css(element, '-ms-transition', x + ' ' + __duration + _ease);
-						VMM.Lib.css(element, 'transition', x + ' ' + __duration + _ease);
-					}
-				}
-				
-				VMM.Lib.cssmultiple(element, _att);
-				
-			} else {
-				if( typeof( jQuery ) != 'undefined' ){
-					if (callback_function != null && callback_function != "") {
-						jQuery(element).animate(_att, {queue:_que, duration:_duration, easing:_ease, complete:callback_function} );
-					} else {
-						jQuery(element).animate(_att, {queue:_que, duration:_duration, easing:_ease} );
-					}
-				}
-			}
-			
-		}
-		
-	}
-}
-
-if( typeof( jQuery ) != 'undefined' ){
-	
-	/*	XDR AJAX EXTENTION FOR jQuery
-		https://github.com/jaubourg/ajaxHooks/blob/master/src/ajax/xdr.js
-	================================================== */
-	(function( jQuery ) {
-		if ( window.XDomainRequest ) {
-			jQuery.ajaxTransport(function( s ) {
-				if ( s.crossDomain && s.async ) {
-					if ( s.timeout ) {
-						s.xdrTimeout = s.timeout;
-						delete s.timeout;
-					}
-					var xdr;
-					return {
-						send: function( _, complete ) {
-							function callback( status, statusText, responses, responseHeaders ) {
-								xdr.onload = xdr.onerror = xdr.ontimeout = jQuery.noop;
-								xdr = undefined;
-								complete( status, statusText, responses, responseHeaders );
-							}
-							xdr = new XDomainRequest();
-							xdr.open( s.type, s.url );
-							xdr.onload = function() {
-								callback( 200, "OK", { text: xdr.responseText }, "Content-Type: " + xdr.contentType );
-							};
-							xdr.onerror = function() {
-								callback( 404, "Not Found" );
-							};
-							if ( s.xdrTimeout ) {
-								xdr.ontimeout = function() {
-									callback( 0, "timeout" );
-								};
-								xdr.timeout = s.xdrTimeout;
-							}
-							xdr.send( ( s.hasContent && s.data ) || null );
-						},
-						abort: function() {
-							if ( xdr ) {
-								xdr.onerror = jQuery.noop();
-								xdr.abort();
-							}
-						}
-					};
-				}
-			});
-		}
-	})( jQuery );
-	
-	/*	jQuery Easing v1.3
-		http://gsgd.co.uk/sandbox/jquery/easing/
-	================================================== */
-	jQuery.easing['jswing'] = jQuery.easing['swing'];
-
-	jQuery.extend( jQuery.easing, {
-		def: 'easeOutQuad',
-		swing: function (x, t, b, c, d) {
-			//alert(jQuery.easing.default);
-			return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
-		},
-		easeInExpo: function (x, t, b, c, d) {
-			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-		},
-		easeOutExpo: function (x, t, b, c, d) {
-			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-		},
-		easeInOutExpo: function (x, t, b, c, d) {
-			if (t==0) return b;
-			if (t==d) return b+c;
-			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-		},
-		easeInQuad: function (x, t, b, c, d) {
-			return c*(t/=d)*t + b;
-		},
-		easeOutQuad: function (x, t, b, c, d) {
-			return -c *(t/=d)*(t-2) + b;
-		},
-		easeInOutQuad: function (x, t, b, c, d) {
-			if ((t/=d/2) < 1) return c/2*t*t + b;
-			return -c/2 * ((--t)*(t-2) - 1) + b;
-		}
-	});
-}
-
-
-/* **********************************************
-     Begin VMM.Browser.js
-********************************************** */
-
-/*	* DEVICE AND BROWSER DETECTION
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.Browser == 'undefined') {
-	
-	VMM.Browser = {
-		init: function () {
-			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
-			this.version = this.searchVersion(navigator.userAgent)
-				|| this.searchVersion(navigator.appVersion)
-				|| "an unknown version";
-			this.tridentVersion = this.searchTridentVersion(navigator.userAgent);
-			this.OS = this.searchString(this.dataOS) || "an unknown OS";
-			this.device = this.searchDevice(navigator.userAgent);
-			this.orientation = this.searchOrientation(window.orientation);
-		},
-		searchOrientation: function(orientation) {
-			var orient = "";
-			if ( orientation == 0  || orientation == 180) {  
-				orient = "portrait";
-			} else if ( orientation == 90 || orientation == -90) {  
-				orient = "landscape";
-			} else {
-				orient = "normal";
-			}
-			return orient;
-		},
-		searchDevice: function(d) {
-			var device = "";
-			if (d.match(/Android/i) || d.match(/iPhone|iPod/i)) {
-				device = "mobile";
-			} else if (d.match(/iPad/i)) {
-				device = "tablet";
-			} else if (d.match(/BlackBerry/i) || d.match(/IEMobile/i)) {
-				device = "other mobile";
-			} else {
-				device = "desktop";
-			}
-			return device;
-		},
-		searchString: function (data) {
-			for (var i=0;i<data.length;i++)	{
-				var dataString	= data[i].string,
-					dataProp	= data[i].prop;
-					
-				this.versionSearchString = data[i].versionSearch || data[i].identity;
-				
-				if (dataString) {
-					if (dataString.indexOf(data[i].subString) != -1) {
-						return data[i].identity;
-					}
-				} else if (dataProp) {
-					return data[i].identity;
-				}
-			}
-		},
-		searchVersion: function (dataString) {
-			var index = dataString.indexOf(this.versionSearchString);
-			if (index == -1) return;
-			return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
-		},
-		searchTridentVersion: function (dataString) {
-		    var index = dataString.indexOf("Trident/");
-		    if (index == -1) return 0;
-		    return parseFloat(dataString.substring(index + 8));
-		},
-		dataBrowser: [
-			{
-				string: navigator.userAgent,
-				subString: "Chrome",
-				identity: "Chrome"
-			},
-			{ 	string: navigator.userAgent,
-				subString: "OmniWeb",
-				versionSearch: "OmniWeb/",
-				identity: "OmniWeb"
-			},
-			{
-				string: navigator.vendor,
-				subString: "Apple",
-				identity: "Safari",
-				versionSearch: "Version"
-			},
-			{
-				prop: window.opera,
-				identity: "Opera",
-				versionSearch: "Version"
-			},
-			{
-				string: navigator.vendor,
-				subString: "iCab",
-				identity: "iCab"
-			},
-			{
-				string: navigator.vendor,
-				subString: "KDE",
-				identity: "Konqueror"
-			},
-			{
-				string: navigator.userAgent,
-				subString: "Firefox",
-				identity: "Firefox"
-			},
-			{
-				string: navigator.vendor,
-				subString: "Camino",
-				identity: "Camino"
-			},
-			{		// for newer Netscapes (6+)
-				string: navigator.userAgent,
-				subString: "Netscape",
-				identity: "Netscape"
-			},
-			{
-				string: navigator.userAgent,
-				subString: "MSIE",
-				identity: "Explorer",
-				versionSearch: "MSIE"
-			},
-			{
-				string: navigator.userAgent,
-				subString: "Gecko",
-				identity: "Mozilla",
-				versionSearch: "rv"
-			},
-			{ 		// for older Netscapes (4-)
-				string: navigator.userAgent,
-				subString: "Mozilla",
-				identity: "Netscape",
-				versionSearch: "Mozilla"
-			}
-		],
-		dataOS : [
-			{
-				string: navigator.platform,
-				subString: "Win",
-				identity: "Windows"
-			},
-			{
-				string: navigator.platform,
-				subString: "Mac",
-				identity: "Mac"
-			},
-			{
-				string: navigator.userAgent,
-				subString: "iPhone",
-				identity: "iPhone/iPod"
-		    },
-			{
-				string: navigator.userAgent,
-				subString: "iPad",
-				identity: "iPad"
-		    },
-			{
-				string: navigator.platform,
-				subString: "Linux",
-				identity: "Linux"
-			}
-		]
-
-	}
-	VMM.Browser.init();
-}
-
-/* **********************************************
-     Begin VMM.FileExtention.js
-********************************************** */
-
-/*	* File Extention
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.FileExtention == 'undefined') {
-	VMM.FileExtention = {
-		googleDocType: function(url) {
-			var fileName			= url.replace(/\s\s*$/, ''),
-				fileExtension		= "",
-				validFileExtensions = ["DOC","DOCX","XLS","XLSX","PPT","PPTX","PDF","PAGES","AI","PSD","TIFF","DXF","SVG","EPS","PS","TTF","XPS","ZIP","RAR"],
-				flag				= false;
-				
-			fileExtension = fileName.substr(fileName.length - 5, 5);
-			
-			for (var i = 0; i < validFileExtensions.length; i++) {
-				if (fileExtension.toLowerCase().match(validFileExtensions[i].toString().toLowerCase()) || fileName.match("docs.google.com") ) {
-					flag = true;
-				}
-			}
-			return flag;
-		}
-	}
-}
-
-/* **********************************************
-     Begin VMM.Date.js
-********************************************** */
-
-/*	* Utilities and Useful Functions
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.Date == 'undefined') {
-	
-	VMM.Date = ({
-		
-		init: function() {
-			return this;
-		},
-		
-		dateformats: {
-			year: "yyyy",
-			month_short: "mmm",
-			month: "mmmm yyyy",
-			full_short: "mmm d",
-			full: "mmmm d',' yyyy",
-			time_short: "h:MM:ss TT",
-			time_no_seconds_short: "h:MM TT",
-			time_no_seconds_small_date: "h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'",
-			full_long: "mmm d',' yyyy 'at' hh:MM TT",
-			full_long_small_date: "hh:MM TT'<br/><small>mmm d',' yyyy'</small>'"
-		},
-			
-		month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-		month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
-		day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-		day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."],
-		hour: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
-		hour_suffix: ["am"],
-			
-		//B.C.
-		bc_format: {
-			year: "yyyy",
-			month_short: "mmm",
-			month: "mmmm yyyy",
-			full_short: "mmm d",
-			full: "mmmm d',' yyyy",
-			time_no_seconds_short: "h:MM TT",
-			time_no_seconds_small_date: "dddd', 'h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'",
-			full_long: "dddd',' mmm d',' yyyy 'at' hh:MM TT",
-			full_long_small_date: "hh:MM TT'<br/><small>'dddd',' mmm d',' yyyy'</small>'"
-		},
-			
-		setLanguage: function(lang) {
-			trace("SET DATE LANGUAGE");
-			VMM.Date.dateformats		=	lang.dateformats;	
-			VMM.Date.month				=	lang.date.month;
-			VMM.Date.month_abbr			=	lang.date.month_abbr;
-			VMM.Date.day				=	lang.date.day;
-			VMM.Date.day_abbr			=	lang.date.day_abbr;
-			dateFormat.i18n.dayNames	=	lang.date.day_abbr.concat(lang.date.day);
-			dateFormat.i18n.monthNames	=	lang.date.month_abbr.concat(lang.date.month);
-		},
-			
-		parse: function(d, precision) {
-			"use strict";
-			var date,
-				date_array,
-				time_array,
-				time_parse,
-				p = {
-					year: 			false,
-					month: 			false,
-					day: 			false,
-					hour: 			false,
-					minute: 		false,
-					second: 		false,
-					millisecond: 	false
-				};
-				
-			if (type.of(d) == "date") {
-				trace("DEBUG THIS, ITs A DATE");
-				date = d;
-			} else {
-				date = new Date(0); 
-				date.setMonth(0); date.setDate(1); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0);
-				if ( d.match(/,/gi) ) {
-					date_array = d.split(",");
-					for(var i = 0; i < date_array.length; i++) {
-						date_array[i] = parseInt(date_array[i], 10);
-					}
-					if (date_array[0]) {	
-						date.setFullYear(date_array[0]);
-						p.year = true;
-					}
-					if (date_array[1]) {
-						date.setMonth(date_array[1] - 1);
-						p.month = true;
-					}
-					if (date_array[2]) {
-						date.setDate(date_array[2]);
-						p.day = true;
-					}
-					if (date_array[3]) {
-						date.setHours(date_array[3]);
-						p.hour = true;
-					}
-					if (date_array[4]) {
-						date.setMinutes(date_array[4]);
-						p.minute = true;
-					}
-					if (date_array[5]) {
-						date.setSeconds(date_array[5]);
-						if (date_array[5] >= 1) {
-							p.second = true;
-						}
-					}
-					if (date_array[6]) {
-						date.setMilliseconds(date_array[6]);
-						if (date_array[6] >= 1) {
-							p.millisecond = true;
-						}
-					}
-				} else if (d.match("/")) {
-					if (d.match(" ")) {
-						
-						time_parse = d.split(" ");
-						if (d.match(":")) {
-							time_array = time_parse[1].split(":");
-							if (time_array[0] >= 0 ) {
-								date.setHours(time_array[0]);
-								p.hour = true;
-							}
-							if (time_array[1] >= 0) {
-								date.setMinutes(time_array[1]);
-								p.minute = true;
-							}
-							if (time_array[2] >= 0) {
-								date.setSeconds(time_array[2]);
-								p.second = true;
-							}
-							if (time_array[3] >= 0) {
-								date.setMilliseconds(time_array[3]);
-								p.millisecond = true;
-							}
-						}
-						date_array = time_parse[0].split("/");
-					} else {
-						date_array = d.split("/");
-					}
-					if (date_array[2]) {
-						date.setFullYear(date_array[2]);
-						p.year = true;
-					}
-					if (date_array[0] >= 0) {
-						var month = date_array[0] - 1;
-						date.setMonth(month);
-						// if (date.getMonth() != month) { 
-						// 	date.setMonth(month); // WTF javascript?
-						// }
-						p.month = true;
-					}
-					if (date_array[1] >= 0) {
-						if (date_array[1].length > 2) {
-							date.setFullYear(date_array[1]);
-							p.year = true;
-						} else {
-							date.setDate(date_array[1]);
-							p.day = true;
-						}
-					}
-				} else if (d.match("now")) {
-					var now = new Date();	
-									
-					date.setFullYear(now.getFullYear());
-					p.year = true;
-					
-					date.setMonth(now.getMonth());
-					p.month = true;
-					
-					date.setDate(now.getDate());
-					p.day = true;
-					
-					if (d.match("hours")) {
-						date.setHours(now.getHours());
-						p.hour = true;
-					}
-					if (d.match("minutes")) {
-						date.setHours(now.getHours());
-						date.setMinutes(now.getMinutes());
-						p.hour = true;
-						p.minute = true;
-					}
-					if (d.match("seconds")) {
-						date.setHours(now.getHours());
-						date.setMinutes(now.getMinutes());
-						date.setSeconds(now.getSeconds());
-						p.hour = true;
-						p.minute = true;
-						p.second = true;
-					}
-					if (d.match("milliseconds")) {
-						date.setHours(now.getHours());
-						date.setMinutes(now.getMinutes());
-						date.setSeconds(now.getSeconds());
-						date.setMilliseconds(now.getMilliseconds());
-						p.hour = true;
-						p.minute = true;
-						p.second = true;
-						p.millisecond = true;
-					}
-				} else if (d.length <= 8) {
-					p.year = true;
-					date.setFullYear(parseInt(d, 10));
-					date.setMonth(0);
-					date.setDate(1);
-					date.setHours(0);
-					date.setMinutes(0);
-					date.setSeconds(0);
-					date.setMilliseconds(0);
-				} else if (d.match("T")) {
-					if (navigator.userAgent.match(/MSIE\s(?!9.0)/)) {
-					    // IE 8 < Won't accept dates with a "-" in them.
-						time_parse = d.split("T");
-						if (d.match(":")) {
-							time_array = time_parse[1].split(":");
-							if (time_array[0] >= 1) {
-								date.setHours(time_array[0]);
-								p.hour = true;
-							}
-							if (time_array[1] >= 1) {
-								date.setMinutes(time_array[1]);
-								p.minute = true;
-							}
-							if (time_array[2] >= 1) {
-								date.setSeconds(time_array[2]);
-								if (time_array[2] >= 1) {
-									p.second = true;
-								}
-							}
-							if (time_array[3] >= 1) {
-								date.setMilliseconds(time_array[3]);
-								if (time_array[3] >= 1) {
-									p.millisecond = true;
-								}
-							}
-						}
-						date_array = time_parse[0].split("-");
-						if (date_array[0]) {
-							date.setFullYear(date_array[0]);
-							p.year = true;
-						}
-						if (date_array[1] >= 0) {
-							date.setMonth(date_array[1] - 1);
-							p.month = true;
-						}
-						if (date_array[2] >= 0) {
-							date.setDate(date_array[2]);
-							p.day = true;
-						}
-						
-					} else {
-						date = new Date(Date.parse(d));
-						p.year = true;
-						p.month = true;
-						p.day = true;
-						p.hour = true;
-						p.minute = true;
-						if (date.getSeconds() >= 1) {
-							p.second = true;
-						}
-						if (date.getMilliseconds() >= 1) {
-							p.millisecond = true;
-						}
-					}
-				} else {
-					date = new Date(
-						parseInt(d.slice(0,4), 10), 
-						parseInt(d.slice(4,6), 10) - 1, 
-						parseInt(d.slice(6,8), 10), 
-						parseInt(d.slice(8,10), 10), 
-						parseInt(d.slice(10,12), 10)
-					);
-					p.year = true;
-					p.month = true;
-					p.day = true;
-					p.hour = true;
-					p.minute = true;
-					if (date.getSeconds() >= 1) {
-						p.second = true;
-					}
-					if (date.getMilliseconds() >= 1) {
-						p.millisecond = true;
-					}
-					
-				}
-				
-			}
-			
-			if (precision != null && precision != "") {
-				return {
-					date: 		date,
-					precision: 	p
-				};
-			} else {
-				return date;
-			}
-		},
-		
-		
-			
-		prettyDate: function(d, is_abbr, p, d2) {
-			var _date,
-				_date2,
-				format,
-				bc_check,
-				is_pair = false,
-				bc_original,
-				bc_number,
-				bc_string;
-				
-			if (d2 != null && d2 != "" && typeof d2 != 'undefined') {
-				is_pair = true;
-				trace("D2 " + d2);
-			}
-			
-			
-			if (type.of(d) == "date") {
-				
-				if (type.of(p) == "object") {
-					if (p.millisecond || p.second && d.getSeconds() >= 1) {
-						// YEAR MONTH DAY HOUR MINUTE
-						if (is_abbr){
-							format = VMM.Date.dateformats.time_short; 
-						} else {
-							format = VMM.Date.dateformats.time_short;
-						}
-					} else if (p.minute) {
-						// YEAR MONTH DAY HOUR MINUTE
-						if (is_abbr){
-							format = VMM.Date.dateformats.time_no_seconds_short; 
-						} else {
-							format = VMM.Date.dateformats.time_no_seconds_small_date;
-						}
-					} else if (p.hour) {
-						// YEAR MONTH DAY HOUR
-						if (is_abbr) {
-							format = VMM.Date.dateformats.time_no_seconds_short;
-						} else {
-							format = VMM.Date.dateformats.time_no_seconds_small_date;
-						}
-					} else if (p.day) {
-						// YEAR MONTH DAY
-						if (is_abbr) {
-							format = VMM.Date.dateformats.full_short;
-						} else {
-							format = VMM.Date.dateformats.full;
-						}
-					} else if (p.month) {
-						// YEAR MONTH
-						if (is_abbr) {
-							format = VMM.Date.dateformats.month_short;
-						} else {
-							format = VMM.Date.dateformats.month;
-						}
-					} else if (p.year) {
-						format = VMM.Date.dateformats.year;
-					} else {
-						format = VMM.Date.dateformats.year;
-					}
-					
-				} else {
-					
-					if (d.getMonth() === 0 && d.getDate() == 1 && d.getHours() === 0 && d.getMinutes() === 0 ) {
-						// YEAR ONLY
-						format = VMM.Date.dateformats.year;
-					} else if (d.getDate() <= 1 && d.getHours() === 0 && d.getMinutes() === 0) {
-						// YEAR MONTH
-						if (is_abbr) {
-							format = VMM.Date.dateformats.month_short;
-						} else {
-							format = VMM.Date.dateformats.month;
-						}
-					} else if (d.getHours() === 0 && d.getMinutes() === 0) {
-						// YEAR MONTH DAY
-						if (is_abbr) {
-							format = VMM.Date.dateformats.full_short;
-						} else {
-							format = VMM.Date.dateformats.full;
-						}
-					} else  if (d.getMinutes() === 0) {
-						// YEAR MONTH DAY HOUR
-						if (is_abbr) {
-							format = VMM.Date.dateformats.time_no_seconds_short;
-						} else {
-							format = VMM.Date.dateformats.time_no_seconds_small_date;
-						}
-					} else {
-						// YEAR MONTH DAY HOUR MINUTE
-						if (is_abbr){
-							format = VMM.Date.dateformats.time_no_seconds_short; 
-						} else {
-							format = VMM.Date.dateformats.full_long; 
-						}
-					}
-				}
-				
-				_date = dateFormat(d, format, false);
-				//_date = "Jan"
-				bc_check = _date.split(" ");
-					
-				// BC TIME SUPPORT
-				for(var i = 0; i < bc_check.length; i++) {
-					if ( parseInt(bc_check[i], 10) < 0 ) {
-						trace("YEAR IS BC");
-						bc_original	= bc_check[i];
-						bc_number	= Math.abs( parseInt(bc_check[i], 10) );
-						bc_string	= bc_number.toString() + " B.C.";
-						_date		= _date.replace(bc_original, bc_string);
-					}
-				}
-					
-					
-				if (is_pair) {
-					_date2 = dateFormat(d2, format, false);
-					bc_check = _date2.split(" ");
-					// BC TIME SUPPORT
-					for(var j = 0; j < bc_check.length; j++) {
-						if ( parseInt(bc_check[j], 10) < 0 ) {
-							trace("YEAR IS BC");
-							bc_original	= bc_check[j];
-							bc_number	= Math.abs( parseInt(bc_check[j], 10) );
-							bc_string	= bc_number.toString() + " B.C.";
-							_date2			= _date2.replace(bc_original, bc_string);
-						}
-					}
-						
-				}
-			} else {
-				trace("NOT A VALID DATE?");
-				trace(d);
-			}
-				
-			if (is_pair) {
-				return _date + " &mdash; " + _date2;
-			} else {
-				return _date;
-			}
-		}
-		
-	}).init();
-	
-	/*
-	 * Date Format 1.2.3
-	 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
-	 * MIT license
-	 *
-	 * Includes enhancements by Scott Trenda <scott.trenda.net>
-	 * and Kris Kowal <cixar.com/~kris.kowal/>
-	 *
-	 * Accepts a date, a mask, or a date and a mask.
-	 * Returns a formatted version of the given date.
-	 * The date defaults to the current date/time.
-	 * The mask defaults to dateFormat.masks.default.
-	 */
-
-	var dateFormat = function () {
-		var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[WLloSZ]|"[^"]*"|'[^']*'/g,
-			timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
-			timezoneClip = /[^-+\dA-Z]/g,
-			pad = function (val, len) {
-				val = String(val);
-				len = len || 2;
-				while (val.length < len) val = "0" + val;
-				return val;
-			};
-
-		// Regexes and supporting functions are cached through closure
-		return function (date, mask, utc) {
-			var dF = dateFormat;
-
-			// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
-			if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
-				mask = date;
-				date = undefined;
-			}
-
-			// Passing date through Date applies Date.parse, if necessary
-			// Caused problems in IE
-			// date = date ? new Date(date) : new Date;
-			if (isNaN(date)) {
-				trace("invalid date " + date);
-				//return "";
-			} 
-
-			mask = String(dF.masks[mask] || mask || dF.masks["default"]);
-
-			// Allow setting the utc argument via the mask
-			if (mask.slice(0, 4) == "UTC:") {
-				mask = mask.slice(4);
-				utc = true;
-			}
-
-			var	_ = utc ? "getUTC" : "get",
-				d = date[_ + "Date"](),
-				D = date[_ + "Day"](),
-				m = date[_ + "Month"](),
-				y = date[_ + "FullYear"](),
-				H = date[_ + "Hours"](),
-				M = date[_ + "Minutes"](),
-				s = date[_ + "Seconds"](),
-				L = date[_ + "Milliseconds"](),
-				W = date.getWeek(),
-				o = utc ? 0 : date.getTimezoneOffset(),
-				flags = {
-					d:    d,
-					dd:   pad(d),
-					ddd:  dF.i18n.dayNames[D],
-					dddd: dF.i18n.dayNames[D + 7],
-					m:    m + 1,
-					mm:   pad(m + 1),
-					mmm:  dF.i18n.monthNames[m],
-					mmmm: dF.i18n.monthNames[m + 12],
-					yy:   String(y).slice(2),
-					yyyy: y,
-					h:    H % 12 || 12,
-					hh:   pad(H % 12 || 12),
-					H:    H,
-					HH:   pad(H),
-					M:    M,
-					MM:   pad(M),
-					s:    s,
-					ss:   pad(s),
-					l:    pad(L, 3),
-					L:    pad(L > 99 ? Math.round(L / 10) : L),
-					t:    H < 12 ? "a"  : "p",
-					tt:   H < 12 ? "am" : "pm",
-					T:    H < 12 ? "A"  : "P",
-					TT:   H < 12 ? "AM" : "PM",
-					Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-					o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-					S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10],
-					W: 	W
-				};
-
-			return mask.replace(token, function ($0) {
-				return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
-			});
-		};
-	}();
-
-	// Some common format strings
-	dateFormat.masks = {
-		"default":      "ddd mmm dd yyyy HH:MM:ss",
-		shortDate:      "m/d/yy",
-		mediumDate:     "mmm d, yyyy",
-		longDate:       "mmmm d, yyyy",
-		fullDate:       "dddd, mmmm d, yyyy",
-		shortTime:      "h:MM TT",
-		mediumTime:     "h:MM:ss TT",
-		longTime:       "h:MM:ss TT Z",
-		isoDate:        "yyyy-mm-dd",
-		isoTime:        "HH:MM:ss",
-		isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
-		isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
-	};
-
-	// Internationalization strings
-	dateFormat.i18n = {
-		dayNames: [
-			"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
-			"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-		],
-		monthNames: [
-			"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-			"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-		]
-	};
-
-	// For convenience...
-	Date.prototype.format = function (mask, utc) {
-		return dateFormat(this, mask, utc);
-	};
-	
-}
-
-/* **********************************************
-     Begin VMM.Util.js
-********************************************** */
-
-/*	* Utilities and Useful Functions
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.Util == 'undefined') {
-	
-	VMM.Util = ({
-		
-		init: function() {
-			return this;
-		},
-		
-		removeRange: function(array, from, to) { // rather than change Array.prototype; Thanks Jeff McWhirter for nudge
-  			var rest = array.slice((to || from) + 1 || array.length);
-  			array.length = from < 0 ? array.length + from : from;
-  			return array.push.apply(array, rest);
-		},
-
-		/*	* CORRECT PROTOCOL (DOES NOT WORK)
-		================================================== */
-		correctProtocol: function(url) {
-			var loc = (window.parent.location.protocol).toString(),
-				prefix = "",
-				the_url = url.split("://", 2);
-			
-			if (loc.match("http")) {
-				prefix = loc;
-			} else {
-				prefix = "https";
-			}
-			
-			return prefix + "://" + the_url[1];
-			
-		},
-		
-		/*	* MERGE CONFIG
-		================================================== */
-		mergeConfig: function(config_main, config_to_merge) {
-			var x;
-			for (x in config_to_merge) {
-				if (Object.prototype.hasOwnProperty.call(config_to_merge, x)) {
-					config_main[x] = config_to_merge[x];
-				}
-			}
-			return config_main;
-		},
-		
-		/*	* GET OBJECT ATTRIBUTE BY INDEX
-		================================================== */
-		getObjectAttributeByIndex: function(obj, index) {
-			if(typeof obj != 'undefined') {
-				var i = 0;
-				for (var attr in obj){
-					if (index === i){
-						return obj[attr];
-					}
-					i++;
-				}
-				return "";
-			} else {
-				return "";
-			}
-			
-		},
-		
-		/*	* ORDINAL
-		================================================== */
-		ordinal: function(n) {
-		    return ["th","st","nd","rd"][(!( ((n%10) >3) || (Math.floor(n%100/10)==1)) ) * (n%10)]; 
-		},
-		
-		/*	* RANDOM BETWEEN
-		================================================== */
-		//VMM.Util.randomBetween(1, 3)
-		randomBetween: function(min, max) {
-			return Math.floor(Math.random() * (max - min + 1) + min);
-		},
-		
-		/*	* AVERAGE
-			* http://jsfromhell.com/array/average
-			* var x = VMM.Util.average([2, 3, 4]);
-			* VMM.Util.average([2, 3, 4]).mean
-		================================================== */
-		average: function(a) {
-		    var r = {mean: 0, variance: 0, deviation: 0}, t = a.length;
-		    for(var m, s = 0, l = t; l--; s += a[l]);
-		    for(m = r.mean = s / t, l = t, s = 0; l--; s += Math.pow(a[l] - m, 2));
-		    return r.deviation = Math.sqrt(r.variance = s / t), r;
-		},
-		
-		/*	* CUSTOM SORT
-		================================================== */
-		customSort: function(a, b) {
-			var a1= a, b1= b;
-			if(a1== b1) return 0;
-			return a1> b1? 1: -1;
-		},
-		
-		/*	* Remove Duplicates from Array
-		================================================== */
-		deDupeArray: function(arr) {
-			var i,
-				len=arr.length,
-				out=[],
-				obj={};
-
-			for (i=0;i<len;i++) {
-				obj[arr[i]]=0;
-			}
-			for (i in obj) {
-				out.push(i);
-			}
-			return out;
-		},
-		
-		/*	* Returns a word count number
-		================================================== */
-		wordCount: function(s) {
-			var fullStr = s + " ";
-			var initial_whitespace_rExp = /^[^A-Za-z0-9\'\-]+/gi;
-			var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
-			var non_alphanumerics_rExp = /[^A-Za-z0-9\'\-]+/gi;
-			var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
-			var splitString = cleanedStr.split(" ");
-			var word_count = splitString.length -1;
-			if (fullStr.length <2) {
-				word_count = 0;
-			}
-			return word_count;
-		},
-		
-		ratio: {
-			fit: function(w, h, ratio_w, ratio_h) {
-				//VMM.Util.ratio.fit(w, h, ratio_w, ratio_h).width;
-				var _fit = {width:0,height:0};
-				// TRY WIDTH FIRST
-				_fit.width = w;
-				//_fit.height = Math.round((h / ratio_h) * ratio_w);
-				_fit.height = Math.round((w / ratio_w) * ratio_h);
-				if (_fit.height > h) {
-					_fit.height = h;
-					//_fit.width = Math.round((w / ratio_w) * ratio_h);
-					_fit.width = Math.round((h / ratio_h) * ratio_w);
-					
-					if (_fit.width > w) {
-						trace("FIT: DIDN'T FIT!!! ")
-					}
-				}
-				
-				return _fit;
-				
-			},
-			r16_9: function(w,h) {
-				//VMM.Util.ratio.r16_9(w, h) // Returns corresponding number
-				if (w !== null && w !== "") {
-					return Math.round((h / 16) * 9);
-				} else if (h !== null && h !== "") {
-					return Math.round((w / 9) * 16);
-				}
-			},
-			r4_3: function(w,h) {
-				if (w !== null && w !== "") {
-					return Math.round((h / 4) * 3);
-				} else if (h !== null && h !== "") {
-					return Math.round((w / 3) * 4);
-				}
-			}
-		},
-		
-		doubledigit: function(n) {
-			return (n < 10 ? '0' : '') + n;
-		},
-		
-		/*	* Returns a truncated segement of a long string of between min and max words. If possible, ends on a period (otherwise goes to max).
-		================================================== */
-		truncateWords: function(s, min, max) {
-			
-			if (!min) min = 30;
-			if (!max) max = min;
-			
-			var initial_whitespace_rExp = /^[^A-Za-z0-9\'\-]+/gi;
-			var left_trimmedStr = s.replace(initial_whitespace_rExp, "");
-			var words = left_trimmedStr.split(" ");
-			
-			var result = [];
-			
-			min = Math.min(words.length, min);
-			max = Math.min(words.length, max);
-			
-			for (var i = 0; i<min; i++) {
-				result.push(words[i]);
-			}		
-			
-			for (var j = min; i<max; i++) {
-				var word = words[i];
-				
-				result.push(word);
-				
-				if (word.charAt(word.length-1) == '.') {
-					break;
-				}
-			}		
-			
-			return (result.join(' '));
-		},
-		
-		/*	* Turns plain text links into real links
-		================================================== */
-		linkify: function(text,targets,is_touch) {
-			
-			// http://, https://, ftp://
-			var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
-
-			// www. sans http:// or https://
-			var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
-
-			// Email addresses
-			var emailAddressPattern = /(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim;
-			
-
-			return text
-				.replace(urlPattern, "<a target='_blank' href='$&' onclick='void(0)'>$&</a>")
-				.replace(pseudoUrlPattern, "$1<a target='_blank' onclick='void(0)' href='http://$2'>$2</a>")
-				.replace(emailAddressPattern, "<a target='_blank' onclick='void(0)' href='mailto:$1'>$1</a>");
-		},
-		
-		linkify_with_twitter: function(text,targets,is_touch) {
-			
-			// http://, https://, ftp://
-			var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim;
-			var url_pattern = /(\()((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\))|(\[)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\])|(\{)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\})|(<|&(?:lt|#60|#x3c);)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(>|&(?:gt|#62|#x3e);)|((?:^|[^=\s'"\]])\s*['"]?|[^=\s]\s+)(\b(?:ht|f)tps?:\/\/[a-z0-9\-._~!$'()*+,;=:\/?#[\]@%]+(?:(?!&(?:gt|#0*62|#x0*3e);|&(?:amp|apos|quot|#0*3[49]|#x0*2[27]);[.!&',:?;]?(?:[^a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]|$))&[a-z0-9\-._~!$'()*+,;=:\/?#[\]@%]*)*[a-z0-9\-_~$()*+=\/#[\]@%])/img;
-			var url_replace = '$1$4$7$10$13<a href="$2$5$8$11$14" target="_blank" class="hyphenate">$2$5$8$11$14</a>$3$6$9$12';
-			
-			// www. sans http:// or https://
-			var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
-			function replaceURLWithHTMLLinks(text) {
-			    var exp = /(\b(https?|ftp|file):\/\/([-A-Z0-9+&@#%?=~_|!:,.;]*)([-A-Z0-9+&@#%?\/=~_|!:,.;]*)[-A-Z0-9+&@#\/%=~_|])/ig;
-			    return text.replace(exp, "<a href='$1' target='_blank'>$3</a>");
-			}
-			// Email addresses
-			var emailAddressPattern = /([a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)/gim;
-			
-			//var twitterHandlePattern = /(@([\w]+))/g;
-			var twitterHandlePattern = /\B@([\w-]+)/gm;
-			var twitterSearchPattern = /(#([\w]+))/g;
-
-			return text
-				//.replace(urlPattern, "<a target='_blank' href='$&' onclick='void(0)'>$&</a>")
-				.replace(url_pattern, url_replace)
-				.replace(pseudoUrlPattern, "$1<a target='_blank' class='hyphenate' onclick='void(0)' href='http://$2'>$2</a>")
-				.replace(emailAddressPattern, "<a target='_blank' onclick='void(0)' href='mailto:$1'>$1</a>")
-				.replace(twitterHandlePattern, "<a href='http://twitter.com/$1' target='_blank' onclick='void(0)'>@$1</a>");
-				
-				// TURN THIS BACK ON TO AUTOMAGICALLY LINK HASHTAGS TO TWITTER SEARCH
-				//.replace(twitterSearchPattern, "<a href='http://twitter.com/search?q=%23$2' target='_blank' 'void(0)'>$1</a>");
-		},
-		
-		linkify_wikipedia: function(text) {
-			
-			var urlPattern = /<i[^>]*>(.*?)<\/i>/gim;
-			return text
-				.replace(urlPattern, "<a target='_blank' href='http://en.wikipedia.org/wiki/$&' onclick='void(0)'>$&</a>")
-				.replace(/<i\b[^>]*>/gim, "")
-				.replace(/<\/i>/gim, "")
-				.replace(/<b\b[^>]*>/gim, "")
-				.replace(/<\/b>/gim, "");
-		},
-		
-		/*	* Turns plain text links into real links
-		================================================== */
-		// VMM.Util.unlinkify();
-		unlinkify: function(text) {
-			if(!text) return text;
-			text = text.replace(/<a\b[^>]*>/i,"");
-			text = text.replace(/<\/a>/i, "");
-			return text;
-		},
-		
-		untagify: function(text) {
-			if (!text) {
-				return text;
-			}
-			text = text.replace(/<\/?\s*\w.*?>/g,"");
-			return text;
-		},
-		
-		/*	* TK
-		================================================== */
-		nl2br: function(text) {
-			return text.replace(/(\r\n|[\r\n]|\\n|\\r)/g,"<br/>");
-		},
-		
-		/*	* Generate a Unique ID
-		================================================== */
-		// VMM.Util.unique_ID(size);
-		unique_ID: function(size) {
-			
-			var getRandomNumber = function(range) {
-				return Math.floor(Math.random() * range);
-			};
-
-			var getRandomChar = function() {
-				var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
-				return chars.substr( getRandomNumber(62), 1 );
-			};
-
-			var randomID = function(size) {
-				var str = "";
-				for(var i = 0; i < size; i++) {
-					str += getRandomChar();
-				}
-				return str;
-			};
-			
-			return randomID(size);
-		},
-		/*	* Tells you if a number is even or not
-		================================================== */
-		// VMM.Util.isEven(n)
-		isEven: function(n){
-			return (n%2 === 0) ? true : false;
-		},
-		/*	* Get URL Variables
-		================================================== */
-		//	var somestring = VMM.Util.getUrlVars(str_url)["varname"];
-		getUrlVars: function(string) {
-			
-			var str = string.toString();
-			
-			if (str.match('&#038;')) { 
-				str = str.replace("&#038;", "&");
-			} else if (str.match('&#38;')) {
-				str = str.replace("&#38;", "&");
-			} else if (str.match('&amp;')) {
-				str = str.replace("&amp;", "&");
-			}
-			
-			var vars = [], hash;
-			var hashes = str.slice(str.indexOf('?') + 1).split('&');
-			for(var i = 0; i < hashes.length; i++) {
-				hash = hashes[i].split('=');
-				vars.push(hash[0]);
-				vars[hash[0]] = hash[1];
-			}
-			
-			
-			return vars;
-		},
-
-		/*	* Cleans up strings to become real HTML
-		================================================== */
-		toHTML: function(text) {
-			
-			text = this.nl2br(text);
-			text = this.linkify(text);
-			
-			return text.replace(/\s\s/g,"&nbsp;&nbsp;");
-		},
-		
-		/*	* Returns text strings as CamelCase
-		================================================== */
-		toCamelCase: function(s,forceLowerCase) {
-			
-			if(forceLowerCase !== false) forceLowerCase = true;
-			
-			var sps = ((forceLowerCase) ? s.toLowerCase() : s).split(" ");
-			
-			for(var i=0; i<sps.length; i++) {
-				
-				sps[i] = sps[i].substr(0,1).toUpperCase() + sps[i].substr(1);
-			}
-			
-			return sps.join(" ");
-		},
-		
-		/*	* Replaces dumb quote marks with smart ones
-		================================================== */
-		properQuotes: function(str) {
-			return str.replace(/\"([^\"]*)\"/gi,"&#8220;$1&#8221;");
-		},
-		/*	* Add Commas to numbers
-		================================================== */
-		niceNumber: function(nStr){
-			nStr += '';
-			x = nStr.split('.');
-			x1 = x[0];
-			x2 = x.length > 1 ? '.' + x[1] : '';
-			var rgx = /(\d+)(\d{3})/;
-			while (rgx.test(x1)) {
-				x1 = x1.replace(rgx, '$1' + ',' + '$2');
-			}
-			return x1 + x2;
-		},
-		/*	* Transform text to Title Case
-		================================================== */
-		toTitleCase: function(t){
-			if ( VMM.Browser.browser == "Explorer" && parseInt(VMM.Browser.version, 10) >= 7) {
-				return t.replace("_", "%20");
-			} else {
-				var __TitleCase = {
-					__smallWords: ['a', 'an', 'and', 'as', 'at', 'but','by', 'en', 'for', 'if', 'in', 'of', 'on', 'or','the', 'to', 'v[.]?', 'via', 'vs[.]?'],
-
-					init: function() {
-						this.__smallRE = this.__smallWords.join('|');
-						this.__lowerCaseWordsRE = new RegExp('\\b(' + this.__smallRE + ')\\b', 'gi');
-						this.__firstWordRE = new RegExp('^([^a-zA-Z0-9 \\r\\n\\t]*)(' + this.__smallRE + ')\\b', 'gi');
-						this.__lastWordRE = new RegExp('\\b(' + this.__smallRE + ')([^a-zA-Z0-9 \\r\\n\\t]*)$', 'gi');
-					},
-
-					toTitleCase: function(string) {
-						var line = '';
-
-						var split = string.split(/([:.;?!][ ]|(?:[ ]|^)["“])/);
-
-						for (var i = 0; i < split.length; ++i) {
-							var s = split[i];
-
-							s = s.replace(/\b([a-zA-Z][a-z.'’]*)\b/g,this.__titleCaseDottedWordReplacer);
-
-			 				// lowercase the list of small words
-							s = s.replace(this.__lowerCaseWordsRE, this.__lowerReplacer);
-
-							// if the first word in the title is a small word then capitalize it
-							s = s.replace(this.__firstWordRE, this.__firstToUpperCase);
-
-							// if the last word in the title is a small word, then capitalize it
-							s = s.replace(this.__lastWordRE, this.__firstToUpperCase);
-
-							line += s;
-						}
-
-						// special cases
-						line = line.replace(/ V(s?)\. /g, ' v$1. ');
-						line = line.replace(/(['’])S\b/g, '$1s');
-						line = line.replace(/\b(AT&T|Q&A)\b/ig, this.__upperReplacer);
-
-						return line;
-					},
-
-					__titleCaseDottedWordReplacer: function (w) {
-						return (w.match(/[a-zA-Z][.][a-zA-Z]/)) ? w : __TitleCase.__firstToUpperCase(w);
-					},
-
-					__lowerReplacer: function (w) { return w.toLowerCase() },
-
-					__upperReplacer: function (w) { return w.toUpperCase() },
-
-					__firstToUpperCase: function (w) {
-						var split = w.split(/(^[^a-zA-Z0-9]*[a-zA-Z0-9])(.*)$/);
-						if (split[1]) {
-							split[1] = split[1].toUpperCase();
-						}
-					
-						return split.join('');
-					
-					
-					}
-				};
-
-				__TitleCase.init();
-			
-				t = t.replace(/_/g," ");
-				t = __TitleCase.toTitleCase(t);
-			
-				return t;
-				
-			}
-			
-		}
-		
-	}).init();
-}
-
-
-/* **********************************************
-     Begin LazyLoad.js
-********************************************** */
-
-/*jslint browser: true, eqeqeq: true, bitwise: true, newcap: true, immed: true, regexp: false */
-
-/*
-LazyLoad makes it easy and painless to lazily load one or more external
-JavaScript or CSS files on demand either during or after the rendering of a web
-page.
-
-Supported browsers include Firefox 2+, IE6+, Safari 3+ (including Mobile
-Safari), Google Chrome, and Opera 9+. Other browsers may or may not work and
-are not officially supported.
-
-Visit https://github.com/rgrove/lazyload/ for more info.
-
-Copyright (c) 2011 Ryan Grove <ryan@wonko.com>
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the 'Software'), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-@module lazyload
-@class LazyLoad
-@static
-@version 2.0.3 (git)
-*/
-
-LazyLoad = (function (doc) {
-  // -- Private Variables ------------------------------------------------------
-
-  // User agent and feature test information.
-  var env,
-
-  // Reference to the <head> element (populated lazily).
-  head,
-
-  // Requests currently in progress, if any.
-  pending = {},
-
-  // Number of times we've polled to check whether a pending stylesheet has
-  // finished loading. If this gets too high, we're probably stalled.
-  pollCount = 0,
-
-  // Queued requests.
-  queue = {css: [], js: []},
-
-  // Reference to the browser's list of stylesheets.
-  styleSheets = doc.styleSheets;
-
-  // -- Private Methods --------------------------------------------------------
-
-  /**
-  Creates and returns an HTML element with the specified name and attributes.
-
-  @method createNode
-  @param {String} name element name
-  @param {Object} attrs name/value mapping of element attributes
-  @return {HTMLElement}
-  @private
-  */
-  function createNode(name, attrs) {
-    var node = doc.createElement(name), attr;
-
-    for (attr in attrs) {
-      if (attrs.hasOwnProperty(attr)) {
-        node.setAttribute(attr, attrs[attr]);
-      }
-    }
-
-    return node;
-  }
-
-  /**
-  Called when the current pending resource of the specified type has finished
-  loading. Executes the associated callback (if any) and loads the next
-  resource in the queue.
-
-  @method finish
-  @param {String} type resource type ('css' or 'js')
-  @private
-  */
-  function finish(type) {
-    var p = pending[type],
-        callback,
-        urls;
-
-    if (p) {
-      callback = p.callback;
-      urls     = p.urls;
-
-      urls.shift();
-      pollCount = 0;
-
-      // If this is the last of the pending URLs, execute the callback and
-      // start the next request in the queue (if any).
-      if (!urls.length) {
-        callback && callback.call(p.context, p.obj);
-        pending[type] = null;
-        queue[type].length && load(type);
-      }
-    }
-  }
-
-  /**
-  Populates the <code>env</code> variable with user agent and feature test
-  information.
-
-  @method getEnv
-  @private
-  */
-  function getEnv() {
-    var ua = navigator.userAgent;
-
-    env = {
-      // True if this browser supports disabling async mode on dynamically
-      // created script nodes. See
-      // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order
-      async: doc.createElement('script').async === true
-    };
-
-    (env.webkit = /AppleWebKit\//.test(ua))
-      || (env.ie = /MSIE/.test(ua))
-      || (env.opera = /Opera/.test(ua))
-      || (env.gecko = /Gecko\//.test(ua))
-      || (env.unknown = true);
-  }
-
-  /**
-  Loads the specified resources, or the next resource of the specified type
-  in the queue if no resources are specified. If a resource of the specified
-  type is already being loaded, the new request will be queued until the
-  first request has been finished.
-
-  When an array of resource URLs is specified, those URLs will be loaded in
-  parallel if it is possible to do so while preserving execution order. All
-  browsers support parallel loading of CSS, but only Firefox and Opera
-  support parallel loading of scripts. In other browsers, scripts will be
-  queued and loaded one at a time to ensure correct execution order.
-
-  @method load
-  @param {String} type resource type ('css' or 'js')
-  @param {String|Array} urls (optional) URL or array of URLs to load
-  @param {Function} callback (optional) callback function to execute when the
-    resource is loaded
-  @param {Object} obj (optional) object to pass to the callback function
-  @param {Object} context (optional) if provided, the callback function will
-    be executed in this object's context
-  @private
-  */
-  function load(type, urls, callback, obj, context) {
-    var _finish = function () { finish(type); },
-        isCSS   = type === 'css',
-        nodes   = [],
-        i, len, node, p, pendingUrls, url;
-
-    env || getEnv();
-
-    if (urls) {
-      // If urls is a string, wrap it in an array. Otherwise assume it's an
-      // array and create a copy of it so modifications won't be made to the
-      // original.
-      urls = typeof urls === 'string' ? [urls] : urls.concat();
-
-      // Create a request object for each URL. If multiple URLs are specified,
-      // the callback will only be executed after all URLs have been loaded.
-      //
-      // Sadly, Firefox and Opera are the only browsers capable of loading
-      // scripts in parallel while preserving execution order. In all other
-      // browsers, scripts must be loaded sequentially.
-      //
-      // All browsers respect CSS specificity based on the order of the link
-      // elements in the DOM, regardless of the order in which the stylesheets
-      // are actually downloaded.
-      if (isCSS || env.async || env.gecko || env.opera) {
-        // Load in parallel.
-        queue[type].push({
-          urls    : urls,
-          callback: callback,
-          obj     : obj,
-          context : context
-        });
-      } else {
-        // Load sequentially.
-        for (i = 0, len = urls.length; i < len; ++i) {
-          queue[type].push({
-            urls    : [urls[i]],
-            callback: i === len - 1 ? callback : null, // callback is only added to the last URL
-            obj     : obj,
-            context : context
-          });
-        }
-      }
-    }
-
-    // If a previous load request of this type is currently in progress, we'll
-    // wait our turn. Otherwise, grab the next item in the queue.
-    if (pending[type] || !(p = pending[type] = queue[type].shift())) {
-      return;
-    }
-
-    head || (head = doc.head || doc.getElementsByTagName('head')[0]);
-    pendingUrls = p.urls;
-
-    for (i = 0, len = pendingUrls.length; i < len; ++i) {
-      url = pendingUrls[i];
-
-      if (isCSS) {
-          node = env.gecko ? createNode('style') : createNode('link', {
-            href: url,
-            rel : 'stylesheet'
-          });
-      } else {
-        node = createNode('script', {src: url});
-        node.async = false;
-      }
-
-      node.className = 'lazyload';
-      node.setAttribute('charset', 'utf-8');
-
-      if (env.ie && !isCSS) {
-        node.onreadystatechange = function () {
-          if (/loaded|complete/.test(node.readyState)) {
-            node.onreadystatechange = null;
-            _finish();
-          }
-        };
-      } else if (isCSS && (env.gecko || env.webkit)) {
-        // Gecko and WebKit don't support the onload event on link nodes.
-        if (env.webkit) {
-          // In WebKit, we can poll for changes to document.styleSheets to
-          // figure out when stylesheets have loaded.
-          p.urls[i] = node.href; // resolve relative URLs (or polling won't work)
-          pollWebKit();
-        } else {
-          // In Gecko, we can import the requested URL into a <style> node and
-          // poll for the existence of node.sheet.cssRules. Props to Zach
-          // Leatherman for calling my attention to this technique.
-          node.innerHTML = '@import "' + url + '";';
-          pollGecko(node);
-        }
-      } else {
-        node.onload = node.onerror = _finish;
-      }
-
-      nodes.push(node);
-    }
-
-    for (i = 0, len = nodes.length; i < len; ++i) {
-      head.appendChild(nodes[i]);
-    }
-  }
-
-  /**
-  Begins polling to determine when the specified stylesheet has finished loading
-  in Gecko. Polling stops when all pending stylesheets have loaded or after 10
-  seconds (to prevent stalls).
-
-  Thanks to Zach Leatherman for calling my attention to the @import-based
-  cross-domain technique used here, and to Oleg Slobodskoi for an earlier
-  same-domain implementation. See Zach's blog for more details:
-  http://www.zachleat.com/web/2010/07/29/load-css-dynamically/
-
-  @method pollGecko
-  @param {HTMLElement} node Style node to poll.
-  @private
-  */
-  function pollGecko(node) {
-    var hasRules;
-
-    try {
-      // We don't really need to store this value or ever refer to it again, but
-      // if we don't store it, Closure Compiler assumes the code is useless and
-      // removes it.
-      hasRules = !!node.sheet.cssRules;
-    } catch (ex) {
-      // An exception means the stylesheet is still loading.
-      pollCount += 1;
-
-      if (pollCount < 200) {
-        setTimeout(function () { pollGecko(node); }, 50);
-      } else {
-        // We've been polling for 10 seconds and nothing's happened. Stop
-        // polling and finish the pending requests to avoid blocking further
-        // requests.
-        hasRules && finish('css');
-      }
-
-      return;
-    }
-
-    // If we get here, the stylesheet has loaded.
-    finish('css');
-  }
-
-  /**
-  Begins polling to determine when pending stylesheets have finished loading
-  in WebKit. Polling stops when all pending stylesheets have loaded or after 10
-  seconds (to prevent stalls).
-
-  @method pollWebKit
-  @private
-  */
-  function pollWebKit() {
-    var css = pending.css, i;
-
-    if (css) {
-      i = styleSheets.length;
-
-      // Look for a stylesheet matching the pending URL.
-      while (--i >= 0) {
-        if (styleSheets[i].href === css.urls[0]) {
-          finish('css');
-          break;
-        }
-      }
-
-      pollCount += 1;
-
-      if (css) {
-        if (pollCount < 200) {
-          setTimeout(pollWebKit, 50);
-        } else {
-          // We've been polling for 10 seconds and nothing's happened, which may
-          // indicate that the stylesheet has been removed from the document
-          // before it had a chance to load. Stop polling and finish the pending
-          // request to prevent blocking further requests.
-          finish('css');
-        }
-      }
-    }
-  }
-
-  return {
-
-    /**
-    Requests the specified CSS URL or URLs and executes the specified
-    callback (if any) when they have finished loading. If an array of URLs is
-    specified, the stylesheets will be loaded in parallel and the callback
-    will be executed after all stylesheets have finished loading.
-
-    @method css
-    @param {String|Array} urls CSS URL or array of CSS URLs to load
-    @param {Function} callback (optional) callback function to execute when
-      the specified stylesheets are loaded
-    @param {Object} obj (optional) object to pass to the callback function
-    @param {Object} context (optional) if provided, the callback function
-      will be executed in this object's context
-    @static
-    */
-    css: function (urls, callback, obj, context) {
-      load('css', urls, callback, obj, context);
-    },
-
-    /**
-    Requests the specified JavaScript URL or URLs and executes the specified
-    callback (if any) when they have finished loading. If an array of URLs is
-    specified and the browser supports it, the scripts will be loaded in
-    parallel and the callback will be executed after all scripts have
-    finished loading.
-
-    Currently, only Firefox and Opera support parallel loading of scripts while
-    preserving execution order. In other browsers, scripts will be
-    queued and loaded one at a time to ensure correct execution order.
-
-    @method js
-    @param {String|Array} urls JS URL or array of JS URLs to load
-    @param {Function} callback (optional) callback function to execute when
-      the specified scripts are loaded
-    @param {Object} obj (optional) object to pass to the callback function
-    @param {Object} context (optional) if provided, the callback function
-      will be executed in this object's context
-    @static
-    */
-    js: function (urls, callback, obj, context) {
-      load('js', urls, callback, obj, context);
-    }
-
-  };
-})(this.document);
-
-
-/* **********************************************
-     Begin VMM.LoadLib.js
-********************************************** */
-
-/*
-	LoadLib
-	Designed and built by Zach Wise digitalartwork.net
-*/
-
-/*	* CodeKit Import
-	* http://incident57.com/codekit/
-================================================== */
-// @codekit-prepend "../Library/LazyLoad.js";
-
-LoadLib = (function (doc) {
-	var loaded	= [];
-	
-	function isLoaded(url) {
-		
-		var i			= 0,
-			has_loaded	= false;
-		
-		for (i = 0; i < loaded.length; i++) {
-			if (loaded[i] == url) {
-				has_loaded = true;
-			}
-		}
-		
-		if (has_loaded) {
-			return true;
-		} else {
-			loaded.push(url);
-			return false;
-		}
-		
-	}
-	
-	return {
-		
-		css: function (urls, callback, obj, context) {
-			if (!isLoaded(urls)) {
-				LazyLoad.css(urls, callback, obj, context);
-			}
-		},
-
-		js: function (urls, callback, obj, context) {
-			if (!isLoaded(urls)) {
-				LazyLoad.js(urls, callback, obj, context);
-			}
-		}
-    };
-	
-})(this.document);
-
-
-/* **********************************************
-     Begin VMM.Language.js
-********************************************** */
-
-/* DEFAULT LANGUAGE 
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.Language == 'undefined') {
-	VMM.Language = {
-		lang: "en",
-		api: {
-			wikipedia: "en"
-		},
-		date: {
-			month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-			month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
-			day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
-			day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."]
-		}, 
-		dateformats: {
-			year: "yyyy",
-			month_short: "mmm",
-			month: "mmmm yyyy",
-			full_short: "mmm d",
-			full: "mmmm d',' yyyy",
-			time_short: "h:MM:ss TT",
-			time_no_seconds_short: "h:MM TT",
-			time_no_seconds_small_date: "h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'",
-			full_long: "mmm d',' yyyy 'at' h:MM TT",
-			full_long_small_date: "h:MM TT'<br/><small>mmm d',' yyyy'</small>'"
-		},
-		messages: {
-			loading_timeline: "Loading Timeline... ",
-			return_to_title: "Return to Title",
-			expand_timeline: "Expand Timeline",
-			contract_timeline: "Contract Timeline",
-			wikipedia: "From Wikipedia, the free encyclopedia",
-			loading_content: "Loading Content",
-			loading: "Loading",
-			swipe_nav: "Swipe to Navigate"
-		}
-	}
-};
-
-/* **********************************************
-     Begin VMM.Core.js
-********************************************** */
-
-/* VeriteCo Core
-================================================== */
-
-/*	* CodeKit Import
-	* http://incident57.com/codekit/
-================================================== */
-// @codekit-prepend "VMM.js";
-// @codekit-prepend "VMM.Library.js";
-// @codekit-prepend "VMM.Browser.js";
-// @codekit-prepend "VMM.FileExtention.js";
-// @codekit-prepend "VMM.Date.js";
-// @codekit-prepend "VMM.Util.js";
-// @codekit-prepend "VMM.LoadLib.js";
-// @codekit-prepend "VMM.Language.js";
-
-
-
-/* **********************************************
-     Begin VMM.ExternalAPI.js
-********************************************** */
-
-/* External API
-================================================== */
-if(typeof VMM != 'undefined' && typeof VMM.ExternalAPI == 'undefined') {
-	
-	VMM.ExternalAPI = ({
-		
-		keys: {
-			google:				"",
-			flickr:				"",
-			twitter:			""
-		},
-		
-		keys_master: {
-			vp:			"Pellentesque nibh felis, eleifend id, commodo in, interdum vitae, leo",
-			flickr:		"RAIvxHY4hE/Elm5cieh4X5ptMyDpj7MYIxziGxi0WGCcy1s+yr7rKQ==",
-			google:		"jwNGnYw4hE9lmAez4ll0QD+jo6SKBJFknkopLS4FrSAuGfIwyj57AusuR0s8dAo=",
-			twitter:	""
-		},
-		
-		init: function() {
-			return this;
-		},
-		
-		setKeys: function(d) {
-			VMM.ExternalAPI.keys	= d;
-		},
-		
-		pushQues: function() {
-			
-			if (VMM.master_config.googlemaps.active) {
-				VMM.ExternalAPI.googlemaps.pushQue();
-			}
-			if (VMM.master_config.youtube.active) {
-				VMM.ExternalAPI.youtube.pushQue();
-			}
-			if (VMM.master_config.soundcloud.active) {
-				VMM.ExternalAPI.soundcloud.pushQue();
-			}
-			if (VMM.master_config.googledocs.active) {
-				VMM.ExternalAPI.googledocs.pushQue();
-			}
-			if (VMM.master_config.googleplus.active) {
-				VMM.ExternalAPI.googleplus.pushQue();
-			}
-			if (VMM.master_config.wikipedia.active) {
-				VMM.ExternalAPI.wikipedia.pushQue();
-			}
-			if (VMM.master_config.vimeo.active) {
-				VMM.ExternalAPI.vimeo.pushQue();
-			}
-			if (VMM.master_config.vine.active) {
-				VMM.ExternalAPI.vine.pushQue();
-			}
-			if (VMM.master_config.twitter.active) {
-				VMM.ExternalAPI.twitter.pushQue();
-			}
-			if (VMM.master_config.flickr.active) {
-				VMM.ExternalAPI.flickr.pushQue();
-			}
-			if (VMM.master_config.webthumb.active) {
-				VMM.ExternalAPI.webthumb.pushQue();
-			}
-		},
-		
-		twitter: {
-			tweetArray: [],
-			
-			get: function(m) {
-				var tweet = {mid: m.id, id: m.uid};
-				VMM.master_config.twitter.que.push(tweet);
-				VMM.master_config.twitter.active = true;
-				//VMM.master_config.api.pushques.push(VMM.ExternalAPI.twitter.pushQue);
-				
-			},
-			
-			create: function(tweet, callback) {
-				
-				var id				= tweet.mid.toString(),
-					error_obj		= { twitterid: tweet.mid },
-					the_url			= "//api.twitter.com/1/statuses/show.json?id=" + tweet.mid + "&include_entities=true&callback=?";
-					//twitter_timeout	= setTimeout(VMM.ExternalAPI.twitter.errorTimeOut, VMM.master_config.timers.api, tweet),
-					//callback_timeout= setTimeout(callback, VMM.master_config.timers.api, tweet);
-				
-				VMM.ExternalAPI.twitter.getOEmbed(tweet, callback);
-				
-				/*
-				// Disabled thanks to twitter's new api
-				
-				VMM.getJSON(the_url, function(d) {
-					var id		= d.id_str,
-						twit	= "<blockquote><p>",
-						td		= VMM.Util.linkify_with_twitter(d.text, "_blank");
-					
-					//	TWEET CONTENT	
-					twit += td;
-					twit += "</p></blockquote>";
-					
-					//	TWEET MEDIA
-					if (typeof d.entities.media != 'undefined') {
-						if (d.entities.media[0].type == "photo") {
-							//twit += "<img src=' " + d.entities.media[0].media_url + "'  alt=''>"
-						}
-					}
-					
-					//	TWEET AUTHOR
-					twit += "<div class='vcard author'>";
-					twit += "<a class='screen-name url' href='https://twitter.com/" + d.user.screen_name + "' data-screen-name='" + d.user.screen_name + "' target='_blank'>";
-					twit += "<span class='avatar'><img src=' " + d.user.profile_image_url + "'  alt=''></span>";
-					twit += "<span class='fn'>" + d.user.name + "</span>";
-					twit += "<span class='nickname'>@" + d.user.screen_name + "<span class='thumbnail-inline'></span></span>";
-					twit += "</a>";
-					twit += "</div>";
-				
-					
-				
-					VMM.attachElement("#"+tweet.id.toString(), twit );
-					VMM.attachElement("#text_thumb_"+tweet.id.toString(), d.text );
-					VMM.attachElement("#marker_content_" + tweet.id.toString(), d.text );
-					
-				})
-				.error(function(jqXHR, textStatus, errorThrown) {
-					trace("TWITTER error");
-					trace("TWITTER ERROR: " + textStatus + " " + jqXHR.responseText);
-					VMM.attachElement("#"+tweet.id, VMM.MediaElement.loadingmessage("ERROR LOADING TWEET " + tweet.mid) );
-				})
-				.success(function(d) {
-					clearTimeout(twitter_timeout);
-					clearTimeout(callback_timeout);
-					callback();
-				});
-				
-				*/
-			},
-			
-			errorTimeOut: function(tweet) {
-				trace("TWITTER JSON ERROR TIMEOUT " + tweet.mid);
-				VMM.attachElement("#"+tweet.id.toString(), VMM.MediaElement.loadingmessage("Still waiting on Twitter: " + tweet.mid) );
-				// CHECK RATE STATUS
-				VMM.getJSON("//api.twitter.com/1/account/rate_limit_status.json", function(d) {
-					trace("REMAINING TWITTER API CALLS " + d.remaining_hits);
-					trace("TWITTER RATE LIMIT WILL RESET AT " + d.reset_time);
-					var mes = "";
-					if (d.remaining_hits == 0) {
-						mes		= 	"<p>You've reached the maximum number of tweets you can load in an hour.</p>";
-						mes 	+=	"<p>You can view tweets again starting at: <br/>" + d.reset_time + "</p>";
-					} else {
-						mes		=	"<p>Still waiting on Twitter. " + tweet.mid + "</p>";
-						//mes 	= 	"<p>Tweet " + id + " was not found.</p>";
-					}
-					VMM.attachElement("#"+tweet.id.toString(), VMM.MediaElement.loadingmessage(mes) );
-				});
-				
-			},
-			
-			errorTimeOutOembed: function(tweet) {
-				trace("TWITTER JSON ERROR TIMEOUT " + tweet.mid);
-				VMM.attachElement("#"+tweet.id.toString(), VMM.MediaElement.loadingmessage("Still waiting on Twitter: " + tweet.mid) );
-			},
-			
-			pushQue: function() {
-				if (VMM.master_config.twitter.que.length > 0) {
-					VMM.ExternalAPI.twitter.create(VMM.master_config.twitter.que[0], VMM.ExternalAPI.twitter.pushQue);
-					VMM.Util.removeRange(VMM.master_config.twitter.que,0);
-				}
-			},
-						
-			getOEmbed: function(tweet, callback) {
-				
-				var the_url = "https://api.twitter.com/1/statuses/oembed.json?id=" + tweet.mid + "&omit_script=true&include_entities=true&callback=?",
-					twitter_timeout	= setTimeout(VMM.ExternalAPI.twitter.errorTimeOutOembed, VMM.master_config.timers.api, tweet);
-					//callback_timeout= setTimeout(callback, VMM.master_config.timers.api, tweet);
-				
-				VMM.getJSON(the_url, function(d) {
-					var twit	= "",
-						tuser	= "";
-					
-					
-					//	TWEET CONTENT
-					twit += d.html.split("<\/p>\&mdash;")[0] + "</p></blockquote>";
-					tuser = d.author_url.split("twitter.com\/")[1];
-					
-					
-					//	TWEET AUTHOR
-					twit += "<div class='vcard author'>";
-					twit += "<a class='screen-name url' href='" + d.author_url + "' target='_blank'>";
-					twit += "<span class='avatar'></span>";
-					twit += "<span class='fn'>" + d.author_name + "</span>";
-					twit += "<span class='nickname'>@" + tuser + "<span class='thumbnail-inline'></span></span>";
-					twit += "</a>";
-					twit += "</div>";
-					
-					VMM.attachElement("#"+tweet.id.toString(), twit );
-					VMM.attachElement("#text_thumb_"+tweet.id.toString(), d.html );
-					VMM.attachElement("#marker_content_" + tweet.id.toString(), d.html );
-				})
-				.error(function(jqXHR, textStatus, errorThrown) {
-					trace("TWITTER error");
-					trace("TWITTER ERROR: " + textStatus + " " + jqXHR.responseText);
-					clearTimeout(twitter_timeout);
-					//clearTimeout(callback_timeout);
-					VMM.attachElement("#"+tweet.id, VMM.MediaElement.loadingmessage("ERROR LOADING TWEET " + tweet.mid) );
-				})
-				.success(function(d) {
-					clearTimeout(twitter_timeout);
-					// clearTimeout(callback_timeout);
-					callback();
-				});
-				
-			},
-			
-			getHTML: function(id) {
-				//var the_url = document.location.protocol + "//api.twitter.com/1/statuses/oembed.json?id=" + id+ "&callback=?";
-				var the_url = "https://api.twitter.com/1/statuses/oembed.json?id=" + id+ "&omit_script=true&include_entities=true&callback=?";
-				VMM.getJSON(the_url, VMM.ExternalAPI.twitter.onJSONLoaded);
-			},
-			
-			onJSONLoaded: function(d) {
-				trace("TWITTER JSON LOADED");
-				var id = d.id;
-				VMM.attachElement("#"+id, VMM.Util.linkify_with_twitter(d.html) );
-			},
-			
-			parseTwitterDate: function(d) {
-				var date = new Date(Date.parse(d));
-				/*
-				var t = d.replace(/(\d{1,2}[:]\d{2}[:]\d{2}) (.*)/, '$2 $1');
-				t = t.replace(/(\+\S+) (.*)/, '$2 $1');
-				var date = new Date(Date.parse(t)).toLocaleDateString();
-				var time = new Date(Date.parse(t)).toLocaleTimeString();
-				*/
-				return date;
-			},
-			
-			prettyParseTwitterDate: function(d) {
-				var date = new Date(Date.parse(d));
-				return VMM.Date.prettyDate(date, true);
-			},
-			
-			getTweets: function(tweets) {
-				var tweetArray = [];
-				var number_of_tweets = tweets.length;
-				
-				for(var i = 0; i < tweets.length; i++) {
-					
-					var twitter_id = "";
-					
-					
-					/* FIND THE TWITTER ID
-					================================================== */
-					if (tweets[i].tweet.match("status\/")) {
-						twitter_id = tweets[i].tweet.split("status\/")[1];
-					} else if (tweets[i].tweet.match("statuses\/")) {
-						twitter_id = tweets[i].tweet.split("statuses\/")[1];
-					} else {
-						twitter_id = "";
-					}
-					
-					/* FETCH THE DATA
-					================================================== */
-					var the_url = "//api.twitter.com/1/statuses/show.json?id=" + twitter_id + "&include_entities=true&callback=?";
-					VMM.getJSON(the_url, function(d) {
-						
-						var tweet = {}
-						/* FORMAT RESPONSE
-						================================================== */
-						var twit = "<div class='twitter'><blockquote><p>";
-						var td = VMM.Util.linkify_with_twitter(d.text, "_blank");
-						twit += td;
-						twit += "</p>";
-						
-						twit += "— " + d.user.name + " (<a href='https://twitter.com/" + d.user.screen_name + "'>@" + d.user.screen_name + "</a>) <a href='https://twitter.com/" + d.user.screen_name + "/status/" + d.id + "'>" + VMM.ExternalAPI.twitter.prettyParseTwitterDate(d.created_at) + " </a></blockquote></div>";
-						
-						tweet.content = twit;
-						tweet.raw = d;
-						
-						tweetArray.push(tweet);
-						
-						
-						/* CHECK IF THATS ALL OF THEM
-						================================================== */
-						if (tweetArray.length == number_of_tweets) {
-							var the_tweets = {tweetdata: tweetArray}
-							VMM.fireEvent(global, "TWEETSLOADED", the_tweets);
-						}
-					})
-					.success(function() { trace("second success"); })
-					.error(function() { trace("error"); })
-					.complete(function() { trace("complete"); });
-					
-				}
-					
-				
-			},
-			
-			getTweetSearch: function(tweets, number_of_tweets) {
-				var _number_of_tweets = 40;
-				if (number_of_tweets != null && number_of_tweets != "") {
-					_number_of_tweets = number_of_tweets;
-				}
-				
-				var the_url = "//search.twitter.com/search.json?q=" + tweets + "&rpp=" + _number_of_tweets + "&include_entities=true&resul

<TRUNCATED>

Mime
View raw message