web/rsln-opendata/res/metadataplayer/test/css-dock-menu/js/iutil.js
author Samuel Huron <samuel.huron@centrepompidou.fr>
Tue, 15 Mar 2011 13:46:46 +0100
changeset 66 8a382087127f
permissions -rw-r--r--
rsln-opendata
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     1
/**
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     2
 * Interface Elements for jQuery
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     3
 * utility function
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     4
 *
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     5
 * http://interface.eyecon.ro
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     6
 *
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     7
 * Copyright (c) 2006 Stefan Petre
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     8
 * Dual licensed under the MIT (MIT-LICENSE.txt)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
     9
 * and GPL (GPL-LICENSE.txt) licenses.
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    10
 *
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    11
 *
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    12
 */
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    13
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    14
jQuery.iUtil = {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    15
	getPosition : function(e)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    16
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    17
		var x = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    18
		var y = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    19
		var es = e.style;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    20
		var restoreStyles = false;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    21
		if (jQuery(e).css('display') == 'none') {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    22
			var oldVisibility = es.visibility;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    23
			var oldPosition = es.position;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    24
			restoreStyles = true;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    25
			es.visibility = 'hidden';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    26
			es.display = 'block';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    27
			es.position = 'absolute';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    28
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    29
		var el = e;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    30
		while (el){
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    31
			x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderLeftWidth)||0:0);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    32
			y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderTopWidth)||0:0);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    33
			el = el.offsetParent;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    34
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    35
		el = e;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    36
		while (el && el.tagName  && el.tagName.toLowerCase() != 'body')
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    37
		{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    38
			x -= el.scrollLeft||0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    39
			y -= el.scrollTop||0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    40
			el = el.parentNode;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    41
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    42
		if (restoreStyles == true) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    43
			es.display = 'none';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    44
			es.position = oldPosition;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    45
			es.visibility = oldVisibility;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    46
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    47
		return {x:x, y:y};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    48
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    49
	getPositionLite : function(el)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    50
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    51
		var x = 0, y = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    52
		while(el) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    53
			x += el.offsetLeft || 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    54
			y += el.offsetTop || 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    55
			el = el.offsetParent;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    56
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    57
		return {x:x, y:y};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    58
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    59
	getSize : function(e)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    60
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    61
		var w = jQuery.css(e,'width');
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    62
		var h = jQuery.css(e,'height');
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    63
		var wb = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    64
		var hb = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    65
		var es = e.style;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    66
		if (jQuery(e).css('display') != 'none') {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    67
			wb = e.offsetWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    68
			hb = e.offsetHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    69
		} else {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    70
			var oldVisibility = es.visibility;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    71
			var oldPosition = es.position;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    72
			es.visibility = 'hidden';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    73
			es.display = 'block';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    74
			es.position = 'absolute';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    75
			wb = e.offsetWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    76
			hb = e.offsetHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    77
			es.display = 'none';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    78
			es.position = oldPosition;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    79
			es.visibility = oldVisibility;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    80
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    81
		return {w:w, h:h, wb:wb, hb:hb};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    82
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    83
	getSizeLite : function(el)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    84
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    85
		return {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    86
			wb:el.offsetWidth||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    87
			hb:el.offsetHeight||0
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    88
		};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    89
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    90
	getClient : function(e)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    91
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    92
		var h, w, de;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    93
		if (e) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    94
			w = e.clientWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    95
			h = e.clientHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    96
		} else {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    97
			de = document.documentElement;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    98
			w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
    99
			h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   100
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   101
		return {w:w,h:h};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   102
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   103
	getScroll : function (e)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   104
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   105
		var t=0, l=0, w=0, h=0, iw=0, ih=0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   106
		if (e && e.nodeName.toLowerCase() != 'body') {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   107
			t = e.scrollTop;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   108
			l = e.scrollLeft;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   109
			w = e.scrollWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   110
			h = e.scrollHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   111
			iw = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   112
			ih = 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   113
		} else  {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   114
			if (document.documentElement) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   115
				t = document.documentElement.scrollTop;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   116
				l = document.documentElement.scrollLeft;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   117
				w = document.documentElement.scrollWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   118
				h = document.documentElement.scrollHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   119
			} else if (document.body) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   120
				t = document.body.scrollTop;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   121
				l = document.body.scrollLeft;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   122
				w = document.body.scrollWidth;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   123
				h = document.body.scrollHeight;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   124
			}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   125
			iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   126
			ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   127
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   128
		return { t: t, l: l, w: w, h: h, iw: iw, ih: ih };
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   129
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   130
	getMargins : function(e, toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   131
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   132
		var el = jQuery(e);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   133
		var t = el.css('marginTop') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   134
		var r = el.css('marginRight') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   135
		var b = el.css('marginBottom') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   136
		var l = el.css('marginLeft') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   137
		if (toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   138
			return {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   139
				t: parseInt(t)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   140
				r: parseInt(r)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   141
				b: parseInt(b)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   142
				l: parseInt(l)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   143
			};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   144
		else
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   145
			return {t: t, r: r,	b: b, l: l};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   146
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   147
	getPadding : function(e, toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   148
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   149
		var el = jQuery(e);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   150
		var t = el.css('paddingTop') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   151
		var r = el.css('paddingRight') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   152
		var b = el.css('paddingBottom') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   153
		var l = el.css('paddingLeft') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   154
		if (toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   155
			return {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   156
				t: parseInt(t)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   157
				r: parseInt(r)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   158
				b: parseInt(b)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   159
				l: parseInt(l)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   160
			};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   161
		else
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   162
			return {t: t, r: r,	b: b, l: l};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   163
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   164
	getBorder : function(e, toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   165
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   166
		var el = jQuery(e);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   167
		var t = el.css('borderTopWidth') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   168
		var r = el.css('borderRightWidth') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   169
		var b = el.css('borderBottomWidth') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   170
		var l = el.css('borderLeftWidth') || '';
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   171
		if (toInteger)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   172
			return {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   173
				t: parseInt(t)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   174
				r: parseInt(r)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   175
				b: parseInt(b)||0,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   176
				l: parseInt(l)||0
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   177
			};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   178
		else
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   179
			return {t: t, r: r,	b: b, l: l};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   180
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   181
	getPointer : function(event)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   182
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   183
		var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   184
		var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   185
		return {x:x, y:y};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   186
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   187
	traverseDOM : function(nodeEl, func)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   188
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   189
		func(nodeEl);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   190
		nodeEl = nodeEl.firstChild;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   191
		while(nodeEl){
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   192
			jQuery.iUtil.traverseDOM(nodeEl, func);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   193
			nodeEl = nodeEl.nextSibling;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   194
		}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   195
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   196
	purgeEvents : function(nodeEl)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   197
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   198
		jQuery.iUtil.traverseDOM(
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   199
			nodeEl,
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   200
			function(el)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   201
			{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   202
				for(var attr in el){
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   203
					if(typeof el[attr] === 'function') {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   204
						el[attr] = null;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   205
					}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   206
				}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   207
			}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   208
		);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   209
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   210
	centerEl : function(el, axis)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   211
	{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   212
		var clientScroll = jQuery.iUtil.getScroll();
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   213
		var windowSize = jQuery.iUtil.getSize(el);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   214
		if (!axis || axis == 'vertically')
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   215
			jQuery(el).css(
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   216
				{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   217
					top: clientScroll.t + ((Math.max(clientScroll.h,clientScroll.ih) - clientScroll.t - windowSize.hb)/2) + 'px'
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   218
				}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   219
			);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   220
		if (!axis || axis == 'horizontally')
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   221
			jQuery(el).css(
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   222
				{
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   223
					left:	clientScroll.l + ((Math.max(clientScroll.w,clientScroll.iw) - clientScroll.l - windowSize.wb)/2) + 'px'
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   224
				}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   225
			);
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   226
	},
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   227
	fixPNG : function (el, emptyGIF) {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   228
		var images = jQuery('img[@src*="png"]', el||document), png;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   229
		images.each( function() {
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   230
			png = this.src;				
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   231
			this.src = emptyGIF;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   232
			this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')";
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   233
		});
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   234
	}
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   235
};
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   236
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   237
// Helper function to support older browsers!
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   238
[].indexOf || (Array.prototype.indexOf = function(v, n){
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   239
	n = (n == null) ? 0 : n;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   240
	var m = this.length;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   241
	for (var i=n; i<m; i++)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   242
		if (this[i] == v)
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   243
			return i;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   244
	return -1;
8a382087127f rsln-opendata
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff changeset
   245
});