/**
 * Basic Cookie Controller
 */
function CookieController() {
}
//Fields
CookieController.prototype.path="; path=/";
//Methods
CookieController.prototype.createCookie=createCookie;
CookieController.prototype.readCookie=readCookie;
CookieController.prototype.eraseCookie=eraseCookie;
//Services
CookieController.prototype.remember=remember;
CookieController.prototype.recall=recall;
CookieController.prototype.destroy=destroy;

/**
* Remember
*/
function remember(objname, obj, days) {
	this.createCookie(objname, obj, days);
}

/**
* Remember 1 year
*/
function remember(objname, obj) {
	this.createCookie(objname, obj/*.toJSONString()*/, 365);
}

/**
* Recall
*/
function recall(objname) {
	var r=this.readCookie(objname);
	if(r) return r;//.parseJSON();
	else return r;
}

/**
* Recall
*/
function destroy(objname) {
	this.createCookie(objname,"",-1);
	//this.eraseCookie(objname);
}

/**
 * Generic create cookie
 * @param {Object} name
 * @param {Object} value
 * @param {Object} days
 */
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		if(days==-1) date.setTime(date.getTime()-1);
		else date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";//expires on browser close
	//alert("writing cookie ["+name+"="+value+expires+"; path=/"+"]");
	document.cookie = name+"="+value+expires+"; path=/";
	//alert("Cookies\n\n"+document.cookie);
}

/**
 * Read cookie by name
 * @param {Object} name
 */
function readCookie(name) {
	//alert(document.cookie);
	var nameEQ = name += '=';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(cookie_name)
{
	var cookie_date = new Date ( );  // current date & time
	cookie_date.setTime ( cookie_date.getTime() - 1 );
	document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString()+"; path=/";
}
