diff --git a/source/js/timeline-embed.js b/source/js/timeline-embed.js index 12c6bff..b0a2fda 100644 --- a/source/js/timeline-embed.js +++ b/source/js/timeline-embed.js @@ -24,29 +24,72 @@ /* TIMELINE CDN LOADER - Add container div so that user can set width and height - ================================================== */ -//
+/* Embed code with config +================================================== */ +/* + +
+ + + +*/ -(function(embed_loc, embed_doc, embed_window) { + +(function() { + /* CONFIG Default + ================================================== */ + var embed_config = { + width: 800, + height: 600, + source: 'taylor/data.json', + css: 'http://veritetimeline.appspot.com/latest/timeline.css', + js: 'http://veritetimeline.appspot.com/latest/timeline-min.js' + } + if (typeof config == 'object') { + var x; + for (x in config) { + if (Object.prototype.hasOwnProperty.call(config, x)) { + embed_config[x] = config[x]; + } + } + } + + /* VARS + ================================================== */ var jsReady = false; var cssReady = false; + var isReady = false; var preload_checks = 0; - + var timeout; + var timeline; /* Add Timeline Div ================================================== */ var t = document.createElement('div'); - document.getElementById("timeline-embed").appendChild(t); + var te = document.getElementById("timeline-embed"); + te.appendChild(t); t.setAttribute("id", 'timeline'); + te.style.width = embed_config.width + 'px'; + te.style.height = embed_config.height + 'px'; + t.style.position = 'relative'; + /* Load CSS + ================================================== */ + LazyLoad.css(embed_config.css, cssComplete); - - LazyLoad.css('http://veritetimeline.appspot.com/latest/timeline.css', cssComplete); - + /* Check for jQuery + ================================================== */ try { var jqueryLoaded=jQuery; jqueryLoaded=true; @@ -54,7 +97,8 @@ var jqueryLoaded=false; } - //var head= document.getElementsByTagName('head')[0]; + /* Load jQuery if it doesn't exist + ================================================== */ if (!jqueryLoaded) { LazyLoad.js('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', onJQueryLoaded); } else { @@ -63,7 +107,7 @@ function onJQueryLoaded() { - LazyLoad.js('http://veritetimeline.appspot.com/latest/timeline-min.js', onJSLoaded); + LazyLoad.js(embed_config.js, onJSLoaded); } function onJSLoaded() { @@ -76,65 +120,50 @@ checkLoad(); } + /* Check to see if everything is loaded. + ================================================== */ function checkLoad() { if (preload_checks > 40) { return; - alert("Error Loading Files") + alert("Error Loading Files"); } else { preload_checks++; if (jsReady && cssReady) { - var timeline = new VMM.Timeline(); - timeline.init("taylor/data.json"); + if (!isReady) { + isReady = true; + timeline = new VMM.Timeline(); + timeline.init(embed_config.source); + } } else { - setTimeout('checkLoad();', 250); + //alert("run timeout"); + timeout = setTimeout('checkAgain();', 250); } } } + + this.checkAgain = function() { + checkLoad(); + } - /* - var stylesheet = document.createElement('link'); - stylesheet.href = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; - stylesheet.rel = 'stylesheet'; - stylesheet.type = 'text/css'; - document.getElementsByTagName('head')[0].appendChild(stylesheet); - - var tjs = document.createElement('script'); - tjs.type = 'text/javascript'; - tjs.async = true; - tjs.url = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; - document.getElementsByTagName('head')[0].appendChild(tjs); - */ -}) (this, document, window); +})(); + +/* + Thinking of ditching Lazy loader after some more testing. +*/ /* +var stylesheet = document.createElement('link'); +stylesheet.href = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; +stylesheet.rel = 'stylesheet'; +stylesheet.type = 'text/css'; +document.getElementsByTagName('head')[0].appendChild(stylesheet); -document.getElementById('myText'); -function(embed_loc, embed_doc, embed_window) { - function e(embed_loc, embed_doc) { - var c, - d = [], - e, - g; - try { - if (document.querySelectorAll) d = document.querySelectorAll(embed_loc + "." + embed_doc); - else if (document.getElementsByClassName) { - c = document.getElementsByClassName(embed_doc); - for (e = 0; g = c[e]; e++) g.tagName.toLowerCase() == embed_loc && d.push(g) - } else { - c = document.getElementsByTagName(a); - var h = RegExp("\\b" + embed_doc + "\\b"); - f(c, - function(embed_loc, embed_doc) { - var c = embed_loc.className || embed_loc.getAttribute("class"); - c && c.match(h) && d.push(embed_loc) - }) - } - } catch(i) {} - return d - } - -} (this, document, window) +var tjs = document.createElement('script'); +tjs.type = 'text/javascript'; +tjs.async = true; +tjs.url = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; +document.getElementsByTagName('head')[0].appendChild(tjs); */ \ No newline at end of file diff --git a/source/less/structure.less b/source/less/structure.less index 991e5ca..f67f24d 100644 --- a/source/less/structure.less +++ b/source/less/structure.less @@ -32,6 +32,9 @@ background-color:@color-background; position: absolute; //border: 1px solid @color-line; + + z-index:100; + clear:both; overflow:hidden; diff --git a/timeline-embed.js b/timeline-embed.js index 44eb0f4..d25d86f 100644 --- a/timeline-embed.js +++ b/timeline-embed.js @@ -421,29 +421,72 @@ LazyLoad = (function (doc) { /* TIMELINE CDN LOADER - Add container div so that user can set width and height - ================================================== */ -//
+ +/* Embed code with config +================================================== */ +/* + +
+ + + +*/ -(function(embed_loc, embed_doc, embed_window) { +(function() { + /* CONFIG Default + ================================================== */ + var embed_config = { + width: 800, + height: 600, + source: 'taylor/data.json', + css: 'http://veritetimeline.appspot.com/latest/timeline.css', + js: 'http://veritetimeline.appspot.com/latest/timeline-min.js' + } + if (typeof config == 'object') { + var x; + for (x in config) { + if (Object.prototype.hasOwnProperty.call(config, x)) { + embed_config[x] = config[x]; + } + } + } + + /* VARS + ================================================== */ var jsReady = false; var cssReady = false; + var isReady = false; var preload_checks = 0; - + var timeout; + var timeline; /* Add Timeline Div ================================================== */ var t = document.createElement('div'); - document.getElementById("timeline-embed").appendChild(t); + var te = document.getElementById("timeline-embed"); + te.appendChild(t); t.setAttribute("id", 'timeline'); + te.style.width = embed_config.width + 'px'; + te.style.height = embed_config.height + 'px'; + t.style.position = 'relative'; + /* Load CSS + ================================================== */ + LazyLoad.css(embed_config.css, cssComplete); - - LazyLoad.css('http://veritetimeline.appspot.com/latest/timeline.css', cssComplete); - + /* Check for jQuery + ================================================== */ try { var jqueryLoaded=jQuery; jqueryLoaded=true; @@ -451,7 +494,8 @@ LazyLoad = (function (doc) { var jqueryLoaded=false; } - //var head= document.getElementsByTagName('head')[0]; + /* Load jQuery if it doesn't exist + ================================================== */ if (!jqueryLoaded) { LazyLoad.js('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', onJQueryLoaded); } else { @@ -460,7 +504,7 @@ LazyLoad = (function (doc) { function onJQueryLoaded() { - LazyLoad.js('http://veritetimeline.appspot.com/latest/timeline-min.js', onJSLoaded); + LazyLoad.js(embed_config.js, onJSLoaded); } function onJSLoaded() { @@ -473,65 +517,50 @@ LazyLoad = (function (doc) { checkLoad(); } + /* Check to see if everything is loaded. + ================================================== */ function checkLoad() { if (preload_checks > 40) { return; - alert("Error Loading Files") + alert("Error Loading Files"); } else { preload_checks++; if (jsReady && cssReady) { - var timeline = new VMM.Timeline(); - timeline.init("taylor/data.json"); + if (!isReady) { + isReady = true; + timeline = new VMM.Timeline(); + timeline.init(embed_config.source); + } } else { - setTimeout('checkLoad();', 250); + //alert("run timeout"); + timeout = setTimeout('checkAgain();', 250); } } } + + this.checkAgain = function() { + checkLoad(); + } - /* - var stylesheet = document.createElement('link'); - stylesheet.href = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; - stylesheet.rel = 'stylesheet'; - stylesheet.type = 'text/css'; - document.getElementsByTagName('head')[0].appendChild(stylesheet); - - var tjs = document.createElement('script'); - tjs.type = 'text/javascript'; - tjs.async = true; - tjs.url = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; - document.getElementsByTagName('head')[0].appendChild(tjs); - */ -}) (this, document, window); +})(); -/* -document.getElementById('myText'); -function(embed_loc, embed_doc, embed_window) { - function e(embed_loc, embed_doc) { - var c, - d = [], - e, - g; - try { - if (document.querySelectorAll) d = document.querySelectorAll(embed_loc + "." + embed_doc); - else if (document.getElementsByClassName) { - c = document.getElementsByClassName(embed_doc); - for (e = 0; g = c[e]; e++) g.tagName.toLowerCase() == embed_loc && d.push(g) - } else { - c = document.getElementsByTagName(a); - var h = RegExp("\\b" + embed_doc + "\\b"); - f(c, - function(embed_loc, embed_doc) { - var c = embed_loc.className || embed_loc.getAttribute("class"); - c && c.match(h) && d.push(embed_loc) - }) - } - } catch(i) {} - return d - } - -} (this, document, window) +/* + Thinking of ditching Lazy loader after some more testing. +*/ +/* +var stylesheet = document.createElement('link'); +stylesheet.href = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; +stylesheet.rel = 'stylesheet'; +stylesheet.type = 'text/css'; +document.getElementsByTagName('head')[0].appendChild(stylesheet); + +var tjs = document.createElement('script'); +tjs.type = 'text/javascript'; +tjs.async = true; +tjs.url = '/inc/body/jquery/css/start/jquery-ui-1.8.10.custom.css'; +document.getElementsByTagName('head')[0].appendChild(tjs); */ \ No newline at end of file diff --git a/timeline-min.js b/timeline-min.js new file mode 100644 index 0000000..93b1144 --- /dev/null +++ b/timeline-min.js @@ -0,0 +1,13 @@ +/* Verite + * Verite JS Master + * Version: 0.1 + * Date: December 12, 2011 + * Copyright 2011 Verite + * Designed and built by Zach Wise digitalartwork.net + * ----------------------------------------------------- *//* CodeKit Import +================================================== *//* Simple JavaScript Inheritance + * By John Resig http://ejohn.org/ + * MIT Licensed. +================================================== */function trace(a){window.console?console.log(a):typeof jsTrace!="undefined"&&jsTrace.send(a)}function onYouTubePlayerAPIReady(){VMM.ExternalAPI.youtube.onAPIReady()}(function(){var a=!1,b=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(c){function g(){!a&&this.init&&this.init.apply(this,arguments)}var d=this.prototype;a=!0;var e=new this;a=!1;for(var f in c)e[f]=typeof c[f]=="function"&&typeof d[f]=="function"&&b.test(c[f])?function(a,b){return function(){var c=this._super;this._super=d[a];var e=b.apply(this,arguments);this._super=c;return e}}(f,c[f]):c[f];g.prototype=e;g.prototype.constructor=g;g.extend=arguments.callee;return g}})();var global=function(){return this||(1,eval)("this")}();if(typeof VMM=="undefined"){var VMM=Class.extend({});VMM.master_config={init:function(){return this},youtube:{active:!1,array:[],api_loaded:!1}}.init();VMM.master_config={init:function(){return this},youtube:{active:!1,array:[],api_loaded:!1,que:[]}}.init();VMM.createElement=function(a,b,c,d,e){var f="";if(a!=null&&a!=""){f+="<"+a;c!=null&&c!=""&&(f+=" class='"+c+"'");d!=null&&d!=""&&(f+=" "+d);e!=null&&e!=""&&(f+=" "+e);f+=">";b!=null&&b!=""&&(f+=b);f=f+""}return f};VMM.createMediaElement=function(a,b,c){var d="",e=!1;d+="
";if(a!=null&&a!=""){valid=!0;d+="";c!=null&&c!=""&&(d+=VMM.createElement("div",c,"credit"));b!=null&&b!=""&&(d+=VMM.createElement("div",b,"caption"))}d+="
";return d};VMM.attachElement=function(a,b){typeof jQuery!="undefined"&&$(a).html(b)};VMM.appendElement=function(a,b){typeof jQuery!="undefined"&&$(a).append(b)};VMM.getHTML=function(a){var b;if(typeof jQuery!="undefined"){b=$(a).html();return b}};VMM.getElement=function(a,b){var c;if(typeof jQuery!="undefined"){b?c=$(a).parent().get(0):c=$(a).get(0);return c}};VMM.bindEvent=function(a,b,c,d){var e,f="click",g={};c!=null&&c!=""&&(f=c);g!=null&&g!=""&&(g=d);typeof jQuery!="undefined"&&$(a).bind(f,g,b)};VMM.unbindEvent=function(a,b,c){var d,e="click",f={};c!=null&&c!=""&&(e=c);typeof jQuery!="undefined"&&$(a).unbind(e,b)};VMM.fireEvent=function(a,b,c){var d,e="click",f=[];b!=null&&b!=""&&(e=b);c!=null&&c!=""&&(f=c);typeof jQuery!="undefined"&&$(a).trigger(e,f)};VMM.getJSON=function(a,b){typeof jQuery!="undefined"&&$.getJSON(a,b)};VMM.appendAndGetElement=function(a,b,c,d){var e,f="
",g="",h="";b!=null&&b!=""&&(f=b);c!=null&&c!=""&&(g=c);d!=null&&d!=""&&(h=d);if(typeof jQuery!="undefined"){e=$(b);e.addClass(g);e.html(h);$(a).append(e)}return e};VMM.Element={init:function(){return this},hide:function(a,b){b!=null&&b!=""?typeof jQuery!="undefined"&&$(a).hide(b):typeof jQuery!="undefined"&&$(a).hide()},remove:function(a){typeof jQuery!="undefined"&&$(a).remove()},detach:function(a){typeof jQuery!="undefined"&&$(a).detach()},append:function(a,b){typeof jQuery!="undefined"&&$(a).append(b)},show:function(a,b){b!=null&&b!=""?typeof jQuery!="undefined"&&$(a).show(b):typeof jQuery!="undefined"&&$(a).show()},load:function(a,b,c){var d={elem:a};d!=null&&d!=""&&(d=c);typeof jQuery!="undefined"&&$(a).load(d,b)},addClass:function(a,b){typeof jQuery!="undefined"&&$(a).addClass(b)},removeClass:function(a,b){typeof jQuery!="undefined"&&$(a).removeClass(b)},attr:function(a,b,c){if(c!=null&&c!="")typeof jQuery!="undefined"&&$(a).attr(b,c);else if(typeof jQuery!="undefined")return $(a).attr(b)},prop:function(a,b,c){typeof jQuery=="undefined"||!/[1-9]\.[3-9].[1-9]/.test($.fn.jquery)?VMM.Element.attribute(a,b,c):$(a).prop(b,c)},attribute:function(a,b,c){if(c!=null&&c!="")typeof jQuery!="undefined"&&$(a).attr(b,c);else if(typeof jQuery!="undefined")return $(a).attr(b)},visible:function(a,b){if(b!=null)typeof jQuery!="undefined"&&(b?$(a).show(0):$(a).hide(0));else if(typeof jQuery!="undefined")return $(a).is(":visible")?!0:!1},css:function(a,b,c){if(c!=null&&c!="")typeof jQuery!="undefined"&&$(a).css(b,c);else if(typeof jQuery!="undefined")return $(a).css(b)},cssmultiple:function(a,b){if(typeof jQuery!="undefined")return $(a).css(b)},offset:function(a){var b;typeof jQuery!="undefined"&&(b=$(a).offset());return b},position:function(a){var b;typeof jQuery!="undefined"&&(b=$(a).position());return b},width:function(a,b){if(b!=null&&b!="")typeof jQuery!="undefined"&&$(a).width(b);else if(typeof jQuery!="undefined")return $(a).width()},height:function(a,b){if(b!=null&&b!="")typeof jQuery!="undefined"&&$(a).height(b);else if(typeof jQuery!="undefined")return $(a).height()},toggleClass:function(a,b){typeof jQuery!="undefined"&&$(a).toggleClass(b)},each:function(a,b){typeof jQuery!="undefined"&&$(a).each(b)},html:function(a,b){var c;if(typeof jQuery!="undefined"){c=$(a).html();return c}if(b!=null&&b!="")typeof jQuery!="undefined"&&$(a).html(b);else{var c;if(typeof jQuery!="undefined"){c=$(a).html();return c}}},find:function(a,b){if(typeof jQuery!="undefined")return $(a).find(b)},stop:function(a){typeof jQuery!="undefined"&&$(a).stop()},animate:function(a,b,c,d,e){var f="easein",g=1e3,h={};b!=null&&(b<1?g=1:g=Math.round(b));c!=null&&c!=""&&(f=c);d!=null?h=d:h={opacity:0};if(VMM.Browser.device=="mobile"||VMM.Browser.device=="tablet"){var i=Math.round(g/1500*10)/10,j=i+"s";VMM.Element.css(a,"-webkit-transition","all "+j+" ease");VMM.Element.css(a,"-moz-transition","all "+j+" ease");VMM.Element.css(a,"-o-transition","all "+j+" ease");VMM.Element.css(a,"-ms-transition","all "+j+" ease");VMM.Element.css(a,"transition","all "+j+" ease");VMM.Element.cssmultiple(a,h)}else typeof jQuery!="undefined"&&(e!=null&&e!=""?$(a).animate(h,{queue:!1,duration:g,easing:f,complete:e}):$(a).animate(h,{queue:!1,duration:g,easing:f}))}}.init();VMM.TouchSlider={createPanel:function(a,b,c,d,e,f){VMM.TouchSlider.vertical=!1;VMM.TouchSlider.vertical=e;var g=d;VMM.TouchSlider.width=c;VMM.TouchSlider.height=f;VMM.TouchSlider.makeTouchable(a,b)},removePanel:function(a){VMM.unbindEvent(a,VMM.TouchSlider.onTouchStart,"touchstart");VMM.unbindEvent(a,VMM.TouchSlider.onTouchMove,"touchmove");VMM.unbindEvent(a,VMM.TouchSlider.onTouchEnd,"touchend")},makeTouchable:function(a,b){VMM.bindEvent(a,VMM.TouchSlider.onTouchStart,"touchstart",{element:b});VMM.bindEvent(a,VMM.TouchSlider.onTouchMove,"touchmove",{element:b});VMM.bindEvent(a,VMM.TouchSlider.onTouchEnd,"touchend",{element:b})},onTouchStart:function(a){VMM.TouchSlider.touchStart(a.data.element,a);a.preventDefault();a.stopPropagation();return!0},onTouchEnd:function(a){a.preventDefault();a.stopPropagation();if(VMM.TouchSlider.sliding){VMM.TouchSlider.sliding=!1;VMM.TouchSlider.touchEnd(a.data.element,a);return!1}return!0},onTouchMove:function(a){VMM.TouchSlider.touchMove(a.data.element,a);a.preventDefault();a.stopPropagation();return!1},getLeft:function(a){return parseInt(VMM.Element.css(a,"left").substring(0,VMM.Element.css(a,"left").length-2),10)},getTop:function(a){return parseInt(VMM.Element.css(a,"top").substring(0,VMM.Element.css(a,"top").length-2),10)},touchStart:function(a,b){VMM.Element.css(a,"-webkit-transition-duration","0");VMM.TouchSlider.startX=b.originalEvent.touches[0].screenX;VMM.TouchSlider.startY=b.originalEvent.touches[0].screenY;VMM.TouchSlider.startLeft=VMM.TouchSlider.getLeft(a);VMM.TouchSlider.startTop=VMM.TouchSlider.getTop(a);VMM.TouchSlider.touchStartTime=(new Date).getTime()},touchEnd:function(a,b){if(VMM.TouchSlider.getLeft(a)>0){VMM.TouchSlider.vertical?VMM.Element.animate(a,1e3,"",{top:0}):VMM.Element.animate(a,1e3,"",{left:0});VMM.TouchSlider.startX=null;VMM.TouchSlider.startY=null;VMM.fireEvent(a,"TOUCHUPDATE",[0])}else VMM.TouchSlider.slideMomentum(a,b)},slideMomentum:function(a,b){var c=((new Date).getTime()-VMM.TouchSlider.touchStartTime)*10,d=c,e=VMM.TouchSlider.getLeft(a),f=VMM.TouchSlider.getTop(a),g=6e3*(Math.abs(VMM.TouchSlider.startLeft)-Math.abs(e)),h=6e3*(Math.abs(VMM.TouchSlider.startTop)-Math.abs(f));c=Math.round(g/c);slideAdjustY=Math.round(h/c);var i=c+e,j=slideAdjustY+f,k=j%VMM.TouchSlider.height,l=i%VMM.TouchSlider.width,m={top:Math.min(0,j),left:Math.min(0,i),time:d};VMM.fireEvent(a,"TOUCHUPDATE",[m]);VMM.TouchSlider.startX=null;VMM.TouchSlider.startY=null},doSlide:function(a,b,c){VMM.Element.css(a,"-webkit-transition-property","left");VMM.Element.css(a,"-webkit-transition-duration",c);VMM.Element.css(a,"left",b)},touchMove:function(a,b){!!VMM.TouchSlider.sliding;VMM.TouchSlider.sliding=!0;if(VMM.TouchSlider.vertical)if(VMM.TouchSlider.startY>b.originalEvent.touches[0].screenY){VMM.Element.css(a,"top",-(VMM.TouchSlider.startY-b.originalEvent.touches[0].screenY-VMM.TouchSlider.startTop));VMM.TouchSlider.slidingTop=!0}else{var c=b.originalEvent.touches[0].screenY-VMM.TouchSlider.startY+VMM.TouchSlider.startTop;VMM.Element.css(a,"top",-(VMM.TouchSlider.startY-b.originalEvent.touches[0].screenY-VMM.TouchSlider.startTop));VMM.TouchSlider.slidingTop=!1}else if(VMM.TouchSlider.startX>b.originalEvent.touches[0].screenX){VMM.Element.css(a,"left",-(VMM.TouchSlider.startX-b.originalEvent.touches[0].screenX-VMM.TouchSlider.startLeft));VMM.TouchSlider.slidingLeft=!0}else{var d=b.originalEvent.touches[0].screenX-VMM.TouchSlider.startX+VMM.TouchSlider.startLeft;VMM.Element.css(a,"left",-(VMM.TouchSlider.startX-b.originalEvent.touches[0].screenX-VMM.TouchSlider.startLeft));VMM.TouchSlider.slidingLeft=!1}}};VMM.hideUrlBar=function(){var a=window,b=a.document;if(!location.hash||!a.addEventListener){window.scrollTo(0,1);var c=1,d=setInterval(function(){if(b.body){clearInterval(d);c="scrollTop"in b.body?b.body.scrollTop:1;a.scrollTo(0,c===1?0:1)}},15);a.addEventListener("load",function(){setTimeout(function(){a.scrollTo(0,c===1?0:1)},0)},!1)}};VMM.DragSlider={createPanel:function(a,b,c,d,e){var f=d;VMM.DragSlider.width=c;VMM.DragSlider.makeDraggable(a,b);VMM.DragSlider.drag_elem=a;VMM.DragSlider.sticky=e},makeDraggable:function(a,b){VMM.bindEvent(a,VMM.DragSlider.onDragStart,"mousedown",{element:b,delement:a});VMM.bindEvent(a,VMM.DragSlider.onDragEnd,"mouseup",{element:b,delement:a});VMM.bindEvent(a,VMM.DragSlider.onDragLeave,"mouseleave",{element:b,delement:a})},cancelSlide:function(a){VMM.unbindEvent(VMM.DragSlider.drag_elem,VMM.DragSlider.onDragMove,"mousemove");return!0},onDragLeave:function(a){VMM.unbindEvent(a.data.delement,VMM.DragSlider.onDragMove,"mousemove");a.preventDefault();a.stopPropagation();return!0},onDragStart:function(a){VMM.DragSlider.dragStart(a.data.element,a.data.delement,a);a.preventDefault();a.stopPropagation();return!0},onDragEnd:function(a){a.preventDefault();a.stopPropagation();if(VMM.DragSlider.sliding){VMM.DragSlider.sliding=!1;VMM.DragSlider.dragEnd(a.data.element,a.data.delement,a);return!1}return!0},onDragMove:function(a){VMM.DragSlider.dragMove(a.data.element,a);a.preventDefault();a.stopPropagation();return!1},dragStart:function(a,b,c){VMM.DragSlider.startX=c.pageX;VMM.DragSlider.startLeft=VMM.DragSlider.getLeft(a);VMM.DragSlider.dragStartTime=(new Date).getTime();VMM.DragSlider.dragWidth=VMM.Element.width(b);var d=Math.round(VMM.DragSlider.startX-c.pageX-VMM.DragSlider.startLeft);VMM.Element.stop(a);VMM.bindEvent(b,VMM.DragSlider.onDragMove,"mousemove",{element:a})},dragEnd:function(a,b,c){VMM.unbindEvent(b,VMM.DragSlider.onDragMove,"mousemove");VMM.DragSlider.getLeft(a)>0||VMM.DragSlider.dragMomentum(a,c)},dragMove:function(a,b){!!VMM.DragSlider.sliding;VMM.DragSlider.sliding=!0;if(VMM.DragSlider.startX>b.pageX){VMM.Element.css(a,"left",-(VMM.DragSlider.startX-b.pageX-VMM.DragSlider.startLeft));VMM.DragSlider.slidingLeft=!0}else{var c=b.pageX-VMM.DragSlider.startX+VMM.DragSlider.startLeft;VMM.Element.css(a,"left",-(VMM.DragSlider.startX-b.pageX-VMM.DragSlider.startLeft));VMM.DragSlider.slidingLeft=!1}},dragMomentum:function(a,b){var c=((new Date).getTime()-VMM.DragSlider.dragStartTime)*10,d=c,e=VMM.DragSlider.getLeft(a),f=6e3*(Math.abs(VMM.DragSlider.startLeft)-Math.abs(e));c=Math.round(f/c);var g=e+c,h=g%VMM.DragSlider.width,i={left:Math.min(g),time:d};VMM.fireEvent(a,"DRAGUPDATE",[i]);var j="easeOutExpo";i.time>0&&VMM.Element.animate(a,i.time,j,{left:i.left})},getLeft:function(a){return parseInt(VMM.Element.css(a,"left").substring(0,VMM.Element.css(a,"left").length-2),10)}};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.OS=this.searchString(this.dataOS)||"an unknown OS";this.device=this.searchDevice(navigator.userAgent)},searchDevice:function(a){return a.match(/Android/i)||a.match(/iPhone|iPod/i)?"mobile":a.match(/iPad/i)?"tablet":a.match(/BlackBerry/i)||a.match(/IEMobile/i)?"other mobile":"desktop"},searchString:function(a){for(var b=0;b
";return d}if(e.type=="flickr"){d="
";return d}if(e.type=="youtube"){d="
";return d}if(e.type=="vimeo"){d="
";return d}if(e.type=="twitter"){d="
";return d}if(e.type=="twitter-ready"){d="
";return d}if(e.type=="soundcloud"){d="
";return d}if(e.type=="google-map"){d="
";return d}if(e.type=="unknown"){d="";return d}if(e.type=="website"){d="
";return d}d="
";return d}},create:function(a,b,c,d,e){_return=c;_w=500;_h=400;$mediacontainer=a;var f=!1;d!=null&&d!=""&&(_w=d);e!=null&&e!=""&&(_h=e);if(b.media!=null&&b.media!=""){f=!0;var g="",h="",i="",j={},k=_h-50,l=!1;b.credit!=null&&b.credit!=""&&(i="
"+b.credit+"
");b.caption!=null&&b.caption!=""&&(h="
"+b.caption+"
");j=VMM.MediaType(b.media);if(j.type=="image")g="";else if(j.type=="flickr"){var m="flickr_"+j.id;g="";VMM.ExternalAPI.flickr.getPhoto(j.id,"#"+m)}else if(j.type=="youtube"){g="
Loading YouTube video...
";VMM.ExternalAPI.youtube.init(j.id)}else if(j.type=="vimeo")g="";else if(j.type=="twitter"){g="
Loading Tweet
";trace("TWITTER");VMM.ExternalAPI.twitter.prettyHTML(j.id);l=!0}else if(j.type=="twitter-ready")g=j.id;else if(j.type=="soundcloud"){var n="soundcloud_"+VMM.Util.unique_ID(5);g="
Loading Sound
";VMM.ExternalAPI.soundcloud.getSound(j.id,n)}else if(j.type=="google-map")g="";else if(j.type=="unknown"){trace("NO KNOWN MEDIA TYPE FOUND TRYING TO JUST PLACE THE HTML");g=VMM.Util.properQuotes(j.id)}else if(j.type=="website")g="";else{trace("NO KNOWN MEDIA TYPE FOUND");trace(j.type)}g="
"+g+i+h+"
";if(_return)return l?"
"+g+"
":"
"+g+"
";VMM.appendElement($mediacontainer,g);VMM.appendElement($mediacontainer,i);VMM.appendElement($mediacontainer,h)}}}.init();VMM.MediaType=function(a){var b=!1,c={};if(a.match("div class='twitter'")){c.type="twitter-ready";c.id=a;b=!0}else if(a.match("(www.)?youtube|youtu.be")){a.match("embed")?youtube_id=a.split(/embed\//)[1].split('"')[0]:youtube_id=a.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0];c.type="youtube";c.id=youtube_id;b=!0}else if(a.match("(player.)?vimeo.com")){vimeo_id=a.split(/video\/|\/\/vimeo\.com\//)[1].split(/[?&]/)[0];c.type="vimeo";c.id=vimeo_id;b=!0}else if(a.match("(player.)?soundcloud.com")){c.type="soundcloud";c.id=a;b=!0}else if(a.match("(www.)?twitter.com")){trace("TWITTER MATCH");a.match("status/")?twitter_id=a.split("status/")[1]:a.match("statuses/")?twitter_id=a.split("statuses/")[1]:twitter_id="";c.type="twitter";c.id=twitter_id;b=!0}else if(a.match("maps.google.com")){c.type="google-map";c.id=a.split(/src=['|"][^'|"]*?['|"]/gi);trace("google map "+c.id);b=!0}else if(a.match("flickr.com/photos")){c.type="flickr";c.id=a.split("photos/")[1].split("/")[1];trace("FLICKR "+c.id);b=!0}else if(a.match(/jpg|jpeg|png|gif/i)){c.type="image";c.id=a;b=!0}else if(a.indexOf("http://")==0){c.type="website";c.id=a;b=!0}else{trace("unknown media");c.type="unknown";c.id=a;b=!0}if(b)return c;trace("No valid media id detected");trace(a);return!1};VMM.Keys={flickr:"6d6f59d8d30d79f4f402a7644d5073e3"};VMM.ExternalAPI={twitter:{tweetArray:[],getHTML:function(a){var b="https://api.twitter.com/1/statuses/oembed.json?id="+a+"&callback=?";VMM.getJSON(b,function(b){VMM.ExternalAPI.twitter.onJSONLoaded(b,a)})},onJSONLoaded:function(a,b){VMM.attachElement("#"+b,VMM.ExternalAPI.twitter.linkify(a.html))},linkify:function(a){return a.replace(/[@]+[A-Za-z0-9-_]+/g,function(a){var b=a.replace("@","");return a.link("http://twitter.com/"+b)})},parseTwitterDate:function(a){var b=new Date(Date.parse(a));return b},prettyParseTwitterDate:function(a){var b=new Date(Date.parse(a));return VMM.Util.date.prettyDate(b,!0)},getTweets:function(a){var b=[],c=a.length;for(var d=0;d

",f=VMM.Util.linkify(a.text);f=f.replace(/(@([\w]+))/g,"$1");f=f.replace(/(#([\w]+))/g,"$1");e+=f;e+="

";e+="— "+a.user.name+" (@"+a.user.screen_name+") "+VMM.ExternalAPI.twitter.prettyParseTwitterDate(a.created_at)+"
";d.content=e;d.raw=a;b.push(d);if(b.length==c){var g={tweetdata:b};VMM.fireEvent(global,"TWEETSLOADED",g)}})}},getTweetSearch:function(a,b){var c=40;b!=null&&b!=""&&(c=b);var d="http://search.twitter.com/search.json?q="+a+"&rpp="+c+"&include_entities=true&result_type=mixed",e=[];VMM.getJSON(d,function(a){for(var b=0;b

",f=VMM.Util.linkify(a.results[b].text);f=f.replace(/(@([\w]+))/g,"$1");f=f.replace(/(#([\w]+))/g,"$1");d+=f;d+="

";d+="— "+a.results[b].from_user_name+" (@"+a.results[b].from_user+") "+VMM.ExternalAPI.twitter.prettyParseTwitterDate(a.results[b].created_at)+"
";c.content=d;c.raw=a.results[b];e.push(c)}var g={tweetdata:e};VMM.fireEvent(global,"TWEETSLOADED",g)})},prettyHTML:function(a){var b="https://api.twitter.com/1/statuses/show.json?id="+a+"&include_entities=true&callback=?";VMM.getJSON(b,function(b){VMM.ExternalAPI.twitter.formatJSON(b,a)})},formatJSON:function(a,b){var c="

",d=VMM.Util.linkify(a.text);d=d.replace(/(@([\w]+))/g,"$1");d=d.replace(/(#([\w]+))/g,"$1");c+=d;c+="

";c+=" "+""+" ";c+="";VMM.attachElement("#"+b,c)}},maps:{},flickr:{getPhoto:function(a,b){var c="http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key="+VMM.Keys.flickr+"&photo_id="+a+"&format=json&nojsoncallback=1";VMM.getJSON(c,function(a){var c=b+"_large",d=b+"_thumb",e=a.sizes.size[a.sizes.size.length-1].source,f=a.sizes.size[0].source;VMM.Element.attr(c,"src",e);VMM.Element.attr(d,"src",f)})}},soundcloud:{getSound:function(a,b){var c="http://soundcloud.com/oembed?iframe=true&url="+a+"";VMM.getJSON(c,function(a){VMM.attachElement("#"+b,a.html)})}},youtube:{init:function(a){if(VMM.master_config.youtube.active)VMM.master_config.youtube.createPlayer(a);else{VMM.master_config.youtube.que.push(a);if(!VMM.master_config.youtube.api_loaded){var b=document.createElement("script");b.src="http://www.youtube.com/player_api";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c);VMM.master_config.youtube.api_loaded=!0}}},onAPIReady:function(){VMM.master_config.youtube.active=!0;for(var a=0;a","media");i=VMM.appendAndGetElement(h,"
","container");j=VMM.appendAndGetElement(i,"
","media-container");if(e.media!=null&&e.media!=""){f=!0;var d={};d=VMM.MediaType(e.media);d.type=="image"?VMM.appendElement(j,""):d.type=="youtube"?VMM.appendElement(j,"