// charset=utf-8
/**
 *  Javascript-Datei fuer arsmedium.de
 *  Benoetigt:
 *   - Jquery 1.3.2
 *
 *  @Author: Oliver Neudeck <oliver . neudeck ( at ) arsmedium . com>
 *  @Version: 0.1
 *
 *  05.11.2009 - Neuanlage mit geändertem Framework, statt scriptacolous wird nun jquery verwendet
 */
 debug = false;
 var $Akkordeon_Sprachtoken;
if(debug){
alert('script.js - onLoad');
}
/**
 * globale Variablen
 */
	var impressumToggle        = 'out';
	var impressumMove          = '-60px';   //von unten ausgehend im ausgefahrenen Zustand.
	var SubmitButtonIsActive   = false;     //Flag fuer Formular-Button-Zustand
	var buttontext             = null;
	var newsdurchlauf          = 0;         // benoetigt bei mehr als ein tt_news_latest auf Seite
	var anzahlloeschen         = 0;

/* Feinderkennung */
	isIE = !jQuery.support.noCloneEvent;
	isIE6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion, 10) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);


if (typeof secondFlashActive == 'undefined') {
	var secondFlashActive = false; // zweites Flash aktiv? manuell auf Seite im t3 durch html-Feld aktivieren!
}

$('html').addClass('js');
/**
 * Initialisierung 
 */
$(document).ready(function(){

	formularInit();			//Formatierung fuer beliebige Formulare auf allen Seiten
	BrowserSelektor();			//Zuordnung von CSS Klassen
	$(".dock-item > img").removeAttr("height") ; // Entfernen der Höhe, damit das folgende Fisheye auch die Höhe der Bilder anpasst
	




/* Menü Flash, Fallback JQuery-Fisheye, Fallback generierte Bilder aus TS */
/* ON - Anpassungen um Anzeige von Fehler zu verhindern */
	if (swfobject.hasFlashPlayerVersion("9.0.0")) {
		try{
			window.onload = send_flash_position;
		}
		catch(err){}
		/*window.document.onmousemove = getMouse_position;*/
		
		$("html").mousemove(function(e){
			var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
			var clientCoords = "( " + e.clientX + ", " + e.clientY + " )";
			try{
				sendMousePositionToFlash(e.clientX, e.clientY);
			} 
			catch(err){}
		});


		/* Spracheinstellung */
		if($("body").attr("class")=="en"){
			var swfpath = "/fileadmin/swf/EN_Navigation.swf"; 
		}
		else{
			var swfpath = "/fileadmin/swf/DE_Navigation.swf"; 
		}
		var ActiveFlashItem;
		
		/* ermittelt aktuellen Menüpunkt */
		/* ON 20100510 Impressumseite ohne eigentlichen aktiven Menüpunkt wird "profil" (de) oder "profile" (en) zugeordnet */
		if($('#activeMenu').text().toLowerCase()===''){
			if($("body").attr("class")=="en"){
				ActiveFlashItem = 'profile';
			}
			else{
				ActiveFlashItem = 'profil';
			}
		}
		else{
			ActiveFlashItem = $('#activeMenu').text().toLowerCase();
		}
		var flashVars = {	activeItem: ActiveFlashItem}; 


		var paramsMenu = {  
			wmode: "transparent",
			quality: "high", 
			align: "left", 
			play: "true", 
			loop: "true", 
			scale: "exactfit", 
			devicefont: "false", 
			id: "Navigation", 
			name: "Navigation", 
			menu: "false", 
			allowFullScreen: "false", 
			allowScriptAccess: "always"
		}; 
		if(debug){
alert('script.js - Menu-embedSWF');
}
		swfobject.embedSWF(swfpath, "menulist", "680px", "40px", "9.0.0", false, flashVars, paramsMenu);
		$("#menulist").attr("name","Navigation");
	} /* Fisheye nur wenn kein Flash vorhanden */
	else {
		$('.js #menulist .dock-container').css({ 
'display' : 'block'
});
		$('#menulist').css({
			'width' : '580px'
		});
		$(".dock-container > a > img").css({
			'position' : 'absolute'
		});
		/* Default */
		$(".dock-container").css({
			'position' : 'absolute'
		});
		/* Startseite hat im ersten Bild wegen der ... eine leichte Verschiebung um 3px */
		$("#profil > .dock-container").css({
			'position' : 'absolute',
			'margin-left' : '50px'
		});
		if($("body").attr("class")=="en"){
			$('#menulist').Fisheye(
				{
					maxWidth: 41,
					alignment: 'left',
					items: 'img',
					itemsText: 'span',
					container: '.dock-container',
					itemWidth: 125,
					proximity: 118,
					halign : 'left',
					valign : 'top'
				}
			)
		}
		else{
			$('#menulist').Fisheye(
				{
					maxWidth: 30,
					alignment: 'left',
					items: 'img',
					itemsText: 'span',
					container: '.dock-container',
					itemWidth: 100,
					proximity: 118,
					halign : 'left',
					valign : 'top'
				}
			)
		}
	}

		/* Festlegen Alt-Text Akkordeon */
		if($("body").attr("class")=="en"){
			$Akkordeon_Sprachtoken = 'open / close';
		}
		else{
			$Akkordeon_Sprachtoken = '&Ouml;ffnen / Schlie&szlig;en';
		}


	//Akkordeons aufbauen
if(typeof uidNewsList != 'undefined'){
	$('#'+uidNewsList).addClass('contentright_selected');
}
$('#contentright').accordion();
$('#contentrightright').accordion();

$('.contentright_selected').parents('ul').css({
		'display' : 'block'		
	});

$('.contentright_selected').parents('li').find('a:eq(0)').addClass('open');
$('.contentright_selected a').addClass('open');
$('.contentright_selected a').append(' ...');

	

	// Impressum-Link SEO-Gerecht mit JS umbauen
	$("#impressumlink").click(toggleImpressum);
	$("#impressumclose").click(toggleImpressum);


	// lightbox
	$().piroBox({
			my_speed: 400,  //animate speed
			bg_alpha: 0.8, //overlay opacity
			radius: 4,  // caption rounded corners
			this_next : 'next_out', // next button inside or outside the imageBox--> next == inside, next_out == outside
			this_prev : 'prev_out', // prev button inside or outside the imageBox--> prev == inside, prev_out == outside
			credit: null // credits to pirolab website,if don't want to show it leave so!!
	});
	
	
});


