if (!window.TabStrip)
	window.TabStrip = {};

TabStrip.Page = function(controlId, tabData, activeTabIndex) 
{
	this.controlId = controlId;
	this.tabData = tabData;
	this.activeTabIndex = activeTabIndex;
}

TabStrip.Page.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		this.root = rootElement;
		
		this.createTabs();
	},
	
	
	createTabs: function() {
		var templateTabCanvas = '<Canvas Width="$WIDTH" Height="24" Canvas.Left="$LEFT" Canvas.Top="8" Opacity="0.6" Cursor="Hand"></Canvas>';
		var templateTabRect = '<Rectangle Width="$WIDTH" Height="24" StrokeThickness="2"><Rectangle.Fill><LinearGradientBrush EndPoint="0.5,1.0" StartPoint="0.5,0.0"><GradientStop Color="#FF799241" Offset="0"/><GradientStop Color="#FF68852B" Offset="1"/><GradientStop Color="#FF505E29" Offset="0.476"/><GradientStop Color="#FF3F4E15" Offset="0.486"/></LinearGradientBrush></Rectangle.Fill><Rectangle.Stroke><LinearGradientBrush EndPoint="0.5,1.0" StartPoint="0.5,0.0"><GradientStop Color="#FF9DB46E" Offset="0"/><GradientStop Color="#FF485E1D" Offset="1"/><GradientStop Color="#FF698322" Offset="0.078"/><GradientStop Color="#FF698322" Offset="0.966"/></LinearGradientBrush></Rectangle.Stroke></Rectangle>';
		var templateText =	'<TextBlock Height="14" TextWrapping="NoWrap" FontFamily="Arial" Foreground="#FFFFFFFF" FontSize="12" Canvas.Left="5" Canvas.Top="7" Text="$TEXT"></TextBlock>';
		
		var textMargin = 14;
		var tabOffset = 12;
		var tabMargin = 1;
		
		for(i = 0; i < this.tabData.length; i++) {
			var Tab = this.tabData[i];
			
			// Text
			var xamlText = templateText.replace('$TEXT', Tab.Text);
			var objText = this.control.content.createFromXaml(xamlText);
			var textWidth = objText.ActualWidth;
			
			// Canvas und Rect
			var tabWidth = textWidth + textMargin;
			var xamlTabCanvas = templateTabCanvas.replace('$WIDTH', tabWidth);
			xamlTabCanvas = xamlTabCanvas.replace('$LEFT', tabOffset);
			var objTabCanvas = this.control.content.createFromXaml(xamlTabCanvas);
			objTabCanvas.Tag = String(i);
			var xamlTabRect = templateTabRect.replace('$WIDTH', tabWidth);
			var objTabRect = this.control.content.createFromXaml(xamlTabRect);
			
			this.root.children.add(objTabCanvas);
			objTabCanvas.children.add(objTabRect);
			objTabCanvas.children.add(objText);
			
			if (this.activeTabIndex == i) objTabCanvas.Opacity = 1.0;
			
			objTabCanvas.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleTabClick));
			objTabCanvas.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.handleTabEnter));
			objTabCanvas.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.handleTabLeave));
			
			tabOffset = tabOffset + tabWidth + tabMargin;
		}
	},
	
	
	
	handleTabClick: function(sender, args) 
	{
		var tabIndex = parseInt(sender.Tag);
		if ((tabIndex < 0) || (tabIndex >= this.tabData.length)) return;
		
		window.location.href = this.tabData[tabIndex].Url;
	},
	
	handleTabEnter: function(sender, args) {
		sender.Opacity = 1.0;		
	},
	
	handleTabLeave: function(sender, args) {
		if (sender.Tag == this.activeTabIndex) return;
		sender.Opacity = 0.6;
	}

}