var cookieBase = 'it.laserwave.preference.cookie';
var cookieTTL = 1000*60*60*24*30; // 1 mese
var cookieDomain = location.hostname;
var cookiePath = '/';

// Sets cookie values. Expiration date and domain are optional
function setCookie(name, value, expire, domain, path) {
	// alert('SAVE\nName=' + name + '\nValue=' + value);

	var cookieItem = cookieBase + '.' + name + "=" + escape(value);

	cookieItem += (((expire == null) || (expire == '')) ? "" : ("; expires=" + expire.toGMTString())) ;
	//(path == undefined) ||
	if ((path == null) ||  (path == '')) {
		// alert("Parametro Path nella chaimata NULLO"); 
		// (cookiePath == undefined) ||
		if ((cookiePath == null) ||  (cookiePath == '')) {
		} else {
			cookieItem += "; path=" + cookiePath;		
		}

	} else {
		// alert("Parametro Path nella chaimata NON nullo"); 
		cookieItem += "; path=" + path;
	}
	//(domain == undefined) || 
	if ((domain == null) || (domain == '')) {
		if ((cookieDomain == null) || (cookieDomain == '')) {
		} else {
			cookieItem += "; domain=" + cookieDomain;		
		}

	} else {
		cookieItem += "; domain=" + domain;
	}

	// alert(cookieItem);
	document.cookie = cookieItem;
}

function getCookie(Name) {
	// alert('getCookie ' + Name);
	var search = cookieBase + '.' + Name + "=" ;
	if (document.cookie.length > 0) { 
		// if there are any cookies
		offset = document.cookie.indexOf(search);
		if (offset != -1) { 
			// if cookie exists
			// set index of beginning of value
			offset += search.length ;

			// set index of end of cookie value
			end = document.cookie.indexOf(";", offset) ;
			if (end == -1) {
				end = document.cookie.length ;
			}
			// alert('LOAD\nName=' + Name + '\nValue=' + unescape(document.cookie.substring(offset, end)));
			return unescape(document.cookie.substring(offset, end));

		} else {
			// alert('Document cookie ' + Name + ' NOT exist');
		}
	} else {
		// alert('No any document cookie exist');
	}
	return null;
}

function getExpiredValue() {
	var today = new Date();
	var expires = new Date();
	expires.setTime(today.getTime() + cookieTTL);
	// alert(expires);
	return expires;
}

function testCookies(){
	var cookieName = cookieBase + '.test';
	setCookie(cookieName, 'test', getExpiredValue());
	// setCookie(cookieName, 'test');
	if(getCookie(cookieName) == null) {
          	return false;
	}
     	return true;
}

function put2request(code, page_url){
	if ((code == null) ||  (code == '')) {
		alert('Codice prodotto non specificato!');
	} else {
		var cookieName = cookieBase + '.request';
		setCookie(cookieName, code, getExpiredValue());
	}

	if ((page_url == null) ||  (page_url == '')) {
		alert('URL pagina richieste non specificata!');
	} else {
		location.replace(page_url);
	}
}

function get4request(){
	var cookieName = cookieBase + '.request';
	return getCookie(cookieName);
}
