PageSourceSearch

https://www.stadtwerk-am-see.de/de/static/js/HRSysLib/Hilfsfunktionen/Cookie.js?nc=1790923960777

js stadtwerk-am-see.de collected 2026-10-04 00:25:35 UTC 8,140 bytes, 270 lines download raw bytes

1/*****************************************************************************
2 * Firma:        Hehner Reus Systems GmbH
3 * Projekt:      com.cerno.basis
4 * Datei:        Cookie.js
5 * Erstellung:   26.11.2015
6 * Verwendung:   Vereinfachtes Cookie-Handling.
7 *
8 * $Id: Cookie.js,v 1.5 2024/03/12 10:29:59 lpo Exp $
9 * $Author: lpo $
10 *****************************************************************************/
11
12/**
13 * Funktion liefert den Wert eines Cookies mit dem Namen name.
14 * 
15 * @param {string} name Der Name des gesuchten Cookie.
16 * @returns Der Wert des Cookie oder ein Leerstring.
17 */
18function HRGetCookie(name)
19{
20   var wert = '';
21   try
22   {
23      if (!name || typeof(name) != 'string' || name.length <= 0)
24         return wert;
25      
26      var cookies = document.cookie.split(';');
27      var len = cookies.length;
28      for(var i = 0; i < len; i++) 
29      {
30         var cookie = cookies[i];
31         var pair = cookie.split('=');
32         if (pair && pair.length > 1)
33         {
34            var key = pair[0];
35            var val = pair[1];
36            try
37            {
38               key = key.trim();
39               val = val.trim();
40            }
41            catch(e)
42            {}
43            if (key == name)
44            {
45               wert = val;
46            }
47         }
48      }
49   }
50   catch (e)
51   {
52      if (typeof(HRLogError) == 'function')
53         HRLogError(e);
54   }
55   return wert;
56}
57
58/**
59 * Setzt einen Cookie.
60 * 
61 * @param name {string} Der Name des Cookie.
62 * @param wert {string} Der Wert des Cookie.
63 * @param config {object} Optionale Configuration für das Setzen des Cookie
64 * mit folgenden möglichen Werten:
65 *    expires:       Zeit, bis der Cookie abläuft. Im Standard in ms.
66 *                   Kann durch expiresUnit auch anders angegeben werden.
67 *                   Ohne Angabe von expires wird nur ein Sitzungscookie gesetzt.
68 *    expiresUnit:   Einheit in der expires angegeben ist: 'days', 'hours', 'minutes', 'seconds'.
69 *                   Ohne Angabe wird expires in ms interpretiert.
70 *    path:          Der Pfad für den Cookie z.B.: '/'.
71 *    domain:        Die Domain unter der der Cookie gesetzt werden soll.
72 *    secure:        Cookie wird nur über https übermittelt.
73 */
74function HRSetCookie(name, wert, config)
75{
76   if (!name || !wert)
77      return;
78   
79   try
80   {
81      var cookieStr = name + '=' + wert;
82      if (config)
83      {
84         if (typeof(config.expires) == 'number' || typeof(config.expires) == 'string')
85         {
86             var expires = (typeof(config.expires) == 'number' ? config.expires : parseInt(config.expires));
87             var expireDate = new Date();
88             if (typeof(config.expiresUnit) == 'string' && config.expiresUnit.length > 0)
89             {
90                switch(config.expiresUnit) 
91                {
92                case 'days':
93                   expireDate.setTime(expireDate.getTime() + (expires * 24 * 60 * 60 * 1000));
94                   break;
95                case 'hours':
96                   expireDate.setTime(expireDate.getTime() + (expires * 60 * 60 * 1000));
97                   break;
98                case 'minutes':
99                   expireDate.setTime(expireDate.getTime() + (expires * 60 * 1000));
100                   break;
101                case 'seconds':
102                   expireDate.setTime(expireDate.getTime() + (expires * 1000));
103                   break;
104                default:
105                   expireDate.setTime(expireDate.getTime() + expires);
106                   break;
107                }
108             }
109             else
110             {
111                expireDate.setTime(expireDate.getTime() + expires);
112             }
113             cookieStr = cookieStr + '; expires=' + expireDate.toGMTString();
114         }
115         if (typeof(config.path) == 'string' && config.path.length > 0)
116         {
117            cookieStr = cookieStr + '; path=' + config.path;
118         }
119         if (typeof(config.domain) == 'string' && config.domain.length > 0)
120         {
121            cookieStr = cookieStr + '; domain=' + config.domain;
122         }
123         if (typeof(config.secure) === 'boolean' && config.secure)
124         {
125            cookieStr = cookieStr + '; secure';
126         }
127      }
128      document.cookie = cookieStr;
129   }
130   catch (e)
131   {
132      if (typeof(HRLogError) == 'function')
133         HRLogError(e);
134   }
135}
136
137/**
138 * Ermittelt alle Cookies und gibt diese als Array zurück.
139 * 
140 * @return cookiesArray Alle Cookies in einem Array oder null, falls etwas schief gelaufen ist.
141 */
142function HRGetAllCookies()
143{
144   var cookiesArray = null;
145   try
146   {
147      var cookiesLine = document.cookie;
148      if (cookiesLine)
149      {
150         cookiesArray = cookiesLine.split(';')
151      }
152   }
153   catch (e)
154   {
155      if (typeof(HRLogError) === 'function')
156         HRLogError(e);
157   }
158   return cookiesArray;
159}
160
161/**
162 * Entfernt das angesprochene Cookie.
163 * 
164 * Achtung: Cookies werden nicht eindeutig durch ihren Namen bestimmt. Um ein Cookie 
165 * eindeutig anzusprechen, müssen Domain und Path bekannt sein!
166 * 
167 * @param name Der Name des Cookies.
168 * @param domain Die Domain des Cookies.
169 * @param path Der Pfad des Cookies.
170 */
171function HRRemoveCookie(name, domain, path)
172{
173   try
174   {
175      if (!name || typeof(name) !== 'string' || name.length <= 0)
176         return;
177      
178      if (!domain || typeof(domain) !== 'string' || domain.length <= 0)
179         return;
180      
181      if (!path || typeof(path) !== 'string' || path.length <= 0)
182         return;
183      
184      document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=' + path + ';domain=' + domain;
185   }
186   catch (e)
187   {
188      if (typeof(HRLogError) === 'function')
189         HRLogError(e);
190   }
191}
192
193/**
194 * Entfernt alle Cookies zu übergebenem Path und Domain.
195 * 
196 * Achtung: Cookies werden nicht eindeutig durch ihren Namen bestimmt. Um ein Cookie 
197 * eindeutig anzusprechen, müssen Domain und Path bekannt sein!
198 * 
199 * @param domain Die Domain des Cookies.
200 * @param path Der Pfad des Cookies.
201 */
202function HRRemoveAllCookies(domain, path)
203{
204   try
205   {
206      if (!domain || typeof(domain) !== 'string' || domain.length <= 0)
207         return;
208      
209      if (!path || typeof(path) !== 'string' || path.length <= 0)
210         return;
211      
212      var cookies = HRGetAllCookies();
213      if (cookies)
214      {
215         var i;
216         var l = cookies.length;
217         for (i = 0; i < l; i++)
218         {
219            if (cookies[i])
220            {
221               //
222               // Um sicherzustellen, dass der Cookie gelöscht wird, wird der Löschstring auch einmal ohne Domain gesetzt.
223               // Die Domainangabe des Cookie unterscheidet sich häufig nur durch die Subdomain www.
224               //
225               document.cookie = cookies[i].split('=')[0] + '=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=' + path;
226               HRRemoveCookie(cookies[i].split('=')[0], domain, path);
227            }
228         }
229      }
230   }
231   catch (e)
232   {
233      if (typeof(HRLogError) === 'function')
234         HRLogError(e);
235   }
236}
237
238/**
239 * Funktion liefert den Wert des Cookies mit dem Namen "name".
240 * Beim Cookie-Namen wird dabei zwischen Groß- und Kleinschreibung
241 * unterschieden.
242 * Wird der Cookie nicht gefunden, wird ein Leerstring zurückgegeben.
243 * 
244 * @param name Der Name des gesuchten Cookie-Werts.
245 * @return Der Wert des Cookies oder ein Leerstring.
246 */
247function HRGetCookieValue(name)
248{
249   try
250   {
251      var a = document.cookie;
252      var alleCookies = document.cookie.split(";");
253      var i = 0;
254      
255      for (var i = 0; i < alleCookies.length; i++)
256      {
257         var keyValue = alleCookies[i].split("=");
258         if (keyValue.length > 1 && keyValue[0].trim() === name)
259         {
260            return keyValue[1].trim();
261         }
262      }
263   }
264   catch (e)
265   {
266      if (typeof(HRLogError) === 'function')
267         HRLogError(e);
268   }
269   return "";
270}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.