/**
 * Part of JMF Library
 * SVN: $Id$
 * This file contains cookie manipulation routines 
 */
JMF.Cookie = {
   /**
    * Sets cookie
    * @param {String} name Cookie name
    * @param {String} value Cookie value
    * @param {Mixed} expires Time stamp or date object
    * @param {String} path Cookie path  
    * @param {String} domain Cookie domain
    * @param {String} secure
    */
	set:function(name, value, expires, path, domain, secure) {
      if(expires && !(expires instanceof Date)) {
         expires = new Date(expires);	
      }
		document.cookie = name+
		  '='+encodeURIComponent(value) +  
		 ((expires)?';expires=' + expires.toGMTString():'') + 
       ((path)?';path=' + path:'') + 
       ((domain)?';domain=' + domain:'') +
       ((secure)?';secure':'');
	},
   /**
    * Removes cookie
    * @param {String} name Cookie name
    */
	remove:function(name,path,domain) {
		JMF.Cookie.set(name,"",new Date((new Date()).getTime()-86400000),path,domain);
	},
	/**
	 * Gets cookie
	 * @param {String} name Cookie name
	 * @return cookie value or null
	 */
	get:function(name) {
		var cookie = JMF.Cookie.getAll();
		var cIndex = (cookie.indexOf(name))+1;
		return (cIndex?cookie[cIndex]:null);
	},
	/**
	 * Returns array with all cookies 
	 * @return {Array} [cookie_name,cookie_value,cookie_name, cookie_value...]
	 */
	getAll:function() {
		var cookies = decodeURIComponent(document.cookie).split('; ');
		var cookie = [];
		for(var i=0; i < cookies.length; i++) {
	     cookie.push(cookies[i].substr(0,cookies[i].indexOf('=')),cookies[i].substr(cookies[i].indexOf('=')+1));
		}
		return cookie; 
	}
};