$(document).ready(function(){


	/* Navi ******************************************/
	$('#mainNavi').find('.dropdown').hide();
	if (window.location.search.indexOf('') != -1) {
		$('#mainNavi').find('li').hover(function(){
			$(this).find('.dropdown').css('opacity','0').show().animate({
				opacity: 1
			},200);
		},function() {
			$(this).find('.dropdown').animate({
				opacity: 0
			},0, function(){
				$(this).hide()
			});
		});
	}

	/* Accordion: Culinary Afterwork
	*************************************************/
	// DOM sortieren
	$('div.csc-halbiert').each(function(){
		if ($(this).prev('div.csc-default')) {
			$(this).prev('div.csc-default').addClass('clAccordion');
			$(this).prev('div.csc-default').append($(this));
		}	
	});
	$('div.csc-default.clAccordion').each(function(){
		$(this).find('div.csc-halbiert').wrapAll('<div class="accordionContent"></div>');
	});
	$('div.csc-default.clAccordion').wrapAll('<div class="culinaryAccordion"></div>');
	// Accordion hunzufügen
	$('div.culinaryAccordion').accordion({header:'h2', autoHeight: false, active: false, collapsible: true});


    /* Download-Bereich
    **********************************************/
    // Wrap um alle Unterthemen
    $('.downloadList').wrapAll('<div class="downloadAccordion"></div>');
    $('.downloadAccordion').accordion({header:'h2', autoHeight: false, active: false, collapsible: true});
    
    // PDF-Verlinkung
    $('.downloadList span.imageCaption').each(function() {
   		$(this).parent().find('a').addClass('downloadImg');
   		$(this).parent().find('a.fancybox').removeClass('fancybox');
    	// ggf Platzhalter einsetzen
    	if ($(this).parent().find('img').attr('src') == '') {
    		$(this).parent().find('img').attr('src','pub/images/downloadPlaceholder.jpg');
    	}
    	var altLink = $(this).parent().find('img').attr('alt');
    	var pdfRoot = 'pub/downloads/';
    	var pdfLink = pdfRoot + altLink;
    	$(this).wrapInner('<a target="_blank" href="'+pdfLink+'"></a>');
   		$(this).parent().find('a').attr('href', pdfLink);
    });
    
    
    /* ThickBox
    **********************************************/    
    $('.startTeaserUntenC div div span a').addClass('thickbox');
    tb_init('a.thickbox');


    /* LightBox
    **********************************************/    
	$('.fancybox').lightBox();

	
	/* großer Slider auf der Startseite
	*************************************************/
	/*$('#headerImage').toiSlider();*/
	$('#headerImage').nivoSlider({
		effect: 'fade',
		slices: 1,
		animSpeed: 600,
		pauseTime: 5000
	});
	$('#headerImage .nivo-slice').wrap('<a class="nivo-link" href=""></a>');
	$('#headerImage .nivo-slice').bind('DOMAttrModified onpropertychange', function(e) {
    	if ((e.attrName == 'style' && e.newValue.search(/opacity\: 1\;/) != -1) ||
    		(window.event.propertyName == 'style.opacity' && window.event.srcElement.style.opacity == '1')) {
    		var src = e.newValue.match(/url\("(.*?)"\)/);
    		var href = $('#headerImage a img[src="'+src[1]+'"]').parent('a').attr('href');
    		if (typeof(href) != 'undefined') {
    			$('#headerImage a.nivo-link').attr('href',href);
    		} else {
    			$('#headerImage a.nivo-link').attr('href','');
    		}
    	}
	});


    /* Angebots-Slider: Startseite
    **********************************************/    
	// Links für den Angebots-Slider auf der Startseite setzen
	$('.startbox .csc-default').each(function(){
		var href = $(this).find('img').parent('a').attr('href');
		if (href != undefined) {
			$(this).find('div:first').wrap('<a class="slideContent" href="'+href+'"></a>');
		}
	});
    // Startseite
	$(".startbox").horizontalSlider({
	   setWidth: '345px',
	   setLeft: '0px',
	   setPosition: 'absolute',
	   slideWidth: '345px',
	   type: 'slide',
	   delay: 3500
    });
    
    
    /* Auszeichnungen auf der Startseite: Random beim Laden
    **********************************************/
    var certImg = 'pub/images/Startseite/Auszeichnungen/certifications_0' + (1 + Math.floor(Math.random() * 6)) + '.jpg';
    $('span.imageWithCaption a img[src="uploads/pics/cerfications_blank_02.jpg"]').attr('src', certImg).addClass('certificationsBorderImage');
    
    
    /* Angebots-Slider: alle anderen Seiten
    **********************************************/    
	// Links für alle weiteren Angebots-Slider setzen
	$('#headerInfo .padding .csc-default').each(function(){
		var href = $(this).find('h2 a').attr('href');
		if (href != undefined) {
			var content = $(this).html();
			$(this).html('<div class="slideContent">'+content+'</div>');
			$(this).find('div.slideContent').wrap('<a href="'+href+'"></a>');
		}
	});
	// auf allen anderen Seiten
	$("#headerInfo .padding").horizontalSlider({
		selector: 'a.slideContent, div.csc-default'
	});

    /* Rückruf-Anfrage
    **********************************************/    
    var callbackServiceOptions = { 
        target: '#TB_ajaxContent',
        url: 'pub/php/callBackConfirmation.php'
	};
    $('#showInThickbox form#mailform').submit(function() {
        $(this).ajaxSubmit(callbackServiceOptions);
        return false;
    });
    
    
    /* Datepicker für alle Anfrage-Formulare
    **********************************************/
	// Datepicker auf aktuelle Sprache umstellen
	$.datepicker.setDefaults($.datepicker.regional[$('body').attr('id')]);    
	$('#hotelanfrageDateFrom, #hotelanfrageDateTill').datepicker({
        showOn: "both",
        beforeShow: customRange,
        onSelect: onDatepickerSelect,
        dateFormat: "dd.mm.yy",
        firstDay: 1, 
        changeFirstDay: false
    });	
	$('#tagungsanfrageDateFrom, #tagungsanfrageDateTill').datepicker({
        showOn: "both",
        beforeShow: customRange,
        onSelect: onDatepickerSelect,
        dateFormat: "dd.mm.yy",
        firstDay: 1, 
        changeFirstDay: false
    });
    
    $('#gastroAnfrageDate').datepicker({
    	dateFormat: "dd M yy",
        beforeShow: customRange
    });


    /* QuickBookApplet
    **********************************************/
    var btnZimmer = $('#bookingNavi li:first a');
    var btnTagung = $('#bookingNavi li:last a');
    var formZimmer = $('.bookingContent .bookingFormH');
    var formTagung = $('.bookingContent .bookingFormT');
    
    btnZimmer.click(function(){
        // Hotel-Formular anzeigen
        btnZimmer.addClass('active');
        formZimmer.css('display', 'block');
        // Tagungs-Formular ausblenden
        btnTagung.removeClass('active');
        formTagung.css('display', 'none');
    });
    btnTagung.click(function(){
        // Tagungs-Formular anzeigen
        btnTagung.addClass('active');
        formTagung.css('display', 'block');
        // Hotel-Formular ausblenden
        btnZimmer.removeClass('active');
        formZimmer.css('display', 'none');
    });
    
	// Highlights entfernen
	$('div.bookingForm.bookingFormH input, div.bookingForm.bookingFormH select').focus(function(){
		// Highlight-Klasse gesetzt?
		if ($(this).hasClass('change')){
			// entfernen
			$(this).removeClass('change');
		}
		// Highlight-Klasse des Eltern-Elements gesetzt?
		if ($(this).parent().hasClass('change')) {
			// entfernen
			$(this).parent().removeClass('change');
		}
	});

	var booker = $('div.bookingForm.bookingFormH');
	// Prüfen und Abschicken des Buchungs-Formulars
	booker.find('button#send').click(function(){
		// Highlights entfernen
		booker.find('.change').removeClass('change');
		// Werte übernehmen
		var arrive = booker.find('input#hotelanfrageDateFrom').val();
		var depart = booker.find('input#hotelanfrageDateTill').val();
		var rooms = booker.find('select#roomsCount').val();
		var persons = booker.find('select#personsCount').val();
		
		var errors = 0;
		// Fehler bei Ankunfts-Datum prüfen
		if (arrive.search(/\d{2}\.\d{2}\.\d{4}/) == -1) {
			booker.find('input#hotelanfrageDateFrom').addClass('change');
			errors++;
		} else {
			var temp = arrive.split('.');
			arrive = temp[2]+temp[1]+temp[0];
		}
		// Fehler bei Abfahrts-Datum prüfen
		if (depart.search(/\d{2}\.\d{2}\.\d{4}/) == -1) {
			booker.find('input#hotelanfrageDateTill').addClass('change');
			errors++;
		} else {
			var temp = depart.split('.');
			depart = temp[2]+temp[1]+temp[0];
		}
		// Fehler bei Zimmer-Anzahl prüfen
		if (isNaN(rooms) || rooms == '') {
			booker.find('select#roomsCount').addClass('change');
			errors++;
		}
		// Fehler bei Personen-Anzahl prüfen
		if (isNaN(persons) || persons == '') {
			booker.find('select#personsCount').addClass('change');
			errors++;
		}
		// gibt es Fehler?		
		if (errors != 0) {
			// Fehlermeldung anzeigen
			booker.find('.error').css('display', 'block');
			return false;
		}
		// keine Fehler!
		else {
/*
			var url = 'http://www.hoteldaten.com/koop-apis/wdba/dorequest.php'
					+ '?webresid=8453'
					+ '&LANG=D'
					+ '&persons='+persons
					+ '&rooms='+rooms
					+ '&arrival='+arrive
					+ '&departure='+depart
					+ 'TB_iframe=true&width=740&height=500';
*/
			var url = 'http://212.184.76.5/protelwbe_Lehrte/reserv.aspx'
					+ '?adult='+persons
					+ '&number='+rooms
					+ '&arrdate='+arrive
					+ '&depdate='+depart
					+ 'TB_iframe=true&width=970&height=600';
			$('a.thickbox.trigger').attr('href', url);
			$('a.thickbox.trigger').trigger('click');
			// Fehlermeldung verbergen
			booker.find('.error').css('display', 'none');
			// IFrame in Fancybox laden
			return false;
		}
	});


    /* Pauschalpreise -> "anfrage"-Button
    **********************************************/
    $('#c41 table.contenttable.contenttable-0 tbody tr:gt(0)').each(function(index){
        // nicht in der letzten Zeile!
        if (!$(this).hasClass('tr-last')) {
            var room = $(this).find('td:first').text();
            var rooms = new Array();
            // zwei Räume -> '1 + 2'
            if (room.match(/(\d+).*\+.*(\d+)/)) {
                rooms.push(RegExp.$1);
                rooms.push(RegExp.$2);
            }
            // eine Reihe von Räumen -> '1 - 2'
            else if (room.match(/(\d+).*\-.*(\d+)/)) {
                for (var i = Number(RegExp.$1); i <= Number(RegExp.$2); i++) {
                    rooms.push(i.toString());
                }
            }
            else if (room.match(/((\d+).*\/.*)+(\d+)/)) {
                rooms.push(RegExp.$2);
            }
            // ein Raum
            else if (room.match(/(\d+)/)) {
                rooms.push(RegExp.$1);
            }
            var html = '<a href="kontakt/buchung/tagungsanfrage/?tx_pilmailform_pi1[select][rooms]=' + escape(rooms.join(',')) + '">anfragen</a>';
            $(this).find('td:last').html(html);
        }
    });
    
    
    /* Tagungsräume
    **********************************************/
    $('#tagungsanfrageRooms').roomConfigurator({roomsCount: 21});
    
    
    /* Raumübersicht
    **********************************************/
    
    var stuhlForm = new Object();
    stuhlForm['.td-0'] = "";
    stuhlForm['.td-2'] = "Parlament";
    stuhlForm['.td-3'] = "uform";
    stuhlForm['.td-4'] = "Reihe";
    stuhlForm['.td-5'] = "Bankett";
    stuhlForm['.td-6'] = "";
    stuhlForm['.td-7'] = "";
    stuhlForm['.td-8'] = "";
            
    
    function raumNummer(string){
    	raum = string.parent().find(".td-0").html();
	   	raum = raum.replace(/\+/, "und");
    	raum = raum.replace(/\-/, "bis");
    	return raum;
    }
    
    function abschicken(raum,bestuhlung){
    	stuhlStr = (bestuhlung != "") ? "&tx_pilmailform_pi1[select][chair]="+bestuhlung : "";
    	raumStr  = (raum != "") ? "&tx_pilmailform_pi1[textarea][message]="+raum+"%0A******************************%0A" : "";
    	var link = 'http://' + window.location.hostname + '/' + 'kontakt/tagungsanfrage/?hidePauschale=1' + stuhlStr;
       	window.location.href = link;
    }
    
    $('.raumuebersicht').find('tr').find('td').click(function(){ 
    	bestuhlung = stuhlForm['.'+$(this).attr('class')];
    	raum3 = raumNummer($(this));
    	abschicken(raum3,bestuhlung);
    });
    
    
    
    /* Raumübersicht 2
    **********************************************/
    if($(document).getUrlParam('hidePauschale') == '1') {
    	$('#tagungsanfrageForm').find('#tagungsPauschale').hide();
    }
        
    
    /* Newsletter
    **********************************************/    
	$('form#nlForm').submit(function(){
		// Formular absenden
		var response = $.ajax({
			type: 'post',
			url: $(this).attr('action'),
			data: $(this).serialize(),
			cache: false,
			dataType: 'text',
			async: false
		}).responseText;
		// Nachricht
		var message = '';
		// Response filtern
		if ((typeof(response) == 'string') && (response.length > 0)) {
			// filtern
			var matches = response.match(/<body>([\s\S]*?)<\/body>/i);
			// gibt es ein Ergebnis?
			if ((typeof(matches) == 'object') && (matches instanceof Array)) {
				// ersten Fund als Nachricht nehmen
				message = matches[1];
			} else {
				// komplette Antwort als Nachricht nehmen
				message = response;
			}
		}
		// gibt es eine Antwort?
		if (message.length > 0) {
			// HTML zusammensetzen
			var html = '<fieldset id="thickboxContent">'
					 + '<legend>Newsletteranmeldung/-abmeldung</legend>'
					 + message
					 + '<br /><br /><div align="center"><input class="btnSubmit" type="button" onclick="tb_remove()" value="Schließen"></div>'
					 + '</fieldset>';
			// Antwort anzeigen
			$('div#feedback').hide();
			$('div#feedback').html(html);
			$('div#newsletterAnmeldung a.thickbox').click();
			var tbHeight = ($('#TB_ajaxContent #thickboxContent').height() + 60);
			$('#TB_ajaxContent').css('height', tbHeight + 'px');
		}
		return false;
	});
     
     
    /* Accordion
    **********************************************/
    
    $(".accordion").accordion({header: 'h3', autoHeight: false, active: false});


    /*Switcher zwischen Median Hotels
    **********************************************/

    $("body").append('<div id="switcher"><a class="lehrteWrap" href="http://median-hotel.de/"><span class="lehrte"></span><span class="lehrteOverlay"></span></a><a class="messeWrap" href="http://medianhotel-messe.de/"><span class="messe"></span><span class="messeOverlay"></span></a></div>');

	if (window.location.hostname.indexOf('messe') != -1) {
		$('#switcher .messeWrap').addClass('selected');
	} else {
		$('#switcher .lehrteWrap').addClass('selected');
	}
	
	/*Lehrte Switcher*/
    $("#switcher .lehrte").hover(function(){
    	$(this).animate({"width":"+=20px"},360,function(){
			if ($(this).width() >71){
				$(this).width(71);
			}
		});
    	$(".lehrteOverlay").css({
    		"display":"block",
    		"opacity":0
    	}).animate({
    		"width":"+=20px",
    		"opacity":1
    	},360,function(){
			if ($(this).width() >71){
				$(this).width(71);
			}
		});
    },function(){
    });
    
    $("#switcher .lehrteOverlay").hover(function(){
    },function(){
    	$(this).animate({
    		"width":"-=20px",
    		"opacity":0
    	},360,function(){
    		$(this).css({"display":"none","width":"31px"});
    	});
		$("#switcher .lehrte").animate({"width":"-=20px"},360,function(){
			if ($(this).width() <31){
				$(this).width(31);
			}
		});    
    });
    
	/*Messe Switcher*/
    $("#switcher .messe").hover(function(){
    	$(this).animate({"width":"+=20px"},360,function(){
			if ($(this).width() >71){
				$(this).width(71);
			}
		});
    	$(".messeOverlay").css({
    		"display":"block",
    		"opacity":0
    	}).animate({
    		"width":"+=20px",
    		"opacity":1
    	},360,function(){
			if ($(this).width() >71){
				$(this).width(71);
			}
		});
    },function(){
    });
    
    $("#switcher .messeOverlay").hover(function(){
    },function(){
    	$(this).animate({
    		"width":"-=20px",
    		"opacity":0
    	},540,function(){
    		$(this).css({"display":"none","width":"31px"});
    	});
		$("#switcher .messe").animate({"width":"-=20px"},540,function(){
			if ($(this).width() <31){
				$(this).width(31);
			}
		});    
    });
    
    /* Arrangement-Anfrage
    **********************************************/
    
    if (window.location.pathname.indexOf('arrangements') != -1) {
    	$('.teaserBoxes').each(function(){
    		var title = escape($(this).find('h2 a').text());
    		$(this).append('<div class="arrangement-booking-teaser"><p>Vorübergehend nur auf Anfrage buchbar. Bitte nutzen Sie unser <a href="/kontakt/kontaktformular/?arrangement='+title+'">Kontaktformular</a>.</p></div>');
    	});
    }
    
    if (window.location.search.indexOf('arrangement') != -1) {
    	$('#message').append('Bitte nehmen Sie mit mir Kontakt bezüglich des Zimmer-Arrangements "'+GET('arrangement')+'" auf.');
    }
});

