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: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			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.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.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

$(function() {
	var wT = document.title;
	if(wT.indexOf('#')!=-1) wT=wT.substring(0,wT.indexOf('#'));
	var iv = setInterval(function() {
		document.title = wT;
	}, 100);

	
	var $addhistory = true;
	var $hash = window.location.hash;
	var $timeout;
	
	$('.tabs-nav a').live('click', function() {
		var $this = $(this);
		var $id = $this.attr('href');
		$('.tabs-nav a').removeClass('active');
		$this.addClass('active');
		$('.tab').addClass('hidden');
		$($id).removeClass('hidden');
		if($addhistory) $.history.add($id.replace('#', '')+'___');
		return false;
	});
	
	$('a.next-tab').live('click', function() {
		var $this = $(this);
		var $id = $this.attr('href');
		$('.tabs-nav a[href="'+$id+'"]').click();
	});
	
	$('a.article').live('click', function() {
		var $this = $(this);
		var $id = $this.attr('href');
		$('a.article').removeClass('active');
		$this.addClass('active');
		$('.news .content').addClass('hidden');
		$($id).removeClass('hidden');
		if($addhistory) $.history.add($id.replace('#', '')+'___');
		return false;
	});
	
	if(!$.browser.msie || ($.browser.msie && BrowserDetect.version >= 8)) {
		$('.shadow').each(function() {
			var $this = $(this);
			$this.css({
				'padding-top': $this.css('padding-top').replace('px', '')*1+4+'px',
				'padding-right': $this.css('padding-right').replace('px', '')*1+4+'px',
				'padding-bottom': $this.css('padding-bottom').replace('px', '')*1+4+'px',
				'padding-left': $this.css('padding-left').replace('px', '')*1+4+'px',
				'margin-top': $this.css('margin-top').replace('px', '')*1-4+'px',
				'margin-right': $this.css('margin-right').replace('px', '')*1-4+'px',
				'margin-bottom': $this.css('margin-bottom').replace('px', '')*1-4+'px',
				'margin-left': $this.css('margin-left').replace('px', '')*1-4+'px'
			});
			$this.prepend('<div class="shadows shadow-t"></div><div class="shadows shadow-r"></div><div class="shadows shadow-b"></div><div class="shadows shadow-l"></div><div class="shadows shadow-tl"></div><div class="shadows shadow-tr"></div><div class="shadows shadow-br"></div><div class="shadows shadow-bl"></div>');
			$this.addClass('shadowapplied');
		});
	}
	
	if(!$.browser.msie || ($.browser.msie && BrowserDetect.version >= 7)) {
		$('.scroller').each(function() {
			var $this = $(this);
			$('.scroll-pane', $this).data('top', $('.scroll-pane', $this).css('margin-top').replace('px', '')*1);
			
			$this.css({'overflow': 'hidden'});
			$this.prepend('<a href="#scroller-up" class="scroller-button scroller-up"><span>Op</span></a><a href="#scroller-down" class="scroller-button scroller-down"><span>Ned</span></a>');
			
			var $width = $this.outerWidth();
			if($width == 0) {
				$width = $this.css('width').replace('px', '')*1;
			}
			
			if($this.hasClass('shadowapplied')) {
				$('.scroller-button', $this).css({'width': $width-8+'px'});
				$('.scroller-up', $this).css({'top': '4px', 'left': '4px'});
				$('.scroller-down', $this).css({'bottom': '4px', 'left': '4px'});
			} else {
				$('.scroller-button', $this).css({'width': $width+'px'});
			}
			
			if($this.hasClass('scroller-bottom')) {
				if($this.hasClass('shadowapplied')) {
					$('.scroller-button', $this).css({'width': ($width-8)/2+'px'});
					$('.scroller-up', $this).css({'top': 'auto', 'left': 'auto', 'bottom': '4px', 'right': '4px'});
					$('.scroller-down', $this).css({'bottom': '4px', 'right': '4px'});
				} else {
					$('.scroller-button', $this).css({'width': $width/2+'px'});
					$('.scroller-up', $this).css({'top': 'auto', 'left': 'auto', 'bottom': '0px', 'right': '0px'});
					$('.scroller-down', $this).css({'bottom': '0px', 'right': '0px'});
				}
			}
		});
		
		$('.scroller-up').live('mouseover', function() {
			var $this = $(this);
			var $pane = $this.siblings('.scroll-pane');
			if($pane.css('margin-top').replace('px', '') < $pane.data('top')) {
				if($pane.css('margin-top').replace('px', '')*1+30 < $pane.data('top')) {
					$pane.css({'margin-top': $pane.css('margin-top').replace('px', '')*1+30+'px'});
					$timeout = window.setTimeout("$('.scroller-up').mouseover();", 150);
				} else {
					$pane.css({'margin-top': $pane.data('top')+'px'});
				}
			}
			return false;
		});
		
		$('.scroller-down').live('mouseover', function() {
			var $this = $(this);
			var $pane = $this.siblings('.scroll-pane');
			var $par = $this.parent('.scroller');
			if($pane.outerHeight(true) > ($par.css('height').replace('px', '')*1+$par.css('padding-bottom').replace('px', '')*1)) {
				if($pane.outerHeight(true)-30 > $par.css('height').replace('px', '')*1) {
					$pane.css({'margin-top': $pane.css('margin-top').replace('px', '')*1-30+'px'});
					$timeout = window.setTimeout("$('.scroller-down').mouseover();", 150);
				} else {
					var $extra = ($par.hasClass('shadow'))? 8: 0;
					$pane.css({'margin-top': $pane.css('margin-top').replace('px', '')*1-($pane.outerHeight(true)-($par.css('height').replace('px', '')*1+$par.css('padding-bottom').replace('px', '')*1))-$extra+'px'});
				}
			}
			return false;
		});
		
		$('.scroller').live('mouseout', function() {
			window.clearTimeout($timeout);
		});
		
		$('.news .scroller .scroll-pane').mousewheel(function() {
			var $this = $(this);
			$this.siblings('.scroller-up').mouseover();
		}, function() {
			var $this = $(this);
			$this.siblings('.scroller-down').mouseover();
		}, true);
	}
	
	//if($.browser.msie && BrowserDetect.version < 7) {
		$('li.shortcut a').mouseenter(function() {
			var $this = $(this);
			$this.siblings('ul').show();
		});
		
		$('li.shortcut a').mouseleave(function() {
			var $this = $(this);
			$this.siblings('ul').hide();
		});
		
		$('li.shortcut ul').mouseenter(function() {
			var $this = $(this);
			$this.show();
		});
		
		$('li.shortcut ul').mouseleave(function() {
			var $this = $(this);
			$this.hide();
		});
	//}
	
	$('.shortcut a.subnav').click(function() {
		var $this = $(this);
		var $url = $this.attr('href').split('#');
		var $loc = window.location.href;
		if($loc.match($url[0])) {
			$('a[href="#'+$url[1]+'"]:first').click();
			return false;
		}
	});
	
	$('body').history(function(e, hash, prevHash) {
		if(hash != '') {
			$addhistory = false;
			$('a[href="#'+hash.replace('___', '')+'"]:first').click();
			$addhistory = true;
		}
    });
	
	$('input[type="text"].input, textarea.input').each(function() {
		var $this = $(this);
		$this.data('val', $this.attr('title'));
	});
	
	$('input[type="text"].input, textarea.input').focus(function() {
		var $this = $(this);
		if($this.val() == $this.data('val')) {
			$this.val('');
		}
	});
	
	$('input[type="text"].input, textarea.input').blur(function() {
		var $this = $(this);
		if($this.val() == '') {
			$this.val($this.data('val'));
		}
	});
	
	$('blockquote').each(function() {
		var $this = $(this);
		$(':first-child', $this).addClass('first-child');
		$(':last-child', $this).addClass('last-child');
	});
	
	if($hash != '') {
		$addhistory = false;
		$('a[href="'+$hash.replace('___', '')+'"]:first').click();
		$addhistory = true;
	} else {
		$('.tabs-nav a:first').click();
		$('a.article:first').click();
	}
});
