$(document).ready(function() {
	/* Kalender Button bei Pauschalen */
	if(document.getElementById('bt_form_anreise')){
		document.getElementById('bt_form_anreise').src = '/layout/icons/kalender.gif';
		document.getElementById('bt_form_anreise').style.verticalAlign = 'middle';
		document.getElementById('bt_form_anreise').style.width = '24px';
		document.getElementById('bt_form_anreise').style.height = '22px';
	}
	
	/* Bilder */
	$("a[href$='.jpg']").fancybox({	
		'zoomSpeedIn'			: 0, 
		'zoomSpeedOut'		: 0, 
		'zoomSpeedChange'	: 0, 
		'frameWidth'			: 560,
		'frameHeight'			: 340
	});
	$("a[href$='.png']").fancybox({	
		'zoomSpeedIn'			: 0, 
		'zoomSpeedOut'		: 0, 
		'zoomSpeedChange'	: 0, 
		'frameWidth'			: 560,
		'frameHeight'			: 340
	});

	/* Mailer */
	$("a.mailer").fancybox({
		'hideOnContentClick': false,
		'frameWidth'			:	610,
		'frameHeight'			:	440
	});

	/* Zeige in Karte */
	$("a.iframe").fancybox({
		'hideOnContentClick': false,
		'frameWidth'			:	610,
		'frameHeight'			:	400
	});

	// Galerie Ajax Links aktivieren
	activate_galerie_ajax();
	
	// Galerie Tastatursteuerung aktivieren
	activate_galerie_keycontrol();
        
        /* Jetzt bewerten */
        $('.ratebutton a').fancybox({
            'hideOnContentClick': false,
            'frameWidth' : 610,
            'frameHeight' : 300,
            'title': 'Bewerten'
        });
});


/* Ajax */
function createRequest() {
	if(navigator.appName.search("Microsoft") > -1) {
		return new ActiveXObject("MSXML2.XMLHTTP");
	} else {
		return new XMLHttpRequest();
	}
}


function ajaxwert_einfuegen(ajax,box,ignore_ladebalken) {
	if(ajax.readyState == 4) {
		document.getElementById(box).innerHTML = ajax.responseText;
		fertig = 1;
		
		// Ladebalken ausblenden
		if(!ignore_ladebalken) {
			document.getElementById('ajax-loader').style.display = 'none';
		}
	}
}


function timm4_mailer_send(){
	if(document.forms['timm4_mailer'] != undefined){
		var elts      = document.forms['timm4_mailer'].elements;
		var elts_cnt  = elts.length;
		var post_data = {send:1};
		for (var i=0; i<elts_cnt; i++) {
			post_data[elts[i].name] = elts[i].value;
		}
		
		$('#fancy_content').load('/include/ajax/timm4_mailer.php',post_data);
	}
}


function change_page(box,page,query_str,uri){
	if(box){
		$('#'+box).load('/include/ajax/change_page.php?sprache='+sprache+'&box='+box+'&page='+page+'&'+query_str+'&uri='+uri, {});
	}
}

function show_search_result(box, query_str, uri) {
	if(box) {
    $('#'+box).load('/include/ajax/show_search_result.php?sprache='+sprache+'&box='+box+'&'+query_str+'&uri='+uri, {});
	}
}

function get_date_blaettern(jahr,monat,pauschale,dauer,veranstaltung){
	$('#get_date_box').load('/include/get_date.php?sprache='+sprache+'&jahr='+jahr+'&monat='+monat+'&pauschale='+pauschale+'&pauschale_dauer='+dauer+'&veranstaltung='+veranstaltung, {});
}


function adress_details(adress_id,box_id,action,box_id_db,google_maps) {
	$('#'+box_id).load('/include/ajax/address_details.php?sprache='+sprache+'&adress_id='+adress_id+'&box_id='+box_id+'&box_id_db='+box_id_db+'&google_maps='+google_maps+'&action='+action, {});
}


function az_details(az,field,action) {
	$('#az_details_'+az+'_'+field).load('/include/ajax/az_details.php?sprache='+sprache+'&az='+az+'&field='+field+'&action='+action, {});
}

function show_whole_raum(tagungsstaette,adresse,raum,page) {
	$('#box_raeume_0').load('/include/ajax/show_whole_raum.php?tagungsstaette='+tagungsstaette+'&adresse='+adresse+'&raum='+raum+'&page='+page, {});
}


/* NAV */
$('#nav ul li').hover(
	function() {
		$('ul:hidden', this).slideDown(100);
	},
	function() {
		$('ul', this).slideUp(100);
	}
);