/**
 * Formular-Initialisierung
 * Hinzufuegen und Entfernen von Fehlertexten
 */
function formularInit(){
	//Edit-Felder und uebergeordnete Divs mit Klassen und Events versehen
	var textinput = $("input[type='text']");
	textinput.parent().addClass('inputrahmeninaktiv');
	textinput.addClass('inputinaktiv');
	textinput.focus(function(e) {
		/* Workaround @IE - dieser Fokussiert selbst das erste Feld --> zwei mal Focus bei Initialisierung */
		if(this.className=='inputaktiv'){}else{
			this.className='inputaktiv';
			this.parentNode.className='inputrahmenaktiv';
			var textdurchsuch = this.parentNode.getElementsByTagName('label')[0].firstChild.data;
			//Alle im Label eventuell vorhanden Fehlermeldungen entfernen
			textdurchsuch = textdurchsuch.replace(/ - Bitte füllen Sie dieses Feld aus./g, '');
			textdurchsuch = textdurchsuch.replace(/ - Bitte geben Sie in dieses Feld einen gültigen Wert ein./g, '');
			textdurchsuch = textdurchsuch.replace(/ - Die angegebene E-Mail-Adresse ist ungültig./g, '');
			textdurchsuch = textdurchsuch.replace(/ - Bitte geben Sie in dieses Feld nicht mehr als 100 Zeichen ein./g, '');
			textdurchsuch = textdurchsuch.replace(/ - Please fill in this field./g, '');
			textdurchsuch = textdurchsuch.replace(/ - This field should not contain more than 100 characters./g, '');
			textdurchsuch = textdurchsuch.replace(/ - The given email-adress is invalid./g, '');
			this.parentNode.getElementsByTagName('label')[0].firstChild.data = textdurchsuch+' ...';
		}
	});
	textinput.blur(function(e) {
		this.className='inputinaktiv';
		this.parentNode.className='inputrahmeninaktiv';
		anzahlloeschen = this.parentNode.getElementsByTagName('label')[0].firstChild.nodeValue.length;
		anzahlloeschen = anzahlloeschen - 4;
		anzahlloeschen = this.parentNode.getElementsByTagName('label')[0].firstChild.deleteData(anzahlloeschen, 4);
	});
	//Memofelder
	var textareas = $("textarea");
	textareas.parent().addClass('inputrahmeninaktiv');
	textareas.addClass('memoinaktiv');
	textareas.focus(function(e) {
		this.className='memoaktiv';
		this.parentNode.className='inputrahmenaktiv';
		var textdurchsuch = this.parentNode.getElementsByTagName('label')[0].firstChild.data;
		//Alle im Label eventuell vorhandenen Fehlermeldungen loeschen
		textdurchsuch = textdurchsuch.replace(/ - Bitte füllen Sie dieses Feld aus./g, '');
		textdurchsuch = textdurchsuch.replace(/ - Bitte geben Sie in dieses Feld einen gültigen Wert ein./g, '');
		textdurchsuch = textdurchsuch.replace(/ - Die angegebene E-Mail-Adresse ist ungültig./g, '');
		textdurchsuch = textdurchsuch.replace(/ - Bitte geben Sie in dieses Feld nicht mehr als 5000 Zeichen ein./g, '');
		textdurchsuch = textdurchsuch.replace(/ - Please fill in this field./g, '');
		textdurchsuch = textdurchsuch.replace(/ - This field should not contain more than 5000 characters./g, '');
		textdurchsuch = textdurchsuch.replace(/ - The given email-adress is invalid./g, '');
		this.parentNode.getElementsByTagName('label')[0].firstChild.data = textdurchsuch+' ...';
	});
	textareas.blur(function(e) {
		this.className='memoinaktiv';
		this.parentNode.className='inputrahmeninaktiv';
		var anzahlloeschen = this.parentNode.getElementsByTagName('label')[0].firstChild.nodeValue.length;
		anzahlloeschen = anzahlloeschen - 4;
		this.parentNode.getElementsByTagName('label')[0].firstChild.deleteData(anzahlloeschen, 4);
	});
	//Submit-Button
	var submitinput = $("input[type='submit']");
	submitinput.addClass('buttoninaktiv');
	submitinput.click(function(e) { /* damit auch Safari die Funktion ausführt */
		if(!SubmitButtonIsActive){
			this.className='buttonaktiv';
			buttontext = this.value;
			this.value += ' ...';
			buttonisactive=1;
			SubmitButtonIsActive = true;
		}
	});
	submitinput.focus(function(e) {
		if(!SubmitButtonIsActive){
			this.className='buttonaktiv';
			buttontext = this.value;
			this.value += ' ...';
			buttonisactive=1;
			SubmitButtonIsActive = true;
		}
	});
	submitinput.blur(function(e) {
		if(SubmitButtonIsActive){
			this.className='buttoninaktiv';
			this.value = buttontext;
			buttonisactive=0;
			SubmitButtonIsActive = false;
		}
	});
	// Fehlermeldungen erhalten roten Rahmen
	$('.-').addClass('inputrahmenfalse');
	// Fokus setzen
	if($('Input[type="text"]:eq(0)').parent().hasClass('-')==false){
		$('input[type="text"]:eq(0)').focus();
	}

}






