keyValuePairs = new Array();
function getQueryStrValue(key) {
  for (var i=0; i < keyValuePairs.length; i++) {
    if (keyValuePairs[i].split('=')[0] == key)
      return keyValuePairs[i].split('=')[1];
  }
}

//Async handling
function makeUrlAsync(url) {
	if(url.contains('async')) return url;
	if(url.contains('?')) url += '&async';      
		else url += '?async';
	return url;
}

function loadAsyncUrl(target, url, history) {
	if(url.contains('btn')) {
		for (var i=0; i < url.split('&').length; i++) {
			keyValuePairs[i] = url.split('&')[i];
		}
		var value = getQueryStrValue('btn');
		if(value != '') activateButton(value);
	}

	el = $(target);
	if(history) {
		addHistory({
			url: url,
			targetId: target
		});
	}
	new Request.HTML({
		url: url,
		method: 'get',
		update: el
  }).send();
}

//AJAX history (dshistory)
function initHistory() {
	var baseUrl = window.location.pathname + window.location.search;
	if(baseUrl.contains('?')) baseUrl += '&newpage';      
		else baseUrl += '?newpage';
	addHistory({
		url: baseUrl,
		targetId: 'primary'
	});
}

function addHistory(attr) {
	try {
		if(dsHistory) dsHistory.addFunction(setHistory, window, attr);
  }
  catch(_ex) {}
}

function setHistory(info, historyObject) {
	loadAsyncUrl(info.targetId, makeUrlAsync(info.url), !historyObject.calledFromHistory);
}

//make links async in text panel
function asyncLinksScrollContainer() {
	$$('#scroll-container a').each(function(link) {
		if(!link.href.contains('mailto')) {
			link.addEvent('click', function(e) {
				e.stop();
				if(link.get('rel') == 'external' || link.get('rel') == 'download') {
					window.open(this.href);
        } else {
					setActiveTabPageLink(link);
					loadAsyncUrl('primary', makeUrlAsync(this.href), true);
				}
			})
		}
	});
}

//Tabs
function tabButtons() {
	$$('#tab-buttons a').each(function(elm) {
		elm.addEvent('click', function(e) {
			e.stop();
			var target = 'tabs-content';
			$(target).empty();
			if(this.href.contains('newpage')) target = 'primary';
			loadAsyncUrl(target, makeUrlAsync(this.href), true);

			if(this.get('rel') == 'one' && $('tabs').hasClass('two')) $('tabs').toggleClass('two');
      if(this.get('rel') == 'two' && !$('tabs').hasClass('two')) $('tabs').toggleClass('two');
		})
	});
}

isScrolling = false;
function controlsTabScroll() {
	//console.log('scroll tab content');
	$('tabs-scroll-next').addEvent('click', function(e) {
		e.stop();
		if(!isScrolling) {
			scrollTab('up');
			isScrolling = true;
		}
	});
	$('tabs-scroll-previous').addEvent('click', function(e) {
		e.stop();
		if(!isScrolling) {
			scrollTab('down');
			isScrolling = true;
		}
	});
}

function scrollTab(direction) {
	var c = $('tabs-scroller');
	var y = $('tabs-scroller').getPosition($('tabs-content')).y;
	//console.log('CURRENT size: '+c.getSize().y);
	//console.log('CURRENT scrollSize: '+c.getScrollSize().y);
	//console.log('CURRENT position: '+c.getPosition($('tabs-content')).y);
	var marginOffset = 25;
	var myScroll = new Fx.Scroll($('tabs-scroller'), {
		wait: false,
		duration: 1000,
		transition: Fx.Transitions.Quad.easeOut,
		onComplete: function() {
			//console.log('test');
			//console.log('NEW size: '+c.getSize().y);
			//console.log('NEW scrollSize: '+c.getScrollSize().y);
			//console.log('NEW position: '+c.getPosition($('tabs-content')).y);
			isScrolling = false;
		}
	});
	if(direction == 'up') myScroll.start(0, 196 - y + marginOffset);
		else if(direction == 'down') myScroll.start(0, -196 - y + marginOffset);
}

function setActiveTabPageLink(link) {
	$$('#tabs-scroller a').each(function(elm) {
		elm.removeClass('active');
	});
	link.addClass('active');
}
function setActiveTabPageLink2(pageId) {
	$$('#tabs-scroller li').each(function(elm) {
		elm.getElement('a').removeClass('active');
		if(elm.get('rel') == pageId) elm.getElement('a').addClass('active');
	});
}
function setActiveTabPageLink3(newsId) {
	$$('#tabs-scroller dd').each(function(elm) {
		elm.getElement('a').removeClass('active');
		if(elm.get('rel') == newsId) elm.getElement('a').addClass('active');
	});
}

//Flash header
function getFlashMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function loadImage(fileString) {
	getFlashMovie("imageloader").addImage(fileString);
}

function unloadImages() {
	getFlashMovie("imageloader").deleteImages();
}

function setPath(fileString) {
	getFlashMovie("imageloader").setPath(fileString);
}

function activateButton(btn) {
	getFlashMovie("imageloader").activateButton(btn);
}

function headerNavigation(url) {
	if (!url.contains('newpage')) {
		if(url.contains('?')) url += '&newpage';
			else url += '?newpage';
	}
	loadAsyncUrl('primary', makeUrlAsync(url), true);
}
