<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Core - cookies.js - TYPO3 Forge</title>
<meta name="description" content="Redmine" />
<meta name="keywords" content="issue,bug,tracker" />
<link href="/themes/TYPO3/stylesheets/application.css?1285495280" media="all" rel="stylesheet" type="text/css" />
<script src="/javascripts/prototype.js?1275637665" type="text/javascript"></script>
<script src="/javascripts/effects.js?1275637665" type="text/javascript"></script>
<script src="/javascripts/dragdrop.js?1275637665" type="text/javascript"></script>
<script src="/javascripts/controls.js?1275637665" type="text/javascript"></script>
<script src="/javascripts/application.js?1300715968" type="text/javascript"></script>
<script src="/plugin_assets/flow_design_helpers/javascripts/custom-scripts.js?1275641592" type="text/javascript"></script>
<link href="/stylesheets/jstoolbar.css?1275637665" media="screen" rel="stylesheet" type="text/css" />
<!--[if IE]>
    <style type="text/css">
      * html body{ width: expression( document.documentElement.clientWidth < 900 ? '900px' : '100%' ); }
      body {behavior: url(/stylesheets/csshover.htc?1275637665);}
    </style>
<![endif]-->


<style type="text/css">

</style>

<!-- page specific tags -->
    <link href="/themes/TYPO3/stylesheets/scm.css?1290526518" media="screen" rel="stylesheet" type="text/css" /></head>
<body>
<div id="wrapper">
<div id="top-menu">
    <div id="account">
        <ul><li><a href="/login" class="login">Sign in</a></li>
<li><a href="/account/register" class="register">Register</a></li></ul>    </div>
    
    <ul><li><a href="/" class="home">Home</a></li>
<li><a href="/projects" class="projects">Projects</a></li>
<li><a href="http://www.redmine.org/guide" class="help">Help</a></li></ul></div>
      
<div id="header">
    <div id="header-left">
        <div id="header-menu">
            <a href="/" class="start">Start</a><a href="/projects/typo3v4" class="level-0 current sorting-10"> TYPO3 v4</a><a href="/projects/typo3-v5" class="level-0 sorting-20"> TYPO3 Phoenix</a><a href="/projects/flow3-overview" class="level-0 sorting-20">FLOW3</a><a href="/projects/usability-design" class="level-0 sorting-25">Usability & Design</a><a href="/projects/other" class="level-0 sorting-30">other</a>
        </div>
    </div>
    
    <div id="right-area"  style="">
        <div id="quick-search">
            <form action="/search/index/typo3v4-core" method="get">
            
            <a href="/search/index/typo3v4-core" accesskey="4" style="">Search</a>:
            <input accesskey="f" class="small" id="q" name="q" size="20" type="text" />
            </form>
        </div>

        <h1>Core</h1>
        <div id="quicklinks"><p>Development of TYPO3 v4</p></div>
    </div>
    
    <div id="main-menu">
        <input class="projectsearch placeholder" id="projectname_project" name="projectname[project]" onfocus="this.value = &quot;&quot;; $(this).removeClassName(&quot;placeholder&quot;);" size="30" type="text" value="Project title search" /><div class="auto_complete" id="projectname_project_auto_complete"></div><script type="text/javascript">
//<![CDATA[
var projectname_project_auto_completer = new Ajax.Autocompleter('projectname_project', 'projectname_project_auto_complete', '/start/auto_complete_for_project_name', {afterUpdateElement:function(element, value) { var identNode = $(value).select(".identifier"); window.location.href="/projects/show/"+identNode[0].innerHTML }})
//]]>
</script>
        <ul><li><a href="/projects/typo3v4-core" class="overview">Overview</a></li>