/**
 * ButtonAktivIn wird benoetigt, damit auch der IE den Hover-Effekt fuer Buttons korrekt darstellt.
 * 
 * @param {Object} Ele
 
function ButtonAktivIn(Ele){
	if(buttonisactive!=1){
		Ele.className='buttonover';
	}
}
*/

/**
 * ButtonInaktivOut wird benoetigt, damit auch der IE den Hover-Effekt fuer Buttons korrekt darstellt.
 * 
 * @param {Object} Ele
 
function ButtonInaktivOut(Ele){
	if(buttonisactive!=1){
		Ele.className='buttoninaktiv';
	}
}
*/

/**
 * Impressum raus- und rein-fahren
 */
function toggleImpressum() {
	if(impressumToggle == 'out') {
		$('#footer').animate({
			bottom: impressumMove
			}, 1000, function() {
			impressumToggle = 'in';
			$('#impressumclose')[0].className='visible';
		});
	} else {
		$('#footer').animate({
			bottom: "-250px"			// entspricht Footer-Div -20px fuer die Fusszeile
			}, 1000, function() {
			impressumToggle = 'out';
			$('#impressumclose')[0].className='invis';
		});
	}
	return false;
}


/**
 * BrowserSelektor prueft Browser, Browser-Version und Betriebssystem
 * Alle DOM-Nodes erhalten zu den vorhandenen Klassen noch Klassen entsprechend dem Browsertest-Ergebnis.
 * Diese Klassen koennen direkt zur css-Formatierung verwendet werden.
 * Folgende Browser koennen unterschieden werden:
 * - gecko
 * - ff2
 * - ff3
 * - ie + Versionsnummer
 * - opera + Versionsnummer
 * - konqueror
 * - chrome
 * - webkit
 * - safari
 * Betriebssysteme werden nach linux, win und mac unterschieden
 * Ausserdem wir die Klasse js hinzugefuegt um JavaScript-Faehige Browser direkt ansprechen zu koennen
 */
