$(document).ready(function() {
	/* Bilder */
	$("a[href$='.jpg']").fancybox({	
		'zoomSpeedIn'			: 0, 
		'zoomSpeedOut'		: 0, 
		'zoomSpeedChange'	: 0, 
		'frameWidth'			: 560,
		'frameHeight'			: 340
	});
	
	/* Suche */
	$("#freitextsuche_begriff").focus(function() {
		if($(this).val() == 'Suche') {
			$(this).val('');
		}
	});
	$("#freitextsuche_begriff").blur(function() {
		if($(this).val() == '') {
			$(this).val('Suche');
		}
	});
	
	/* Mailer */
	/*
	$('a[href^="/mailer/"]').fancybox({
		'hideOnContentClick': false,
		'frameWidth'				: 570,
		'frameHeight'				: 510
	});
	*/
	
	$('#registration').validate({
		rules: {
			"form[name]": {
				required: true,
				minlength: 3,
				remote: "/include/ajax/check_username.php"
			},
			"form[email]": {
				required: true,
				email: true,
				remote: "/include/ajax/check_email.php"
			},
			"form[password]": {
				required: true,
				minlength: 5
			},
			"form[re_password]": {
				required: true,
				minlength: 5,
				equalTo: '#form_password'
			}
		},
		
		messages: {
			"form[name]": {
				required: "Geben Sie bitte einen Benutzernamen ein.",
				minlength: "Der Benutzername muss aus mindestens drei Zeichen bestehen.",
				remote:	"Wählen Sie bitte einen anderen Benutzernamen, da dieser schon existiert."
			},
			"form[email]": {
				required: "Geben Sie bitte eine E-Mail-Adresse ein.",
				email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.",
				remote: "Es existiert bereits ein Benutzer, mit dieser E-Mail-Adresse."
			},
			"form[password]": {
				required: "Geben Sie bitte ein Passwort ein. ",
				minlength: "Das Passwort muss aus mindestens fünf Zeichen bestehen. "
			},
			"form[re_password]": {
				required: "Geben Sie bitte ein Passwort ein.",
				minlength: "Das Passwort muss aus mindestens fünf Zeichen bestehen.",
				equalTo: "Die Passwörter stimmen nicht überein."
			}
		},
		
		success: function(label) {
			label.addClass("success");
		}		
	});
	
	$('form.forgot_password').validate({
		rules: {
			"form[email]": {
				required: true,
				email: true,
				remote: "/include/ajax/check_email_exists.php"
			}
		},
		messages: {
			"form[email]": {
				required: "Geben Sie bitte eine E-Mail-Adresse ein.",
				email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.",
				remote: "Es existiert kein Benutzer, mit dieser E-Mail-Adresse."
			}
		}
	});
	
	$('form.change_password').validate({
		rules: {
			"form[current_password]": {
				required: true,
				remote: "/include/ajax/check_password.php"
			},
			"form[activation_code]": {
				required: true,
				remote: {
					url: "/include/ajax/check_activation_code.php",
					type: "GET",
					data: {
						key: function() { return $('#form_key').val(); },
						activation_code: function() { return $('#form_activation_code').val(); }
					}
				}
			},
			"form[new_password]": {
				required: true,
				minlength: 5
			},
			"form[re_new_password]": {
				required: true,
				equalTo: '#form_new_password'
			}
		},
		messages: {
			"form[current_password]": {
				required: "Geben Sie bitte das aktuelle Passwort ein.",
				remote: "Geben Sie bitte das korrekte aktuelle Passwort ein."
			},
			"form[activation_code]": {
				required: "Geben Sie bitte den Freischaltcode ein.",
				remote: "Geben Sie bitte den korrekten Freischaltcode ein."
			},
			"form[new_password]": {
				required: "Geben Sie bitte ein neues Passwort ein.",
				minlength: "Das Passwort muss aus mindestens fünf Zeichen bestehen."
			},
			"form[re_new_password]": {
				required: "Geben Sie bitte die Passwortwiederholung ein.",
				equalTo: "Die Passwörter stimmen nicht überein."
			}
		}
	});
	
	
	$('.comments a.delete').click(function() {
		var is_confirmed = confirm('Kommentar wirklich löschen?');
		if(!is_confirmed) {
			return false;
		}
	});
	
	$('a[href=/include/info_box/datenschutz.htm]').fancybox({
		'zoomSpeedIn'			: 0, 
		'zoomSpeedOut'		: 0, 
		'zoomSpeedChange'	: 0, 
		'frameWidth'			: 560,
		'frameHeight'			: 340
	});
	
	/* Link auf kompletten Post Eintrag einer Blog Box */
	$('ul.posts li').css('cursor', 'pointer');
	$('ul.posts li').click(function() {
		document.location.href = $('a', this).attr('href');
	});
	
	/* Account löschen Fragen */
	$('form.delete_account input').click(function() {
		return confirm('Wollen Sie Ihren Account wirklich löschen?');
	});
		
});


