var content;
var swapdiv;

Ext.onReady(function() {
	new Ext.ux.Carousel('slideshow', {
		itemSelector: 'img',
		interval: 8,
		transitionDuration: 2,
		autoPlay: true,
		freezeOnHover: true,
		transitionType: 'fade',
		hideNavigation: true
	});

	content = Ext.get('content');
	swapdiv = Ext.get('swapdiv');
	
	var sel = 'a[rel^=switch]';
	
	Ext.fly(document).on('click', function(ev){
		var target = ev.getTarget(sel);

		if (target) {
			ev.preventDefault();
			
			var regs = target.href.match(/page=(.+)/);
			
			switchPage(regs[1]);
		}
	});
});

function switchPage(page) {
	var curEl;
	var els = Ext.get('menu').select('a');
	
	els.each(function(el) {
		if(el.getAttribute('href')) {
			var ereg = eval('/page=' + page + '/');
			
			if(el.getAttribute('href').match(ereg)) {
				el.addClass('loading');
			}
		}
	});

	els.removeClass('active');
	

	Ext.Ajax.request({
		url: 'loadcontent.php',
		params: {
			page: page
		},
		
		success: function(c, r, o) {
			var calcDiv = Ext.getBody().createChild({
				html: c.responseText,
				style: 'position: absolute; visibility: hidden; left: -1000px; top: -1000px; width: 470px;'
			});
			
			swapdiv.fadeOut({
				remove: false,
				callback: function() {
					var h = calcDiv.getHeight() + 80;
					
					content.setHeight(h);
					
					swapdiv.remove();
					
					swapdiv = content.createChild({
						html: c.responseText,
						style: 'visibility: hidden;'
					});
					
					
					swapdiv.fadeIn({
						callback: function() {
							// Fixes cleartype in IE7
							if(Ext.isIE7)
								swapdiv.dom.style.removeAttribute("filter");
							
							els.each(function(el) {
								if(el.getAttribute('href')) {
									var ereg = eval('/page=' + page + '/');
									
									if(el.getAttribute('href').match(ereg)) {
										el.removeClass('loading');
										el.addClass('active');
									}
								}
							});
						}
					});
					
					calcDiv.remove();
				}
			});
		},
		failure: function() {}
	});
}
