/**
 * @author   Ivan Andonov
 * @email    ivan.andonov[at]design[dot]bg
 *
 * @require  init dbg.ShortcutCall
 *           use  dbg.Debug
 * @optional 
 **/

dbg.extend({
	
	Cookies : new dbg.Class.create('Cookies', dbg).extend({
	
		getCookie : function(name) {
			//$log(this+'.getCookie name='+name);
			if (typeof(name) != 'string') {
				return document.cookie;
			}
			var start = document.cookie.indexOf(name + '=');
			var len = start + name.length + 1;
			//if (start && name != document.cookie.substring(0, name.length)) return null;
			if (start == -1) {
				return null;
			}
			var end = document.cookie.indexOf(';', len);
			if (end == -1) {
				end = document.cookie.length;
			}
			return unescape(document.cookie.substring(len, end));
		},
		
		setCookie : function(name, value, expires, path, domain, secure) {
			//$log(this+'.setCookie name='+name+' value='+value+' expires='+expires+' path='+path+' domain='+domain+' secure='+secure);
			var today = new Date();
			today.setTime(today.getTime());
			expires = (expires || 365)*1000*60*60*24;
			var expires_date = new Date(today.getTime() + expires);
			document.cookie = name + '=' + escape(value) + (expires ? ';expires='+expires_date.toGMTString() : '') + (path ? ';path=' + path : '') + (domain ? ';domain=' + domain : '') + (secure ? ';secure' : '');
		},
		
		deleteCookie : function(name, path, domain) {
			//$log(this+'.setCookie name='+name+' path='+path+' domain='+domain);
			if (getCookie(name)) {
				document.cookie = name + '=' + (path ? ';path=' + path : '') + (domain ? ';domain=' + domain : '') + ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
			}
		}
		
	})
	
});

$shortcut('cookie', dbg.Cookies, function() {
	return dbg.Cookies[arguments.length < 2 ? 'getCookie' : 'setCookie'].apply(dbg.Cookies, arguments);
});