<li><a href="/projects/typo3v4-core/activity" class="activity">Activity</a></li>
<li><a href="/projects/typo3v4-core/roadmap" class="roadmap">Roadmap</a></li>
<li><a href="/projects/typo3v4-core/issues" class="issues">Issues</a></li>
<li><a href="/projects/typo3v4-core/news" class="news">News</a></li>
<li><a href="/projects/typo3v4-core/wiki" class="wiki">Wiki</a></li>
<li><a href="/projects/typo3v4-core/repository" class="repository">Repository</a></li></ul>
    </div>
</div>

<div class="nosidebar" id="main">
    <div id="leftmenu">
        <a href="/projects/typo3v4-core" class="level-1 current sorting-10">Core</a><a href="/projects/extension-t3editor" class="level-2 sorting-0">t3editor</a><a href="/projects/typo3v4-coreteam" class="level-2 sorting-0">Team Resources</a><a href="/projects/typo3v4-documentation" class="level-1 sorting-15">Official Documentation</a><a href="/projects/extensions" class="level-1 sorting-20">Community Extensions</a><a href="/projects/typo3v4-distribution" class="level-1 sorting-44">Distributions</a><a href="/projects/typo3v43-projects" class="level-1 sorting-430">TYPO3 4.3 Projects</a><a href="/projects/typo3v44-projects" class="level-1 sorting-440">TYPO3 4.4 Projects</a><a href="/projects/typo3v45-projects" class="level-1 sorting-450">TYPO3 4.5 Projects</a><a href="/projects/typo3v46-projects" class="level-1 sorting-460">TYPO3 4.6 Projects</a>
    </div>
    <div id="sidebar">        
        
        
    </div>
    
    <div id="content">
				
        <h2>cookies.js</h2>

<div class="attachments">
<p>
   <span class="author">Administrator Admin, 2009-02-03 21:36</span></p>
<p><a href="/attachments/download/10786/cookies.js">Download</a>   <span class="size">(5.6 kB)</span></p>

</div>
&nbsp;
<div class="autoscroll">
<table class="filecontent syntaxhl">
<tbody>


<tr><th class="line-num" id="L1"><a href="#L1">1</a></th><td class="line-code"><pre><span class="c">// name = string equal to the name of the instance of the object</span>
</pre></td></tr>


<tr><th class="line-num" id="L2"><a href="#L2">2</a></th><td class="line-code"><pre><span class="c">// defaultExpiration = number of units to make the default expiration date for the cookie</span>
</pre></td></tr>


<tr><th class="line-num" id="L3"><a href="#L3">3</a></th><td class="line-code"><pre><span class="c">// expirationUnits = 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' (default is 'days')</span>
</pre></td></tr>


<tr><th class="line-num" id="L4"><a href="#L4">4</a></th><td class="line-code"><pre><span class="c">// defaultDomain = string, default domain for cookies; default is current domain minus the server name</span>
</pre></td></tr>


<tr><th class="line-num" id="L5"><a href="#L5">5</a></th><td class="line-code"><pre><span class="c">// defaultPath = string, default path for cookies; default is '/'</span>
</pre></td></tr>


