summaryrefslogtreecommitdiff
path: root/examples/filebrowser/js-lib/common.js
blob: c035695e0204aeeec4642411af8e439bcf4525eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
function jump(anchor) {
  var dest_url = anchor.getAttribute('jumpurl');
  var name = window.prompt('Jump where? ("root" for /, "edit:" for edit screen)')
  if (name) {
    location.href = dest_url + '?name=' + escape(name);
  }
}

Element.hidden = function() {
  for (var i = 0; i < arguments.length; i++) {
    var element = $(arguments[i]);
    if (element.style.display != 'none') {
      return false;
    }
  }
  return true;
}

function lazyToggle(container, url, options) {
  options = extend({method: 'get'}, options || {});
  if (Element.hidden(container)) {
    Element.show(container);
    if (! $(container).lazy_loaded) {
      new Ajax.Updater(container, url, options);
      $(container).lazy_loaded = true;
    }
    if (options.link) {
      var newHTML = options.link.getAttribute('shownhtml');
      if (newHTML) {
	options.link.setAttribute('hiddenhtml', options.link.innerHTML);
	options.link.innerHTML = newHTML;
      }
    }
  } else {
    Element.hide(container);
    if (options.link) {
      var newHTML = options.link.getAttribute('hiddenhtml');
      if (newHTML) {
	options.link.innerHTML = newHTML;
      }
    }
  }
}

function toggle(container, options) {
  if (Element.hidden(container)) {
    Element.show(container);
    if (options && options.link) {
      var newHTML = options.link.getAttribute('shownhtml');
      if (newHTML) {
	options.link.setAttribute('hiddenhtml', options.link.innerHTML);
	options.link.innerHTML = newHTML;
      }
    }
  } else {
    Element.hide(container);
    if (options && options.link) {
      var newHTML = options.link.getAttribute('hiddenhtml');
      if (newHTML) {
	options.link.setAttribute('shownhtml', options.link.innerHTML);
	options.link.innerHTML = newHTML;
      }
    }
  }
}

/* From: http://www.quirksmode.org/js/cookies.html */

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}