/* Galerie */
function activate_galerie_ajax() {
	$("#mitte .galerie a.img").click(galerie_set_ajax_link);
	$("#mitte .galerie a.next").click(galerie_set_ajax_link);
	$("#mitte .galerie a.prev").click(galerie_set_ajax_link);
	$("#rechts .thumbnails a").click(galerie_set_ajax_link);
}

var loading_text = 'Loading';
function galerie_set_ajax_link() {
	var link_href = $(this).attr('href');
	if(link_href.match(/\?galerie_(\d+)_bild=(\d+)$/)) {
		var box_id = RegExp.$1;
		var img = RegExp.$2;
		
		$('#galerie_'+box_id+' .status').html('<img src="/layout/loader.gif" alt="" style="position:absolute;" /> <span style="padding-left:20px;">'+loading_text+'...</span>');
		$('#galerie_'+box_id).load('/include/ajax/box.php?box_type=galerie&box_id='+box_id+'&galerie_'+box_id+'_bild='+img, '', activate_galerie_ajax);
		
		$("#rechts .thumbnails a[href='?galerie_"+box_id+"_bild="+img+"']").parents('.thumbnails').contents().removeClass('active');
		$("#rechts .thumbnails a[href='?galerie_"+box_id+"_bild="+img+"']").addClass('active');
		return false;
	
	} else if(link_href.match(/(\d+)\/(\d+)\/$/)) {
		var galerie = RegExp.$1;
		var img = RegExp.$2;
		
		$('#mitte .galerie .status').html('<img src="/layout/loader.gif" alt="" style="position:absolute;" /> <span style="padding-left:20px;">'+loading_text+'...</span>');
		$('#mitte .galerie').parents('.box').load('/timm/galerie/anzeige_mitte.php?reload_by_ajax=1&galerie='+galerie+'&bild='+img, '', activate_galerie_ajax);
		
		$("#rechts .thumbnails a").removeClass('active');
		$("#rechts .thumbnails a[href*='/"+img+"/']").addClass('active');
		return false;
	}
}

function activate_galerie_keycontrol() {
	// Anzahl Galerien in der Mitte
	var num_galerien_mitte = 0;
	$("#mitte .galerie").each(function() {
		num_galerien_mitte++;																 
	});
	
	if(num_galerien_mitte == 1) {
		$(document).keydown(function (e) {
			// Cursor rechts
			if(e.keyCode == 39) {
				$('#mitte .galerie a.next').click();
				return false;
			// Cursor links
			} else if(e.keyCode == 37) {
				$('#mitte .galerie a.prev').click();
				return false;
			}
		});
	}
}

function url(v){
	if(v.substr(0,7)=='http://'){
		window.open(v,'goto');
	}else{
		document.location.href=v;
	}
}


function clear_session_submit(formular) {
	document.cookie = 'lgrad=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
	document.cookie = 'bgrad=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
	document.cookie = 'zoom=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
	
	s=document.createElement('script');
	s.src='/include/ajax/clear_session_page.php?formular='+formular;
	document.getElementsByTagName('head')[0].appendChild(s);
}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if(typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function(){
			oldonload();
			func();
		}
	}
}


function get_date(field){
	datums_feld = field;
	formular = document.forms[1].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[1].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;
	}
  
	/* Fuer Pauschalenanfrage */
	if(document.getElementById('form_anreise') && document.getElementById('form_abreise')) {
		update_datum(datums_feld);
	}
}


// 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 fuer das Pauschalenanfrage Script */
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;
	}
}


function geb_kinder() {

	anz_kinder = document.getElementById('form_anz_kinder').value;
	var querystring = '';
	
	for(var i=1;i<=anz_kinder;i++) {
		if(document.getElementById('gb_kind_'+i+'_tag')) {
			querystring = querystring + '&gb_kind'+i+'='+document.getElementById('gb_kind_'+i+'_tag').value + '.' + document.getElementById('gb_kind_'+i+'_monat').value + '.' + document.getElementById('gb_kind_'+i+'_jahr').value;
		}
	}
	$('#form_kinder').load('/include/ajax/geb_kinder.php?sprache='+sprache+'&kinder='+anz_kinder+querystring, {});
}


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;
	pauschale = document.getElementById('pauschalen_id').value;
	
	if(!datum_abreise) datum_abreise = new Date();

	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);
	}
	
	$('#errorbox').load('/include/ajax/check_zeitraum.php?sprache='+sprache+'&pauschale='+pauschale+'&anreise='+document.getElementById('form_anreise').value+'&abreise='+document.getElementById('form_abreise').value, {});
}


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;
}