function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

function firstempty(feld,wert){
	if(feld.value==wert){
		feld.value='';
	}else if(feld.value==''){
		feld.value=wert;
	}
}

function bgc(theRow,theColor) {
	if(theRow.style.backgroundColor){
		theRow.style.backgroundColor = theColor;
	}
}

function url(v) {
	if(v.substr(0,7)=='http://') {
		window.open(v,'goto');
	} else {
		document.location.href=v;
	}
}

function url2(v){
	top.location.href=v;
}

function get_form_elements(form_name){
	var query = '';
	if(document.forms[form_name] != undefined){
		var elts      = document.forms[form_name].elements;
		var elts_cnt  = elts.length;
		
		for (var i = 0; i < elts_cnt; i++) {
			whichElt = elts[i].id;
			
			name 	 = whichElt.match(/\D+/);
			nummer = whichElt.match(/\d+/);

			type = elts[i].type;
			value  = elts[i].value;
			checked  = elts[i].checked;
			checked = checked?value:0;
			
			if(type=='checkbox'){
				value = checked; 
			}
			if(name!=null){
				if(nummer){ // Array
					query += '&'+name+'['+nummer+']='+value;
				}else{
					query += '&'+name+'='+value;
				}
			}
		}
	}
	return query;
}

var datums_feld;

function get_date(field){
	datums_feld = field;
	formular = document.forms[0].name;
	
	bt = document.getElementById('bt_'+field);
	s = document.getElementById('get_date_box');
	a = document.getElementById('get_date_abdecker');
	
	// IRS
	if(document.forms[formular].elements[datums_feld]){
		yy = 130;
	} else {
		yy = 2;
	}
	xx = 182;
	

	if(typeof(field)!='undefined'){
		pos = getPosition(bt);
		Left = pos.x-xx;
		Top  = pos.y-yy;
		if(Top < 130) { Top = 130; }
	}

	if(s.style.visibility == 'hidden') {
		s.style.visibility = 'visible';
		s.style.left = Left+'px';
		s.style.top = Top+'px';
		a.style.visibility = 'visible';
		a.style.left = Left+'px';
		a.style.top = Top+'px';
	} else {
		s.style.visibility = 'hidden';
		a.style.visibility = 'hidden';
	}
}

function set_date(d,m,j){
	get_date(datums_feld);
	
	var do_irs = false;

	formular = document.forms[0].name;
	
	if(document.forms[formular].elements[datums_feld]) {
		do_irs = true;
	}
	
	// Interaktive Karte
	if(document.getElementById('gm_'+datums_feld) != undefined) {
		var datum = d+"."+m+"."+j;
		var type = datums_feld.substr(0,datums_feld.length-4);
		// Karte
		if(document.getElementById('show_kat_'+type) != undefined){
			mark_kat(type,datum,datums_feld,1);
		// Liste
		}else{
			document.getElementById('gm_'+datums_feld).innerHTML = datum;
			document.forms[formular].elements[datums_feld].value = datum;
		}
		
	// IRS
	} else if(do_irs == true){
		document.forms[formular].elements[datums_feld].value =d+"."+m+"."+j;
	
	// Veranstaltungen
	}else{
		document.forms[formular].elements[datums_feld+'_d'].value = d;
		document.forms[formular].elements[datums_feld+'_m'].value = m;
		document.forms[formular].elements[datums_feld+'_j'].value = j;
		
		if(datums_feld=='von'){
			d2 = document.forms[formular].elements['bis_d'].value;
			m2 = document.forms[formular].elements['bis_m'].value;
			j2 = document.forms[formular].elements['bis_j'].value;
			if((j2+m2+d2)<(j+m+d)){
				datum = new Date(j,m,d);
				j2 = datum.getFullYear();
				m2 = datum.getMonth()+1;
				d2 = datum.getDate();
				if(m2<10) m2 ='0'+m2;
				if(d2<10) d2 ='0'+d2;
				document.forms[formular].elements['bis_d'].value = d2;
				document.forms[formular].elements['bis_m'].value = m2;
				document.forms[formular].elements['bis_j'].value = j2;
			}
		}
	}
	/* Für Pauschalenanfrage */
	if(document.getElementById('form_anreise') && document.getElementById('form_abreise')) {
		update_datum(datums_feld);
	}
}
function refresh_date_bis(name) {
	j = document.getElementById(name+'_j').value;
	m = document.getElementById(name+'_m').value;
	d = document.getElementById(name+'_d').value;
	
	formular = document.forms[0].name;
	d2 = document.forms[formular].elements['bis_d'].value;
	m2 = document.forms[formular].elements['bis_m'].value;
	j2 = document.forms[formular].elements['bis_j'].value;
	if((j2+m2+d2)<(j+m+d)){
		datum = new Date(j,m,d);
		j2 = datum.getFullYear();
		m2 = datum.getMonth()+1;
		d2 = datum.getDate();
		if(m2<10) m2 ='0'+m2;
		if(d2<10) d2 ='0'+d2;
		document.forms[formular].elements['bis_d'].value = d2;
		document.forms[formular].elements['bis_m'].value = m2;
		document.forms[formular].elements['bis_j'].value = j2;
	}
}

