/**
 * @projectDescription
 * 
 * @author Administrator
 * @version
 * 
 * @sdoc
 * @namespace
 *
 */

var TTCookieCtrl = Class.create();
TTCookieCtrl.prototype = {
	initialize : function() {
		//this.set();
	},
	
	set : function(parent, name, path, domain, days, secure) {		
		this._controller	= parent;					//controller object
		
		this._name			= name	 || 'glb_bsk';		//cookie name
		this._path			= path	 || '/';			//cookie path
		this._domain		= domain || '.pandora.tv';	//cookie domain
		this._days			= days   || 7;				//cookie expire day
		this._secure		= secure || false;			//cookie secure		
	},
	
	createCookie : function(value, days, name) {
		var name = name || this._name;
		var days = days || this._days;

		if( days ) {
			var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		} else var expires = "";
		document.cookie = name+ "=" + encodeURIComponent(value) + '::end::' + expires + "; domain=" + this._domain + "; path="+ this._path;
		
		//document.cookie = name+ "=" + escape(value) + '::end::' + expires +"; path="+ this._path;
		//alert(document.cookie);
		
		//$('cookie').update(unescape(document.cookie));
		return document.cookie;
	},
	
	readCookie : function(name) {
		var name = name || this._name;

		//var temp = unescape(document.cookie);
		var temp = decodeURIComponent(document.cookie);
		var s = temp.indexOf(name);
		
		if(s == -1) return [];
		
		var str = temp.slice(s+name.length+1);
		var e = str.indexOf('::end::');

		if( e == -1 ) return str;
		else return str.slice(0, e);
	},
	
	eraseCookie : function(name) {
		var name = name || this._name;
		this.createCookie("", -1, name);
	}
};


/** Single Pattern - get only once Instance */
TTCookieCtrl.__instance__ = null; // static property
TTCookieCtrl.getInstance = function (tag) {
	if (this.__instance__ == null) {
		this.__instance__ = new TTCookieCtrl();
	}else{
		if(tag=='new') this.__instance__ = new TTCookieCtrl();
	}
	return this.__instance__;
};

