themefeatures = function()
{


	var $ = function(el) { return document.getElementById(el); };

	function loadGMaps()
	{
		if (GBrowserIsCompatible())
		{
			map = new GMap2($("map"));
			map.addMapType(G_PHYSICAL_MAP);
			map.setCenter(new GLatLng(37.081476,-7.78862), 11);

			var center = new GLatLng(37.103076,-7.671064);
			var marker = new GMarker(center, {draggable: false});
			map.addOverlay(marker);

			var mapControl = new GMapTypeControl();
			map.addControl(new zoomToQuintamar());
			map.addControl(mapControl);
			map.addControl(new GLargeMapControl());
		}
		window.onunload = function () { GUnload(); }
	}

	if ( $('map') )
	{
		var map = {}; // global object, needed later

		var zoomToQuintamar = function () {}
		zoomToQuintamar.prototype = new GControl();
		zoomToQuintamar.prototype.initialize = function(map) {
			var zoomInDiv = document.createElement("div");
			zoomInDiv.id = 'center_map';
			zoomInDiv.appendChild(document.createTextNode(maps_text_center_map));

			GEvent.addDomListener(zoomInDiv, "click", function() {
				map.setCenter(new GLatLng(37.103076,-7.671064), 11);
			});

			map.getContainer().appendChild(zoomInDiv);
			return zoomInDiv;
		}

		zoomToQuintamar.prototype.getDefaultPosition = function() {
			return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(7, 7));
		}

		loadGMaps();
	}

	if ($('thumbnails'))
	{
		// http://www.leigeber.com/2008/05/ultimate-javascript-scroller-and-slider/

		var SLIDETIMER = 10;
		var SLIDESPEED = 20;
		var STARTINGOPACITY = 90;

		var slideContent = function(sled, by, dir)
		{
			clearInterval(sled.timer);
			sled.current = parseInt(sled.style.marginLeft);
			sled.by = by;
			sled.style.opacity = STARTINGOPACITY * .01; // FF
			sled.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')'; // IE
			sled.timer = setInterval( function() { slideAnimate(sled,dir) }, SLIDETIMER);
		};

		var slideAnimate = function(sled, dir)
		{
			sled.by -= SLIDESPEED;
			var moveby = (sled.by > 0) ? SLIDESPEED : SLIDESPEED + sled.by;
			var newpos = parseInt(sled.style.marginLeft) + (moveby * dir);
			sled.style.marginLeft = newpos + 'px';

			if (sled.by < 0)
			{
				sled.style.opacity = 1;
				sled.style.filter = 'alpha(opacity=100)';
				clearInterval(sled.timer);
			}
		};

		var sled =  $('sledfix');
		sled.style.marginLeft = sled.style.marginLeft || '0px';

		var elmargin = 6;

		var elems = sled.getElementsByTagName('span');
		var elength = elems.length;
		var elem = { width: elems[0].offsetWidth, margin: elmargin };

		if (elength < 4)
		{
			// center images
			sled.style.marginLeft = (sled.parentNode.parentNode.offsetWidth - sled.offsetWidth) / 2 +'px';
		}
		else if (elength == 4)
		{
			// perfect!
		}
		else
		{
			$('prev').style.display = 'block';
			$('next').style.display = 'block';

			$('prev').onclick = function()
			{
				if ( parseInt(sled.style.marginLeft) < 0 )
					slideContent(sled, elem.margin + elem.width, 1);
			};

			$('next').onclick = function()
			{
				if ( sled.parentNode.parentNode.offsetWidth - sled.offsetWidth < parseInt(sled.style.marginLeft) - elmargin )
					{ slideContent(sled, elem.margin + elem.width, -1); }
			};
		}

		if (typeof(pics) != 'undefined' && elems)
		{
			var padding = 0;

			var fill_image = function(id)
			{
				var imgel = $('largepic');

				imgel.src = pics[id].url;

				if (pics[id].height && pics[id].width)
				{
					imgel.width = pics[id].width;
					imgel.height = pics[id].height;
				}
			}

			fill_image(elems[0].id);

			for (var p=0; p<elength; p++)
			{
// 				center_image(elems[p].getElementsByTagName('img')[0], true);
				elems[p].onclick = function()
				{
					if (typeof(pics[this.id]) != 'undefined')
					{
						fill_image(this.id)
					}
				}
			}
		}
	}

	if ($('category_overview'))
	{
		var images = $('category_overview').getElementsByTagName('img');
		for (var i=0; i < images.length; i++)
		{
			center_image(images[i], true);
		}
	}

};


if (window.attachEvent) { window.attachEvent('onload', themefeatures); }
else if (window.addEventListener) { window.addEventListener('load', themefeatures, false); }
else { document.addEventListener('load', themefeatures, false); }


