src/js/utils.js
author veltr
Mon, 19 Mar 2012 18:46:17 +0100
branchpopcorn-port
changeset 834 573c7ca752e0
parent 830 18ca612e9ff0
child 835 a8af9da7c622
permissions -rw-r--r--
Adapted Stackgraph for Cinecast
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     1
/* utils.js - various utils that don't belong anywhere else */
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     2
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     3
/* trace function, for debugging */
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     4
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     5
IriSP.traceNum = 0;
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     6
IriSP.trace = function( msg, value ) {
73
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
     7
/*
31
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     8
	if( IriSP.config.gui.debug === true ) {
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
     9
		IriSP.traceNum += 1;
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
    10
		IriSP.jQuery( "<div>"+IriSP.traceNum+" - "+msg+" : "+value+"</div>" ).appendTo( "#Ldt-output" );
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
    11
	}
73
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    12
*/
31
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
    13
};
cbb1425bc769 begun breaking the code across multiple files.
hamidouk
parents:
diff changeset
    14
73
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    15
/* used in callbacks - because in callbacks we lose "this",
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    16
   we need to have a special function which wraps "this" in 
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    17
   a closure. This way, the 
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    18
*/   
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    19
IriSP.wrap = function (obj, fn) {
253
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    20
  return function() {    
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    21
    var args = Array.prototype.slice.call(arguments, 0);
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    22
    return fn.apply(obj, args);
73
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    23
  }
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    24
}
a8192c57c87d added a function to make closures (for use in callbacks).
hamidouk
parents: 60
diff changeset
    25
99
912f100fecb0 added a small utility function to convert a time to a progression percentage.
hamidouk
parents: 78
diff changeset
    26
/* convert a time to a percentage in the media */
103
2dfd89e91c3a added a method to sort the json annotations. changed the tests accordingly.
hamidouk
parents: 99
diff changeset
    27
IriSP.timeToPourcent = function(time, timetotal){
253
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    28
	var time = Math.abs(time);
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    29
  var timetotal = Math.abs(timetotal);
95c6b77f005e added more test for utility functions.
hamidouk
parents: 252
diff changeset
    30
  
160
d3f336807ec3 a little tweak to timeToPourcent.
hamidouk
parents: 103
diff changeset
    31
	return Math.floor((time/timetotal) * 100);
99
912f100fecb0 added a small utility function to convert a time to a progression percentage.
hamidouk
parents: 78
diff changeset
    32
};
912f100fecb0 added a small utility function to convert a time to a progression percentage.
hamidouk
parents: 78
diff changeset
    33
256
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    34
IriSP.padWithZeros = function(num) {
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    35
  if (Math.abs(num) < 10) {
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    36
    return "0" + num.toString();
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    37
  } else {
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    38
    return num.toString();
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    39
  }
8e1181b855bd added a function to pad a number with zeros. waiting for the helpers to land into
hamidouk
parents: 254
diff changeset
    40
};
553
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    41
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    42
/* convert a number of milliseconds to a tuple of the form 
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    43
   [hours, minutes, seconds]
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    44
*/
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    45
IriSP.msToTime = function(ms) {
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    46
  return IriSP.secondsToTime(ms / 1000);
10d08f43c534 widget works now more or less like in samuel's crea.
hamidouk
parents: 502
diff changeset
    47
}
252
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    48
/* convert a number of seconds to a tuple of the form 
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    49
   [hours, minutes, seconds]
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    50
*/
254
cafaa694b709 fixed the conversion function to accomodate mustache.
hamidouk
parents: 253
diff changeset
    51