function GET(name)
{
   	var temp = window.location.search.substring(1).split('&');
   	var params = new Array();
   	for (var i in temp) {
   		var x = temp[i].split('=');
   		params[x[0]] = unescape(x[1]);
   	}
	return params[name];
}

function showNLResponse(responseText, statusText, xhr, $form)  {
	alert(responseText);
}



/**
 * Legt die auswählbaren Daten im Datepicker fest.
 */
function customRange(input) 
{ 
    var namespace = 'hotelanfrage';
    if (input.id.match(/tagungsanfrage/)) {
        namespace = 'tagungsanfrage';
    }

	var now = new Date();
	
	var min = new Date(now.getFullYear(), now.getMonth(), now.getDate()); //Set this to your absolute minimum date
    var dateMin = min;
    var dateMax = null;
    var dayRange = 352;  // Set this to the range of days you want to restrict to

    if (input.id == namespace+"DateFrom") 
    {
        if ($("#"+namespace+"DateTill").datepicker("getDate") != null)
        {
            // bisher nichts...
        }
        else
        {
        	dateMin = min;
            dateMax = new Date(now.getFullYear()+2, now.getMonth() - 1, now.getDate());
        }                      
    }
    else if (input.id == namespace+"DateTill")
    {
        dateMax = new Date();
        if ($("#"+namespace+"DateFrom").datepicker("getDate") != null) 
        {
            dateMin = $("#"+namespace+"DateFrom").datepicker("getDate");
            dateMin.setDate(dateMin.getDate() + 1);
            dateMax = new Date(dateMin.getFullYear() + 2, dateMin.getMonth(), dateMin.getDate());
        }
        else 
        {
            var tomorrow = min.getTime() + (1000*60*60*24);
            min.setTime(tomorrow);
            dateMin = min;
            dateMax = new Date(dateMin.getFullYear() + 2, dateMin.getMonth(), dateMin.getDate());
        }
    }
    
    toBeReturned = new Object();
    toBeReturned.minDate = dateMin;
    toBeReturned.maxDate = dateMax;
    
    return toBeReturned; 

}


/**
 * Setzt das ausgewählte Datum des zweiten Datepickers auf einen Tag nach dem im ersten
 * Datepicker ausgewählten Datum, falls dort ein späteres als im zweiten ausgewählt wurde.
 */
function onDatepickerSelect()
{
    var namespace = 'hotelanfrage';
    if (this.id.match(/tagungsanfrage/)) {
        namespace = 'tagungsanfrage';
    }
    
    if ($('#'+namespace+'DateTill').datepicker("getDate") != null) {

        var dateFrom = $('#'+namespace+'DateFrom').datepicker("getDate");
        var dateTill = $('#'+namespace+'DateTill').datepicker("getDate");

        if (dateTill <= dateFrom) {
            dateFrom.setDate(dateFrom.getDate() + 1);
            $('#'+namespace+'DateTill').datepicker("setDate", dateFrom);  
        }
    }        
}

