summaryrefslogtreecommitdiffstats
path: root/static/functions/script_start.js
diff options
context:
space:
mode:
authorNightOath <WhatNightOath@gmail.com>2011-03-28 15:21:28 +0100
committerNightOath <WhatNightOath@gmail.com>2011-03-28 15:21:28 +0100
commitff67a811d4dfbb34c9249e40d73f9a00930423e9 (patch)
tree9af54ef6e154afb0a6bfcacc85c55fa23ca8988b /static/functions/script_start.js
downloadGazelle-ff67a811d4dfbb34c9249e40d73f9a00930423e9.zip
Gazelle-ff67a811d4dfbb34c9249e40d73f9a00930423e9.tar.gz
Gazelle-ff67a811d4dfbb34c9249e40d73f9a00930423e9.tar.bz2
Initial import from revision 11440
Diffstat (limited to 'static/functions/script_start.js')
-rw-r--r--static/functions/script_start.js285
1 files changed, 285 insertions, 0 deletions
diff --git a/static/functions/script_start.js b/static/functions/script_start.js
new file mode 100644
index 0000000..fbc8133
--- /dev/null
+++ b/static/functions/script_start.js
@@ -0,0 +1,285 @@
+"use strict";
+
+/* Prototypes */
+String.prototype.trim = function () {
+ return this.replace(/^\s+|\s+$/g, '');
+};
+
+var listener = {
+ set: function (el,type,callback) {
+ if (document.addEventListener) {
+ el.addEventListener(type, callback, false);
+ } else {
+ // IE hack courtesy of http://blog.stchur.com/2006/10/12/fixing-ies-attachevent-failures
+ var f = function() {
+ callback.call(el);
+ };
+ el.attachEvent('on'+type, f);
+ }
+ }
+};
+
+/* Site wide functions */
+
+// http://www.thefutureoftheweb.com/blog/adddomloadevent
+// retrieved 2010-08-12
+var addDOMLoadEvent=(function(){var e=[],t,s,n,i,o,d=document,w=window,r='readyState',c='onreadystatechange',x=function(){n=1;clearInterval(t);while(i=e.shift())i();if(s)s[c]=''};return function(f){if(n)return f();if(!e[0]){d.addEventListener&&d.addEventListener("DOMContentLoaded",x,false);/*@cc_on@*//*@if(@_win32)d.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");s=d.getElementById("__ie_onload");s[c]=function(){s[r]=="complete"&&x()};/*@end@*/if(/WebKit/i.test(navigator.userAgent))t=setInterval(function(){/loaded|complete/.test(d[r])&&x()},10);o=w.onload;w.onload=function(){x();o&&o()}}e.push(f)}})();
+
+//PHP ports
+function isset(variable) {
+ return (typeof(variable) === 'undefined') ? false : true;
+}
+
+function is_array(input) {
+ return typeof(input) === 'object' && input instanceof Array;
+}
+
+function function_exists(function_name) {
+ return (typeof this.window[function_name] === 'function');
+}
+
+function html_entity_decode(str) {
+ var el = document.createElement("div");
+ el.innerHTML = str;
+ for(var i = 0, ret = ''; i < el.childNodes.length; i++) {
+ ret += el.childNodes[i].nodeValue;
+ }
+ return ret;
+}
+
+function get_size(size) {
+ var steps = 0;
+ while(size>=1024) {
+ steps++;
+ size=size/1024;
+ }
+ var ext;
+ switch(steps) {
+ case 1: ext = ' B';
+ break;
+ case 1: ext = ' KB';
+ break;
+ case 2: ext = ' MB';
+ break;
+ case 3: ext = ' GB';
+ break;
+ case 4: ext = ' TB';
+ break;
+ case 5: ext = ' PB';
+ break;
+ case 6: ext = ' EB';
+ break;
+ case 7: ext = ' ZB';
+ break;
+ case 8: ext = ' EB';
+ break;
+ default: "0.00 MB";
+ }
+ return (size.toFixed(2) + ext);
+}
+
+function get_ratio_color(ratio) {
+ if (ratio < 0.1) { return 'r00'; }
+ if (ratio < 0.2) { return 'r01'; }
+ if (ratio < 0.3) { return 'r02'; }
+ if (ratio < 0.4) { return 'r03'; }
+ if (ratio < 0.5) { return 'r04'; }
+ if (ratio < 0.6) { return 'r05'; }
+ if (ratio < 0.7) { return 'r06'; }
+ if (ratio < 0.8) { return 'r07'; }
+ if (ratio < 0.9) { return 'r08'; }
+ if (ratio < 1) { return 'r09'; }
+ if (ratio < 2) { return 'r10'; }
+ if (ratio < 5) { return 'r20'; }
+ return 'r50';
+}
+
+function ratio(dividend, divisor, color) {
+ if(!color) {
+ color = true;
+ }
+ if(divisor == 0 && dividend == 0) {
+ return '--';
+ } else if(divisor == 0) {
+ return '<span class="r99">∞</span>';
+ } else if(dividend == 0 && divisor > 0) {
+ return '<span class="r00">-∞</span>';
+ }
+ var rat = ((dividend/divisor)-0.005).toFixed(2); //Subtract .005 to floor to 2 decimals
+ if(color) {
+ var col = get_ratio_color(rat);
+ if(col) {
+ rat = '<span class="'+col+'">'+rat+'</span>';
+ }
+ }
+ return rat;
+}
+
+
+function save_message(message) {
+ var messageDiv = document.createElement("div");
+ messageDiv.className = "save_message";
+ messageDiv.innerHTML = message;
+ $("#content").raw().insertBefore(messageDiv,$("#content").raw().firstChild);
+}
+
+function error_message(message) {
+ var messageDiv = document.createElement("div");
+ messageDiv.className = "error_message";
+ messageDiv.innerHTML = message;
+ $("#content").raw().insertBefore(messageDiv,$("#content").raw().firstChild);
+}
+
+//returns key if true, and false if false better than the php funciton
+function in_array(needle, haystack, strict) {
+ if (strict === undefined) {
+ strict = false;
+ }
+ for (var key in haystack) {
+ if ((haystack[key] == needle && strict === false) || haystack[key] === needle) {
+ return true;
+ }
+ }
+ return false;
+}
+
+function array_search(needle, haystack, strict) {
+ if (strict === undefined) {
+ strict = false;
+ }
+ for (var key in haystack) {
+ if ((strict === false && haystack[key] == needle) || haystack[key] === needle) {
+ return key;
+ }
+ }
+ return false;
+}
+
+var util = function (selector, context) {
+ return new util.fn.init(selector, context);
+}
+
+
+util.fn = util.prototype = {
+ objects: new Array(),
+ init: function (selector, context) {
+ if(typeof(selector) == 'object') {
+ this.objects[0] = selector;
+ } else {
+ this.objects = Sizzle(selector, context);
+ }
+ return this;
+ },
+ results: function () {
+ return this.objects.length;
+ },
+ show: function () {
+ return this.remove_class('hidden');
+ },
+ hide: function () {
+ return this.add_class('hidden');
+ },
+ toggle: function () {
+ //Should we interate and invert all entries, or just go by the first?
+ if (!in_array('hidden', this.objects[0].className.split(' '))) {
+ this.add_class('hidden');
+ } else {
+ this.remove_class('hidden');
+ }
+ return this;
+ },
+ listen: function (event, callback) {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ var object = this.objects[i];
+ if (document.addEventListener) {
+ object.addEventListener(event, callback, false);
+ } else {
+ object.attachEvent('on' + event, callback);
+ }
+ }
+ return this;
+ },
+ remove: function () {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ var object = this.objects[i];
+ object.parentNode.removeChild(object);
+ }
+ return this;
+ },
+ add_class: function (class_name) {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ var object = this.objects[i];
+ if (object.className === '') {
+ object.className = class_name;
+ } else if (!in_array(class_name, object.className.split(' '))) {
+ object.className = object.className + ' ' + class_name;
+ }
+ }
+ return this;
+ },
+ remove_class: function (class_name) {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ var object = this.objects[i];
+ var classes = object.className.split(' ');
+ var result = array_search(class_name, classes)
+ if (result === false) {
+ //return this;
+ }
+ delete classes[result];
+ object.className = classes.join(' ');
+ }
+ return this;
+ },
+ has_class: function(class_name) {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ var object = this.objects[i];
+ var classes = object.className.split(' ');
+ if(array_search(class_name, classes)) {
+ return true;
+ }
+ }
+ return false;
+ },
+ disable : function () {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ this.objects[i].disabled = true;
+ }
+ return this;
+ },
+ html : function (html) {
+ for (var i=0,il=this.objects.length;i<il;i++) {
+ this.objects[i].innerHTML = html;
+ }
+ return this;
+ },
+ raw: function (number) {
+ if (number === undefined) {
+ number = 0;
+ }
+ return this.objects[number];
+ },
+ nextElementSibling: function () {
+ here = this.objects[0];
+ if (here.nextElementSibling) {
+ return $(here.nextElementSibling);
+ }
+ do {
+ here = here.nextSibling;
+ } while (here.nodeType != 1);
+ return $(here);
+ },
+ previousElementSibling: function () {
+ here = this.objects[0];
+ if (here.previousElementSibling) {
+ return $(here.previousElementSibling);
+ }
+ do {
+ here = here.nextSibling;
+ } while (here.nodeType != 1);
+ return $(here);
+ }
+}
+
+
+util.fn.init.prototype = util.fn;
+var $ = util;