IriSP.secondsToTime = function(secs) {  
252
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    52
  var hours = Math.abs(parseInt( secs / 3600 ) % 24);
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    53
  var minutes = Math.abs(parseInt( secs / 60 ) % 60);
254
cafaa694b709 fixed the conversion function to accomodate mustache.
hamidouk
parents: 253
diff changeset
    54
  var seconds = parseFloat(Math.abs(secs % 60).toFixed(0));
252
fd84e0fb26d8 added a function to convert a number of seconds to an hour, minutes, seconds.
hamidouk
parents: 160
diff changeset
    55
  
308
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    56
  var toString_fn = function() {
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    57
    var ret = "";
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    58
    if (hours > 0)
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    59
       ret = IriSP.padWithZeros(this.hours) + ":";
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    60
    ret += IriSP.padWithZeros(this.minutes) + ":" + IriSP.padWithZeros(this.seconds);
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    61
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    62
    return ret;
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    63
  }
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
    64
  return {"hours" : hours, "minutes" : minutes, "seconds" : seconds, toString: toString_fn};
285
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    65
};
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    66
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    67
/* format a tweet - replaces @name by a link to the profile, #hashtag, etc. */
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    68
IriSP.formatTweet = function(tweet) {
374
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    69
  /*
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    70
    an array of arrays which hold a regexp and its replacement.
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    71
  */
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    72
  var regExps = [
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    73
    /* copied from http://codegolf.stackexchange.com/questions/464/shortest-url-regex-match-in-javascript/480#480 */
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    74
    [/((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/gi, "<a href='$1'>$1</a>"],
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    75
    [/@(\w+)/gi, "<a href='http://twitter.com/$1'>@$1</a>"], // matches a @handle
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    76
    [/#(\w+)/gi, "<a href='http://twitter.com/search?q=%23$1'>#$1</a>"],// matches a hashtag
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    77
    [/(\+\+)/gi, "<span class='Ldt-PolemicPlusPlus'>$1</span>"],
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    78
    [/(--)/gi, "<span class='Ldt-PolemicMinusMinus'>$1</span>"],
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    79
    [/(==)/gi, "<span class='Ldt-PolemicEqualEqual'>$1</span>"],
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    80
    [/(\?\?)/gi, "<span class='Ldt-PolemicQuestion'>$1</span>"]
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    81
  ]; 
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    82
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    83
  var i = 0;
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    84
  for(i = 0; i < regExps.length; i++) {
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    85
     tweet = tweet.replace(regExps[i][0], regExps[i][1]);
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    86
  }
285
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    87
  
374
138e76fe73a6 extended the function to format tweet to apply styles to the polemic syntax.
hamidouk
parents: 369
diff changeset
    88
  return tweet;
285
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    89
};
b7aa28af2c10 added a function to format a tweet.
hamidouk
parents: 256
diff changeset
    90
354
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    91
IriSP.countProperties = function(obj) {
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    92
    var count = 0;
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    93
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    94
    for(var prop in obj) {
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    95
        if(obj.hasOwnProperty(prop))
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    96
                ++count;
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    97
    }
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    98
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
    99
    return count;
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
   100
};
002c314cabbf added a function to count the number of fields of an object.
hamidouk
parents: 308
diff changeset
   101
358
430c1a7a09de got rid of useless LdtPlayer.js -moved the necessary lines of code in main.js
hamidouk
parents: 354
diff changeset
   102
// conversion de couleur Decimal vers HexaDecimal || 000 si fff
430c1a7a09de got rid of useless LdtPlayer.js -moved the necessary lines of code in main.js
hamidouk
parents: 354
diff changeset
   103
IriSP.DEC_HEXA_COLOR = function (dec) {
640
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   104
  var val = +dec;
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   105
  var str = val.toString(16);
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   106
  var zeroes = "";
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   107
  if (str.length < 6) {
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   108
    for (var i = 0; i < 6 - str.length; i++)
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   109
      zeroes += "0";
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   110
  }
a6b64eeeb76d redid samuel's decimal to hexa conversion function.
hamidouk
parents: 634
diff changeset
   111
  return zeroes + str;
358
430c1a7a09de got rid of useless LdtPlayer.js -moved the necessary lines of code in main.js
hamidouk
parents: 354
diff changeset
   112
};
430c1a7a09de got rid of useless LdtPlayer.js -moved the necessary lines of code in main.js
hamidouk
parents: 354
diff changeset
   113
362
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   114
/* shortcut to have global variables in templates */
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   115
IriSP.templToHTML = function(template, values) {
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   116
  var params = IriSP.jQuery.extend(IriSP.default_templates_vars, values);
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   117
  return Mustache.to_html(template, params);
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   118
};
0b1bf06c28ed added a wrapper around the templating engine, to be able to have default values
hamidouk
parents: 358
diff changeset
   119
369
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   120
/* we need to be stricter than encodeURIComponent,
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   121
   because of twitter
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   122
*/  
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   123
IriSP.encodeURI = function(str) {
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   124
  return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').  
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   125
                                 replace(/\)/g, '%29').replace(/\*/g, '%2A');  
834
573c7ca752e0 Adapted Stackgraph for Cinecast
veltr
parents: 830
diff changeset
   126
}
573c7ca752e0 Adapted Stackgraph for Cinecast
veltr
parents: 830
diff changeset
   127
573c7ca752e0 Adapted Stackgraph for Cinecast
veltr
parents: 830
diff changeset
   128
IriSP.jqId = function (myid) { 
573c7ca752e0 Adapted Stackgraph for Cinecast
veltr
parents: 830
diff changeset
   129
   return IriSP.jQuery('#' + myid.replace(/(:|\.)/g,'\\$1'));
573c7ca752e0 Adapted Stackgraph for Cinecast
veltr
parents: 830
diff changeset
   130
 }  
369
70bc85b31c6d added a function to strictly encode uri components.
hamidouk
parents: 362
diff changeset
   131
502
0b3523c65578 removed guid function.
hamidouk
parents: 497
diff changeset
   132
IriSP.__guidCounter = 0;
497
f671cbaae9db added a guid function.
hamidouk
parents: 479
diff changeset
   133
IriSP.guid = function(prefix) {
502
0b3523c65578 removed guid function.
hamidouk
parents: 497
diff changeset
   134
  IriSP.__guidCounter += 1;
0b3523c65578 removed guid function.
hamidouk
parents: 497
diff changeset
   135
  return prefix + IriSP.__guidCounter;
497
f671cbaae9db added a guid function.
hamidouk
parents: 479
diff changeset
   136
};
575
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   137
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   138
/** returns an url to share on facebook */
650
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   139
IriSP.mkFbUrl = function(url, text) {
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   140
  if (typeof(text) === "undefined")
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   141
    text = "I'm watching ";
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   142
  
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   143
  return "http://www.facebook.com/share.php?u=" + IriSP.encodeURI(text) + IriSP.shorten_url(url);
575
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   144
};
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   145
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   146
/** returns an url to share on twitter */
650
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   147
IriSP.mkTweetUrl = function(url, text) {
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   148
  if (typeof(text) === "undefined")
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   149
    text = "I'm watching ";
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   150
  
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   151
  return "http://twitter.com/home?status=" + IriSP.encodeURI(text) + IriSP.shorten_url(url);
575
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   152
};
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   153
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   154
/** returns an url to share on google + */
650
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   155
IriSP.mkGplusUrl = function(url, text) {
720
08b8b3ce30e4 added a function to share on google plus.
hamidouk
parents: 686
diff changeset
   156
  return "https://plusone.google.com/_/+1/confirm?hl=en&url=" + IriSP.shorten_url(url);
575
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   157
};
8f483e430f51 added link sharing for created annotations.
hamidouk
parents: 553
diff changeset
   158
634
9de33a5ef2b3 added a utility function to test for both null and undefined.
hamidouk
parents: 584
diff changeset
   159
/** test if a value is null or undefined */
9de33a5ef2b3 added a utility function to test for both null and undefined.
hamidouk
parents: 584
diff changeset
   160
IriSP.null_or_undefined = function(val) {
9de33a5ef2b3 added a utility function to test for both null and undefined.
hamidouk
parents: 584
diff changeset
   161
  return (typeof(val) === "undefined" || val === null);
650
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   162
};
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   163
820
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   164
/** get a property that can have multiple names **/
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   165
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   166
IriSP.get_aliased = function(_obj, _aliases) {
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   167
    for (var _i = 0; _i < _aliases.length; _i++) {
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   168
        if (typeof _obj[_aliases[_i]] !== "undefined") {
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   169
            return _obj[_aliases[_i]];
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   170
        }
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   171
    }
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   172
    return null;
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   173
}
7968346b9689 Added compatibility with cinecast format (with get_aliased)
veltr
parents: 720
diff changeset
   174
650
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   175
/** issue a call to an url shortener and return the shortened url */
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   176
IriSP.shorten_url = function(url) {
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   177
  if (IriSP.config.shortener.hasOwnProperty("shortening_function"))
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   178
    return IriSP.config.shortener.shortening_function(url);
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   179
    
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   180
  return url;
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   181
};
54ad76d6f9fe added a function to shorten an url
hamidouk
parents: 640
diff changeset
   182
686
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   183
/** Similar to substr but remove the last word if
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   184
    we're breaking a word in two.
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   185
 */ 
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   186
IriSP.clean_substr = function(str, start, end) {
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   187
  var s = str.substr(start, end).substr(start, end).split(" ");
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   188
  s.pop();
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   189
  return s.join(" ");
f1dbe6a6e740 made a function to cleanly cut a string.
hamidouk
parents: 650
diff changeset
   190
};
60
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   191
/* for ie compatibility
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   192
if (Object.prototype.__defineGetter__&&!Object.defineProperty) {
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   193
   Object.defineProperty=function(obj,prop,desc) {
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   194
      if ("get" in desc) obj.__defineGetter__(prop,desc.get);
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   195
      if ("set" in desc) obj.__defineSetter__(prop,desc.set);
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   196
   }
ffc038fdb8f1 commented ie8 helper function
hamidouk
parents: 31
diff changeset
   197
}
308
495ef0f3e483 added a toString method to the object returned by IriSP.secondsToTime.
hamidouk
parents: 297
diff changeset
   198
*/
830
18ca612e9ff0 Lots of changes
veltr
parents: 820
diff changeset
   199
18ca612e9ff0 Lots of changes
veltr
parents: 820
diff changeset
   200
/* Creates regexps from text */
18ca612e9ff0 Lots of changes
veltr
parents: 820
diff changeset
   201
IriSP.regexpFromText = function(_text) {
18ca612e9ff0 Lots of changes
veltr
parents: 820
diff changeset
   202
    return new RegExp('(' + _text.replace(/(\W)/gim,'\\$1') + ')','gim');
18ca612e9ff0 Lots of changes
veltr
parents: 820
diff changeset
   203
}