<tr><th class="line-num" id="L6"><a href="#L6">6</a></th><td class="line-code"><pre><span class="kw">function</span> <span class="fu">Cookiemanager</span>(name,defaultExpiration,expirationUnits,defaultDomain,defaultPath) {
</pre></td></tr>


<tr><th class="line-num" id="L7"><a href="#L7">7</a></th><td class="line-code"><pre>        <span class="c">// remember our name</span>
</pre></td></tr>


<tr><th class="line-num" id="L8"><a href="#L8">8</a></th><td class="line-code"><pre>        <span class="lv">this</span>.name = name;
</pre></td></tr>


<tr><th class="line-num" id="L9"><a href="#L9">9</a></th><td class="line-code"><pre>        <span class="c">// get the default expiration</span>
</pre></td></tr>


<tr><th class="line-num" id="L10"><a href="#L10">10</a></th><td class="line-code"><pre>        <span class="lv">this</span>.defaultExpiration = <span class="lv">this</span>.getExpiration(defaultExpiration,expirationUnits);
</pre></td></tr>


<tr><th class="line-num" id="L11"><a href="#L11">11</a></th><td class="line-code"><pre>        <span class="c">// set the default domain to defaultDomain if supplied; if not, set it to document.domain</span>
</pre></td></tr>


<tr><th class="line-num" id="L12"><a href="#L12">12</a></th><td class="line-code"><pre>        <span class="c">// if document.domain is numeric, otherwise strip off the server name and use the remainder</span>
</pre></td></tr>


<tr><th class="line-num" id="L13"><a href="#L13">13</a></th><td class="line-code"><pre>        <span class="lv">this</span>.defaultDomain = (defaultDomain)?defaultDomain:(document.domain.search(<span class="rx"><span class="dl">/</span><span class="k">[a-zA-Z]</span><span class="dl">/</span></span>) == -<span class="i">1</span>)?document.domain:document.domain.substring(document.domain.indexOf(<span class="s"><span class="dl">'</span><span class="k">.</span><span class="dl">'</span></span>) + <span class="i">1</span>,document.domain.length);
</pre></td></tr>


<tr><th class="line-num" id="L14"><a href="#L14">14</a></th><td class="line-code"><pre>        <span class="c">// set the default path</span>
</pre></td></tr>


<tr><th class="line-num" id="L15"><a href="#L15">15</a></th><td class="line-code"><pre>        <span class="lv">this</span>.defaultPath = (defaultPath)?defaultPath:<span class="s"><span class="dl">'</span><span class="k">/</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L16"><a href="#L16">16</a></th><td class="line-code"><pre>        <span class="c">// initialize an object to hold all the document's cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L17"><a href="#L17">17</a></th><td class="line-code"><pre>        <span class="lv">this</span>.cookies = <span class="kw">new</span> Object();
</pre></td></tr>


<tr><th class="line-num" id="L18"><a href="#L18">18</a></th><td class="line-code"><pre>        <span class="c">// initialize an object to hold expiration dates for the doucment's cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L19"><a href="#L19">19</a></th><td class="line-code"><pre>        <span class="lv">this</span>.expiration = <span class="kw">new</span> Object();
</pre></td></tr>


<tr><th class="line-num" id="L20"><a href="#L20">20</a></th><td class="line-code"><pre>        <span class="c">// initialize an object to hold domains for the doucment's cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L21"><a href="#L21">21</a></th><td class="line-code"><pre>        <span class="lv">this</span>.domain = <span class="kw">new</span> Object();
</pre></td></tr>


<tr><th class="line-num" id="L22"><a href="#L22">22</a></th><td class="line-code"><pre>        <span class="c">// initialize an object to hold paths for the doucment's cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L23"><a href="#L23">23</a></th><td class="line-code"><pre>        <span class="lv">this</span>.path = <span class="kw">new</span> Object();
</pre></td></tr>


<tr><th class="line-num" id="L24"><a href="#L24">24</a></th><td class="line-code"><pre>        <span class="c">// set an onlunload function to write the cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L25"><a href="#L25">25</a></th><td class="line-code"><pre>        window.onunload = <span class="kw">new</span> Function (<span class="lv">this</span>.name+<span class="s"><span class="dl">'</span><span class="k">.setDocumentCookies();</span><span class="dl">'</span></span>);
</pre></td></tr>


<tr><th class="line-num" id="L26"><a href="#L26">26</a></th><td class="line-code"><pre>        <span class="c">// get the document's cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L27"><a href="#L27">27</a></th><td class="line-code"><pre>        <span class="lv">this</span>.getDocumentCookies();
</pre></td></tr>


<tr><th class="line-num" id="L28"><a href="#L28">28</a></th><td class="line-code"><pre>        }
</pre></td></tr>


<tr><th class="line-num" id="L29"><a href="#L29">29</a></th><td class="line-code"><pre><span class="c">// gets an expiration date for a cookie as a GMT string</span>
</pre></td></tr>


