var CONFIG = {};
var objTabber;

window.addEvent('domready', function()
{	
	var strBaseHref = $(document.head).getElement('base');
	CONFIG.BASE_URL = strBaseHref.href;
	
	if ($('search-keyword'))
	{
		var objSearch = new Search();
	};
	
	if ($('newsticker'))
	{
		var objNewsticker = new Newsticker();
	};
	
	if($('content'))
	{
		$('content').getElements('div.tabs').each(function(tabContainer)
		{
			objTabber = new Tabber(tabContainer);
		});
	}
	
	if($('content'))
	{
		$('content').getElements('div.tabslite').each(function(tabContainer)
		{
			objTabber = new Tabberlite(tabContainer);
		});
	}
	
	if($('formcontact'))
	{
		$('formcontact').getElements('input[type=text]').each(function(elInput)
		{
			elInput.addEvent('keyup', function()
			{
				$('reaction_nskey').value = 'aNtIsPaMkEy!!11';
			});
		});
	}
	
	// Dropdown Navigation in the Main Nav
	$('mainnav').getElements('ul li.main').each(function(elListItem, intKey)
	{
		if (elListItem.getElement('ul'))
		{
			elListItem.getElement('a').addEvents(
			{
				mouseenter: function()
				{
					this.addClass('hover');
					elListItem.getElement('ul').addClass('hover');
				},
				mouseleave: function()
				{
					elListItem.getElement('ul').removeClass('hover');
					this.removeClass('hover');
				}
			});
			elListItem.getElement('ul').addEvents(
			{
				mouseenter: function()
				{
					this.addClass('hover');
					this.getParent().getElement('a').addClass('hover');
				},
				mouseleave: function()
				{
					this.removeClass('hover');
					this.getParent().getElement('a').removeClass('hover');
				}
			});
		};
	});
	
	// custom stuff per page
	var strHref = location.href;
	var strFaqPattern = /faq/;
	var strBusinessPattern = /business-operations/;
	var strCulturePattern = /life-at-optiver\/global-culture/;
	var strBasicRequirements = /careers\/basic-requirements/;
	var strHistory = /the-company\/history/;	
	if(
		strFaqPattern.test(strHref)
		||
		strBusinessPattern.test(strHref)
		||
		strCulturePattern.test(strHref)
		||
		strBasicRequirements.test(strHref)
		||
		strHistory.test(strHref)
	)
	{
		var i = 0;
		$$('#content .usercontent h3').each(function(elTitle)
		{
			if(i != 0)
			{
				elTitle.setStyle('margin-top', '15px');
			}
			i++;
		});
		
		$$('#content .usercontent h4').each(function(elTitle)
		{
			var arrItems = new Array();
			var elContainer = new Element('div',
			{
			    'class': 'faqtoggle'
			});
			
			var elNext = elTitle.getAllNext();
			
			var blnUseElement = true;
			elNext.each(function(elItem)
			{
				var strTagName = elItem.tagName;
				if(true == blnUseElement && ('p'  == strTagName.toLowerCase() || 'ul'  == strTagName.toLowerCase()))
				{
					elItem.clone().inject(elContainer);
					elItem.destroy();
				}
				else
				{
					blnUseElement = false;
				}
			});
			
			elContainer.inject(elTitle, 'after');
			
			elTitle.setStyle('cursor', 'pointer');
			
			elTitle.addEvent('click', function()
			{
				elContainer.toggle();
			});
		});
	}
	
});

var Search = new Class(
{
	initialize:function()
	{
		var elInputHeader = $('search-keyword');
						
		elInputHeader.addEvents(
		{
			focus:function()
			{
				this.setStyle('background', 'transparent');
			},
			blur:function()
			{
				if(!$chk(this.value))
				{
					this.setStyle('background', 'transparent url(./inc/image/bg_search.png) no-repeat left -21px');
				}
			}
		});
	}
});

