dojo.require('actijscore.parser');

dojo.provide('frontpage.diaporama');

dojo.declare('frontpage.diaporama', null, 
{
	domNode: null,
	arrDDList: [],
	arrDTList: [],
	arrLinks: [],

	constructor: function(params, srcNodeRef)
	{
		this.arrLinks = [];
		this.domNode = srcNodeRef;
		this.arrDDList = dojo.query('dl dd', this.domNode);
		this.arrDTList = dojo.query('dl dt', this.domNode);

		this.arrDTList.forEach(dojo.hitch(this, function(domElem)
		{
			var a = dojo.query('a', domElem)[0];
			this.arrLinks.push(new frontpage.diaporama_link({objDiaporama: this}, a));
		}));
	},

	destroy: function()
	{
		var objLink;
		while ((objLink = this.arrLinks.pop()) != undefined)
		{
			dojo.destroy(objLink);
		}
	}
});

dojo.provide('frontpage.diaporama_link');

dojo.declare('frontpage.diaporama_link', null, 
{
	arrHandler: [],
	domNode: null,
	objDiaporama: null,

	constructor: function(params, srcNodeRef)
	{
		this.arrHandler = [];
		this.domNode = srcNodeRef;
		this.objDiaporama = params.objDiaporama;
		var handler = dojo.connect(this.domNode, 'onmouseenter', this, this.onClick);
		this.arrHandler.push(handler);
	},

	destroy: function()
	{
		var h;
		while ((h = this.arrHandler.pop()) != undefined)
		{
			dojo.disconnect(h);
		}
	},

	onClick: function(e)
	{
		/*if (dojo.isIE == 7) {
			return;
		}*/
		var dt = this.domNode.parentNode;
		var dd = dt.nextSibling;
		while (dd.nodeType != 1)
		{
			dd = dd.nextSibling;
		}
		var img = dojo.query('input.jsDiaporamaImage', dd)[0];
		var color = dojo.query('input.jsDiaporamaColor', dd)[0];
		dojo.style(this.objDiaporama.domNode, 'background', '#' + dojo.attr(color, 'value') + ' url(' + dojo.attr(img, 'value') + ') no-repeat left top');

		this.objDiaporama.arrDTList.removeClass('active');
		this.objDiaporama.arrDDList.removeClass('active');
		dojo.addClass(dd, 'active');
		dojo.addClass(dt, 'active');
		dojo.stopEvent(e);
	}
});

actiJSCoreParser.addDefinition(".jsDiaporama", frontpage.diaporama, {});