<tr><th class="line-num" id="L30"><a href="#L30">30</a></th><td class="line-code"><pre><span class="c">// expiration = integer expressing time in units (default is 7 days)</span>
</pre></td></tr>


<tr><th class="line-num" id="L31"><a href="#L31">31</a></th><td class="line-code"><pre><span class="c">// units = 'miliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' (default is 'days') </span>
</pre></td></tr>


<tr><th class="line-num" id="L32"><a href="#L32">32</a></th><td class="line-code"><pre>Cookiemanager.prototype.<span class="fu">getExpiration</span> = <span class="kw">function</span>(expiration,units) {
</pre></td></tr>


<tr><th class="line-num" id="L33"><a href="#L33">33</a></th><td class="line-code"><pre>        <span class="c">// set default expiration time if it wasn't supplied</span>
</pre></td></tr>


<tr><th class="line-num" id="L34"><a href="#L34">34</a></th><td class="line-code"><pre>        expiration = (expiration)?expiration:<span class="i">7</span>;
</pre></td></tr>


<tr><th class="line-num" id="L35"><a href="#L35">35</a></th><td class="line-code"><pre>        <span class="c">// supply default units if units weren't supplied</span>
</pre></td></tr>


<tr><th class="line-num" id="L36"><a href="#L36">36</a></th><td class="line-code"><pre>        units = (units)?units:<span class="s"><span class="dl">'</span><span class="k">days</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L37"><a href="#L37">37</a></th><td class="line-code"><pre>        <span class="c">// new date object we'll use to get the expiration time</span>
</pre></td></tr>


<tr><th class="line-num" id="L38"><a href="#L38">38</a></th><td class="line-code"><pre>        <span class="kw">var</span> date = <span class="kw">new</span> Date();
</pre></td></tr>


<tr><th class="line-num" id="L39"><a href="#L39">39</a></th><td class="line-code"><pre>        <span class="c">// set expiration time according to units supplied</span>
</pre></td></tr>


<tr><th class="line-num" id="L40"><a href="#L40">40</a></th><td class="line-code"><pre>        <span class="kw">switch</span>(units) {
</pre></td></tr>


<tr><th class="line-num" id="L41"><a href="#L41">41</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">years</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L42"><a href="#L42">42</a></th><td class="line-code"><pre>                        date.setFullYear(date.getFullYear() + expiration);
</pre></td></tr>


<tr><th class="line-num" id="L43"><a href="#L43">43</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L44"><a href="#L44">44</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">months</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L45"><a href="#L45">45</a></th><td class="line-code"><pre>                        date.setMonth(date.getMonth() + expiration);
</pre></td></tr>


<tr><th class="line-num" id="L46"><a href="#L46">46</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L47"><a href="#L47">47</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">days</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L48"><a href="#L48">48</a></th><td class="line-code"><pre>                        date.setTime(date.getTime()+(expiration*<span class="i">24</span>*<span class="i">60</span>*<span class="i">60</span>*<span class="i">1000</span>));
</pre></td></tr>


<tr><th class="line-num" id="L49"><a href="#L49">49</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L50"><a href="#L50">50</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">hours</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L51"><a href="#L51">51</a></th><td class="line-code"><pre>                        date.setTime(date.getTime()+(expiration*<span class="i">60</span>*<span class="i">60</span>*<span class="i">1000</span>));
</pre></td></tr>


<tr><th class="line-num" id="L52"><a href="#L52">52</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L53"><a href="#L53">53</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">minutes</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L54"><a href="#L54">54</a></th><td class="line-code"><pre>                        date.setTime(date.getTime()+(expiration*<span class="i">60</span>*<span class="i">1000</span>));
</pre></td></tr>


<tr><th class="line-num" id="L55"><a href="#L55">55</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L56"><a href="#L56">56</a></th><td class="line-code"><pre>                <span class="kw">case</span> <span class="s"><span class="dl">'</span><span class="k">seconds</span><span class="dl">'</span></span>:
</pre></td></tr>


<tr><th class="line-num" id="L57"><a href="#L57">57</a></th><td class="line-code"><pre>                        date.setTime(date.getTime()+(expiration*<span class="i">1000</span>));
</pre></td></tr>


<tr><th class="line-num" id="L58"><a href="#L58">58</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L59"><a href="#L59">59</a></th><td class="line-code"><pre>                <span class="kw">default</span>:
</pre></td></tr>


<tr><th class="line-num" id="L60"><a href="#L60">60</a></th><td class="line-code"><pre>                        date.setTime(date.getTime()+expiration);
</pre></td></tr>


<tr><th class="line-num" id="L61"><a href="#L61">61</a></th><td class="line-code"><pre>                        <span class="kw">break</span>;
</pre></td></tr>


<tr><th class="line-num" id="L62"><a href="#L62">62</a></th><td class="line-code"><pre>                }
</pre></td></tr>


<tr><th class="line-num" id="L63"><a href="#L63">63</a></th><td class="line-code"><pre>        <span class="c">// return expiration as GMT string</span>
</pre></td></tr>


<tr><th class="line-num" id="L64"><a href="#L64">64</a></th><td class="line-code"><pre>        <span class="kw">return</span> date.toGMTString();
</pre></td></tr>


<tr><th class="line-num" id="L65"><a href="#L65">65</a></th><td class="line-code"><pre>        }
</pre></td></tr>


<tr><th class="line-num" id="L66"><a href="#L66">66</a></th><td class="line-code"><pre><span class="c">// gets all document cookies and populates the .cookies property with them</span>
</pre></td></tr>


<tr><th class="line-num" id="L67"><a href="#L67">67</a></th><td class="line-code"><pre>Cookiemanager.prototype.<span class="fu">getDocumentCookies</span> = <span class="kw">function</span>() {
</pre></td></tr>


<tr><th class="line-num" id="L68"><a href="#L68">68</a></th><td class="line-code"><pre>        <span class="kw">var</span> cookie,pair;
</pre></td></tr>


<tr><th class="line-num" id="L69"><a href="#L69">69</a></th><td class="line-code"><pre>        <span class="c">// read the document's cookies into an array</span>
</pre></td></tr>


<tr><th class="line-num" id="L70"><a href="#L70">70</a></th><td class="line-code"><pre>        <span class="kw">var</span> cookies = document.cookie.split(<span class="s"><span class="dl">'</span><span class="k">;</span><span class="dl">'</span></span>);
</pre></td></tr>


<tr><th class="line-num" id="L71"><a href="#L71">71</a></th><td class="line-code"><pre>        <span class="c">// walk through each array element and extract the name and value into the cookies property</span>
</pre></td></tr>


<tr><th class="line-num" id="L72"><a href="#L72">72</a></th><td class="line-code"><pre>        <span class="kw">var</span> len = cookies.length;
</pre></td></tr>


<tr><th class="line-num" id="L73"><a href="#L73">73</a></th><td class="line-code"><pre>        <span class="kw">for</span>(<span class="kw">var</span> i=<span class="i">0</span>;i &lt; len;i++) {
</pre></td></tr>


<tr><th class="line-num" id="L74"><a href="#L74">74</a></th><td class="line-code"><pre>                cookie = cookies[i];
</pre></td></tr>


<tr><th class="line-num" id="L75"><a href="#L75">75</a></th><td class="line-code"><pre>                <span class="c">// strip leading whitespace</span>
</pre></td></tr>


<tr><th class="line-num" id="L76"><a href="#L76">76</a></th><td class="line-code"><pre>                <span class="kw">while</span> (cookie.charAt(<span class="i">0</span>)==<span class="s"><span class="dl">'</span><span class="k"> </span><span class="dl">'</span></span>) cookie = cookie.substring(<span class="i">1</span>,cookie.length);
</pre></td></tr>


<tr><th class="line-num" id="L77"><a href="#L77">77</a></th><td class="line-code"><pre>                <span class="c">// split name/value pair into an array</span>
</pre></td></tr>


<tr><th class="line-num" id="L78"><a href="#L78">78</a></th><td class="line-code"><pre>                pair = cookie.split(<span class="s"><span class="dl">'</span><span class="k">=</span><span class="dl">'</span></span>);
</pre></td></tr>


<tr><th class="line-num" id="L79"><a href="#L79">79</a></th><td class="line-code"><pre>                <span class="c">// use the cookie name as the property name and value as the value</span>
</pre></td></tr>


<tr><th class="line-num" id="L80"><a href="#L80">80</a></th><td class="line-code"><pre>                
</pre></td></tr>


<tr><th class="line-num" id="L81"><a href="#L81">81</a></th><td class="line-code"><pre>                <span class="c">// don't touch any cookies except the one for the fontsizer!!</span>
</pre></td></tr>


<tr><th class="line-num" id="L82"><a href="#L82">82</a></th><td class="line-code"><pre>                <span class="kw">if</span> (pair[<span class="i">0</span>] == <span class="s"><span class="dl">'</span><span class="k">efaSize</span><span class="dl">'</span></span>) {
</pre></td></tr>


<tr><th class="line-num" id="L83"><a href="#L83">83</a></th><td class="line-code"><pre>                      <span class="lv">this</span>.cookies[pair[<span class="i">0</span>]] = pair[<span class="i">1</span>];
</pre></td></tr>


<tr><th class="line-num" id="L84"><a href="#L84">84</a></th><td class="line-code"><pre>                }
</pre></td></tr>


<tr><th class="line-num" id="L85"><a href="#L85">85</a></th><td class="line-code"><pre>    }
</pre></td></tr>


<tr><th class="line-num" id="L86"><a href="#L86">86</a></th><td class="line-code"><pre>}
</pre></td></tr>