var Newsticker = new Class(
{
	elWrapper: null,
	arrItems: null,
	intItems: null,
	
	intActive: 0,
	intDelay: 7000,
	
	initialize:function()
	{
		this.elWrapper = $('newsticker');
		this.arrItems = this.elWrapper.getElements('li');
		this.intItems = this.arrItems.length;
		
		this.arrItems.each(function(elItem, intKey)
		{
			if (intKey < 1)
			{
				elItem.setStyle('display', 'block');
			}
			else
			{
				elItem.setStyles(
				{
					'display': 'block', 
					'opacity': 0
				});
			}
		});
		
		this.showNext.bind(this).delay(this.intDelay);
	},
	
	showNext:function()
	{
		this.arrItems[this.intActive].fade('out');
		
		this.intActive++;
		if (this.intActive == this.intItems)
		{
			this.intActive = 0;
		};
		
		this.arrItems[this.intActive].fade('in');
		
		this.showNext.bind(this).delay(this.intDelay);
	}
});

var Tabber = new Class(
{	
	intMaxPerPage: 4,
	intCurrentPage	: 1,
	intCurrentStart: 0,
	
	initialize: function(tabContainer)
	{
		if( tabContainer.getElements('ul.tabchoose').length === 0) 
		{
			return;
		}
		
		if(tabContainer.hasClass('tabslite'))
		{
			return;
		}
		
		tabContainer.tabOptions = tabContainer.getElements('ul.tabchoose li a');
		tabContainer.tabLists = tabContainer.getElements('div.tabs-list ul');
		
		if(tabContainer.tabLists.length === 0)
		{
			tabContainer.tabLists = tabContainer.getElements('div.tabs-list table tbody');
		}
		
		tabContainer.tabNav = tabContainer.getElement('div.navsmall');
		tabContainer.tabCurrentPageElm = tabContainer.tabNav.getElement('span.navsmall-currentpage');
		tabContainer.tabTotalPageElm = tabContainer.tabNav.getElement('span.navsmall-totalpage');
		tabContainer.tabNextButton = tabContainer.tabNav.getElement('a.navsmall-next');
		tabContainer.tabPrevButton = tabContainer.tabNav.getElement('a.navsmall-prev');
		
		if(tabContainer.hasClass('unlimited-items')) 
		{
			this.intMaxPerPage = 1000;
			tabContainer.tabNav.setStyle('display', 'none');
		}
		
		var classRef = this;
		tabContainer.tabOptions.each(function(tabOption, id)
		{
			tabOption.attachedListClass = tabOption.href.toString().split('#');
			tabOption.attachedListClass = tabOption.attachedListClass[1];
			
			tabOption.addEvent('click', function() 
			{					
				tabContainer.tabOptions.removeClass('active');
				this.addClass('active');
				
				classRef.intCurrentPage = 1;
				classRef.intCurrentStart = 0;
				
				tabContainer.tabLists.each(function(tabList)
				{
					if(tabList.hasClass(this.attachedListClass))
					{
						tabList.addClass('active-tablist');
						tabList.setStyle('display', '');
					}
					else
					{
						tabList.removeClass('active-tablist');
						tabList.setStyle('display', 'none');
					}
					
				}.bind(this));
				
				classRef.initNav(tabContainer);
				return false;
			});
		});
		
		this.currentTab = 0;

		this.autoClick(tabContainer);
		
		/*if(!tabContainer.hasClass('wholesale-trading'))
		{
			setInterval(function() { classRef.autoClick(tabContainer) }, 7000);
		}*/
	},
	
	autoClick: function(tabContainer)
	{				
		if(tabContainer.tabOptions[this.currentTab])
			tabContainer.tabOptions[this.currentTab].fireEvent('click');		
			
		this.currentTab++;
		
		if(this.currentTab == tabContainer.tabOptions.length)
		{
			this.currentTab = 0;
		}
	},
	
	initNav: function(tabContainer)
	{				
		if(tabContainer.getElements('ul').length == 1)
		{
			activeTabItems = tabContainer.getElements('tbody.active-tablist tr');
		}
		else
		{
			activeTabItems = tabContainer.getElements('ul.active-tablist li');			
		}
		
		this.amountOfPages = (activeTabItems.length / this.intMaxPerPage).round();
		if(this.amountOfPages === 0 || activeTabItems.length <= this.intMaxPerPage)
		{
			this.amountOfPages = 1;
			tabContainer.tabNav.fade('out');
		}
		else
		{
			//if(this.amountOfPages === 1 && activeTabItems.length > this.intMaxPerPage)
			//{
				//this.amountOfPages++;	
				tabContainer.tabNav.fade('in');				
			//}

			tabContainer.tabCurrentPageElm.set('text', this.intCurrentPage);
			tabContainer.tabTotalPageElm.set('text', this.amountOfPages);	
		}	
				
		range = { start: this.intCurrentStart, end: ( this.intCurrentStart + this.intMaxPerPage ) };
						
		activeTabItems.each(function(activeTabItem, key)
		{
			activeTabItem.setStyle('display', 'none');
						
			if(key >= range.start && key < range.end )
			{
				activeTabItem.setStyle('display', '');
			}
		}.bind(this));		
		
		tabContainer.tabPrevButton.getElement('img').set('src', './inc/image/btn_left_grey.gif');
		tabContainer.tabNextButton.getElement('img').set('src', './inc/image/btn_right_grey.gif');
		tabContainer.tabPrevButton.removeClass('active');
		tabContainer.tabNextButton.removeClass('active');
				
		if(range.start > 0)
		{
			tabContainer.tabPrevButton.getElement('img').set('src', './inc/image/btn_left_orange.gif');			
			tabContainer.tabPrevButton.addClass('active');
		}
		
		if(this.intCurrentPage != this.amountOfPages)
		{
			tabContainer.tabNextButton.getElement('img').set('src', './inc/image/btn_right_orange.gif');			
			tabContainer.tabNextButton.addClass('active');
		}
			
		if(!this.navInit)
		{
			tabContainer.tabPrevButton.addEvent('click', function() { this.prevPage(tabContainer); return false; }.bind(this));
			tabContainer.tabNextButton.addEvent('click', function() { this.nextPage(tabContainer); return false; }.bind(this));
			this.navInit = true;
		}
	},
	
	nextPage: function(tabContainer)
	{
		if(this.intCurrentPage == this.amountOfPages) 
		{
			return;
		}
		
		this.intCurrentPage++;		
		this.intCurrentStart += this.intMaxPerPage;
					
		this.initNav(tabContainer);
	},
	
	prevPage: function(tabContainer)
	{
		if(this.intCurrentPage == 1) 
		{
			return;
		}
		
		this.intCurrentPage--;		
		this.intCurrentStart -= this.intMaxPerPage;
		
		this.initNav(tabContainer);
	}	
});

