
function getAllSheets() {
	var lk = document.getElementsByTagName('link');
	as = [];
	for (var i = 0; i < lk.length; i++)
		if (lk[i].title) {
			var rel = lk[i].rel ? lk[i].rel : lk[i].getAttribute ? lk[i].getAttribute('rel') : '';
			if (typeof(rel) == 'string' && rel.toLowerCase().indexOf('style') != -1)
				as[as.length] = lk[i];
		}
	return as;
}

function changeSheet(is) {
	var i;
	for (i = 0; i < tt.length; i++) {
		bb[i].disabled = false;
	}
	for (i = 0; i < ss.length; i++) {
		ss[i].disabled = true;
	}
	bb[is].disabled = true;
	var ts = tt[is].sheets;
	for (i = 0; i < ts.length; i++) {
		ss[ts[i]].disabled = false;
	}
	setStyleCookie(tt[is].title);
}

function storeSheet() {
	for (var i = 0; i < ss.length; i++)
		if (!ss[i].disabled)
			break;
	if (i < ss.length)
		setStyleCookie(ss[i].title);
}

function setupSheet() {
	ss = getAllSheets();
	tt = [];
	var i, j;
	for (i = 0; i < ss.length; i++) {
		for (j = 0; j < tt.length; j++)
			if (ss[i].title == tt[j].title) {
				tt[j].sheets[tt[j].sheets.length] = i;
				break;
			}
		if (j == tt.length) {
			tt[j] = new Object;
			tt[j].title = ss[i].title;
			tt[j].sheets = [i];
		}
	}
	var lis = '';
	for (i = 0; i < tt.length; i++)
		lis += '<li><button id=b' + i + ' onclick="changeSheet(\'' + i + '\')">' + tt[i].title + '</button></li>\n';
	var ul = document.getElementById('sheetli');
	ul.innerHTML += lis;
	ul = ul.nextSibling;
	if (ul.nodeName != 'P')
		ul = ul.nextSibling;
	if (ul.nodeName == 'P')
		ul.innerHTML = 'click one of the above buttons to change the style sheet of this page ' + ul.innerHTML;
	bb = [];
	for (i = 0; i < tt.length; i++)
		bb[i] = document.getElementById('b' + i)

	// si assume che il non alternate sia il primo in dom di quelli con title
	var is = 0;
	var biscs = document.cookie.split('; ');
	var i, j;
	for (j = 0; j < biscs.length; j++) {
		var bisc = biscs[j].split('=');
		if (bisc[0] == 'bdfstyle') {
			for (i = 0; i < tt.length; i++)
				if (bisc[1] == tt[i].title)
					is = i;
			break;
		}
	}
	changeSheet(is);
}

function setStyleCookie(sn) {
	document.cookie = 'bdfstyle=' + sn + ';expires=' + new Date( (new Date()).getTime() + 7 * 86400000 ).toGMTString() + ';path=/';
//	document.cookie = 'bdfstyle=' + sn + ';path=/';
//	alert(document.cookie);
}


window.onload = setupSheet;
window.onunload = storeSheet;
