﻿var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.userAgent,
			subString: "IceWeasel",
			identity: "IceWeasel"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
var isIE=(BrowserDetect.browser=='Explorer');
var browserVersion=BrowserDetect.version;


/* cookie a tabos pager statusz megjegyzesehez start */

var tCookie = Class.create();
Object.extend(tCookie.prototype, {

	initialize: function() {
	},

	set: function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},

	get: function(name)	{
		var nameEQ = name + "=";
		var retVal = null;
		var cookies = document.cookie.split(';');
		cookies.each(function(cookieItem){
			while (cookieItem.charAt(0)==' ') cookieItem = cookieItem.substring(1,cookieItem.length);
			if (cookieItem.indexOf(nameEQ) == 0) retVal = cookieItem.substring(nameEQ.length,cookieItem.length);
		});
		return retVal;
	},

	erase: function(name) {
		this.set(name,"",-1);
	}
});

var Cookie = new tCookie();

/* cookie a tabos pager statusz megjegyzesehez end */

/* tabos pager start */

tabbedPagerClass = Class.create();
tabbedPagerClass.prototype = {
	initialize : function(_tabbedPanelsContent, _itemContainerClass, _itemClass, _visibleNewsItemsPerPage, _tabsCookieId) {
		this.visibleNewsItemsPerPage = _visibleNewsItemsPerPage;
		this.tabbedPanelsContent = _tabbedPanelsContent;
		this.newsItems = $(this.tabbedPanelsContent).down('div.' + _itemContainerClass).select('div.' + _itemClass);
		this.pageNum = Math.ceil(this.newsItems.length / this.visibleNewsItemsPerPage);
		this.pagers = $(this.tabbedPanelsContent).select('div.navigation');
		this.buildPager();
		this.setEvents();
		this.tabsCookieId = _tabsCookieId;
		if (Cookie.get(this.tabsCookieId)) {
			this.cookieValue = Cookie.get(this.tabsCookieId).split(',')
		}
		else {
			this.cookieValue = new Array(0, 0);
		}
		this.showPage();
		this.actualPage = 1;
	},
	countNewsItems : function () {
		return $(this.tabbedPanelsContent).down('div.' + _itemContainerClass).select('div.' + _itemClass).length;
	},
	setPageNumDisplay : function () {
		for (var i = 0; i < this.pagers.length; i++) {
			$(this.pagers[i]).previous('div.pages').down('span.current').update(this.actualPage + '. oldal');
		}
	},
	setClassNames : function(clickedElement, direction) {
		//a pagerek css osztalyait valtogatjuk iranynak es annak megfeleloen, hogy a lapozas nyilakkal vagy szamra kattintassal tortent
		switch(direction) {
			case 'previous':
				for (var i = 0; i < this.pagers.length; i++) {
					this.pagers[i].down('li.current').removeClassName('current');
					this.pagers[i].down('li.prevPage').removeClassName('inactive');
					this.pagers[i].down('li.nextPage').removeClassName('inactive');
					this.pagers[i].down('li', this.actualPage).addClassName('current');
				}
				if (this.actualPage == 1) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.prevPage').addClassName('inactive');
					}
				}
				if (this.actualPage > 1) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.nextPage').removeClassName('inactive');
					}
				}
				break;
			case 'next':
				for (var i = 0; i < this.pagers.length; i++) {
					this.pagers[i].down('li.current').removeClassName('current');
					this.pagers[i].down('li.prevPage').removeClassName('inactive');
					this.pagers[i].down('li.nextPage').removeClassName('inactive');
					this.pagers[i].down('li', this.actualPage).addClassName('current');
				}
				
				if (this.actualPage == this.pageNum) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.nextPage').addClassName('inactive');
					}
				}
				if (this.actualPage < this.pageNum) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.prevPage').removeClassName('inactive');
					}
				}
				break;
			default:
				for (var i = 0; i < this.pagers.length; i++) {
					this.pagers[i].down('li.current').removeClassName('current');
					this.pagers[i].down('li.prevPage').removeClassName('inactive');
					this.pagers[i].down('li.nextPage').removeClassName('inactive');
					this.pagers[i].down('li', this.actualPage).addClassName('current');
				}
				if (this.actualPage == 1) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.prevPage').addClassName('inactive');
					}
				}
			    if (this.actualPage == this.pageNum) {
					for (var i = 0; i < this.pagers.length; i++) {
						this.pagers[i].down('li.nextPage').addClassName('inactive');
					}
				}
				break;
		}
	},
	onClick : function (e) {
		var clickedElement = $(e.target);

		//hatra lapozunk
		if (!clickedElement.up('li').hasClassName('inactive') && clickedElement.up('li').hasClassName('prevPage')) {
			this.actualPage--;
			this.showPage(this.actualPage, 'previous');
			this.setClassNames(clickedElement, 'previous');
		}
		//elore lapozunk
		else if (!clickedElement.up('li').hasClassName('inactive') && clickedElement.up('li').hasClassName('nextPage')) {
			this.actualPage++;
			this.showPage(this.actualPage, 'next');
			this.setClassNames(clickedElement, 'next');
		}
		//nem lapozunk
		else if (clickedElement.up('li').hasClassName('current') || clickedElement.up('li').hasClassName('inactive')) {
			//do nothing
		}
		//szam alapjan lapozunk
		else {
			this.actualPage = clickedElement.innerHTML;
			this.showPage(this.actualPage, 'direct');
			this.setClassNames(clickedElement, null);
		}
		
		this.setPageNumDisplay();
		
		Event.stop(e);
		return false;
	},
	setEvents : function () {
		//kigyujtjuk a felepitett navigacios elemeket
		var navigationItems = [];
		for (var i = 0; i < this.pagers.length; i++) {
			navigationItems[i] = this.pagers[i].down('ul').select('li');
		}
		
		//rajukkotjuk az esemenyt
		for (var i = 0; i < navigationItems.length; i++) {
			for (var j = 0; j < navigationItems[i].length; j++) {
				Event.observe( navigationItems[i][j].down('a'), 'click', this.onClick.bindAsEventListener(this) );
			}
		}
	},
	buildPager : function () {
    for (var i = 0; i < this.pagers.length; i++) {
      this.pagers[i].innerHTML='<ul> <ul>';
      }
		//visszafele lapozo, inaktiv allapotban inicializalva
		for (var i = 0; i < this.pagers.length; i++) {
			$(this.pagers[i]).down('ul').insert('<li class="inactive prevPage"><a href="#">&laquo;</a></li>');
		}

		//oldalszamok inicializalasa, 1-es aktivnak jelolese
		for (var i = 0; i < this.pagers.length; i++) {
			for (var j = 1; j <= this.pageNum; j++) {
				if (j == 1) {
					$(this.pagers[i]).down('ul').insert('<li class="current"><a href="#">' + j + '</a></li>');
					continue;
				}
				$(this.pagers[i]).down('ul').insert('<li><a href="#">' + j + '</a></li>');
			}
		}

		//elore lapozo, oldalszamtol fuggo allapotban inicializalva
		if (this.pageNum > 1) {
			for (var i = 0; i < this.pagers.length; i++) {
				$(this.pagers[i]).down('ul').insert('<li class="nextPage"><a href="#">&raquo;</a></li>');
			}
		}
		else {
			for (var i = 0; i < this.pagers.length; i++) {
				$(this.pagers[i]).down('ul').insert('<li class="inactive nextPage"><a href="#">&raquo;</a></li>');
			}
		}
		
		// oldalszamindikatorok inicializalva
		for (var i = 0; i < this.pagers.length; i++) {
			$(this.pagers[i]).previous('div.pages').insert('<strong><span class="current">1. oldal</span>&nbsp;/&nbsp;' +  this.pageNum + '. oldal</strong>')
		}
	},
	showPage : function(pageIndicator, direction) {
		// betoltjuk az elso oldalt
		if (!pageIndicator && !direction) {
			for (var i = 0; i <= this.visibleNewsItemsPerPage - 1; i++) {
				if (i >= this.newsItems.length) {
					break;
				}
				this.newsItems[i].show();
			}
			if (this.visibleNewsItemsPerPage - 1 <= this.newsItems.length) {
				if (this.newsItems[this.visibleNewsItemsPerPage - 1] != null) {
					this.newsItems[this.visibleNewsItemsPerPage - 1].addClassName('last');
				}
			}
			else {
				this.newsItems[this.newsItems.length - 1].addClassName('last');
			}
		}
		else {
			//osszes elrejtese az eddig latszodo utolso elemig
			for (var i = 0; i < this.newsItems.length; i++) {
				this.newsItems[i].hide();
			}

			var newsItemsFromShow = (pageIndicator - 1) * this.visibleNewsItemsPerPage;
			var newsItemsTillShow = (pageIndicator) * this.visibleNewsItemsPerPage;

			for (var i = newsItemsFromShow; i < newsItemsTillShow; i++) {
				if (i == this.newsItems.length) {
					break;
				}
				if (i == newsItemsTillShow - 1) {
					this.newsItems[i].addClassName('last')
				}
				this.newsItems[i].show();
			}
			Cookie.set(this.tabsCookieId, Cookie.get(this.tabsCookieId).split(',')[0] + ',' + pageIndicator, '')
		}
	}
};