var Tabberlite = new Class(
{	
	intMaxPerPage: 4,
	intCurrentPage	: 1,
	intCurrentStart: 0,
	initialize: function(tabContainer)
	{
		if( tabContainer.getElements('ul.tabchoose').length === 0) 
		{
			return;
		}
		
		tabContainer.tabOptions = tabContainer.getElements('ul.tabchoose li a');
		tabContainer.tabLists = tabContainer.getElements('div.tabs-list div');
		
		if(tabContainer.tabLists.length === 0)
		{
			tabContainer.tabLists = tabContainer.getElements('div.tabs-list table tbody');
		}
		
		if(tabContainer.hasClass('unlimited-items')) 
		{
			this.intMaxPerPage = 1000;
			tabContainer.tabNav.setStyle('display', 'none');
		}
		
		var classRef = this;
		tabContainer.tabOptions.each(function(tabOption, id)
		{
			tabOption.attachedListClass = tabOption.href.toString().split('#');
			tabOption.attachedListClass = tabOption.attachedListClass[1];
			
			tabOption.addEvent('click', function() 
			{					
				tabContainer.tabOptions.removeClass('active');
				this.addClass('active');
				
				classRef.intCurrentPage = 1;
				classRef.intCurrentStart = 0;
				
				tabContainer.tabLists.each(function(tabList)
				{
					if(tabList.hasClass(this.attachedListClass))
					{
						tabList.addClass('active-tablist');
						tabList.setStyle('display', '');
					}
					else
					{
						tabList.removeClass('active-tablist');
						tabList.setStyle('display', 'none');
					}
					
				}.bind(this));
				return false;
			});
		});
		
		this.currentTab = 0;

		this.autoClick(tabContainer);
	},
	autoClick: function(tabContainer)
	{				
		if(tabContainer.tabOptions[this.currentTab])
			tabContainer.tabOptions[this.currentTab].fireEvent('click');		
			
		this.currentTab++;
		
		if(this.currentTab == tabContainer.tabOptions.length)
		{
			this.currentTab = 0;
		}
	}
});