Zach Wise
13 years ago
30 changed files with 5665 additions and 5587 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,140 @@
|
||||
/* 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.OS = this.searchString(this.dataOS) || "an unknown OS"; |
||||
this.device = this.searchDevice(navigator.userAgent); |
||||
|
||||
}, |
||||
searchDevice: function(d) { |
||||
if (d.match(/Android/i) || d.match(/iPhone|iPod/i)) { |
||||
return "mobile"; |
||||
} else if (d.match(/iPad/i)) { |
||||
return "tablet"; |
||||
} else if (d.match(/BlackBerry/i) || d.match(/IEMobile/i)) { |
||||
return "other mobile"; |
||||
} else { |
||||
return "desktop"; |
||||
} |
||||
}, |
||||
searchString: function (data) { |
||||
for (var i=0;i<data.length;i++) { |
||||
var dataString = data[i].string; |
||||
var 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)); |
||||
}, |
||||
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(); |
||||
} |
@ -0,0 +1,147 @@
|
||||
/* DRAG SLIDER |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.DragSlider == 'undefined') { |
||||
// VMM.DragSlider.createSlidePanel(drag_object, move_object, w, padding, sticky);
|
||||
// VMM.DragSlider.cancelSlide();
|
||||
VMM.DragSlider = { |
||||
createPanel: function(drag_object, move_object, w, padding, sticky) { |
||||
|
||||
|
||||
|
||||
var x = padding; |
||||
VMM.DragSlider.width = w; |
||||
VMM.DragSlider.makeDraggable(drag_object, move_object); |
||||
VMM.DragSlider.drag_elem = drag_object; |
||||
/* |
||||
if (sticky != null && sticky != "") { |
||||
VMM.TouchSlider.sticky = sticky; |
||||
} else { |
||||
VMM.TouchSlider.sticky = false; |
||||
} |
||||
*/ |
||||
VMM.DragSlider.sticky = sticky; |
||||
}, |
||||
makeDraggable: function(drag_object, move_object) { |
||||
VMM.bindEvent(drag_object, VMM.DragSlider.onDragStart, "mousedown", {element: move_object, delement: drag_object}); |
||||
//VMM.bindEvent(drag_object, VMM.DragSlider.onDragMove, "mousemove", {element: move_object});
|
||||
VMM.bindEvent(drag_object, VMM.DragSlider.onDragEnd, "mouseup", {element: move_object, delement: drag_object}); |
||||
VMM.bindEvent(drag_object, VMM.DragSlider.onDragLeave, "mouseleave", {element: move_object, delement: drag_object}); |
||||
}, |
||||
cancelSlide: function(e) { |
||||
VMM.unbindEvent(VMM.DragSlider.drag_elem, VMM.DragSlider.onDragMove, "mousemove"); |
||||
//VMM.DragSlider.drag_elem.preventDefault();
|
||||
//VMM.DragSlider.drag_elem.stopPropagation();
|
||||
return true; |
||||
}, |
||||
onDragLeave: function(e) { |
||||
|
||||
VMM.unbindEvent(e.data.delement, VMM.DragSlider.onDragMove, "mousemove"); |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
return true; |
||||
}, |
||||
onDragStart: function(e) { |
||||
VMM.DragSlider.dragStart(e.data.element, e.data.delement, e); |
||||
|
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
return true; |
||||
}, |
||||
onDragEnd: function(e) { |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
|
||||
if (VMM.DragSlider.sliding) { |
||||
VMM.DragSlider.sliding = false; |
||||
VMM.DragSlider.dragEnd(e.data.element, e.data.delement, e); |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
|
||||
}, |
||||
onDragMove: function(e) { |
||||
VMM.DragSlider.dragMove(e.data.element, e); |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
return false; |
||||
}, |
||||
dragStart: function(elem, delem, e) { |
||||
|
||||
VMM.DragSlider.startX = e.pageX; |
||||
|
||||
VMM.DragSlider.startLeft = VMM.DragSlider.getLeft(elem); |
||||
VMM.DragSlider.dragStartTime = new Date().getTime(); |
||||
VMM.DragSlider.dragWidth = VMM.Element.width(delem); |
||||
|
||||
// CANCEL CURRENT ANIMATION IF ANIMATING
|
||||
var _newx = Math.round(VMM.DragSlider.startX - e.pageX - VMM.DragSlider.startLeft); |
||||
|
||||
VMM.Element.stop(elem); |
||||
VMM.bindEvent(delem, VMM.DragSlider.onDragMove, "mousemove", {element: elem}); |
||||
|
||||
}, |
||||
dragEnd: function(elem, delem, e) { |
||||
VMM.unbindEvent(delem, VMM.DragSlider.onDragMove, "mousemove"); |
||||
//VMM.DragSlider.dragMomentum(elem, e);
|
||||
if (VMM.DragSlider.getLeft(elem) > 0) { |
||||
//(VMM.DragSlider.dragWidth/2)
|
||||
//This means they dragged to the right past the first item
|
||||
//VMM.Element.animate(elem, 1000, "linear", {"left": 0});
|
||||
|
||||
//VMM.fireEvent(elem, "DRAGUPDATE", [0]);
|
||||
} else { |
||||
//This means they were just dragging within the bounds of the grid and we just need to handle the momentum and snap to the grid.
|
||||
VMM.DragSlider.dragMomentum(elem, e); |
||||
} |
||||
}, |
||||
dragMove: function(elem, e) { |
||||
if (!VMM.DragSlider.sliding) { |
||||
//elem.parent().addClass('sliding');
|
||||
} |
||||
|
||||
VMM.DragSlider.sliding = true; |
||||
if (VMM.DragSlider.startX > e.pageX) { |
||||
//Sliding to the left
|
||||
VMM.Element.css(elem, 'left', -(VMM.DragSlider.startX - e.pageX - VMM.DragSlider.startLeft)); |
||||
VMM.DragSlider.slidingLeft = true; |
||||
} else { |
||||
//Sliding to the right
|
||||
var left = (e.pageX - VMM.DragSlider.startX + VMM.DragSlider.startLeft); |
||||
VMM.Element.css(elem, 'left', -(VMM.DragSlider.startX - e.pageX - VMM.DragSlider.startLeft)); |
||||
VMM.DragSlider.slidingLeft = false; |
||||
} |
||||
}, |
||||
dragMomentum: function(elem, e) { |
||||
var slideAdjust = (new Date().getTime() - VMM.DragSlider.dragStartTime) * 10; |
||||
var timeAdjust = slideAdjust; |
||||
var left = VMM.DragSlider.getLeft(elem); |
||||
|
||||
var changeX = 6000 * (Math.abs(VMM.DragSlider.startLeft) - Math.abs(left)); |
||||
//var changeX = 6000 * (VMM.DragSlider.startLeft - left);
|
||||
slideAdjust = Math.round(changeX / slideAdjust); |
||||
|
||||
var newLeft = left + slideAdjust; |
||||
|
||||
var t = newLeft % VMM.DragSlider.width; |
||||
//left: Math.min(0, newLeft),
|
||||
var _r_object = { |
||||
left: Math.min(newLeft), |
||||
time: timeAdjust |
||||
} |
||||
|
||||
VMM.fireEvent(elem, "DRAGUPDATE", [_r_object]); |
||||
var _ease = "easeOutExpo"; |
||||
if (_r_object.time > 0) { |
||||
VMM.Element.animate(elem, _r_object.time, _ease, {"left": _r_object.left}); |
||||
}; |
||||
|
||||
|
||||
//VMM.DragSlider.startX = null;
|
||||
}, |
||||
getLeft: function(elem) { |
||||
return parseInt(VMM.Element.css(elem, 'left').substring(0, VMM.Element.css(elem, 'left').length - 2), 10); |
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,597 @@
|
||||
/* Slider |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.ExternalAPI == 'undefined') { |
||||
|
||||
VMM.ExternalAPI = { |
||||
|
||||
twitter: { |
||||
tweetArray: [], |
||||
// VMM.ExternalAPI.twitter.getHTML(id);
|
||||
getHTML: function(id) { |
||||
//var the_url = document.location.protocol + "//api.twitter.com/1/statuses/oembed.json?id=" + id+ "&callback=?";
|
||||
var the_url = "http://api.twitter.com/1/statuses/oembed.json?id=" + id+ "&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) ); |
||||
}, |
||||
|
||||
// VMM.ExternalAPI.twitter.parseTwitterDate(date);
|
||||
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.Util.date.prettyDate(date, true); |
||||
}, |
||||
|
||||
// VMM.ExternalAPI.twitter.getTweets(tweets_array);
|
||||
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 = "http://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"); }); |
||||
|
||||
} |
||||
|
||||
|
||||
}, |
||||
|
||||
// VMM.ExternalAPI.twitter.getTweetSearch(search string);
|
||||
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 = "http://search.twitter.com/search.json?q=" + tweets + "&rpp=" + _number_of_tweets + "&include_entities=true&result_type=mixed"; |
||||
var tweetArray = []; |
||||
VMM.getJSON(the_url, function(d) { |
||||
|
||||
/* FORMAT RESPONSE |
||||
================================================== */ |
||||
for(var i = 0; i < d.results.length; i++) { |
||||
var tweet = {} |
||||
var twit = "<div class='twitter'><blockquote><p>"; |
||||
var td = VMM.Util.linkify_with_twitter(d.results[i].text, "_blank"); |
||||
twit += td; |
||||
twit += "</p>"; |
||||
twit += "— " + d.results[i].from_user_name + " (<a href='https://twitter.com/" + d.results[i].from_user + "'>@" + d.results[i].from_user + "</a>) <a href='https://twitter.com/" + d.results[i].from_user + "/status/" + d.id + "'>" + VMM.ExternalAPI.twitter.prettyParseTwitterDate(d.results[i].created_at) + " </a></blockquote></div>"; |
||||
tweet.content = twit; |
||||
tweet.raw = d.results[i]; |
||||
tweetArray.push(tweet); |
||||
} |
||||
var the_tweets = {tweetdata: tweetArray} |
||||
VMM.fireEvent(global, "TWEETSLOADED", the_tweets); |
||||
}); |
||||
|
||||
}, |
||||
// VMM.ExternalAPI.twitter.prettyHTML(id);
|
||||
prettyHTML: function(id) { |
||||
var id = id.toString(); |
||||
var error_obj = { |
||||
twitterid: id |
||||
}; |
||||
var the_url = "http://api.twitter.com/1/statuses/show.json?id=" + id + "&include_entities=true&callback=?"; |
||||
trace("id " + id); |
||||
var twitter_timeout = setTimeout(VMM.ExternalAPI.twitter.notFoundError, 4000, id); |
||||
VMM.getJSON(the_url, VMM.ExternalAPI.twitter.formatJSON) |
||||
|
||||
.error(function(jqXHR, textStatus, errorThrown) { |
||||
trace("TWITTER error"); |
||||
trace("TWITTER ERROR: " + textStatus + " " + jqXHR.responseText); |
||||
VMM.attachElement("#twitter_"+id, "<p>ERROR LOADING TWEET " + id + "</p>" ); |
||||
}) |
||||
.success(function() { |
||||
clearTimeout(twitter_timeout); |
||||
}); |
||||
|
||||
|
||||
}, |
||||
|
||||
notFoundError: function(id) { |
||||
trace("TWITTER JSON ERROR TIMEOUT " + id); |
||||
VMM.attachElement("#twitter_" + id, "<p>TWEET NOT FOUND " + id + "</p>" ); |
||||
}, |
||||
|
||||
formatJSON: function(d) { |
||||
trace("TWITTER JSON LOADED F"); |
||||
trace(d); |
||||
var id = d.id_str; |
||||
|
||||
var twit = "<blockquote><p>"; |
||||
var td = VMM.Util.linkify_with_twitter(d.text, "_blank"); |
||||
//td = td.replace(/(@([\w]+))/g,"<a href='http://twitter.com/$2' target='_blank'>$1</a>");
|
||||
//td = td.replace(/(#([\w]+))/g,"<a href='http://twitter.com/#search?q=%23$2' target='_blank'>$1</a>");
|
||||
twit += td; |
||||
twit += "</p></blockquote>"; |
||||
twit += " <a href='https://twitter.com/" + d.user.screen_name + "/status/" + d.id + "' target='_blank' alt='link to original tweet' title='link to original tweet'>" + "<span class='created-at'></span>" + " </a>"; |
||||
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>"; |
||||
twit += "</a>"; |
||||
twit += "</div>"; |
||||
|
||||
VMM.attachElement("#twitter_"+id.toString(), twit ); |
||||
|
||||
} |
||||
|
||||
}, |
||||
|
||||
//VMM.ExternalAPI.googlemaps.getMap()
|
||||
googlemaps: { |
||||
/* |
||||
//http://gsp2.apple.com/tile?api=1&style=slideshow&layers=default&lang=en_US&z={z}&x={x}&y={y}&v=9
|
||||
|
||||
http://maps.google.com/maps?q=chicago&hl=en&sll=41.874961,-87.619054&sspn=0.159263,0.351906&t=t&hnear=Chicago,+Cook,+Illinois&z=11&output=kml
|
||||
http://maps.google.com/maps/ms?msid=215143221704623082244.0004a53ad1e3365113a32&msa=0
|
||||
http://maps.google.com/maps/ms?msid=215143221704623082244.0004a53ad1e3365113a32&msa=0&output=kml
|
||||
http://maps.google.com/maps/ms?msid=215143221704623082244.0004a21354b1a2f188082&msa=0&ll=38.719738,-9.142599&spn=0.04172,0.087976&iwloc=0004a214c0e99e2da91e0
|
||||
http://maps.google.com/maps?q=Bavaria&hl=en&ll=47.597829,9.398804&spn=1.010316,2.709503&sll=37.0625,-95.677068&sspn=73.579623,173.408203&hnear=Bavaria,+Germany&t=m&z=10&output=embed
|
||||
*/ |
||||
getMap: function(url, id) { |
||||
var map_vars = VMM.Util.getUrlVars(url); |
||||
trace(map_vars); |
||||
var map_url = "http://maps.googleapis.com/maps/api/js?key=" + Aes.Ctr.decrypt(VMM.master_config.keys.google, VMM.master_config.vp, 256) + "&libraries=places&sensor=false&callback=VMM.ExternalAPI.googlemaps.onMapAPIReady"; |
||||
var map = { |
||||
url: url, |
||||
vars: map_vars, |
||||
id: id |
||||
} |
||||
|
||||
if (VMM.master_config.googlemaps.active) { |
||||
VMM.master_config.googlemaps.createMap(map); |
||||
} else { |
||||
|
||||
VMM.master_config.googlemaps.que.push(map); |
||||
|
||||
if (VMM.master_config.googlemaps.api_loaded) { |
||||
|
||||
} else { |
||||
|
||||
VMM.LoadLib.js(map_url, function() { |
||||
trace("Google Maps API Library Loaded"); |
||||
}); |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
|
||||
}, |
||||
|
||||
onMapAPIReady: function() { |
||||
VMM.master_config.googlemaps.map_active = true; |
||||
VMM.master_config.googlemaps.places_active = true; |
||||
VMM.ExternalAPI.googlemaps.onAPIReady(); |
||||
}, |
||||
onPlacesAPIReady: function() { |
||||
VMM.master_config.googlemaps.places_active = true; |
||||
VMM.ExternalAPI.googlemaps.onAPIReady(); |
||||
}, |
||||
onAPIReady: function() { |
||||
if (!VMM.master_config.googlemaps.active) { |
||||
if (VMM.master_config.googlemaps.map_active && VMM.master_config.googlemaps.places_active) { |
||||
VMM.master_config.googlemaps.active = true; |
||||
for(var i = 0; i < VMM.master_config.googlemaps.que.length; i++) { |
||||
VMM.ExternalAPI.googlemaps.createMap(VMM.master_config.googlemaps.que[i]); |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
|
||||
|
||||
|
||||
|
||||
map_subdomains: ["", "a.", "b.", "c.", "d."], |
||||
|
||||
|
||||
map_attribution: { |
||||
"stamen": "Map tiles by <a href='http://stamen.com'>Stamen Design</a>, under <a href='http://creativecommons.org/licenses/by/3.0'>CC BY 3.0</a>. Data by <a href='http://openstreetmap.org'>OpenStreetMap</a>, under <a href='http://creativecommons.org/licenses/by-sa/3.0'>CC BY SA</a>.", |
||||
"apple": "Map data © 2012 Apple, Imagery © 2012 Apple" |
||||
}, |
||||
|
||||
map_providers: { |
||||
"toner": { |
||||
"url": "http://{S}tile.stamen.com/toner/{Z}/{X}/{Y}.png", |
||||
"minZoom": 0, |
||||
"maxZoom": 20, |
||||
"attribution": "stamen" |
||||
|
||||
}, |
||||
"toner-lines": { |
||||
"url": "http://{S}tile.stamen.com/toner-lines/{Z}/{X}/{Y}.png", |
||||
"minZoom": 0, |
||||
"maxZoom": 20, |
||||
"attribution": "stamen" |
||||
}, |
||||
"toner-labels": { |
||||
"url": "http://{S}tile.stamen.com/toner-labels/{Z}/{X}/{Y}.png", |
||||
"minZoom": 0, |
||||
"maxZoom": 20, |
||||
"attribution": "stamen" |
||||
}, |
||||
"sterrain": { |
||||
"url": "http://{S}tile.stamen.com/terrain/{Z}/{X}/{Y}.jpg", |
||||
"minZoom": 4, |
||||
"maxZoom": 20, |
||||
"attribution": "stamen" |
||||
}, |
||||
"apple": { |
||||
"url": "http://gsp2.apple.com/tile?api=1&style=slideshow&layers=default&lang=en_US&z={z}&x={x}&y={y}&v=9", |
||||
"minZoom": 4, |
||||
"maxZoom": 20, |
||||
"attribution": "apple" |
||||
}, |
||||
"watercolor": { |
||||
"url": "http://{S}tile.stamen.com/watercolor/{Z}/{X}/{Y}.jpg", |
||||
"minZoom": 3, |
||||
"maxZoom": 16, |
||||
"attribution": "stamen" |
||||
} |
||||
}, |
||||
|
||||
createMap: function(m) { |
||||
trace(VMM.ExternalAPI.googlemaps.stamen_map_attribution); |
||||
/* MAP PROVIDERS |
||||
Including Stamen Maps |
||||
http://maps.stamen.com/
|
||||
Except otherwise noted, each of these map tile sets are © Stamen Design, under a Creative Commons Attribution (CC BY 3.0) license. |
||||
================================================== */ |
||||
|
||||
var map_attribution = ""; |
||||
|
||||
function mapProvider(name) { |
||||
if (name in VMM.ExternalAPI.googlemaps.map_providers) { |
||||
map_attribution = VMM.ExternalAPI.googlemaps.map_attribution[VMM.ExternalAPI.googlemaps.map_providers[name].attribution]; |
||||
return VMM.ExternalAPI.googlemaps.map_providers[name]; |
||||
} else { |
||||
throw 'No such provider: "' + name + '"'; |
||||
} |
||||
} |
||||
|
||||
google.maps.VeriteMapType = function(name) { |
||||
var provider = mapProvider(name); |
||||
return google.maps.ImageMapType.call(this, { |
||||
"getTileUrl": function(coord, zoom) { |
||||
var index = (zoom + coord.x + coord.y) % VMM.ExternalAPI.googlemaps.map_subdomains.length; |
||||
return [ |
||||
provider.url |
||||
.replace("{S}", VMM.ExternalAPI.googlemaps.map_subdomains[index]) |
||||
.replace("{Z}", zoom) |
||||
.replace("{X}", coord.x) |
||||
.replace("{Y}", coord.y) |
||||
.replace("{z}", zoom) |
||||
.replace("{x}", coord.x) |
||||
.replace("{y}", coord.y) |
||||
]; |
||||
}, |
||||
"tileSize": new google.maps.Size(256, 256), |
||||
"name": name, |
||||
"minZoom": provider.minZoom, |
||||
"maxZoom": provider.maxZoom |
||||
}); |
||||
}; |
||||
|
||||
google.maps.VeriteMapType.prototype = new google.maps.ImageMapType("_"); |
||||
|
||||
/* Make the Map |
||||
================================================== */ |
||||
var layer; |
||||
|
||||
|
||||
if (type.of(VMM.master_config.Timeline.maptype) == "string") { |
||||
layer = VMM.master_config.Timeline.maptype; |
||||
} else { |
||||
layer = "toner"; |
||||
} |
||||
|
||||
var location = new google.maps.LatLng(41.875696,-87.624207); |
||||
var latlong; |
||||
var zoom = 11; |
||||
var has_location = false; |
||||
var has_zoom = false; |
||||
var map_bounds; |
||||
|
||||
if (type.of(VMM.Util.getUrlVars(m.url)["ll"]) == "string") { |
||||
has_location = true; |
||||
latlong = VMM.Util.getUrlVars(m.url)["ll"].split(","); |
||||
location = new google.maps.LatLng(parseFloat(latlong[0]),parseFloat(latlong[1])); |
||||
|
||||
} else if (type.of(VMM.Util.getUrlVars(m.url)["sll"]) == "string") { |
||||
has_location = true; |
||||
latlong = VMM.Util.getUrlVars(m.url)["sll"].split(","); |
||||
location = new google.maps.LatLng(parseFloat(latlong[0]),parseFloat(latlong[1])); |
||||
|
||||
}
|
||||
|
||||
if (type.of(VMM.Util.getUrlVars(m.url)["z"]) == "string") { |
||||
has_zoom = true; |
||||
zoom = parseFloat(VMM.Util.getUrlVars(m.url)["z"]); |
||||
} |
||||
|
||||
var map_options = { |
||||
zoom:zoom, |
||||
disableDefaultUI: true, |
||||
mapTypeControl: false, |
||||
zoomControl: true, |
||||
zoomControlOptions: { |
||||
style: google.maps.ZoomControlStyle.SMALL, |
||||
position: google.maps.ControlPosition.TOP_RIGHT |
||||
}, |
||||
center: location, |
||||
mapTypeId: layer, |
||||
mapTypeControlOptions: { |
||||
mapTypeIds: [layer] |
||||
} |
||||
} |
||||
|
||||
var unique_map_id = m.id.toString() + "_gmap"; |
||||
VMM.attachElement("#" + m.id, "<div class='google-map' id='" + unique_map_id + "' style='width=100%;height=100%;'></div>"); |
||||
/* ATTRIBUTION |
||||
================================================== */ |
||||
//var map_attribution_html = "<div class='map-attribution'><div class='attribution-text'>" + map_attribution + "</div></div>";
|
||||
//VMM.appendElement("#" + m.id, map_attribution_html);
|
||||
|
||||
var map = new google.maps.Map(document.getElementById(unique_map_id), map_options); |
||||
map.mapTypes.set(layer, new google.maps.VeriteMapType(layer)); |
||||
|
||||
/* ATTRIBUTION |
||||
================================================== */ |
||||
var map_attribution_html = "<div class='map-attribution'><div class='attribution-text'>" + map_attribution + "</div></div>"; |
||||
VMM.appendElement("#"+unique_map_id, map_attribution_html); |
||||
//.map-attribution
|
||||
//.attribution-text
|
||||
|
||||
loadKML(); |
||||
|
||||
/* KML |
||||
================================================== */ |
||||
function loadKML() { |
||||
var kml_url = m.url + "&output=kml"; |
||||
kml_url = kml_url.replace("&output=embed", ""); |
||||
|
||||
var kml_layer = new google.maps.KmlLayer(kml_url, {preserveViewport:true}); |
||||
kml_layer.setMap(map); |
||||
|
||||
var infowindow = new google.maps.InfoWindow(); |
||||
|
||||
google.maps.event.addListenerOnce(kml_layer, "defaultviewport_changed", function() { |
||||
|
||||
|
||||
|
||||
if (has_location) { |
||||
map.panTo(location); |
||||
}
|
||||
|
||||
if (has_zoom) { |
||||
map.setZoom(zoom); |
||||
} else { |
||||
map.fitBounds(kml_layer.getDefaultViewport() ); |
||||
} |
||||
|
||||
|
||||
}); |
||||
|
||||
google.maps.event.addListener(kml_layer, 'click', function(kmlEvent) { |
||||
var text = kmlEvent.featureData.description; |
||||
trace(kmlEvent.featureData.infoWindowHtml) |
||||
showInfoWindow(text); |
||||
function showInfoWindow(c) { |
||||
//trace("showInfoWindow")
|
||||
infowindow.setContent(c); |
||||
infowindow.open(map); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
}, |
||||
|
||||
}, |
||||
|
||||
//VMM.ExternalAPI.flickr.getPhoto(mediaID, htmlID);
|
||||
flickr: { |
||||
|
||||
getPhoto: function(mid, id) { |
||||
// http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key=6d6f59d8d30d79f4f402a7644d5073e3&photo_id=6115056146&format=json&nojsoncallback=1
|
||||
var the_url = "http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key=" + Aes.Ctr.decrypt(VMM.master_config.keys.flickr, VMM.master_config.vp, 256) + "&photo_id=" + mid + "&format=json&jsoncallback=?"; |
||||
VMM.getJSON(the_url, VMM.ExternalAPI.flickr.setPhoto); |
||||
}, |
||||
|
||||
setPhoto: function(d) { |
||||
var flickr_id = d.sizes.size[0].url.split("photos\/")[1].split("/")[1]; |
||||
var id = "flickr_" + flickr_id; |
||||
var flickr_large_id = id + "_large"; |
||||
var flickr_thumb_id = id + "_thumb"; |
||||
// FIND LARGE SIZE
|
||||
var flickr_img_large; |
||||
var flickr_large_found = false; |
||||
for(var i = 0; i < d.sizes.size.length; i++) { |
||||
if (d.sizes.size[i].label == "Large") { |
||||
flickr_large_found = true; |
||||
flickr_img_large = d.sizes.size[i].source; |
||||
} |
||||
} |
||||
if (!flickr_large_found) { |
||||
flickr_img_large = d.sizes.size[d.sizes.size.length - 1].source; |
||||
} |
||||
|
||||
var flickr_img_thumb = d.sizes.size[0].source; |
||||
VMM.Element.attr("#"+flickr_large_id, "src", flickr_img_large); |
||||
VMM.Element.attr("#"+flickr_thumb_id, "src", flickr_img_thumb); |
||||
} |
||||
|
||||
|
||||
}, |
||||
|
||||
soundcloud: { |
||||
// VMM.ExternalAPI.soundcloud.getSound(url, id)
|
||||
/* |
||||
REFORMAT TO USE API FOR CUSTOM PLAYERS |
||||
*/ |
||||
getSound: function(url, id) { |
||||
// http://soundcloud.com/oembed?iframe=true&url=http://soundcloud.com/erasedtapes/olafur-arnalds-poland
|
||||
var the_url = "http://soundcloud.com/oembed?url=" + url + "&format=js&callback=?"; |
||||
VMM.getJSON(the_url, function(d) { |
||||
VMM.attachElement("#"+id, d.html ); |
||||
}); |
||||
}, |
||||
|
||||
}, |
||||
|
||||
// VMM.ExternalAPI.youtube.init(id);
|
||||
youtube: { |
||||
init: function(id) { |
||||
|
||||
if (VMM.master_config.youtube.active) { |
||||
VMM.master_config.youtube.createPlayer(id); |
||||
} else { |
||||
|
||||
VMM.master_config.youtube.que.push(id); |
||||
|
||||
if (VMM.master_config.youtube.api_loaded) { |
||||
|
||||
} else { |
||||
|
||||
VMM.LoadLib.js('http://www.youtube.com/player_api', function() { |
||||
trace("YouTube API Library Loaded"); |
||||
}); |
||||
} |
||||
|
||||
} |
||||
}, |
||||
|
||||
onAPIReady: function() { |
||||
trace("YOUTUBE API READY") |
||||
VMM.master_config.youtube.active = true; |
||||
|
||||
for(var i = 0; i < VMM.master_config.youtube.que.length; i++) { |
||||
VMM.ExternalAPI.youtube.createPlayer(VMM.master_config.youtube.que[i]); |
||||
} |
||||
}, |
||||
// VMM.ExternalAPI.youtube.createPlayer(id);
|
||||
createPlayer: function(id) { |
||||
var p = { |
||||
active:false, |
||||
player: {}, |
||||
name:'youtube_'+id, |
||||
playing:false |
||||
}; |
||||
|
||||
p.player['youtube_'+id] = new YT.Player('youtube_'+id, { |
||||
height: '390', |
||||
width: '640', |
||||
playerVars: { |
||||
enablejsapi:1, |
||||
color: 'white', |
||||
showinfo:0, |
||||
theme: 'light', |
||||
rel:0, |
||||
origin:'http://timeline.verite.co' |
||||
}, |
||||
videoId: id, |
||||
events: { |
||||
'onReady': VMM.ExternalAPI.youtube.onPlayerReady, |
||||
'onStateChange': VMM.ExternalAPI.youtube.onStateChange |
||||
} |
||||
}); |
||||
|
||||
VMM.master_config.youtube.array.push(p); |
||||
}, |
||||
|
||||
//VMM.ExternalAPI.youtube.stopPlayers();
|
||||
stopPlayers: function() { |
||||
for(var i = 0; i < VMM.master_config.youtube.array.length; i++) {
|
||||
if (VMM.master_config.youtube.array[i].playing) { |
||||
var the_name = VMM.master_config.youtube.array[i].name; |
||||
VMM.master_config.youtube.array[i].player[the_name].stopVideo(); |
||||
} |
||||
} |
||||
}, |
||||
|
||||
onStateChange: function(e) { |
||||
for(var i = 0; i < VMM.master_config.youtube.array.length; i++) { |
||||
var the_name = VMM.master_config.youtube.array[i].name; |
||||
if (VMM.master_config.youtube.array[i].player[the_name] == e.target) { |
||||
if (e.data == YT.PlayerState.PLAYING) { |
||||
VMM.master_config.youtube.array[i].playing = true; |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
|
||||
onPlayerReady: function(e) { |
||||
|
||||
} |
||||
|
||||
|
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
/* YOUTUBE API READY |
||||
Can't find a way to customize this callback and keep it in the VMM namespace |
||||
Youtube wants it to be this function.
|
||||
================================================== */ |
||||
function onYouTubePlayerAPIReady() { |
||||
trace("GLOBAL YOUTUBE API CALLED") |
||||
VMM.ExternalAPI.youtube.onAPIReady(); |
||||
} |
@ -0,0 +1,27 @@
|
||||
/* File Extention |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.FileExtention == 'undefined') { |
||||
//VMM.FileExtention.googleDocType(url);
|
||||
VMM.FileExtention = { |
||||
googleDocType: function(url) { |
||||
var fileName = url; |
||||
var fileExtension = ""; |
||||
//fileExtension = fileName.substr(5);
|
||||
fileExtension = fileName.substr(fileName.length - 5, 5); |
||||
var validFileExtensions = ["DOC","DOCX","XLS","XLSX","PPT","PPTX","PDF","PAGES","AI","PSD","TIFF","DXF","SVG","EPS","PS","TTF","XPS","ZIP","RAR"]; |
||||
var flag = false; |
||||
|
||||
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; |
||||
|
||||
} |
||||
} |
||||
} |
@ -0,0 +1,29 @@
|
||||
/* LANGUAGE |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.Language == 'undefined') { |
||||
VMM.Language = { |
||||
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_no_seconds_short: "hh:MM TT", |
||||
time_no_seconds_small_date: "hh: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>'", |
||||
}, |
||||
messages: { |
||||
loading_timeline: "Loading Timeline... ", |
||||
return_to_title: "Return to Title", |
||||
expand_timeline: "Expand Timeline", |
||||
contract_timeline: "Contract Timeline" |
||||
} |
||||
} |
||||
}; |
@ -0,0 +1,551 @@
|
||||
/* LIBRARY ABSTRACTION |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined') { |
||||
|
||||
//VMM.attachElement(element, content);
|
||||
VMM.attachElement = function(element, content) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
$(element).html(content); |
||||
} |
||||
|
||||
}; |
||||
//VMM.appendElement(element, content);
|
||||
VMM.appendElement = function(element, content) { |
||||
|
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
$(element).append(content); |
||||
} |
||||
|
||||
}; |
||||
|
||||
VMM.getHTML = function(element) { |
||||
var e; |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
e = jQuery(element).html(); |
||||
return e; |
||||
} |
||||
|
||||
}; |
||||
//VMM.getElement(element);
|
||||
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(element, the_handler, the_event_type, event_data);
|
||||
//VMM.bindEvent(window, the_handler, "event type", {event_data});
|
||||
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(window, the_handler, "event type");
|
||||
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(element, "resize", [data]);
|
||||
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(url, the_function);
|
||||
VMM.getJSON = function(url, data, callback) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
|
||||
/* CHECK FOR IE AND USE Use Microsoft XDR |
||||
================================================== */ |
||||
if ( VMM.Browser.browser == "Explorer" && parseInt(VMM.Browser.version, 10) >= 7 && window.XDomainRequest) { |
||||
trace("it's ie"); |
||||
var ie_url = url; |
||||
|
||||
if (ie_url.match('^http://')){ |
||||
trace("RUNNING GET JSON") |
||||
ie_url = ie_url.replace("http://","//"); |
||||
return jQuery.getJSON(url, data, callback); |
||||
} else if (ie_url.match('^https://')) { |
||||
trace("RUNNING XDR"); |
||||
ie_url = ie_url.replace("https://","http://"); |
||||
var xdr = new XDomainRequest(); |
||||
xdr.open("get", ie_url); |
||||
xdr.onload = function() { |
||||
var ie_json = VMM.parseJSON(xdr.responseText); |
||||
trace(xdr.responseText); |
||||
if (type.of(ie_json) == "null" || type.of(ie_json) == "undefined") { |
||||
trace("IE JSON ERROR") |
||||
} else { |
||||
return data(ie_json) |
||||
}
|
||||
|
||||
} |
||||
xdr.send(); |
||||
} else { |
||||
return jQuery.getJSON(url, data, callback); |
||||
} |
||||
} else { |
||||
//$.getJSON(url, data);
|
||||
trace("getJSON"); |
||||
return jQuery.getJSON(url, data, callback); |
||||
|
||||
|
||||
} |
||||
} |
||||
} |
||||
// VMM.parseJSON(the_json);
|
||||
VMM.parseJSON = function(the_json) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
return jQuery.parseJSON(the_json); |
||||
} |
||||
} |
||||
// ADD ELEMENT AND RETURN IT
|
||||
// VMM.appendAndGetElement(append_to_element, tag, cName, content, [attrib]);
|
||||
VMM.appendAndGetElement = function(append_to_element, tag, cName, content) { |
||||
var e; |
||||
var _tag = "<div>"; |
||||
var _class = ""; |
||||
var _content = ""; |
||||
|
||||
|
||||
if (tag != null && tag != "") { |
||||
_tag = tag; |
||||
} |
||||
|
||||
if (cName != null && cName != "") { |
||||
_class = cName; |
||||
} |
||||
|
||||
if (content != null && content != "") { |
||||
_content = content; |
||||
} |
||||
|
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
|
||||
e = $(tag); |
||||
|
||||
e.addClass(_class); |
||||
e.html(_content); |
||||
|
||||
jQuery(append_to_element).append(e); |
||||
|
||||
//$(e).appendTo(element);
|
||||
|
||||
} |
||||
|
||||
return e; |
||||
|
||||
}; |
||||
|
||||
VMM.Element = ({ |
||||
|
||||
init: function() { |
||||
return this; |
||||
}, |
||||
// VMM.Element.hide(element);
|
||||
hide: function(element, duration) { |
||||
if (duration != null && duration != "") { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).hide(duration); |
||||
} |
||||
} else { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).hide(); |
||||
} |
||||
} |
||||
|
||||
}, |
||||
// VMM.Element.remove(element);
|
||||
remove: function(element) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).remove(); |
||||
} |
||||
}, |
||||
// VMM.Element.detach(element);
|
||||
detach: function(element) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).detach(); |
||||
} |
||||
}, |
||||
// VMM.Element.append(element, value);
|
||||
append: function(element, value) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).append(value); |
||||
} |
||||
}, |
||||
// VMM.Element.show(element);
|
||||
show: function(element, duration) { |
||||
if (duration != null && duration != "") { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).show(duration); |
||||
} |
||||
} else { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).show(); |
||||
} |
||||
} |
||||
|
||||
}, |
||||
// VMM.Element.load(element, callback_function, event_data);
|
||||
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); |
||||
} |
||||
}, |
||||
//VMM.Element.addClass(element, cName);
|
||||
addClass: function(element, cName) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).addClass(cName); |
||||
} |
||||
}, |
||||
//VMM.Element.removeClass(element, cName);
|
||||
removeClass: function(element, cName) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).removeClass(cName); |
||||
} |
||||
}, |
||||
//VMM.Element.attr(element, aName, value);
|
||||
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); |
||||
} |
||||
} |
||||
}, |
||||
//VMM.Element.prop(element, aName, value);
|
||||
prop: function(element, aName, value) { |
||||
if (typeof jQuery == 'undefined' || !/[1-9]\.[3-9].[1-9]/.test($.fn.jquery)) { |
||||
VMM.Element.attribute(element, aName, value); |
||||
} else { |
||||
jQuery(element).prop(aName, value); |
||||
} |
||||
}, |
||||
//VMM.Element.attribute(element, 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); |
||||
} |
||||
} |
||||
}, |
||||
/* Sets or gets the visability of a dom element |
||||
================================================== */ |
||||
//VMM.Element.visible(element, show);
|
||||
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; |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
/* Sets a style for the specified element or gets the style |
||||
================================================== */ |
||||
//VMM.Element.css(element, prop, value);
|
||||
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); |
||||
} |
||||
}, |
||||
/* Gets offset |
||||
================================================== */ |
||||
//VMM.Element.offset(element);
|
||||
offset: function(element) { |
||||
var p; |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
p = jQuery(element).offset(); |
||||
} |
||||
return p; |
||||
}, |
||||
/* Gets position |
||||
================================================== */ |
||||
//VMM.Element.position(element);
|
||||
position: function(element) { |
||||
var p; |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
p = jQuery(element).position(); |
||||
} |
||||
return p; |
||||
}, |
||||
/* Sets or gets the width of a dom element |
||||
================================================== */ |
||||
//VMM.Element.width(element, s);
|
||||
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(); |
||||
} |
||||
} |
||||
}, |
||||
/* Sets or gets the width of a dom element |
||||
================================================== */ |
||||
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(); |
||||
} |
||||
} |
||||
}, |
||||
/* TOGGLE CLASS |
||||
================================================== */ |
||||
// VMM.Element.toggleClass(element, cName);
|
||||
toggleClass: function(element, cName) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).toggleClass(cName); |
||||
} |
||||
}, |
||||
/* Each |
||||
================================================== */ |
||||
// VMM.Element.each(element, return_function);
|
||||
each:function(element, return_function) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).each(return_function); |
||||
} |
||||
|
||||
}, |
||||
/* Each |
||||
================================================== */ |
||||
// VMM.Element.html(element, str);
|
||||
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 |
||||
================================================== */ |
||||
// VMM.Element.find(element, selec);
|
||||
find: function(element, selec) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
return jQuery(element).find(selec); |
||||
} |
||||
}, |
||||
/* Animate |
||||
================================================== */ |
||||
// VMM.Element.stop(element);
|
||||
stop: function(element) { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
jQuery(element).stop(); |
||||
} |
||||
}, |
||||
// VMM.Element.animate(element, duration, ease, att, callback_function);
|
||||
animate: function(element, duration, ease, att, callback_function) { |
||||
|
||||
var _ease = "easein"; |
||||
var _duration = 1000; |
||||
var _att = {}; |
||||
|
||||
if (duration != null) { |
||||
if (duration < 1) { |
||||
_duration = 1; |
||||
} else { |
||||
_duration = Math.round(duration); |
||||
} |
||||
|
||||
} |
||||
|
||||
if (ease != null && ease != "") { |
||||
_ease = ease; |
||||
} |
||||
|
||||
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 |
||||
var __duration = _tdd + 's'; |
||||
VMM.Element.css(element, '-webkit-transition', 'all '+ __duration + ' ease'); |
||||
VMM.Element.css(element, '-moz-transition', 'all '+ __duration + ' ease'); |
||||
VMM.Element.css(element, '-o-transition', 'all '+ __duration + ' ease'); |
||||
VMM.Element.css(element, '-ms-transition', 'all '+ __duration + ' ease'); |
||||
VMM.Element.css(element, 'transition', 'all '+ __duration + ' ease'); |
||||
VMM.Element.cssmultiple(element, _att); |
||||
|
||||
//callback_function();
|
||||
/* |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
if (callback_function != null && callback_function != "") { |
||||
$(element).animate(_att, {queue:false, duration:_duration, easing:"ease", complete:callback_function} ); |
||||
} else { |
||||
$(element).animate(_att, {queue:false, duration:_duration, easing:"ease"} ); |
||||
} |
||||
} |
||||
*/ |
||||
|
||||
} else { |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
if (callback_function != null && callback_function != "") { |
||||
jQuery(element).animate(_att, {queue:false, duration:_duration, easing:_ease, complete:callback_function} ); |
||||
} else { |
||||
jQuery(element).animate(_att, {queue:false, duration:_duration, easing:_ease} ); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
/* |
||||
VMM.Element.cssmultiple(element, { |
||||
'-webkit-transition': 'all 1s ease-in-out', |
||||
'-moz-transition': 'all 1s ease-in-out', |
||||
'-o-transition': 'all 1s ease-in-out', |
||||
'-ms-transition': 'all 1s ease-in-out', |
||||
'transition': 'all 1s ease-in-out', |
||||
|
||||
}); |
||||
*/ |
||||
}, |
||||
|
||||
}).init(); |
||||
} |
||||
|
||||
/* jQuery Easing v1.3 |
||||
http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
================================================== */ |
||||
if( typeof( jQuery ) != 'undefined' ){ |
||||
|
||||
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; |
||||
}, |
||||
}); |
||||
} |
@ -0,0 +1,163 @@
|
||||
/* Media |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.Media == 'undefined') { |
||||
|
||||
// something = new VMM.Media(parent, w, h, {thedata});
|
||||
VMM.Media = function(parent, w, h, thedata) {
|
||||
|
||||
/* PRIVATE VARS |
||||
================================================== */ |
||||
var data = {}; // HOLDS DATA
|
||||
|
||||
var _valid = false; |
||||
|
||||
var config = { |
||||
width: 720, |
||||
height: 400, |
||||
content_width: 720, |
||||
content_height: 400, |
||||
ease: "easeInOutExpo", |
||||
duration: 1000, |
||||
spacing: 15 |
||||
}; |
||||
/* ELEMENTS |
||||
================================================== */ |
||||
var $media = ""; |
||||
var $container = ""; |
||||
var $mediacontainer = ""; |
||||
var $mediaelement = ""; |
||||
var layout = parent; // expecting media div
|
||||
|
||||
if (w != null && w != "") {config.width = w}; |
||||
if (h != null && h != "") {config.height = h}; |
||||
/* |
||||
if (typeof thedata != "undefined") { |
||||
data = thedata; |
||||
this.init(data); |
||||
} |
||||
*/ |
||||
/* PUBLIC FUNCTIONS |
||||
================================================== */ |
||||
this.init = function(d) { |
||||
if(typeof d != 'undefined') { |
||||
this.setData(d); |
||||
} else { |
||||
trace("WAITING ON DATA"); |
||||
} |
||||
}; |
||||
|
||||
var build = function(media, caption, credit) { |
||||
|
||||
$media = VMM.appendAndGetElement(layout, "<div>", "media"); |
||||
$container = VMM.appendAndGetElement($media, "<div>", "container"); |
||||
$mediacontainer = VMM.appendAndGetElement($container, "<div>", "media-container"); |
||||
|
||||
|
||||
if (data.media != null && data.media != "") { |
||||
|
||||
_valid = true; |
||||
var m = {}; |
||||
|
||||
m = VMM.MediaType(data.media); //returns an object with .type and .id
|
||||
|
||||
if (m.type == "image") { |
||||
VMM.appendElement($mediacontainer, "<img src='" + m.id + "'>");
|
||||
} else if (m.type == "youtube") { |
||||
VMM.appendElement($mediacontainer, "<iframe frameborder='0' src='http://www.youtube.com/embed/" + m.id + "?&rel=0&theme=light&showinfo=0&hd=1&autohide=0&color=white' allowfullscreen>"); |
||||
} else if (m.type == "vimeo") { |
||||
VMM.appendElement($mediacontainer, "<iframe frameborder='0' src='http://player.vimeo.com/video/" + m.id + "?title=0&byline=0&portrait=0&color=ffffff'>"); |
||||
} else { |
||||
|
||||
} |
||||
|
||||
// CREDIT
|
||||
if (data.credit != null && data.credit != "") { |
||||
VMM.appendElement($container, VMM.createElement("div", data.credit, "credit")); |
||||
} |
||||
|
||||
// CAPTION
|
||||
if (data.caption != null && data.caption != "") { |
||||
VMM.appendElement($container, VMM.createElement("div", data.caption, "caption")); |
||||
} |
||||
|
||||
} |
||||
}; |
||||
|
||||
|
||||
|
||||
/* GETTERS AND SETTERS |
||||
================================================== */ |
||||
|
||||
this.setData = function(d) { |
||||
if(typeof d != 'undefined') { |
||||
data = d; |
||||
build(); |
||||
} else{ |
||||
trace("NO DATA"); |
||||
} |
||||
}; |
||||
|
||||
/* RESIZE |
||||
================================================== */ |
||||
|
||||
function reSize() { |
||||
|
||||
} |
||||
|
||||
|
||||
|
||||
} |
||||
|
||||
// Less expensive to use prototype
|
||||
|
||||
VMM.Media.prototype.height = function(h) { |
||||
if (h != null && h != "") { |
||||
config.height = h; |
||||
reSize(); |
||||
} else { |
||||
return config.height; |
||||
} |
||||
}; |
||||
|
||||
VMM.Media.prototype.width = function(w) { |
||||
if (w != null && w != "") { |
||||
config.width = w; |
||||
reSize(); |
||||
} else { |
||||
return config.width; |
||||
} |
||||
}; |
||||
|
||||
/* GETTERS AND SETTERS |
||||
================================================== */ |
||||
|
||||
VMM.Media.prototype.getData = function() { |
||||
return data; |
||||
}; |
||||
|
||||
VMM.Media.prototype.setConfig = function(d) { |
||||
if(typeof d != 'undefined') { |
||||
config = d; |
||||
} else{ |
||||
trace("NO CONFIG DATA"); |
||||
} |
||||
}; |
||||
|
||||
VMM.Media.prototype.getConfig = function() { |
||||
return config; |
||||
}; |
||||
|
||||
VMM.Media.prototype.setSize = function(w, h) { |
||||
if (w != null) {config.width = w}; |
||||
if (h != null) {config.height = h}; |
||||
if (_active) { |
||||
reSize(); |
||||
} |
||||
|
||||
} |
||||
|
||||
VMM.Media.prototype.active = function() { |
||||
return _active; |
||||
}; |
||||
|
||||
} |
@ -0,0 +1,175 @@
|
||||
/* MediaElement |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.MediaElement == 'undefined') { |
||||
|
||||
VMM.MediaElement = ({ |
||||
|
||||
init: function() { |
||||
return this; |
||||
}, |
||||
// somestring = VMM.MediaElement.thumbnail(data);
|
||||
thumbnail: function(data, w, h) { |
||||
_w = 32; |
||||
_h = 32; |
||||
if (w != null && w != "") { |
||||
_w = w; |
||||
} |
||||
if (h != null && h != "") { |
||||
_h = h; |
||||
} |
||||
|
||||
if (data.media != null && data.media != "") { |
||||
_valid = true; |
||||
var mediaElem = ""; |
||||
var m = {}; |
||||
|
||||
// MEDIA TYPE
|
||||
m = VMM.MediaType(data.media); //returns an object with .type and .id
|
||||
|
||||
// CREATE MEDIA CODE
|
||||
if (m.type == "image") { |
||||
mediaElem = "<div class='thumbnail'><img src='" + m.id + "' width='" + _w + "px' height='" + _h + "px'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "flickr") { |
||||
mediaElem = "<div class='thumbnail'><img id='flickr_" + m.id + "_thumb' width='" + _w + "px' height='" + _h + "px'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "youtube") { |
||||
mediaElem = "<div class='thumbnail youtube'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "googledoc") { |
||||
mediaElem = ""; |
||||
} else if (m.type == "vimeo") { |
||||
mediaElem = "<div class='thumbnail vimeo'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "twitter"){ |
||||
mediaElem = "<div class='thumbnail twitter'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "twitter-ready") { |
||||
mediaElem = "<div class='thumbnail twitter'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "soundcloud") { |
||||
mediaElem = "<div class='thumbnail soundcloud'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "google-map") { |
||||
mediaElem = "<div class='thumbnail map'></div>"; |
||||
return mediaElem; |
||||
} else if (m.type == "unknown") { |
||||
mediaElem = ""; |
||||
return mediaElem; |
||||
} else if (m.type == "website") { |
||||
mediaElem = "<div class='thumbnail website'></div>"; |
||||
//mediaElem = "<div class='thumbnail'><img src='http://api.snapito.com/free/sc?url=" + m.id + "' width='" + _w + "px' height='" + _h + "px'></div>";
|
||||
|
||||
return mediaElem; |
||||
} else { |
||||
mediaElem = "<div class='thumbnail'></div>"; |
||||
return mediaElem; |
||||
} |
||||
} |
||||
}, |
||||
//VMM.MediaElement.create(element, data, returntrue);
|
||||
create: function(element, data, __return, w, h) { |
||||
|
||||
_return = __return; |
||||
_w = 500; |
||||
_h = 400; |
||||
$mediacontainer = element; |
||||
//VMM.MediaElement.container = element;
|
||||
var _valid = false; |
||||
if (w != null && w != "") { |
||||
_w = w; |
||||
} |
||||
if (h != null && h != "") { |
||||
_h = h; |
||||
} |
||||
|
||||
if (data.media != null && data.media != "") { |
||||
|
||||
_valid = true; |
||||
var mediaElem = ""; |
||||
var captionElem = ""; |
||||
var creditElem = ""; |
||||
var m = {}; |
||||
var media_height = (_h - 50); |
||||
var isTextMedia = false; |
||||
|
||||
// CREDIT
|
||||
if (data.credit != null && data.credit != "") { |
||||
creditElem = "<div class='credit'>" + VMM.Util.linkify_with_twitter(data.credit, "_blank") + "</div>"; |
||||
} |
||||
// CAPTION
|
||||
if (data.caption != null && data.caption != "") { |
||||
captionElem = "<div class='caption'>" + VMM.Util.linkify_with_twitter(data.caption, "_blank") + "</div>"; |
||||
} |
||||
|
||||
// MEDIA TYPE
|
||||
m = VMM.MediaType(data.media); //returns an object with .type and .id
|
||||
|
||||
// CREATE MEDIA CODE
|
||||
if (m.type == "image") { |
||||
mediaElem = "<img src='" + m.id + "'>"; |
||||
} else if (m.type == "flickr") { |
||||
var flickr_id = "flickr_" + m.id; |
||||
mediaElem = "<a href='" + m.link + "' target='_blank'><img id='" + flickr_id + "_large" + "'></a>"; |
||||
VMM.ExternalAPI.flickr.getPhoto(m.id, "#" + flickr_id); |
||||
} else if (m.type == "googledoc") { |
||||
if (m.id.match(/docs.google.com/i)) { |
||||
mediaElem = "<iframe class='media-frame doc' frameborder='0' width='100%' height='100%' src='" + m.id + "&embedded=true'></iframe>"; |
||||
} else { |
||||
mediaElem = "<iframe class='media-frame doc' frameborder='0' width='100%' height='100%' src='http://docs.google.com/viewer?url=" + m.id + "&embedded=true'></iframe>"; |
||||
} |
||||
|
||||
|
||||
} else if (m.type == "youtube") { |
||||
mediaElem = "<div class='media-frame video youtube' id='youtube_" + m.id + "'>Loading YouTube video...</div>"; |
||||
VMM.ExternalAPI.youtube.init(m.id); |
||||
//mediaElem = "<iframe class='media-frame youtube' onload='timeline.iframeLoaded()' frameborder='0' width='100%' height='100%' src='http://www.youtube.com/embed/" + m.id + "?&rel=0&theme=light&showinfo=0&hd=1&autohide=0&color=white&enablejsapi=1' allowfullscreen></iframe>";
|
||||
} else if (m.type == "vimeo") { |
||||
mediaElem = "<iframe class='media-frame video vimeo' frameborder='0' width='100%' height='100%' src='http://player.vimeo.com/video/" + m.id + "?title=0&byline=0&portrait=0&color=ffffff'></iframe>"; |
||||
} else if (m.type == "twitter"){ |
||||
mediaElem = "<div class='twitter' id='" + "twitter_" + m.id + "'>Loading Tweet</div>"; |
||||
//VMM.ExternalAPI.twitter.getHTML(m.id);
|
||||
trace("TWITTER"); |
||||
VMM.ExternalAPI.twitter.prettyHTML(m.id); |
||||
isTextMedia = true; |
||||
} else if (m.type == "twitter-ready") { |
||||
mediaElem = m.id; |
||||
} else if (m.type == "soundcloud") { |
||||
var soundcloud_id = "soundcloud_" + VMM.Util.unique_ID(5); |
||||
mediaElem = "<div class='media-frame soundcloud' id='" + soundcloud_id + "'>Loading Sound</div>"; |
||||
VMM.ExternalAPI.soundcloud.getSound(m.id, soundcloud_id) |
||||
} else if (m.type == "google-map") { |
||||
//mediaElem = "<iframe class='media-frame map' frameborder='0' width='100%' height='100%' scrolling='no' marginheight='0' marginwidth='0' src='" + m.id + "&output=embed'></iframe>"
|
||||
var map_id = "googlemap_" + VMM.Util.unique_ID(7); |
||||
mediaElem = "<div class='media-frame map' id='" + map_id + "'>Loading Map...</div>"; |
||||
VMM.ExternalAPI.googlemaps.getMap(m.id, map_id); |
||||
} else if (m.type == "unknown") {
|
||||
trace("NO KNOWN MEDIA TYPE FOUND TRYING TO JUST PLACE THE HTML");
|
||||
mediaElem = VMM.Util.properQuotes(m.id);
|
||||
} else if (m.type == "website") {
|
||||
mediaElem = "<iframe class='media-frame' frameborder='0' width='100%' height='100%' scrolling='yes' marginheight='0' marginwidth='0' src='" + m.id + "'></iframe>"; |
||||
//mediaElem = "<a href='" + m.id + "' target='_blank'>" + "<img src='http://api.snapito.com/free/lc?url=" + m.id + "'></a>";
|
||||
} else { |
||||
trace("NO KNOWN MEDIA TYPE FOUND"); |
||||
trace(m.type); |
||||
} |
||||
// WRAP THE MEDIA ELEMENT
|
||||
mediaElem = "<div class='media-container' >" + mediaElem + creditElem + captionElem + "</div>"; |
||||
|
||||
if (_return) { |
||||
if (isTextMedia) { |
||||
return "<div class='media text-media'><div class='media-wrapper'>" + mediaElem + "</div></div>"; |
||||
} else { |
||||
return "<div class='media'><div class='media-wrapper'>" + mediaElem + "</div></div>"; |
||||
} |
||||
} else { |
||||
VMM.appendElement($mediacontainer, mediaElem); |
||||
VMM.appendElement($mediacontainer, creditElem); |
||||
VMM.appendElement($mediacontainer, captionElem); |
||||
} |
||||
}; |
||||
|
||||
}, |
||||
|
||||
}).init(); |
||||
} |
@ -0,0 +1,98 @@
|
||||
/* MediaType |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.MediaType == 'undefined') { |
||||
|
||||
//VMM.mediaType.youtube(d); //should return a true or false
|
||||
// VMM.MediaType(url); //returns an object with .type and .id
|
||||
|
||||
VMM.MediaType = function(d) { |
||||
var success = false; |
||||
var media = {}; |
||||
if (d.match("div class='twitter'")) { |
||||
media.type = "twitter-ready"; |
||||
media.id = d; |
||||
success = true; |
||||
} else if (d.match('(www.)?youtube|youtu\.be')) { |
||||
if (d.match('v=')) { |
||||
youtube_id = VMM.Util.getUrlVars(d)["v"]; |
||||
//youtube_id = d.split(/embed\//)[1].split('"')[0];
|
||||
} else {
|
||||
youtube_id = d.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0]; |
||||
} |
||||
//youtube_id = d.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0];
|
||||
// http://www.youtube.com/watch?feature=player_embedded&v=0l-ivcnLrSc
|
||||
//http://www.youtube.com/watch?v=0l-ivcnLrSc
|
||||
media.type = "youtube"; |
||||
media.id = youtube_id; |
||||
success = true; |
||||
} else if (d.match('(player.)?vimeo\.com')) { |
||||
//vimeo_id = d.split(/video\/|http:\/\/vimeo\.com\//)[1].split(/[?&]/)[0];
|
||||
vimeo_id = d.split(/video\/|\/\/vimeo\.com\//)[1].split(/[?&]/)[0]; |
||||
|
||||
media.type = "vimeo"; |
||||
media.id = vimeo_id; |
||||
success = true; |
||||
} else if (d.match('(player.)?soundcloud\.com')) { |
||||
//soundcloud_url = unescape(d.split(/value="/)[1].split(/["]/)[0]);
|
||||
//soundcloud_id = soundcloud_url.split(/tracks\//)[1].split(/[&"]/)[0];
|
||||
media.type = "soundcloud"; |
||||
media.id = d; |
||||
success = true; |
||||
} else if (d.match('(www.)?twitter\.com')) { |
||||
trace("TWITTER MATCH"); |
||||
// https://twitter.com/#!/twitterapi/statuses/133640144317198338
|
||||
// https://twitter.com/#!/DeliciousHot/status/23189589820702720
|
||||
if (d.match("status\/")) { |
||||
twitter_id = d.split("status\/")[1]; |
||||
} else if (d.match("statuses\/")) { |
||||
twitter_id = d.split("statuses\/")[1]; |
||||
} else { |
||||
twitter_id = ""; |
||||
} |
||||
|
||||
media.type = "twitter"; |
||||
media.id = twitter_id; |
||||
success = true; |
||||
} else if (d.match("maps.google")) { |
||||
//maps.google.com
|
||||
media.type = "google-map"; |
||||
media.id = d.split(/src=['|"][^'|"]*?['|"]/gi); |
||||
//trace("google map " + media.id);
|
||||
success = true; |
||||
} else if (d.match("flickr.com/photos")) { |
||||
media.type = "flickr"; |
||||
//media.id = d.split('/photos/[^/]+/([0-9]+)/gi');
|
||||
|
||||
media.id = d.split("photos\/")[1].split("/")[1]; |
||||
media.link = d; |
||||
//media.id = media.id.split("/")[1];
|
||||
//trace("FLICKR " + media.id);
|
||||
success = true; |
||||
} else if (d.match(/jpg|jpeg|png|gif/i)) { |
||||
media.type = "image"; |
||||
media.id = d; |
||||
success = true; |
||||
} else if (VMM.FileExtention.googleDocType(d)) { |
||||
media.type = "googledoc"; |
||||
media.id = d; |
||||
success = true; |
||||
} else if (d.indexOf('http://') == 0) { |
||||
media.type = "website"; |
||||
media.id = d; |
||||
success = true; |
||||
} else { |
||||
trace("unknown media");
|
||||
media.type = "unknown"; |
||||
media.id = d; |
||||
success = true; |
||||
} |
||||
|
||||
if (success) {
|
||||
return media; |
||||
} else { |
||||
trace("No valid media id detected"); |
||||
trace(d); |
||||
} |
||||
return false; |
||||
} |
||||
} |
@ -1,7 +1,3 @@
|
||||
/* Core |
||||
================================================== */ |
||||
|
||||
|
||||
/* Slider |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.Slider == 'undefined') { |
@ -0,0 +1,334 @@
|
||||
/* TIMELINE SOURCE DATA PROCESSOR |
||||
================================================== */ |
||||
|
||||
if(typeof VMM.Timeline != 'undefined' && typeof VMM.Timeline.DataObj == 'undefined') { |
||||
|
||||
VMM.Timeline.DataObj = { |
||||
|
||||
data_obj: {}, |
||||
|
||||
model_array: [], |
||||
|
||||
getData: function(raw_data) { |
||||
|
||||
data = VMM.Timeline.DataObj.data_obj; |
||||
|
||||
|
||||
if (type.of(raw_data) != "string") { |
||||
|
||||
trace("DATA SOURCE: NOT JSON"); |
||||
trace("TRYING HTML PARSE"); |
||||
VMM.Timeline.DataObj.parseHTML(raw_data); |
||||
|
||||
} else { |
||||
|
||||
if (raw_data.match("%23")) { |
||||
|
||||
trace("DATA SOURCE: TWITTER SEARCH"); |
||||
VMM.Timeline.DataObj.model_Tweets.getData("%23medill"); |
||||
|
||||
} else if ( raw_data.match("spreadsheet") ) { |
||||
|
||||
trace("DATA SOURCE: GOOGLE SPREADSHEET"); |
||||
VMM.Timeline.DataObj.model_GoogleSpreadsheet.getData(raw_data); |
||||
|
||||
} else { |
||||
|
||||
trace("DATA SOURCE: JSON"); |
||||
VMM.getJSON(raw_data, VMM.Timeline.DataObj.parseJSON); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
}, |
||||
|
||||
parseHTML: function(d) { |
||||
trace("parseHTML"); |
||||
|
||||
var _data_obj = VMM.Timeline.DataObj.data_template_obj; |
||||
|
||||
/* Timeline start slide |
||||
================================================== */ |
||||
if (VMM.Element.find("#timeline section", "time")[0]) { |
||||
_data_obj.timeline.startDate = VMM.Element.html(VMM.Element.find("#timeline section", "time")[0]); |
||||
_data_obj.timeline.headline = VMM.Element.html(VMM.Element.find("#timeline section", "h2")); |
||||
_data_obj.timeline.text = VMM.Element.html(VMM.Element.find("#timeline section", "article")); |
||||
|
||||
var found_main_media = false; |
||||
|
||||
if (VMM.Element.find("#timeline section", "figure img").length != 0) { |
||||
found_main_media = true; |
||||
_data_obj.timeline.asset.media = VMM.Element.attr(VMM.Element.find("#timeline section", "figure img"), "src"); |
||||
} else if (VMM.Element.find("#timeline section", "figure a").length != 0) { |
||||
found_main_media = true; |
||||
_data_obj.timeline.asset.media = VMM.Element.attr(VMM.Element.find("#timeline section", "figure a"), "href"); |
||||
} else { |
||||
//trace("NOT FOUND");
|
||||
} |
||||
|
||||
if (found_main_media) { |
||||
if (VMM.Element.find("#timeline section", "cite").length != 0) { |
||||
_data_obj.timeline.asset.credit = VMM.Element.html(VMM.Element.find("#timeline section", "cite")); |
||||
} |
||||
if (VMM.Element.find(this, "figcaption").length != 0) { |
||||
_data_obj.timeline.asset.caption = VMM.Element.html(VMM.Element.find("#timeline section", "figcaption")); |
||||
} |
||||
} |
||||
} |
||||
|
||||
/* Timeline Date Slides |
||||
================================================== */ |
||||
VMM.Element.each("#timeline li", function(i, elem){ |
||||
|
||||
var valid_date = false; |
||||
|
||||
var _date = { |
||||
"type":"default", |
||||
"startDate":"", |
||||
"headline":"", |
||||
"text":"", |
||||
"asset": |
||||
{ |
||||
"media":"", |
||||
"credit":"", |
||||
"caption":"" |
||||
}, |
||||
"tags":"Optional" |
||||
}; |
||||
|
||||
if (VMM.Element.find(this, "time") != 0) { |
||||
|
||||
valid_date = true; |
||||
|
||||
_date.startDate = VMM.Element.html(VMM.Element.find(this, "time")[0]); |
||||
|
||||
if (VMM.Element.find(this, "time")[1]) { |
||||
_date.endDate = VMM.Element.html(VMM.Element.find(this, "time")[0]); |
||||
} |
||||
|
||||
_date.headline = VMM.Element.html(VMM.Element.find(this, "h3")); |
||||
|
||||
_date.text = VMM.Element.html(VMM.Element.find(this, "article")); |
||||
|
||||
var found_media = false; |
||||
if (VMM.Element.find(this, "figure img").length != 0) { |
||||
found_media = true; |
||||
_date.asset.media = VMM.Element.attr(VMM.Element.find(this, "figure img"), "src"); |
||||
} else if (VMM.Element.find(this, "figure a").length != 0) { |
||||
found_media = true; |
||||
_date.asset.media = VMM.Element.attr(VMM.Element.find(this, "figure a"), "href"); |
||||
} else { |
||||
//trace("NOT FOUND");
|
||||
} |
||||
|
||||
if (found_media) { |
||||
if (VMM.Element.find(this, "cite").length != 0) { |
||||
_date.asset.credit = VMM.Element.html(VMM.Element.find(this, "cite")); |
||||
} |
||||
if (VMM.Element.find(this, "figcaption").length != 0) { |
||||
_date.asset.caption = VMM.Element.html(VMM.Element.find(this, "figcaption")); |
||||
} |
||||
} |
||||
|
||||
trace(_date); |
||||
_data_obj.timeline.date.push(_date); |
||||
|
||||
} |
||||
|
||||
}); |
||||
|
||||
VMM.fireEvent(global, "DATAREADY", _data_obj); |
||||
|
||||
}, |
||||
|
||||
parseJSON: function(d) { |
||||
|
||||
if (d.timeline.type == "default") { |
||||
|
||||
trace("DATA SOURCE: JSON STANDARD TIMELINE"); |
||||
|
||||
VMM.fireEvent(global, "DATAREADY", d); |
||||
//return _data_obj.timeline;
|
||||
|
||||
} else if (d.timeline.type == "twitter") { |
||||
|
||||
trace("DATA SOURCE: JSON TWEETS"); |
||||
|
||||
VMM.Timeline.DataObj.model_Tweets.buildData(d); |
||||
|
||||
|
||||
} else { |
||||
trace("DATA SOURCE: NO IDEA"); |
||||
trace(type.of(d.timeline)); |
||||
}; |
||||
|
||||
}, |
||||
|
||||
/* MODEL OBJECTS |
||||
New Types of Data can be formatted for the timeline here |
||||
================================================== */ |
||||
|
||||
model_Tweets: { |
||||
|
||||
type: "twitter", |
||||
|
||||
buildData: function(raw_data) { |
||||
|
||||
VMM.bindEvent(global, VMM.Timeline.DataObj.model_Tweets.onTwitterDataReady, "TWEETSLOADED"); |
||||
VMM.ExternalAPI.twitter.getTweets(raw_data.timeline.tweets); |
||||
|
||||
}, |
||||
|
||||
getData: function(raw_data) { |
||||
|
||||
VMM.bindEvent(global, VMM.Timeline.DataObj.model_Tweets.onTwitterDataReady, "TWEETSLOADED"); |
||||
VMM.ExternalAPI.twitter.getTweetSearch(raw_data); |
||||
|
||||
}, |
||||
|
||||
onTwitterDataReady: function(e, d) { |
||||
|
||||
var _data_obj = VMM.Timeline.DataObj.data_template_obj; |
||||
|
||||
for(var i = 0; i < d.tweetdata.length; i++) { |
||||
|
||||
var _date = { |
||||
"type":"tweets", |
||||
"startDate":"", |
||||
"headline":"", |
||||
"text":"", |
||||
"asset": |
||||
{ |
||||
"media":"", |
||||
"credit":"", |
||||
"caption":"" |
||||
}, |
||||
"tags":"Optional" |
||||
}; |
||||
// pass in the 'created_at' string returned from twitter //
|
||||
// stamp arrives formatted as Tue Apr 07 22:52:51 +0000 2009 //
|
||||
|
||||
//var twit_date = VMM.ExternalAPI.twitter.parseTwitterDate(d.tweetdata[i].raw.created_at);
|
||||
//trace(twit_date);
|
||||
_date.startDate = d.tweetdata[i].raw.created_at; |
||||
|
||||
if (type.of(d.tweetdata[i].raw.from_user_name)) { |
||||
_date.headline = d.tweetdata[i].raw.from_user_name + " (<a href='https://twitter.com/" + d.tweetdata[i].raw.from_user + "'>" + "@" + d.tweetdata[i].raw.from_user + "</a>)" ;
|
||||
} else { |
||||
_date.headline = d.tweetdata[i].raw.user.name + " (<a href='https://twitter.com/" + d.tweetdata[i].raw.user.screen_name + "'>" + "@" + d.tweetdata[i].raw.user.screen_name + "</a>)" ; |
||||
|
||||
} |
||||
|
||||
_date.asset.media = d.tweetdata[i].content; |
||||
_data_obj.timeline.date.push(_date); |
||||
|
||||
}; |
||||
|
||||
VMM.fireEvent(global, "DATAREADY", _data_obj); |
||||
|
||||
} |
||||
}, |
||||
|
||||
model_GoogleSpreadsheet: { |
||||
|
||||
/* |
||||
TEMPLATE CAN BE FOUND HERE |
||||
https://docs.google.com/previewtemplate?id=0AppSVxABhnltdEhzQjQ4MlpOaldjTmZLclQxQWFTOUE&mode=public
|
||||
|
||||
*/ |
||||
type: "google spreadsheet", |
||||
|
||||
getData: function(raw_data) { |
||||
var _key = VMM.Util.getUrlVars(raw_data)["key"]; |
||||
var _url = "https://spreadsheets.google.com/feeds/list/" + _key + "/od6/public/values?alt=json"; |
||||
VMM.getJSON(_url, VMM.Timeline.DataObj.model_GoogleSpreadsheet.buildData); |
||||
|
||||
}, |
||||
|
||||
buildData: function(d) { |
||||
var _data_obj = VMM.Timeline.DataObj.data_template_obj; |
||||
|
||||
for(var i = 0; i < d.feed.entry.length; i++) { |
||||
|
||||
|
||||
var dd = d.feed.entry[i]; |
||||
|
||||
if (dd.gsx$titleslide.$t.match("start")) { |
||||
_data_obj.timeline.startDate = dd.gsx$startdate.$t; |
||||
_data_obj.timeline.headline = dd.gsx$headline.$t; |
||||
_data_obj.timeline.asset.media = dd.gsx$media.$t; |
||||
_data_obj.timeline.asset.caption = dd.gsx$mediacaption.$t; |
||||
_data_obj.timeline.asset.credit = dd.gsx$mediacredit.$t; |
||||
_data_obj.timeline.text = dd.gsx$text.$t; |
||||
_data_obj.timeline.type = "google spreadsheet"; |
||||
} else { |
||||
var _date = { |
||||
"type":"google spreadsheet", |
||||
"startDate":"", |
||||
"endDate":"", |
||||
"headline":"", |
||||
"text":"", |
||||
"type":"google spreadsheet", |
||||
"asset": |
||||
{ |
||||
"media":"", |
||||
"credit":"", |
||||
"caption":"" |
||||
}, |
||||
"tags":"Optional" |
||||
}; |
||||
|
||||
_date.endDate = dd.gsx$enddate.$t; |
||||
_date.startDate = dd.gsx$startdate.$t; |
||||
_date.headline = dd.gsx$headline.$t; |
||||
_date.asset.media = dd.gsx$media.$t; |
||||
_date.asset.caption = dd.gsx$mediacaption.$t; |
||||
_date.asset.credit = dd.gsx$mediacredit.$t; |
||||
_date.text = dd.gsx$text.$t; |
||||
|
||||
_data_obj.timeline.date.push(_date); |
||||
} |
||||
|
||||
|
||||
|
||||
}; |
||||
|
||||
VMM.fireEvent(global, "DATAREADY", _data_obj); |
||||
|
||||
} |
||||
|
||||
}, |
||||
|
||||
|
||||
/* TEMPLATE OBJECTS |
||||
================================================== */ |
||||
|
||||
data_template_obj: { |
||||
"timeline": { |
||||
"headline":"", |
||||
"description":"", |
||||
"asset": { |
||||
"media":"", |
||||
"credit":"", |
||||
"caption":"" |
||||
}, |
||||
"date": [] |
||||
} |
||||
}, |
||||
|
||||
date_obj: { |
||||
"startDate":"2012,2,2,11,30", |
||||
"headline":"", |
||||
"text":"", |
||||
"asset": |
||||
{ |
||||
"media":"http://youtu.be/vjVfu8-Wp6s", |
||||
"credit":"", |
||||
"caption":"" |
||||
}, |
||||
"tags":"Optional" |
||||
} |
||||
|
||||
}; |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,192 @@
|
||||
/* TOUCH SLIDER |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined' && typeof VMM.TouchSlider == 'undefined') { |
||||
|
||||
// VMM.TouchSlider.createSlidePanel(touch_object, move_object, w, padding, vertical, h) ;
|
||||
VMM.TouchSlider = { |
||||
createPanel: function(touch_object, move_object, w, padding, vertical, h) { |
||||
VMM.TouchSlider.vertical = false; |
||||
VMM.TouchSlider.vertical = vertical; |
||||
|
||||
var x = padding; |
||||
VMM.TouchSlider.width = w; |
||||
VMM.TouchSlider.height = h; |
||||
VMM.TouchSlider.makeTouchable(touch_object, move_object); |
||||
/* |
||||
if (sticky != null && sticky != "") { |
||||
VMM.TouchSlider.sticky = sticky; |
||||
} else { |
||||
VMM.TouchSlider.sticky = false; |
||||
} |
||||
*/ |
||||
// VMM.TouchSlider.sticky = sticky;
|
||||
|
||||
}, |
||||
|
||||
removePanel: function(touch_object) { |
||||
VMM.unbindEvent(touch_object, VMM.TouchSlider.onTouchStart, "touchstart"); |
||||
VMM.unbindEvent(touch_object, VMM.TouchSlider.onTouchMove, "touchmove"); |
||||
VMM.unbindEvent(touch_object, VMM.TouchSlider.onTouchEnd, "touchend"); |
||||
}, |
||||
|
||||
makeTouchable: function(touch_object, move_object) { |
||||
VMM.bindEvent(touch_object, VMM.TouchSlider.onTouchStart, "touchstart", {element: move_object}); |
||||
VMM.bindEvent(touch_object, VMM.TouchSlider.onTouchMove, "touchmove", {element: move_object}); |
||||
VMM.bindEvent(touch_object, VMM.TouchSlider.onTouchEnd, "touchend", {element: move_object}); |
||||
}, |
||||
onTouchStart: function(e) { |
||||
VMM.TouchSlider.touchStart(e.data.element, e); |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
return true; |
||||
}, |
||||
onTouchEnd: function(e) { |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
|
||||
if (VMM.TouchSlider.sliding) { |
||||
VMM.TouchSlider.sliding = false; |
||||
VMM.TouchSlider.touchEnd(e.data.element, e); |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
|
||||
}, |
||||
onTouchMove: function(e) { |
||||
VMM.TouchSlider.touchMove(e.data.element, e); |
||||
e.preventDefault(); |
||||
e.stopPropagation(); |
||||
return false; |
||||
}, |
||||
getLeft: function(elem) { |
||||
return parseInt(VMM.Element.css(elem, 'left').substring(0, VMM.Element.css(elem, 'left').length - 2), 10); |
||||
}, |
||||
getTop: function(elem) { |
||||
return parseInt(VMM.Element.css(elem, 'top').substring(0, VMM.Element.css(elem, 'top').length - 2), 10); |
||||
}, |
||||
touchStart: function(elem, e) { |
||||
|
||||
VMM.Element.css(elem, '-webkit-transition-duration', '0'); |
||||
|
||||
VMM.TouchSlider.startX = e.originalEvent.touches[0].screenX; |
||||
VMM.TouchSlider.startY = e.originalEvent.touches[0].screenY; |
||||
|
||||
VMM.TouchSlider.startLeft = VMM.TouchSlider.getLeft(elem); |
||||
VMM.TouchSlider.startTop = VMM.TouchSlider.getTop(elem); |
||||
|
||||
VMM.TouchSlider.touchStartTime = new Date().getTime(); |
||||
|
||||
}, |
||||
touchEnd: function(elem, e) { |
||||
if (VMM.TouchSlider.getLeft(elem) > 0) { |
||||
|
||||
//This means they dragged to the right past the first item
|
||||
|
||||
if (VMM.TouchSlider.vertical) { |
||||
VMM.Element.animate(elem, 1000, "", {"top": 0}); |
||||
} else { |
||||
VMM.Element.animate(elem, 1000, "", {"left": 0}); |
||||
} |
||||
|
||||
VMM.TouchSlider.startX = null; |
||||
VMM.TouchSlider.startY = null; |
||||
|
||||
VMM.fireEvent(elem, "TOUCHUPDATE", [0]); |
||||
|
||||
} else { |
||||
//This means they were just dragging within the bounds of the grid and we just need to handle the momentum and snap to the grid.
|
||||
VMM.TouchSlider.slideMomentum(elem, e); |
||||
} |
||||
}, |
||||
slideMomentum: function(elem, e) { |
||||
var slideAdjust = (new Date().getTime() - VMM.TouchSlider.touchStartTime) * 10; |
||||
var timeAdjust = slideAdjust; |
||||
|
||||
var left = VMM.TouchSlider.getLeft(elem); |
||||
var top = VMM.TouchSlider.getTop(elem); |
||||
|
||||
var changeX = 6000 * (Math.abs(VMM.TouchSlider.startLeft) - Math.abs(left)); |
||||
var changeY = 6000 * (Math.abs(VMM.TouchSlider.startTop) - Math.abs(top)); |
||||
|
||||
slideAdjust = Math.round(changeX / slideAdjust); |
||||
slideAdjustY = Math.round(changeY / slideAdjust); |
||||
|
||||
var newLeft = slideAdjust + left; |
||||
var newTop = slideAdjustY + top; |
||||
|
||||
var y = newTop % VMM.TouchSlider.height; |
||||
var t = newLeft % VMM.TouchSlider.width; |
||||
|
||||
|
||||
var _r_object = { |
||||
top: Math.min(0, newTop), |
||||
left: Math.min(0, newLeft), |
||||
time: timeAdjust |
||||
} |
||||
VMM.fireEvent(elem, "TOUCHUPDATE", [_r_object]); |
||||
/* |
||||
if (VMM.TouchSlider.sticky) { |
||||
trace("sticky"); |
||||
if ((Math.abs(t)) > ((VMM.TouchSlider.width / 2))) { |
||||
//Show the next cell
|
||||
newLeft -= (VMM.TouchSlider.width - Math.abs(t)); |
||||
} else { |
||||
//Stay on the current cell
|
||||
newLeft -= t; |
||||
} |
||||
|
||||
VMM.fireEvent(elem, "TOUCHUPDATE", [Math.min(0, newLeft)]); |
||||
|
||||
} else { |
||||
trace("not sticky"); |
||||
//VMM.TouchSlider.doSlide(elem, Math.min(0, newLeft), '0.5s');
|
||||
VMM.Element.animate(elem, 500, "", {"left": Math.min(0, newLeft)}); |
||||
} |
||||
*/ |
||||
|
||||
VMM.TouchSlider.startX = null; |
||||
VMM.TouchSlider.startY = null; |
||||
|
||||
}, |
||||
doSlide: function(elem, x, duration) { |
||||
VMM.Element.css(elem, '-webkit-transition-property', 'left'); |
||||
VMM.Element.css(elem, '-webkit-transition-duration', duration); |
||||
VMM.Element.css(elem, 'left', x); |
||||
}, |
||||
touchMove: function(elem, e) { |
||||
|
||||
if (!VMM.TouchSlider.sliding) { |
||||
//elem.parent().addClass('sliding');
|
||||
} |
||||
|
||||
VMM.TouchSlider.sliding = true; |
||||
|
||||
if (VMM.TouchSlider.vertical) { |
||||
|
||||
if (VMM.TouchSlider.startY > e.originalEvent.touches[0].screenY) { |
||||
VMM.Element.css(elem, 'top', -(VMM.TouchSlider.startY - e.originalEvent.touches[0].screenY - VMM.TouchSlider.startTop)); |
||||
VMM.TouchSlider.slidingTop = true; |
||||
} else { |
||||
var top = (e.originalEvent.touches[0].screenY - VMM.TouchSlider.startY + VMM.TouchSlider.startTop); |
||||
VMM.Element.css(elem, 'top', -(VMM.TouchSlider.startY - e.originalEvent.touches[0].screenY - VMM.TouchSlider.startTop)); |
||||
VMM.TouchSlider.slidingTop = false; |
||||
} |
||||
|
||||
} else { |
||||
|
||||
if (VMM.TouchSlider.startX > e.originalEvent.touches[0].screenX) { |
||||
VMM.Element.css(elem, 'left', -(VMM.TouchSlider.startX - e.originalEvent.touches[0].screenX - VMM.TouchSlider.startLeft)); |
||||
VMM.TouchSlider.slidingLeft = true; |
||||
} else { |
||||
var left = (e.originalEvent.touches[0].screenX - VMM.TouchSlider.startX + VMM.TouchSlider.startLeft); |
||||
VMM.Element.css(elem, 'left', -(VMM.TouchSlider.startX - e.originalEvent.touches[0].screenX - VMM.TouchSlider.startLeft)); |
||||
VMM.TouchSlider.slidingLeft = false; |
||||
} |
||||
|
||||
} |
||||
|
||||
|
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
|
||||
// @codekit-prepend "VMM.Timeline.js";
|
||||
/* LANGUAGE |
||||
================================================== */ |
||||
if(typeof VMM != 'undefined') { |
||||
VMM.Language = { |
||||
date: { |
||||
month: ["janúar", "febrúar", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "september", "október", "nóvember", "desember"], |
||||
month_abbr: ["jan.", "feb.", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "sept.", "okt.", "nóv.", "des."], |
||||
day: ["sunnudagur", "mánudagur", "þriðjudagur", "miðvikudagur", "fimmtudagur", "föstudagur", "laugardagur"], |
||||
day_abbr: ["sun.","mán.", "þri.", "mið.", "fim.", "fös.", "lau."], |
||||
},
|
||||
dateformats: { |
||||
year: "yyyy", |
||||
month_short: "mmm", |
||||
month: "mmmm yyyy", |
||||
full_short: "mmm d", |
||||
full: "mmmm d',' yyyy", |
||||
time_no_seconds_short: "hh:MM TT", |
||||
time_no_seconds_small_date: "hh: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>'", |
||||
}, |
||||
messages: { |
||||
loading_timeline: "Raða upp tímalínu... ", |
||||
return_to_title: "Til baka á forsíðu", |
||||
expand_timeline: "Stækka tímalínu", |
||||
contract_timeline: "Minnka tímalínu" |
||||
} |
||||
} |
||||
} |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue