/**
 * ------------------------------------------------------------------------------
 *  Copyright 2008 Eurelis by Antoine PINEAU for Schneider Electric
 *  All rights reserved.
 * ------------------------------------------------------------------------------
 *
 *  Manages the cookies
 *  
 * =========+============+========+================================================
 *  Version |    Date    | Author | Comments
 * =========+============+========+================================================
 *   1.0.0  | 22/11/2008 |  API   | Initial version
 * ---------+------------+--------+------------------------------------------------
 *   1.1.0  | 02/12/2008 |  API   | Version with objects
 * =========+============+========+================================================
 */
 
function cookiemanager_writeCookie(cookieName, cookieValue) {
  var argv = cookiemanager_writeCookie.arguments;
  var argc = cookiemanager_writeCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  var cookieToWrite = cookieName+"="+escape(cookieValue);
  if (expires != null) cookieToWrite += "; expires=" + expires.toGMTString();
  if (path    != null) cookieToWrite += "; path=" + path;
  if (domain  != null) cookieToWrite += "; domain=" + domain;
  if (secure  == true) cookieToWrite += "; secure";
  document.cookie = cookieToWrite;
}

function cookiemanager_readCookie(cookieName) {
  var arg = cookieName+"=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      var endstr = document.cookie.indexOf(";", j);
      if (endstr == -1) endstr = document.cookie.length;
      return unescape(document.cookie.substring(j, endstr));
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null; 
}

function cookiemanager_deleteCookie(cookieName) {
  var date=new Date();
  date.setFullYear(date.getFullYear()-1);
  cookiemanager_writeCookie(cookieName, null, date); 
}

var CookieManager = function () {
  // Methods
  this.writeCookie  = cookiemanager_writeCookie;
  this.readCookie   = cookiemanager_readCookie;
  this.deleteCookie = cookiemanager_deleteCookie;
}