// der Aufruf dieser Funktion ermittelt die absoluten Koordinaten des Objekts element
function getPosition(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	position=new Object();
  position.x=curleft;
  position.y=curtop;
  return position;
}

/* Funktionen für das Pauschalenanfrage Script */
function update_datum() {
	var datum_heute;
	var datum_anreise;
	var datum_abreise;
	var reisedauer;
	var pauschale;
	
	datum_heute = new Date();
	datum_anreise = string_to_datum(document.getElementById('form_anreise').value);
	datum_abreise = string_to_datum(document.getElementById('form_abreise').value);
	reisedauer = document.getElementById('form_reisedauer').value - 1;
	pauschale = document.getElementById('pauschalen_id').value;
	
	if(datum_anreise == false || datum_anreise.getTime() <= datum_heute.getTime()) {
		datum_anreise = new Date();
		// das + 3 * 60 * 60 * 1000 ist wegen der Zeitumstellung mit eingebaut
		datum_anreise.setTime((datum_abreise.getTime()) - reisedauer*1000*60*60*24 + 3*1000*60*60);
		document.getElementById('form_anreise').value = datum_to_string(datum_anreise);
	} else {
		document.getElementById('form_anreise').value = datum_to_string(datum_anreise);
		// das + 3 * 60 * 60 * 1000 ist wegen der Zeitumstellung mit eingebaut
		datum_abreise.setTime((datum_anreise.getTime()) + reisedauer*1000*60*60*24 + 3*1000*60*60);
		document.getElementById('form_abreise').value = datum_to_string(datum_abreise);
	}
	
	var ajax2 = createRequest();
	ajax2.open('get', '/include/ajax/check_zeitraum.php?pauschale='+pauschale+'&anreise='+document.getElementById('form_anreise').value+'&abreise='+document.getElementById('form_abreise').value,true);
	ajax2.onreadystatechange = function() { ajaxwert_einfuegen(ajax2,'errorbox',1) };
	ajax2.send(null);
}


function string_to_datum(datum) {
	//(Schritt 1) Fehlerbehandlung
	if(!datum) {
		return false;
	}
	//(Schritt 2) Aufspaltung des Datums
	datum=datum.split(".");
	if(datum.length!=3) {
		return false;
	}
	//(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats
	datum[0]=parseInt(datum[0],10);
 	datum[1]=parseInt(datum[1],10)-1;
	//(Schritt 4) Behandlung Jahr nur zweistellig
	if (datum[2].length==2) datum[2]="20"+datum[2];
	//(Schritt 5) Erzeugung eines neuen Dateobjektes
	var kontrolldatum=new Date(datum[2],datum[1],datum[0]);
	//(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
	if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2]) {
		return kontrolldatum;
	} else {
		return false;
	}
}

function datum_to_string(datum) {
	var ausgabe;
	if(String(datum.getDate()).length==1) {
		ausgabe = '0'+String(datum.getDate())+'.';
	} else {
		ausgabe = String(datum.getDate())+'.';
	}
	if(String(datum.getMonth()+1).length==1) {
		ausgabe += '0'+String(datum.getMonth() + 1)+'.'+datum.getFullYear();
	} else {
		ausgabe += String(datum.getMonth() + 1)+'.'+datum.getFullYear();
	}
	
	return ausgabe;
}
