var fertig = 0;

$(document).ready(function() {

  /* Slider Startseite */
  if($('.ticker .slider').length > 0){
    $('.ticker .slider').m4slider({
      'prev' : '.arrows a.prev',
      'next' : '.arrows a.next'
    });
  }

	init_js();
});


/* wird beim Seitenwechsel und beim reload aufgerufen */
function init_js(){
  hide_ladebalken();
}


function panorama_dzt()  {
	w1 = window.open("http://www.dzt.de/applications/unesco/htdocs/gallery360.php?id=16_007_Bamberg_Altstadt&lang=DE", "PanoramaBamberg", "width=760,height=540,scrollbars=no,status=no");
	w1.focus()
}	


function panorama(id)  {
	if (! window.focus) return true;
	window.open('/timm/panorama_fs.php?id='+id, 'panorama', ',type=fullWindow,fullscreen,scrollbars=no');
}


function bgc(theRow,theColor) {
	if(theRow.style.backgroundColor){
		theRow.style.backgroundColor = theColor;
	}
}


function url(v){
	if(v.substr(0,24)=='http://www.bamberg.info/' || v.substr(0,20)=='http://bamberg.info/'){
		document.location.href=v;
	}else if(v.substr(0,7)=='http://'){
		window.open(v,'goto');
	}else{
		document.location.href=v;
	}
}


function firstempty(feld,wert){
	if(feld.value==wert){
		feld.value='';
	}else if(feld.value==''){
		feld.value=wert;
	}
}


function select_language(action){
  if(action==true){
    $('#language_box, #language_abdecker').slideDown(100);
  }else{
    $('#language_box, #language_abdecker').slideUp(100);
  }
}


/* Ladebalken einblenden */
function show_ladebalken(box, top_offset, left_offset){
  if($('#'+box).length > 0){
    if(typeof(left_offset)=='undefined') left_offset = -18;

    var left = $('#'+box).offset().left;
    var top  = $('#'+box).offset().top;

    var padding_top = parseInt($('#'+box).css('padding-top'));
    top_offset += padding_top;

    $('#ajax-loader').css('left', left + left_offset + $('#'+box).width() + 'px');
    $('#ajax-loader').css('top',  top  + top_offset  + 'px');
    $('#ajax-loader').fadeIn(100);
  }
}


/* Ladebalken ausblenden */
function hide_ladebalken() {
  fertig = 1;
	$('#ajax-loader').fadeOut(100);
}


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;
var formular;


function get_date(field,form_name){
	datums_feld = field;
	if(typeof(form_name)=='undefined'){
		formular = document.forms[0].name;
	}else{
		formular = form_name;
	}
	
	bt = document.getElementById('bt_'+field);
	s = document.getElementById('get_date_box');
	a = document.getElementById('get_date_abdecker');
	
	// IRS
	if(typeof(document.forms[formular].elements[datums_feld]) != "undefined"){
		yy = -20;
	} else {
		yy = 2;
	}
	xx = 182;
	

	if(typeof(field)!='undefined'){
		pos = getPosition(bt);
		Left = pos.x-xx;
		Top  = pos.y-yy;
		if(Top < 80) {Top = 80;}
	}

	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){
	
	var do_irs = false;

	if(typeof(formular) == 'undefined') {
		formular = document.forms[0].name;
	}
	
	get_date(datums_feld, formular);
	
	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;
			}
		}
	}
	
	/* Fuer Buchbare Veranstaltungen */
	if(document.getElementById('form_datum') && document.getElementById('veranstaltungs_id')) {
		veranst_check_datum(datums_feld);
	}
	
	/* Fuer 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 fuer Buchbare Veranstaltungen */
function veranst_check_datum(datums_feld){
	var datum = document.getElementById('form_datum').value;
	var veranstaltung = document.getElementById('veranstaltungs_id').value;

    /* Datum formatieren */
    var elements = datum.split('.');
    if(elements[0].length == 1) elements[0] = '0' + elements[0];
    if(elements[1].length == 1) elements[1] = '0' + elements[1];
    if(elements[2].length == 2) elements[2] = '20' + elements[2];
    datum = elements.join('.');
    
    document.getElementById('form_datum').value = datum;

    $('#errorbox').load('/include/ajax/check_zeitraum.php?veranstaltung='+veranstaltung+'&datum='+datum, {});
	
	if(document.getElementById('form_uhrzeit')){
		var time_type = document.getElementById('form_uhrzeit').type;
		var uhrzeit   = document.getElementById('form_uhrzeit').value;
	}
	
	// Uhrzeit Select
	if(time_type=='select-one'){
    $('#uhrzeit_eingabe').load('/include/ajax/check_zeitraum.php?veranstaltung='+veranstaltung+'&datum='+datum+'&uhrzeit='+uhrzeit+'&update_select=true', {});
	}
}


