$(function(){

	// auswaehlen deaktivieren
	if (typeof(document.body.onselectstart) != "undefined")
		document.body.onselectstart = function() { return false; };
	
	if (window.sidebar){
		document.onmousedown = disableSelect;
		document.onclick = enableSelect;
	}
	

	// Links im Dokument anpassen
	function externerLink() {
		window.open(this.href);
		return false;
	}
	for (var i in document.links) {
		var link = document.links[i];
		
		if (link.rel == "emladdr")
			link.href = "mailto:" + (link.textContent ? link.textContent : (link.text ? link.text : (link.innerText ? link.innerText : "")));
		
		// links mit onclick-event und href="#": url in statusleiste ausblenden
		else if (link.rel == "scripted")
			link.href = "";
		
		else if (link.rel == "locallink") {} // do nothing
			
		// target-attribut bei Links mit href-Attribut setzen
		// produziert valides XHTML, aber öffnet seiten in einem neuen Fenster
		else if (link.href && link.href.substr(0,7) != "mailto:") {
			link.target = "_blank";
			link.onclick = externerLink;
		}
	}
	
	// auswahlrechteck in IE deaktivieren
	if ($.browser.msie && $.browser.version < 8) {
		$('a').bind('mousedown', function(){ $(this).attr('hideFocus', 'hidefocus'); })
					.bind('blur', function(){ $(this).removeAttr('hideFocus'); });
	}
	else {
		$('a').bind('mousedown', function(){ $(this).css('outline', 'none'); })
					.bind('blur', function(){ $(this).css('outline', ''); });
	}

	
	// TODO: hashchange einrichten, sprache und bereich aus url holen
	
	$.preLoadImages('bilder/hintergrund.jpg',
	                'bilder/miha_andrea.png',
	                'bilder/design-wmdesign.png');
	
	var is_iPhone = navigator.userAgent.indexOf("iPhone") >= 0,
	    is_iPad = navigator.userAgent.indexOf("iPad") >= 0,
	    is_iDevice = is_iPhone || is_iPad;
	
	if (is_iDevice) {
		// section 'WER' am iPhone / iPad browsebar machen
		$('#content-de-wer a, #content-en-who a').attr('href', '#').click(function(ev){
			ev.preventDefault();
			return false;
		});;
	}
	
	// Webkit hat einige Darstellungsfehler
	// --> mit eigenen CSS Regeln beheben
	var isWebkit = !!navigator.userAgent.match('AppleWebKit');
	if (isWebkit)
		$('html').addClass('webkit');



	/* ====== CUFON ====== */

	$('#navigation-de a, #navigation-en a').each(function(){
		var link = $(this),
		    spans = $('<span class="inaktiv"></span><span class="aktiv"></span>');
		spans.text(link.text()).appendTo(link.text(''));
	});
	
	Cufon.replace('.navigation-oben > div > *, .navigation-unten > a');
	Cufon.replace('.navigation-links > div > *', { letterSpacing: isWebkit ? '0' : '-0.3px' });
	
	var opt = { letterSpacing: '0.15px' },
	    linkopt = { letterSpacing: '0.15px', hover: true };

	Cufon.replace('#content > div > p:not(.blocksatz,#content-de-intro,#content-en-intro)', opt);
	
	Cufon.replace('.wer-andrea p, .wer-miha p', opt);
	Cufon.replace('#content-de-intro,#content-en-intro', opt);
	
	$('#content .blocksatz span').each(function(){
		Cufon.replace(this, {
			letterSpacing: $(this).attr('style').replace(/^letter-spacing:\ ?(-?[0-9]+(\.[0-9]+)?)px.*/, '$1')
		});
	});
	
	Cufon.replace('#content-kontakt a.wko-de, #content-kontakt .wko-en', { hover: true });
	Cufon.replace('#content-kontakt a:not(.wko-de .wko-en)', linkopt);
	Cufon.replace('#content-kontakt', opt);

	Cufon.replace('#content-de-news a, #content-en-news a', linkopt);
	Cufon.replace('#content-de-news p, #content-en-news p', opt);
	Cufon.replace('.news-anzeige');
	
	Cufon.now();
	
	$('#content .blocksatz').autoJustifyCufon(526);
	
	/* ====== CUFON ENDE ====== */


	// Intro-Animation
	$('#content-de-intro, #content-en-intro').each(function(){
		var p = $(this),
				txt = p.text(),
				prog = 0,
				pausepos = (p.attr('id') == 'content-de-intro' ? 13 : -1),
				anim = function(){
					p.text(txt.substr(0, prog));
					Cufon.refresh('#content-de-intro,#content-en-intro');
					if (prog < txt.length) {
						prog++;
						window.setTimeout(anim, (prog == pausepos) ? 360 : 60);
					}
				};
		anim();
	});
	
	
	/* ======== NAVIGATION ======= */
	var bereiche = {
			de: [
				'intro',
				'korrektur-und-lektorat',
				'text-und-business',
				'schreibseminare',
				'redaktion',
				'text',
				'uebersetzung',
				'warum',
				'wo',
				'wie',
				'wem',
				'wer',
				'wieviel',
				'news',
				'kontakt'
			],
			en: [
				'intro',
				'proofreading-and-editing',
				'text-and-business',
				'writing-seminars',
				'redaction',
				'text',
				'translation',
				'why',
				'where',
				'how',
				'whom',
				'who',
				'fees',
				'news',
				'contact'
			]
		},
	  aktuelleSprache = $('#wrapper').attr('class'),
	  aktuellerBereich = $('#contentbox').attr('class');
	
	function sprachewechseln(sprache) {
		if (sprache == aktuelleSprache)
			return false;
		$('#wrapper').removeClass().addClass(sprache);
		
		var bereichIndex = bereiche[aktuelleSprache].indexOf(aktuellerBereich),
		    neuerBereich = bereiche[sprache][bereichIndex];
		
		aktuelleSprache = sprache;
		navigation(neuerBereich);
	}
	
	function navigation(bereich) {
		$('#contentbox').removeClass().addClass(aktuellerBereich = bereich);
		return false;
	}
	window.navigation = navigation;

	
	$('#nav-unten-de-english').click(function(ev){
		sprachewechseln('en');
		ev.preventDefault();
	});
	$('#nav-unten-en-deutsch').click(function(ev){
		sprachewechseln('de');
		ev.preventDefault();
	});
	
	// untere navigation: mouse-down-effekt
	$('.navigation-unten a').mousedown(function(e) {
		var link = $(this);
		link.addClass('mousedown');
		if (e.which <= 1) {
			var trackmouseup = function(e) {
				if (e.which <= 1) {
					link.removeClass('mousedown');
					$('body').unbind('mouseup', trackmouseup);
				
					if (link[0] == e.target || link.has(e.target).length > 0)
						link.click();
				}
			}
			$('body').mouseup(trackmouseup);
		}
		return true;
	}).hover(
		function(){	$(this).addClass('hover'); },
		function(){	$(this).removeClass('hover'); }
	);
	
	
	// "news"-navigation
	$(['de', 'en']).each(function(i, sprache) {
		var news = $('#content-' + sprache + '-news'),
		    nav = news.find('.news-blaettern'),
		    anzeige = nav.find('.news-anzeige');
		
		nav.find('.links').click(function(e){ if (e.which <= 1) {
			var m = anzeige.text().match(/(\d+)\/(\d+)/),
			    aktuell = m[1]*1,
			    anzahl = m[2]*1;
			news.find('.angezeigt').removeClass('angezeigt');
			aktuell -= aktuell > 1 ? 1 : 0;
			news.removeClass('letztenews').children().eq(aktuell - 1).addClass('angezeigt');
			anzeige.text(aktuell + '/' + anzahl);
			Cufon.refresh('.news-anzeige');
			if (aktuell == 1)
				news.addClass('erstenews');
			e.preventDefault();
		} });
		nav.find('.rechts').click(function(e){ if (e.which <= 1) {
			var m = anzeige.text().match(/(\d+)\/(\d+)/),
			    aktuell = m[1]*1,
			    anzahl = m[2]*1;
			news.find('.angezeigt').removeClass('angezeigt');
			aktuell += aktuell < anzahl ? 1 : 0;
			news.removeClass('erstenews').children().eq(aktuell - 1).addClass('angezeigt');
			anzeige.text(aktuell + '/' + anzahl);
			Cufon.refresh('.news-anzeige');
			if (aktuell == anzahl)
				news.addClass('letztenews');
			e.preventDefault();
		} });
	});
		
});


function disableSelect(e) {
	var clickableTags = { 'INPUT':0, 'TEXTAREA':0, 'BUTTON':0 };

	// anklicken bei textelementen erlauben
	var ev = e ? e : window.event;
	if ((typeof(ev.target) == 'object') && ('tagName' in ev.target) && (ev.target.tagName in clickableTags))
		return true;
	
	// andernfalls: aktuelles element verlassen
	if (document.activeElement && (document.activeElement.tagName in clickableTags))
		document.activeElement.blur();
	return false;
}

function enableSelect(){
	return true;
}