function BrowserSelektor(){
	var css_browser_selector = function() {
		var 	ua=navigator.userAgent.toLowerCase(),
			is=function(t)
				{return ua.indexOf(t) != -1;},
				h=document.getElementsByTagName('html')[0],
				b=(	!(/opera|webtv/i.test(ua))
					&&/msie\s(\d)/.test(ua))
					?('ie ie'+RegExp.$1)
					:is('firefox/2')?'gecko ff2'
					:is('firefox/3')?'gecko ff3'
					:is('gecko/')?'gecko'
					:is('opera/9')?'opera opera9':/opera\s(\d)/.test(ua)?'opera opera'+RegExp.$1
					:is('konqueror')?'konqueror'
					:is('chrome')?'chrome webkit safari'
					:is('applewebkit/')?'webkit safari'
					:is('mozilla/')?'gecko':'',
				os=(is('x11')||is('linux'))?' linux'
					:is('mac')?' mac'
					:is('win')?' win':'';
				var c=b+os+' js';
				h.className += h.className?' '+c:c;
	}();
}

/**
 * Datums-Ausgabe in arsmedium-Schreibweise: donnerstag, 26. maerz 2009
 */
function SchreibeDatum(){

	if($("body").attr("class")=="en"){

	var WOCHENTAG = new Array('sunday','monday','tuesday','wednesday','thursday','friday','saturday','sunday');
	var MONAT = new Array("january","february","march","april","may","june","july","august","september","october","november","december"); 
	var Datum = new Date();
}
else{

	var WOCHENTAG = new Array('sonntag','montag','dienstag','mittwoch','donnerstag','freitag','samstag','sonntag');
	var MONAT = new Array("januar","februar","m&auml;rz","april","mai","juni","juli","august","september","oktober","november","dezember"); 
	var Datum = new Date();
}
	document.write(WOCHENTAG[Datum.getDay()]+", "+Datum.getDate()+". "+MONAT[Datum.getMonth()]+" "+Datum.getFullYear());
}


/**
 * Vorbereitung zum spaeteren Einbinden eines zweiten Filmes auf der Startseite.
 * Diese Funktion wird immer vom Startseitenflash geladen bevor es endet.
 */
function FlashStartEnde(){

	$("#flashStartGanzeSeite").hide().height(0);
	if (secondFlashActive === false){
		$("#contenttitleholder").show();
		setTimeout(function() {
			$("#content").show();
		},1000);

	}
	else{
		$("#flashStartGanzeSeite2")[0].startAnimation();
	}
}

/**
 * Diese Funktion blendet das gruene Hintergrundbild auf der Startseite aus, 
 * und den zweiten Film ein.
 */
function FlashStartDivHintergrund(){
	$("#startseitegruen").hide();
	$("#flashStartGanzeSeite2").show();
}

/**
 * Diese Funktion blendet das zweite Flash aus und die Inhalte ein.
 */
function FlashMovieEnde(){
	$("#flashStartGanzeSeite2").hide();
	$("#contenttitleholder").show();
	setTimeout("$(\"#content\").show();",1000);
}


/* Flash Fisheye-Menue */
                function sendMousePositionToFlash(x, y)
                {

                                              $("#menulist")[0].setMousePosition(x, y);

                }
                
function getMouse_position (event)
                {
                	
                               if(event)
                               {
                                               var x = event.pageX;
                                               var y = event.pageY;
                               }
                               else
                               {
                                               var x = window.event.clientX;
                                               var y = window.event.clientY;
                               }
                               alert('X:  '+x+'     Y:    '+y);
                               sendMousePositionToFlash(x, y);
                }

                
                function send_flash_position ()
                {
                			setTimeout(function() {
		$("#menulist")[0].setFlashPosition($("#menulist").offset().left, $("#menulist").offset().top); //Koordinaten eintragen)
		},1000);
                               
                }
