﻿function getCookie(name) {
	var idx = document.cookie.lastIndexOf(name+'=');
	if(idx == -1) { return null; }
	var value = document.cookie.substring(idx+name.length+1);
	var end = value.indexOf(';');
	if(end == -1) { end = value.length; }
	value = value.substring(0, end);
	value = unescape(value);
	return value;
}

function setCookie(name, value, hours, path, domain, secure) {
	var expires = -1;
	if((typeof days == "number")&&(days >= 0)){
		var d = new Date();
		d.setTime(d.getTime()+(hours*60*60*1000));
		expires = d.toGMTString();
	}
	value = escape(value);
	document.cookie = name + "=" + value + ";"
	+ (expires != -1 ? " expires=" + expires + ";" : "")
	+ (path ? "path=" + path : "")
	+ (domain ? "; domain=" + domain : "")
	+ (secure ? "; secure" : "");
}

function evalJson(json) {
	try {
		return eval("(" + json + ")");
	} catch(e){
		return json;
	}
}

function serializeArray(arr){
	return "[" + arr.join(",") + "]";
}

function removeFromArray(arr, v) {
	var r=new Array();
	for (var i=0; i<arr.length; i++) if (arr[i]!=v) r.push(arr[i]);
	return r;
}

function addUniqueToArray(arr, v) {
	var r=removeFromArray(arr, v);
	r.push(v);
	return r;
}

function getArrayFromCookie() {
	var c=getCookie('favoriteslist');
	if (c!='' && c!=null) {
		var carr=evalJson(c);
	} else {
		carr=new Array();
	}
	return carr;
}

function addToFavoritesList(v) {
	var carr=getArrayFromCookie();
	carr=addUniqueToArray(carr,v);
	setCookie('favoriteslist', serializeArray(carr), 12, "/");
	window.location.reload();
}

function removeFromFavoritesList(v) {
	var carr=getArrayFromCookie();
	carr=removeFromArray(carr,v);
	setCookie('favoriteslist', serializeArray(carr), 12, "/");
	window.location.reload();
}

function adjustFavoritesMessage(v) {
	var nfav = document.getElementById('favoriteslist');
	var nsin = document.getElementById('singlefavorite');
	var nmul = document.getElementById('multiplefavorites');

	if (!nfav || !nsin || !nmul) return false;
	if (v == 1) {
		nmul.parentNode.removeChild(nmul);
		var txt = nsin.firstChild.nodeValue;
		nsin.firstChild.nodeValue = txt.replace( "%", v );
	} else {
		nsin.parentNode.removeChild(nsin);
		var txt = nmul.firstChild.nodeValue;
		nmul.firstChild.nodeValue = txt.replace( "%", v );
	}
	nfav.style.display = 'block';
}

addDOMLoadEvent(function() {
	var carr=getArrayFromCookie();
	if (carr.length>0) adjustFavoritesMessage(carr.length);
});
