
	// gestione delle immagini a rotazione

var rndimage = function(el, pgid, base, data) {
	
	this.$el = $(el);
	this.pgid = pgid;
	this.base = base;
	this.data = data;

	this.load();
};

rndimage.prototype.load = function() {

	var i = this.data[ this.getIndex() ];
	
	this.$el.attr({
		'src': this.base + i[0],
		'alt': i[1]
	});
};

rndimage.prototype.getIndex = function() {

	var
		c = this.unserialize(FlexJS.cookie.get('rndimage_')),
		n = c[ this.pgid ] != null ? parseInt(c[ this.pgid ], 10) : Math.floor(Math.random() * this.data.length)
	;

	c[ this.pgid ] = (n + 1) % this.data.length;

	FlexJS.cookie.set('rndimage_', this.serialize(c));
	
	return n;
};

rndimage.prototype.serialize = function(a) {
	
	var t = [];
	for (var k in a)
		t.push(k + '=' + a[k]);
		
	return t.join('/');
};

rndimage.prototype.unserialize = function(s) {

	if (! s)
		return {};

	var
		c = s.split('/'),
		t = {}
	;
	
	for (var i = 0; i < c.length; i++) {
		
		var e = c[i].split('=');

		t[ e[0] ] = e[1];
	}
	
	return t;
};

	// funzioni per la gestione dei cookie, da spostare
	// in FlexJS

FlexJS = window.FlexJS || {};

FlexJS.cookie = {};

FlexJS.cookie.set = function(name, value, days) {

	var expires = '';
	if (days) {

		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		expires = '; expires=' + date.toGMTString();
	}

	document.cookie = name + '=' + value + expires + "; path=/";
};

FlexJS.cookie.get = function(name) {
	
	var
		nameEQ = name + '=',
		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;
};

FlexJS.cookie.erase = function(name) {
	
	FlexJS.cookie.set(name, '', -1);
};

