xref: /aosp_15_r20/external/libwebsockets/test-apps/lws-common.js (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker/*
2*1c60b9acSAndroid Build Coastguard Worker * This section around grayOut came from here:
3*1c60b9acSAndroid Build Coastguard Worker * http://www.codingforums.com/archive/index.php/t-151720.html
4*1c60b9acSAndroid Build Coastguard Worker * Assumed public domain
5*1c60b9acSAndroid Build Coastguard Worker *
6*1c60b9acSAndroid Build Coastguard Worker * Init like this in your main html script, this also reapplies the gray
7*1c60b9acSAndroid Build Coastguard Worker *
8*1c60b9acSAndroid Build Coastguard Worker *    lws_gray_out(true,{'zindex':'499'});
9*1c60b9acSAndroid Build Coastguard Worker *
10*1c60b9acSAndroid Build Coastguard Worker * To remove the gray
11*1c60b9acSAndroid Build Coastguard Worker *
12*1c60b9acSAndroid Build Coastguard Worker *    lws_gray_out(false);
13*1c60b9acSAndroid Build Coastguard Worker *
14*1c60b9acSAndroid Build Coastguard Worker */
15*1c60b9acSAndroid Build Coastguard Worker
16*1c60b9acSAndroid Build Coastguard Workerfunction gsize(ptype)
17*1c60b9acSAndroid Build Coastguard Worker{
18*1c60b9acSAndroid Build Coastguard Worker	var h = document.compatMode === "CSS1Compat" &&
19*1c60b9acSAndroid Build Coastguard Worker		!window.opera ?
20*1c60b9acSAndroid Build Coastguard Worker			document.documentElement.clientHeight :
21*1c60b9acSAndroid Build Coastguard Worker						document.body.clientHeight;
22*1c60b9acSAndroid Build Coastguard Worker	var w = document.compatMode === "CSS1Compat" &&
23*1c60b9acSAndroid Build Coastguard Worker		!window.opera ?
24*1c60b9acSAndroid Build Coastguard Worker			document.documentElement.clientWidth :
25*1c60b9acSAndroid Build Coastguard Worker						document.body.clientWidth;
26*1c60b9acSAndroid Build Coastguard Worker	var pageWidth, pageHeight, t;
27*1c60b9acSAndroid Build Coastguard Worker
28*1c60b9acSAndroid Build Coastguard Worker	if (document.body &&
29*1c60b9acSAndroid Build Coastguard Worker		    (document.body.scrollWidth || document.body.scrollHeight)) {
30*1c60b9acSAndroid Build Coastguard Worker		t = document.body.scrollWidth;
31*1c60b9acSAndroid Build Coastguard Worker		pageWidth = (w > t) ? ("" + w + "px") : ("" + (t) + "px");
32*1c60b9acSAndroid Build Coastguard Worker		t = document.body.scrollHeight;
33*1c60b9acSAndroid Build Coastguard Worker		pageHeight = (h > t) ? ("" + h + "px") : ("" + (t) + "px");
34*1c60b9acSAndroid Build Coastguard Worker	} else if (document.body.offsetWidth) {
35*1c60b9acSAndroid Build Coastguard Worker		t = document.body.offsetWidth;
36*1c60b9acSAndroid Build Coastguard Worker		pageWidth = (w > t) ? ("" + w + "px") : ("" + (t) + "px");
37*1c60b9acSAndroid Build Coastguard Worker		t = document.body.offsetHeight;
38*1c60b9acSAndroid Build Coastguard Worker		pageHeight =(h > t) ? ("" + h + "px") : ("" + (t) + "px");
39*1c60b9acSAndroid Build Coastguard Worker	} else {
40*1c60b9acSAndroid Build Coastguard Worker		pageWidth = "100%";
41*1c60b9acSAndroid Build Coastguard Worker		pageHeight = "100%";
42*1c60b9acSAndroid Build Coastguard Worker	}
43*1c60b9acSAndroid Build Coastguard Worker	return (ptype === 1) ? pageWidth : pageHeight;
44*1c60b9acSAndroid Build Coastguard Worker}
45*1c60b9acSAndroid Build Coastguard Worker
46*1c60b9acSAndroid Build Coastguard Workerfunction addEvent( obj, type, fn ) {
47*1c60b9acSAndroid Build Coastguard Worker	if ( obj.attachEvent ) {
48*1c60b9acSAndroid Build Coastguard Worker		obj["e" + type + fn] = fn;
49*1c60b9acSAndroid Build Coastguard Worker		obj[type+fn] = function() { obj["e" + type + fn]( window.event );};
50*1c60b9acSAndroid Build Coastguard Worker		obj.attachEvent("on" + type, obj[type + fn]);
51*1c60b9acSAndroid Build Coastguard Worker	} else
52*1c60b9acSAndroid Build Coastguard Worker		obj.addEventListener(type, fn, false);
53*1c60b9acSAndroid Build Coastguard Worker}
54*1c60b9acSAndroid Build Coastguard Worker
55*1c60b9acSAndroid Build Coastguard Workerfunction removeEvent( obj, type, fn ) {
56*1c60b9acSAndroid Build Coastguard Worker	if ( obj.detachEvent ) {
57*1c60b9acSAndroid Build Coastguard Worker		obj.detachEvent("on" + type, obj[type + fn]);
58*1c60b9acSAndroid Build Coastguard Worker		obj[type + fn] = null;
59*1c60b9acSAndroid Build Coastguard Worker	} else
60*1c60b9acSAndroid Build Coastguard Worker		obj.removeEventListener(type, fn, false);
61*1c60b9acSAndroid Build Coastguard Worker}
62*1c60b9acSAndroid Build Coastguard Worker
63*1c60b9acSAndroid Build Coastguard Workerfunction lws_gray_out(vis, _options) {
64*1c60b9acSAndroid Build Coastguard Worker
65*1c60b9acSAndroid Build Coastguard Worker	var options = _options || {};
66*1c60b9acSAndroid Build Coastguard Worker	var zindex = options.zindex || 50;
67*1c60b9acSAndroid Build Coastguard Worker	var opacity = options.opacity || 70;
68*1c60b9acSAndroid Build Coastguard Worker	var opaque = (opacity / 100);
69*1c60b9acSAndroid Build Coastguard Worker	var bgcolor = options.bgcolor || "#000000";
70*1c60b9acSAndroid Build Coastguard Worker	var dark = document.getElementById("darkenScreenObject");
71*1c60b9acSAndroid Build Coastguard Worker
72*1c60b9acSAndroid Build Coastguard Worker	if (!dark) {
73*1c60b9acSAndroid Build Coastguard Worker		var tbody = document.getElementsByTagName("body")[0];
74*1c60b9acSAndroid Build Coastguard Worker		var tnode = document.createElement("div");
75*1c60b9acSAndroid Build Coastguard Worker		tnode.style.position = "absolute";
76*1c60b9acSAndroid Build Coastguard Worker		tnode.style.top = "0px";
77*1c60b9acSAndroid Build Coastguard Worker		tnode.style.left = "0px";
78*1c60b9acSAndroid Build Coastguard Worker		tnode.style.overflow = "hidden";
79*1c60b9acSAndroid Build Coastguard Worker		tnode.style.display ="none";
80*1c60b9acSAndroid Build Coastguard Worker		tnode.id = "darkenScreenObject";
81*1c60b9acSAndroid Build Coastguard Worker		tbody.appendChild(tnode);
82*1c60b9acSAndroid Build Coastguard Worker		dark = document.getElementById("darkenScreenObject");
83*1c60b9acSAndroid Build Coastguard Worker	}
84*1c60b9acSAndroid Build Coastguard Worker	if (vis) {
85*1c60b9acSAndroid Build Coastguard Worker		dark.style.opacity = opaque;
86*1c60b9acSAndroid Build Coastguard Worker		dark.style.MozOpacity = opaque;
87*1c60b9acSAndroid Build Coastguard Worker		// dark.style.filter ='alpha(opacity='+opacity+')';
88*1c60b9acSAndroid Build Coastguard Worker		dark.style.zIndex = zindex;
89*1c60b9acSAndroid Build Coastguard Worker		dark.style.backgroundColor = bgcolor;
90*1c60b9acSAndroid Build Coastguard Worker		dark.style.width = gsize(1);
91*1c60b9acSAndroid Build Coastguard Worker		dark.style.height = gsize(0);
92*1c60b9acSAndroid Build Coastguard Worker		dark.style.display = "block";
93*1c60b9acSAndroid Build Coastguard Worker		addEvent(window, "resize",
94*1c60b9acSAndroid Build Coastguard Worker			function() {
95*1c60b9acSAndroid Build Coastguard Worker				dark.style.height = gsize(0);
96*1c60b9acSAndroid Build Coastguard Worker				dark.style.width = gsize(1);
97*1c60b9acSAndroid Build Coastguard Worker			}
98*1c60b9acSAndroid Build Coastguard Worker		);
99*1c60b9acSAndroid Build Coastguard Worker	} else {
100*1c60b9acSAndroid Build Coastguard Worker		dark.style.display = "none";
101*1c60b9acSAndroid Build Coastguard Worker		removeEvent(window, "resize",
102*1c60b9acSAndroid Build Coastguard Worker			function() {
103*1c60b9acSAndroid Build Coastguard Worker				dark.style.height = gsize(0);
104*1c60b9acSAndroid Build Coastguard Worker				dark.style.width = gsize(1);
105*1c60b9acSAndroid Build Coastguard Worker			}
106*1c60b9acSAndroid Build Coastguard Worker		);
107*1c60b9acSAndroid Build Coastguard Worker	}
108*1c60b9acSAndroid Build Coastguard Worker}
109*1c60b9acSAndroid Build Coastguard Worker
110*1c60b9acSAndroid Build Coastguard Worker/*
111*1c60b9acSAndroid Build Coastguard Worker * end of grayOut related stuff
112*1c60b9acSAndroid Build Coastguard Worker */
113*1c60b9acSAndroid Build Coastguard Worker
114*1c60b9acSAndroid Build Coastguard Workerfunction new_ws(urlpath, protocol)
115*1c60b9acSAndroid Build Coastguard Worker{
116*1c60b9acSAndroid Build Coastguard Worker	return new WebSocket(urlpath, protocol);
117*1c60b9acSAndroid Build Coastguard Worker}
118*1c60b9acSAndroid Build Coastguard Worker
119*1c60b9acSAndroid Build Coastguard Workerfunction lws_san(s)
120*1c60b9acSAndroid Build Coastguard Worker{
121*1c60b9acSAndroid Build Coastguard Worker	if (s.search("<") !== -1)
122*1c60b9acSAndroid Build Coastguard Worker		return "invalid string";
123*1c60b9acSAndroid Build Coastguard Worker
124*1c60b9acSAndroid Build Coastguard Worker	return s;
125*1c60b9acSAndroid Build Coastguard Worker}
126