/* Funktionen fuer 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;
	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?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;
}


function urlaubsplaner(name,id,set,no_irs){

	// aus einer Liste heraus
	if(img = document.getElementById('up_'+name+'_'+id)){
		if(img.src.indexOf('plus2.gif')>0){
			img.src = '/layout/icons/up_ok.gif';
			action = '&set=1';
		}else{
			img.src = '/layout/icons/plus2.gif';
			action = '&unset=1';
		}
		merken = '&merken=0';

	// Im Eintrag selber
	}else{
		if(set) action = '&set=1';
		else 		action = '&unset=1';
		merken = '&merken=1';
	}

	if($('#urlaubsplaner_overview_0').length > 0){
		merken = '&merken=0';
    $('#urlaubsplaner_overview_0').load('/include/urlaubsplaner/ajax.php?mitte=1&name='+name+'&id='+id+action+merken, {});
	}

  $('#urlaubsplaner_box_0').load('/include/urlaubsplaner/ajax.php?name='+name+'&id='+id+action+merken, {})
}


function info_box(name){

	bt = document.getElementById(name+'_bt');
	s = document.getElementById('info_box');
	a = document.getElementById('info_abdecker');

	if(typeof(name)!='undefined'){
		pos = getPosition(bt);
		Left = 215;
		Top = pos.y-255;
		if(Top < 190) {Top = 190;}

    $('#info_box').load('/include/info_box/load.php?info='+name, {});

		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.innerHTML = '';
		s.style.visibility = 'hidden';
		a.style.visibility = 'hidden';
	}
}


function notice_presse_img(id) {
	img = document.getElementById('notice_button_'+id);
	last_slash = img.src.lastIndexOf('/')+1;
	img_path = img.src.substr(0,last_slash);

	if(img.src.indexOf('check_0.gif')>0){
		img.src = img_path+'check_1.gif';
		set = 1;
	}else{
		img.src = img_path+'check_0.gif';
		set = 0;
	}
	$('#presse_bilder_merkliste_0').load('/include/ajax/notice_presse_img.php?box_position=rechts&id='+id+'&set='+set, {});
}


function change_page(box,page,query_str,uri){
	if(box){
    show_ladebalken('loader_'+box, -2);
    $('#'+box).load('/include/ajax/change_page.php?box='+box+'&page='+page+'&'+query_str+'&uri='+uri, {}, init_js);
	}
}


function show_search_result(box, query_str, uri) {
	if(box) {
    $('#'+box).load('/include/ajax/show_search_result.php?box='+box+'&'+query_str+'&uri='+uri, {});
	}
}

function shop_uebersicht(){
	document.warenkorb.action.value='uebersicht';
	document.warenkorb.submit();
}


function shop_bestellen(){
	document.warenkorb.action.value='bestellen';
	document.warenkorb.submit();
}


function insert_into_basket(artikel){
	if(typeof(document.getElementById('artikel_menge'))!='undefinde'){
		menge = document.getElementById('artikel_menge').value;
	}else{
		menge = 1;
	}

	show_ladebalken('warenkorb_0',22,-130);
  $('#warenkorb_0').load('/include/ajax/show_warenkorb.php?artikel='+artikel+'&menge='+menge, {}, init_js);
}


function update_basket(del_artikel){
	if(typeof(del_artikel)!='undefined'){
		query = '&artikel['+del_artikel+']=0';
	}else{
		query = get_form_elements('warenkorb');
	}
	show_ladebalken('warenkorb_edit_0',20);
	$('#warenkorb_edit_0').load('/include/ajax/show_warenkorb.php?edit=1'+query, {}, init_js);
}


function shop_bestellformular(){
	update_basket();
	shop_goto_formular();
}


function shop_goto_formular(){
	if(fertig==1){
		document.location.href=link_international+"/shop/bestellformular/";
	}else{
		setTimeout('shop_goto_formular()',50);
	}
}


function timm4_link2map(action){
	if(action){
		timm4_mailer_box();

    var post_data = {'map' : map_id, 'action' : action};
		$('#timm4_mailer').load('/include/ajax/timm4_link2map.php',post_data);
		big_div('timm4_mailer',400,300);

	}else if(document.getElementById('timm4_mailer')){
		BigImg.closeBigImg();
		document.getElementById('timm4_mailer').innerHTML = '';
	}
}


function timm4_link2map_send(){
	if(document.forms['timm4_link2map'] != undefined){

		var elts      = document.forms['timm4_link2map'].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;
		}
		$('#timm4_mailer').load('/include/ajax/timm4_link2map.php',post_data);
	}
}


function timm4_mailer(adress_id){
	if(adress_id){
		timm4_mailer_box();

		$('#timm4_mailer').load('/include/ajax/timm4_mailer.php?adress_id='+adress_id, {});
		big_div('timm4_mailer',600,400);

	}else if(document.getElementById('timm4_mailer')){
		BigImg.closeBigImg();
		document.getElementById('timm4_mailer').innerHTML = '';
	}
}


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;
		}

		$('#timm4_mailer').load('/include/ajax/timm4_mailer.php',post_data);
	}
}


function timm4_mailer_box() {
	if(!document.getElementById('timm4_mailer')){
		var objBody = document.getElementsByTagName("body").item(0);
		var objBox = document.createElement("div");
		objBox.setAttribute('id','timm4_mailer');
		objBody.insertBefore(objBox, objBody.firstChild);
	}
}


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, {});
}


function show_whole_text(box_id,back_button,query) {
	var box = 'write_text_box_'+box_id;
  $('#'+box).load('/include/ajax/show_whole_text.php?box_id='+box_id+'&back_button='+back_button+query, {});
}


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 adress_details(adress_id,box_id,action,box_id_db,google_maps) {
  $('#'+box_id).load('/include/ajax/address_details.php?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?az='+az+'&field='+field+'&action='+action, {});
}


function get_date_blaettern(jahr,monat,pauschale,dauer,veranstaltung){
  $('#get_date_box').load('/include/get_date.php?jahr='+jahr+'&monat='+monat+'&pauschale='+pauschale+'&pauschale_dauer='+dauer+'&veranstaltung='+veranstaltung, {});
}


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?kinder='+anz_kinder+querystring, {});
}