<tr><th class="line-num" id="L87"><a href="#L87">87</a></th><td class="line-code"><pre><span class="c">// sets all document cookies</span>
</pre></td></tr>


<tr><th class="line-num" id="L88"><a href="#L88">88</a></th><td class="line-code"><pre>Cookiemanager.prototype.<span class="fu">setDocumentCookies</span> = <span class="kw">function</span>() {
</pre></td></tr>


<tr><th class="line-num" id="L89"><a href="#L89">89</a></th><td class="line-code"><pre>        <span class="kw">var</span> expires = <span class="s"><span class="dl">'</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L90"><a href="#L90">90</a></th><td class="line-code"><pre>        <span class="kw">var</span> cookies = <span class="s"><span class="dl">'</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L91"><a href="#L91">91</a></th><td class="line-code"><pre>        <span class="kw">var</span> domain = <span class="s"><span class="dl">'</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L92"><a href="#L92">92</a></th><td class="line-code"><pre>        <span class="kw">var</span> path = <span class="s"><span class="dl">'</span><span class="dl">'</span></span>;
</pre></td></tr>


<tr><th class="line-num" id="L93"><a href="#L93">93</a></th><td class="line-code"><pre>        <span class="kw">for</span>(<span class="kw">var</span> name <span class="kw">in</span> <span class="lv">this</span>.cookies) {
</pre></td></tr>


<tr><th class="line-num" id="L94"><a href="#L94">94</a></th><td class="line-code"><pre>                <span class="c">// see if there's a custom expiration for this cookie; if not use default</span>
</pre></td></tr>


<tr><th class="line-num" id="L95"><a href="#L95">95</a></th><td class="line-code"><pre>                expires = (<span class="lv">this</span>.expiration[name])?<span class="lv">this</span>.expiration[name]:<span class="lv">this</span>.defaultExpiration;
</pre></td></tr>


<tr><th class="line-num" id="L96"><a href="#L96">96</a></th><td class="line-code"><pre>                <span class="c">// see if there's a custom path for this cookie; if not use default</span>
</pre></td></tr>


<tr><th class="line-num" id="L97"><a href="#L97">97</a></th><td class="line-code"><pre>                path = (<span class="lv">this</span>.path[name])?<span class="lv">this</span>.path[name]:<span class="lv">this</span>.defaultPath;
</pre></td></tr>


<tr><th class="line-num" id="L98"><a href="#L98">98</a></th><td class="line-code"><pre>                <span class="c">// see if there's a custom domain for this cookie; if not use default</span>
</pre></td></tr>


<tr><th class="line-num" id="L99"><a href="#L99">99</a></th><td class="line-code"><pre>                domain = (<span class="lv">this</span>.domain[name])?<span class="lv">this</span>.domain[name]:<span class="lv">this</span>.defaultDomain;
</pre></td></tr>


<tr><th class="line-num" id="L100"><a href="#L100">100</a></th><td class="line-code"><pre>                <span class="c">// add to cookie string</span>
</pre></td></tr>


<tr><th class="line-num" id="L101"><a href="#L101">101</a></th><td class="line-code"><pre>                cookies = name + <span class="s"><span class="dl">'</span><span class="k">=</span><span class="dl">'</span></span> + <span class="lv">this</span>.cookies[name] + <span class="s"><span class="dl">'</span><span class="k">; expires=</span><span class="dl">'</span></span> + expires + <span class="s"><span class="dl">'</span><span class="k">; path=</span><span class="dl">'</span></span> + path + <span class="s"><span class="dl">'</span><span class="k">; domain=</span><span class="dl">'</span></span> + domain;
</pre></td></tr>


<tr><th class="line-num" id="L102"><a href="#L102">102</a></th><td class="line-code"><pre>                document.cookie = cookies;
</pre></td></tr>


<tr><th class="line-num" id="L103"><a href="#L103">103</a></th><td class="line-code"><pre>                }
</pre></td></tr>


<tr><th class="line-num" id="L104"><a href="#L104">104</a></th><td class="line-code"><pre>        <span class="kw">return</span> <span class="pc">true</span>;
</pre></td></tr>


<tr><th class="line-num" id="L105"><a href="#L105">105</a></th><td class="line-code"><pre>        }
</pre></td></tr>


