// Cufon Font Replace
Cufon.replace('.cufon_replace', 
{
	fontFamily: 'Helvetica Neue LT Std', 
	hover: true 
});

// Window Domready Functions
window.addEvent('domready', function()
{
	
	// Initialize Reset Search Input
	if ($('input-search'))
	{
		objSearch = new TopForce.searchInput( $('input-search') );
	};
	
	// Initialize News Ticker
	if ($('news_scroller'))
	{
		objScroller = new TopForce.newsScroller();
	};
	
	// Initialize People Slider
	if ($('people_slider'))
	{
		objPeopleSlider = new TopForce.peopleScroller();
	};
	
	// Profile Tabber
	if ($('profile_tabber'))
	{
		objTabber = new TopForce.HtmlTabber( 
			$$('#profile_tabber ul.tabber li'), 
			$$('#profile_tabber div.tabcontent'), 
			0, 
			'Monktools.Html.Tabber.Index' 
		);
	};
	
	// Contact Tabber
	if ($('contact_tabber'))
	{
		objContactTabber = new TopForce.HtmlTabber( 
			$$('#contact_tabber ul.tabber li'), 
			$$('#contact_tabber div.tabcontent'), 
			0, 
			'Monktools.Html.Tabber.Contact' 
		);
	};
	
	// Initialize Pushbox
	if ($('pushbox'))
	{
		objPushbox = new TopForce.Pushbox();
	};
	
	// Initialize Overlay
	if ($('overlay'))
	{
		objOverlay = new TopForce.Overlay();
	};
	
	// NewsList, Add Hover Class en Make full block link from the A tag Inside
	$$('.newslist li').addEvents(
	{
		mouseenter: function()
		{
			this.addClass('hover');
		},
		mouseleave: function()
		{
			this.removeClass('hover');
		},
		click: function()
		{
			if (this.getElement('a'))
			{
				document.location.href = this.getElement('a').get('href');
			};
		}
	});
	
	
});

// objTopForce for JS Classes Prefix
var TopForce = {};

// News Scroller
TopForce.newsScroller = new Class(
{
	objElements: null,
	
	intActive: 0,
	intNextActive: 0,
	intTimer: 0,
	intDelay: 8000,
	
	initialize: function()
	{
		// Set Elements
		this.objElements = {};
		
		this.objElements.elWrapper = $('news_scroller');
		this.objElements.arrItems = this.objElements.elWrapper.getElement('ul.scroller').getElements('li');
		this.objElements.intItems = this.objElements.arrItems.length;
		
		this.objElements.arrNavItems = this.objElements.elWrapper.getElement('ul.navbuttons').getElements('li');
		
		// Set Styles
		this.objElements.arrItems.each(function(elItem, intKey)
		{
			if (intKey != 0)
			{
				elItem.setStyles(
				{
					'display': 'block',
					'opacity': 0
				});
			}
		});
		
		// Add Button Events
		this.addButtonEvents();
		
		this.intTimer = this.countNext.bind(this).delay(this.intDelay);
		
	},
	
	addButtonEvents: function()
	{
		// Add Click Events to Round Buttons
		this.objElements.arrNavItems.each(function(elItem, intKey)
		{
			elItem.addEvents(
			{
				click: function()
				{
					if (!elItem.hasClass('active'))
					{	
						this.intTimer = $clear(this.intTimer);
						this.intNextActive = intKey;
						this.showNext();
					};
				}.bind(this)
			});
		}.bind(this));
	},
	
	countNext: function()
	{
		this.intNextActive++;		
		if (this.intNextActive == (this.objElements.intItems))
		{
			this.intNextActive = 0;
		};
		
		this.showNext();
	},
	
	showNext: function()
	{
		// Fade old out
		this.objElements.arrItems[this.intActive].fade('out');
		this.objElements.arrNavItems[this.intActive].removeClass('active');
		
		// Set intActive
		this.intActive = this.intNextActive;
		
		// Fade new in
		this.objElements.arrItems[this.intActive].fade('in');
		this.objElements.arrNavItems[this.intActive].addClass('active');
		
		// ShowNext with Delay
		this.intTimer = this.countNext.bind(this).delay(this.intDelay);
	}
	
});

// People Scroller
TopForce.peopleScroller = new Class(
{
	objElements: null,
	
	intActive: 0,
	intStep: 200,
	
	objMorph: null,
	
	initialize: function()
	{
		// Set Elements
		this.objElements = {};
		
		this.objElements.elWrapper = $('people_slider');
		this.objElements.elSlider = this.objElements.elWrapper.getElement('ul');
		this.objElements.arrItems = this.objElements.elWrapper.getElements('li');
		this.objElements.intItems = this.objElements.arrItems.length;
		
		this.objElements.elPrevButton = this.objElements.elWrapper.getElement('h2 span.buttons a.btn_prev');
		this.objElements.elNextButton = this.objElements.elWrapper.getElement('h2 span.buttons a.btn_next');
		
		this.addButtonEvents();
		this.checkButtons();
		
		this.objMorph = new Fx.Morph(this.objElements.elSlider,
		{
			duration: 500,
			link: 'cancel',
			transition: Fx.Transitions.Sine.easeOut
		});
	},
	
	addButtonEvents: function()
	{
		this.objElements.elPrevButton.addEvents(
		{
			click: function()
			{
				if (this.intActive > 0)
				{
					this.intActive--;
					this.slideToActive();
				};
			}.bind(this)
		});
		
		this.objElements.elNextButton.addEvents(
		{
			click: function()
			{
				if (this.intActive < this.objElements.intItems - 3)
				{
					this.intActive++;
					this.slideToActive();
				};
			}.bind(this)
		});
	},
	
	checkButtons: function()
	{
		if (this.intActive == 0)
		{
			this.objElements.elPrevButton.fade(.4);
		}
		else
		{
			this.objElements.elPrevButton.fade(1);
		}
		
		if (this.intActive == this.objElements.intItems - 3)
		{
			this.objElements.elNextButton.fade(.4);
		}
		else
		{
			this.objElements.elNextButton.fade(1);
		}
	},
	
	slideToActive: function()
	{
		intPosition = this.intActive * this.intStep;
		this.objMorph.start(
		{
			'margin-left': '-'+intPosition+'px'
		});
		
		this.checkButtons();
	}
	
});