function initializeTabsPager (visibleNewsItemsPerPage, itemContainerClass, itemClass, tabObject) {
	var tabs = $('tabsArchive').select('div.TabbedPanelsContent');
	var tabsCookieId = 'tabs_' + document.location.href;
	
	var tabbedPagerObjects = [];
	for (i = 0; i < tabs.length; i++) {
		tabbedPagerObjects[i] = new tabbedPagerClass(tabs[i], itemContainerClass, itemClass, visibleNewsItemsPerPage, tabsCookieId);
	}

	if (!(Cookie.get(tabsCookieId))) {
		Cookie.set(tabsCookieId, 0 + ',' + '1', '');
	}
	else {
		var tabStatus = Cookie.get(tabsCookieId).split(',');
		setTabPanels(tabObject, parseInt(tabStatus[0]));
		tabbedPagerObjects[parseInt(tabStatus[0])].actualPage = parseInt(tabStatus[1]);
		tabbedPagerObjects[parseInt(tabStatus[0])].showPage(parseInt(tabStatus[1]));
		tabbedPagerObjects[parseInt(tabStatus[0])].setClassNames(null, null);
		tabbedPagerObjects[parseInt(tabStatus[0])].setPageNumDisplay();
	}
	setYearTabClick(tabsCookieId);
}