<tr><th class="line-num" id="L106"><a href="#L106">106</a></th><td class="line-code"><pre><span class="c">// gets cookie value</span>
</pre></td></tr>


<tr><th class="line-num" id="L107"><a href="#L107">107</a></th><td class="line-code"><pre><span class="c">// cookieName = string, cookie name</span>
</pre></td></tr>


<tr><th class="line-num" id="L108"><a href="#L108">108</a></th><td class="line-code"><pre>Cookiemanager.prototype.<span class="fu">getCookie</span> = <span class="kw">function</span>(cookieName) {
</pre></td></tr>


<tr><th class="line-num" id="L109"><a href="#L109">109</a></th><td class="line-code"><pre>        <span class="kw">var</span> cookie = <span class="lv">this</span>.cookies[cookieName]
</pre></td></tr>


<tr><th class="line-num" id="L110"><a href="#L110">110</a></th><td class="line-code"><pre>        <span class="kw">return</span> (cookie)?cookie:<span class="pc">false</span>;
</pre></td></tr>


<tr><th class="line-num" id="L111"><a href="#L111">111</a></th><td class="line-code"><pre>        }
</pre></td></tr>


<tr><th class="line-num" id="L112"><a href="#L112">112</a></th><td class="line-code"><pre><span class="c">// stores cookie value, expiration, domain and path</span>
</pre></td></tr>


<tr><th class="line-num" id="L113"><a href="#L113">113</a></th><td class="line-code"><pre><span class="c">// cookieName = string, cookie name</span>
</pre></td></tr>


<tr><th class="line-num" id="L114"><a href="#L114">114</a></th><td class="line-code"><pre><span class="c">// cookieValue = string, cookie value</span>
</pre></td></tr>


<tr><th class="line-num" id="L115"><a href="#L115">115</a></th><td class="line-code"><pre><span class="c">// expiration = number of units in which the cookie should expire</span>
</pre></td></tr>