// SearchInput
TopForce.searchInput = new Class(
{
	elObject: null,
	strValue: null,
	
    initialize: function(argElSearchInput)
	{
		this.elObject = argElSearchInput;
		this.strValue = this.elObject.get('value');
		
		// Focus/Blur Searchinput Event
		this.elObject.addEvents(
		{
			focus:function()
			{
				if (this.elObject.get('value') == this.strValue)
				{
					this.elObject.set('value', '');
				};
			}.bind(this),
			blur:function()
			{
				if(!$chk(this.elObject.get('value')))
				{
					this.elObject.set('value', this.strValue);
				}
			}.bind(this)
		});
    }

});


TopForce.HtmlTabber = new Class(
{
	strCookieName: null,
	initialize:function(tabs,content,activate,strCookieName)
	{
		this.tabs = $A(tabs);
		this.content = $A(content);
		
		if (strCookieName)
		{
			this.strCookieName = strCookieName;
		}
		else
		{
			this.strCookieName = 'Monktools.Html.Tabber.Index';
		}		
		
		this.tabs.each(function(el,i)
		{
			el._parent = this;
			el.i = i;
			el.addEvent('click',function()
			{
				this._parent.activate(this.i);
				return false;
			});
		}.bind(this));
		
		var cookie_activate = Cookie.read(this.strCookieName);
		
		if( cookie_activate != null )
		{
			this.activate( cookie_activate );
		}
		else if(activate != undefined)
		{
			this.activate( activate );
		}
	},
	
	activate:function(argI)
	{
		Cookie.write(this.strCookieName, argI, {duration: 1});
		
		this.tabs.each(function(el,i)
		{
			el.removeClass('active');
			
			if(i == argI)
			{
				el.addClass('active');
			}
		}.bind(this));
		
		this.content.each(function(el,i)
		{
			el.setStyle('display','none');
			
			if(i == argI)
			{
				el.setStyle('display','block');
			}
		}.bind(this));
	}
});

// Pushbox
TopForce.Pushbox = new Class(
{
	objElements: null,
	
	intActive: 0,
	intNextActive: 0,
	intTimer: 0,
	intDelay: 8000,
	
	initialize: function()
	{
		// Set Elements
		this.objElements = {};
		
		this.objElements.elWrapper = $('pushbox');
		this.objElements.arrItems = this.objElements.elWrapper.getElement('ul.scroller').getElements('li');
		this.objElements.intItems = this.objElements.arrItems.length;
		
		this.objElements.arrNavItems = this.objElements.elWrapper.getElement('ul.navbuttons').getElements('li');
		
		// Set Styles
		this.objElements.arrItems.each(function(elItem, intKey)
		{
			if (intKey != 0)
			{
				elItem.setStyles(
				{
					'display': 'block',
					'opacity': 0
				});
			}
		});
		
		// Add Button Events
		this.addButtonEvents();
		
		this.intTimer = this.countNext.bind(this).delay(this.intDelay);
		
	},
	
	addButtonEvents: function()
	{
		// Add Click Events to Round Buttons
		this.objElements.arrNavItems.each(function(elItem, intKey)
		{
			elItem.addEvents(
			{
				click: function()
				{
					if (!elItem.hasClass('active'))
					{	
						this.intTimer = $clear(this.intTimer);
						this.intNextActive = intKey;
						this.showNext();
					};
				}.bind(this)
			});
		}.bind(this));
	},
	
	countNext: function()
	{
		this.intNextActive++;		
		if (this.intNextActive == (this.objElements.intItems))
		{
			this.intNextActive = 0;
		};
		
		this.showNext();
	},
	
	showNext: function()
	{
		// Fade old out
		this.objElements.arrItems[this.intActive].fade('out');
		this.objElements.arrNavItems[this.intActive].removeClass('active');
		
		// Set intActive
		this.intActive = this.intNextActive;
		
		// Fade new in
		this.objElements.arrItems[this.intActive].fade('in');
		this.objElements.arrNavItems[this.intActive].addClass('active');
		
		// ShowNext with Delay
		this.intTimer = this.countNext.bind(this).delay(this.intDelay);
	}
	
});

// Solliciteren Overlay
TopForce.Overlay = new Class(
{
	initialize: function()
	{
		this.addButtonEvents();
		this.hideOverlay();
	},
	
	addButtonEvents: function()
	{
		$$('.showapplyform').addEvents(
		{
			click: function(event)
			{
				event.preventDefault();
				
				this.showOverlay();
			}.bind(this)
		});
		
		$$('.closebtn').addEvents(
		{
			click: function(event)
			{
				event.preventDefault();
				
				this.hideOverlay();
			}.bind(this)
		});
	},
	
	showOverlay: function()
	{
		$('overlay').setStyle('display', 'block');
		$('overlay').fade('in');
	},
	
	hideOverlay: function()
	{
		$('overlay').setStyles({'display': 'block', 'opacity': 0});
	}
});