/* Shiny JS, Framework
This code is copyright (c) Ernesto Mendez 2010.
http://der-design.com */
$ = jQuery;
IE = $.browser.msie;
NOT_IE = ! $.browser.msie;
function get_metavar(meta) {
var selector = 'meta[name=' + meta + ']';
return $(selector).attr('content');
}
function append_slash(url) {
url += ( url[url.length-1] != 'default.htm' ) ? 'default.htm' : '';
return url;
}
function add_action(where, callback) {
try {hooks;} catch(e) {hooks = [];}
if ( ! hooks[where] ) {hooks[where] = [];}
hooks[where].push(callback);
}
function do_action(where) {
try {hooks} catch(e) {return false;}
if ( ! hooks[where] ) {return false;}
for ( var i in hooks[where] ) {
var c = hooks[where][i];
c();
}
}
function is_ie7() {
return (navigator.appVersion.indexOf("MSIE 7.")==-1) ? false : true;
}
function is_ie8() {
return (navigator.appVersion.indexOf("MSIE 8.")==-1) ? false : true;
}
function maxval(values) {
var max = 0;
for ( var i in values ) {
max = ( values[i] >= max ) ? values[i] : max;
}
return max;
}
function cycle(increment, current, length) {
increment = parseInt(increment);
current = parseInt(current);
length = parseInt(length);
var pos = current + increment;
if (pos == 0) {return length;}
if (pos > length) {return 1;}
return pos;
}
function basename(url) {
url = url.split('/');
var name = url[url.length-1];
return name;
}
function in_array(needle, haystack) {
for ( var i=0; i < haystack.length; i++) {
if ( needle == haystack[i]) { return true; }
}
return false;
}
function common_lib_functions() {
$('a[rel=_blank]').attr('target', '_blank');
}
function theme_path(file) {
var color_theme = get_metavar('shiny_color_theme');
switch(color_theme) {
case 'default':
return template_directory + 'core/images/' + file;
break;
default:
return template_directory + 'core/styles/' + color_theme + '/' + basename(file);
break;
}
}
// Extensions
// TWITTER
(function($){
$.fn.tweets = function(options) {
$.ajaxSetup({ cache: true });
var defaults = {
tweets: 1
};
var options = $.extend(defaults, options);
return this.each(function() {
var obj = $(this);
$.getJSON('../twitter.com/statuses/user_timeline/' + options.username +'.json@count=' + options.tweets +'&callback=?', function(data) {
$.each(data, function(i, tweet) {
if( tweet.text !== undefined ) {
tweet.text = tweet.text
.replace(/#(.*?)(\s|$)/g,'#$1 ')
.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,'$& ')
.replace(/@(.*?)(\s|\(|\)|$)/g,'@$1 $2');
options.callback(tweet.text);
}
});
});
});
};
})(jQuery);
// FLICKR WIDGET
function init_flickr_widgets() {
var c = 1;
$('.der-flickr').each(function() {$(this).attr('id','flickr-widget-' + c);c+=1;});
$('.der-flickr').each(function() {
var query = $(this).find('.query').attr('href');
query = $.base64Encode(query);
query = encodeURIComponent(query);
var id = $(this).attr('id');
var url = append_slash(template_directory) + 'includes/ajax/flickr_ajax.php@id=' + id + '&q=' + query;
$.ajax({
url: url,
cache: false,
success: function(code){
eval(code);
}
});
});
}