<tr><th class="line-num" id="L116"><a href="#L116">116</a></th><td class="line-code"><pre><span class="c">// expirationUnits = 'miliseconds' | 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'years' (default is 'days')</span>
</pre></td></tr>


<tr><th class="line-num" id="L117"><a href="#L117">117</a></th><td class="line-code"><pre><span class="c">// domain = string, domain for cookie</span>
</pre></td></tr>


<tr><th class="line-num" id="L118"><a href="#L118">118</a></th><td class="line-code"><pre><span class="c">// path = string, path for cookie</span>
</pre></td></tr>


<tr><th class="line-num" id="L119"><a href="#L119">119</a></th><td class="line-code"><pre>Cookiemanager.prototype.<span class="fu">setCookie</span> = <span class="kw">function</span>(cookieName,cookieValue,expiration,expirationUnits,domain,path) {
</pre></td></tr>


<tr><th class="line-num" id="L120"><a href="#L120">120</a></th><td class="line-code"><pre>        <span class="lv">this</span>.cookies[cookieName] = cookieValue;
</pre></td></tr>


<tr><th class="line-num" id="L121"><a href="#L121">121</a></th><td class="line-code"><pre>        <span class="c">// set the expiration if it was supplied </span>
</pre></td></tr>


<tr><th class="line-num" id="L122"><a href="#L122">122</a></th><td class="line-code"><pre>        <span class="kw">if</span> (expiration) <span class="lv">this</span>.expiration[cookieName] = <span class="lv">this</span>.getExpiration(expiration,expirationUnits);
</pre></td></tr>


<tr><th class="line-num" id="L123"><a href="#L123">123</a></th><td class="line-code"><pre>        <span class="c">// set path if it was supplied</span>
</pre></td></tr>


<tr><th class="line-num" id="L124"><a href="#L124">124</a></th><td class="line-code"><pre>        <span class="kw">if</span> (domain) <span class="lv">this</span>.domain[cookieName] = domain;
</pre></td></tr>


<tr><th class="line-num" id="L125"><a href="#L125">125</a></th><td class="line-code"><pre>        <span class="kw">if</span> (path) <span class="lv">this</span>.path[cookieName] = path;
</pre></td></tr>


<tr><th class="line-num" id="L126"><a href="#L126">126</a></th><td class="line-code"><pre>        <span class="kw">return</span> <span class="pc">true</span>;
</pre></td></tr>


<tr><th class="line-num" id="L127"><a href="#L127">127</a></th><td class="line-code"><pre>        }
</pre></td></tr>


<tr><th class="line-num" id="L128"><a href="#L128">128</a></th><td class="line-code"><pre>
</pre></td></tr>


<tr><th class="line-num" id="L129"><a href="#L129">129</a></th><td class="line-code"><pre><span class="kw">var</span> cookieManager = <span class="kw">new</span> Cookiemanager(<span class="s"><span class="dl">'</span><span class="k">cookieManager</span><span class="dl">'</span></span>,<span class="i">1</span>,<span class="s"><span class="dl">'</span><span class="k">days</span><span class="dl">'</span></span>);
</pre></td></tr>


</tbody>
</table>
</div>





        
				<div style="clear:both;"></div>
    </div>
</div>

<div id="ajax-indicator" style="display:none;"><span>Loading...</span></div>
	
<div id="footer">
    Powered by <a href="http://www.redmine.org/">Redmine</a> &copy; 2006-2010 Jean-Philippe Lang
</div>
</div>

<script type="text/javascript">
    var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.typo3.org/" : "http://piwik.typo3.org/");
    document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
    try {
        var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 14);
        piwikTracker.trackPageView();
        piwikTracker.enableLinkTracking();
    } catch( err ) {}
</script>
<noscript><span style="visibility: hidden";><img src="http://piwik.typo3.org/piwik.php?idsite=14" style="border:0" alt=""/></span></noscript>
</body>
</html>