function setYearTabClick (tabsCookieId) {
	var tabHeaders = ($('tabsArchive').down('.TabbedPanelsTabGroup')).select('a');
	tabHeaders.each(function (element, index) {
		$(element).observe('click', function(e) {
			Cookie.set(tabsCookieId, index + ',' + '1', '');
		});
	});
}

function setTabPanels(tabObject, num){
	tabObject.showPanel(num);
}
/* tabos pager end */

/**
 * 
 * promoPicBorder magasságának beállítása (onloadra indul)
 * @param -
 * reqiures:  -
*/
function setPromoPicBorder() {
	var promoPicCont=$$('.promoPicCont');
	promoPicCont.each(function(element,index){
			if (element.down('img') && element.down('div.promoPicBorder')) {
				element.down('div.promoPicBorder').style.height=element.down('img').height+'px';
			}
			else if (element.down('img') && element.down('a.promoPicBorder')) {
				element.down('a.promoPicBorder').style.height=element.down('img').height+'px';
			}
	});
}
Event.observe(window,'load',setPromoPicBorder);

/**
 * 
 * magenta keretu tabos lapozo (meg kell hivni a html-bol)
 * @param id a kontener id-ja
 * reqiures:  -
*/

function setMagentaTabs(id) {
    var container = $(id);
    var tabs = container.down('ul.tabContainer').select('li');
    var contents = container.select('div.magentaTabContent');
    tabs.each(function(element, index) {
        Event.observe($(element), 'click', function(e) {
            if ($(element).hasClassName('activeMagentaTab')) {
                Event.stop(e);
                return false;
            }
            else {
                //aktiv tab jeloles
                container.down('li.activeMagentaTab').removeClassName('activeMagentaTab');
                $(element).addClassName('activeMagentaTab');
                //elozo tab borderenek allitasa
                if (container.select('a.greyBorder').length > 1) {
                    container.select('a.greyBorder')[0].removeClassName('greyBorder');
                }
                if (index != 0) {
                    tabs[index - 1].down('a').addClassName('greyBorder');
                }
                //aktiv tartalom megjelenites
                container.down('div.activeMagentaTabContent').removeClassName('activeMagentaTabContent').hide();
                $(contents[index]).addClassName('activeMagentaTabContent').show();
                Event.stop(e);
                return false;
            }
        });
    });
}

