var Layout =
{
	Behaviors:
	{
		start: function()
		{
			TB_init();
			$('a.scroll').click(function(event)
			{
				event.preventDefault();
				if(this.hash)
				{
					$('#' + this.rel).ScrollTo(800); 
					return false;
				}
			});
		
			if(typeof sIFR == "function")
			{
				sIFR.replaceElement(named({
					sSelector: '.blue-box h2', 
					sFlashSrc: WEBROOT + 'media/futura.swf',
					sColor: "#FFFFFF",
					sWmode: 'transparent'
				}));			
				sIFR.replaceElement(named({
					sSelector: 'h1, h2, h3', 
					sFlashSrc: WEBROOT + 'media/futura.swf',
					sColor: "#073D87",
					sWmode: 'transparent'
				}));
			}
			
			var so = new SWFObject( WEBROOT + 'media/'+ (Site.lang || 'en') + '_top.swf', 'ESM', '748', '175', '6', '#fff', '1');
			so.addParam('wmode', 'opaque');
			so.addVariable('webroot', WEBROOT);
			so.write('media-top');			
			$("tr:odd").addClass("odd");
			$('#footer').prepend('<div class="border-left"></div><div class="border-right"></div>');
			Layout.Utils.rounded();
			Layout.Utils.fixForms();
			TB_init();
			try
			{
				if(Callbacks)
				{
					for(var i in Callbacks)
					{
						if(Site.here && Callbacks[i]['pattern'] && Site.here.match(Callbacks[i]['pattern']))
							Callbacks[i]['fct']();
					};
				}
			} catch(e){}
						
			if($('#error')[0])
			{
				$('#error')
				.ScrollTo(800)
				.fadeIn('slow')
				.animate({opacity: 1.0}, 3000)
				.fadeOut('slow', function() {$(this).remove()});
			}			
		}
	}
	
	, Utils:
	{
		rounded: function(selector)
		{
			if(!selector)
				selector = 'div.blue-box';
			$(selector).each(function()
			{
				var wrapper = $('<div>').addClass('wrapper').html($(this).html());
				$(this).empty().prepend(wrapper).prepend('<div class="bottom"></div>');
			});
		}
		
		, fixForms: function(selector)
		{
			if( jQuery.browser.mozilla )
			{
				if(!selector)
					selector = 'form.cmxform';
				
				// search form, hide it, search labels to modify, filter classes nocmx and error
				$(selector).hide().find('p/label:not(.nocmx):not(.error)').each(function()
				{
					var $this = $(this);
					var labelContent = $this.html();
					var labelWidth = document.defaultView.getComputedStyle(this, '').getPropertyValue('width');
					// create block element with width of label
					var labelSpan = $('<span>')
						.css('display', 'block')
						.width(labelWidth)
						.html(labelContent);
					// change display to mozilla specific inline-box
					$this.css('display', '-moz-inline-box')
						// remove children
						.empty()
						// add span element
						.append(labelSpan);
				// show form again
				}).end().show();
			}
		}	
	}
}

Site.registerController(Layout);