var lang;
var iceFree = false;

$(document).ready(function() {
    lang = $('html').attr('lang');
    if(!lang){
        lang = 'de';
    }
    
	fixMetaLine();
	initFrmRent();
	initIceFreeTicketForm();
	observeImageSlider();
	observeCityDescSEO();
	observeParkinglotDescSEO();
	observeFormRequestSent();
	observeNavteqIFrame();
	observeTicketTooltips();
	observeBookmarkLink();
	observeFormTicketRequest();
	observeOverlay();
	
	$('#references .MAP_TABLE a').click(function(e){
		e.preventDefault();
		return false;
	});
	
	if($('div.news-latest-container').length > 0){
		$('div.news-latest-img').each(function(){
			if($(this).find('img').length == 0){
				$(this).find('span:first').after('<img src="typo3conf/ext/imia_apcoa/Resources/Public/images/news-default.png" alt="" />');
			}
		});
	}
});

function fixMetaLine() {

	if ($.browser.msie) {
		$('.MENU_LEFT, .LANGUAGE').css('margin-top', '1px');
	}
	if ($.browser.safari) {
		$('.MENU_LEFT, .LANGUAGE').css('margin-top', '3px');
	}
}

function initFrmRent() {

	if ($('#frmRent')) {

		if ($('.frmRentType')) {
			$('.frmRentType').change(function() {
				selType();
			});
			selType();
        }

		if ($('.frmRentPayPer')) {
			$('.frmRentPayPer').change(function() {
				selPayPer();
			});
			selPayPer();
        }
	}
}

function initIceFreeTicketForm()
{
    if($('#parkingLotIceFree').length > 0){
        $('#parkingLotIceFree h3 a').click(function(e){
            e.preventDefault();
            if ($(this).hasClass('act')) {
                $(this).removeClass('act');
                $(this).parent().next('.pane').slideUp();
            } else {
                $(this).addClass('act');
                $(this).parent().next('.pane').slideDown();
            }
            return false;
        });
    }
}

function selPayPer() {
	if ($('.frmRentPayPer:checked').attr('id') == 'payperTrans') {
		$('#payperTrans').parent().next().hide().next().hide().next().hide().next().hide();
	}
	else if ($('.frmRentPayPer:checked').attr('id') == 'payperDebit') {
		$('#payperDebit').parent().next().show().next().show().next().show().next().show();
	}
}


var slideshow;
var activeimg = 1;
var numberimg = 3;
function observeImageSlider() {

	if ($('.ce_imageslider_wrapper_all').length > 0) {

		$('.IS_BTN_1').addClass('IS_BTN_SEL');
	
		$('.IS_BTN_1, .IS_BTN_2, .IS_BTN_3').mouseenter(function() {

			window.clearInterval(slideshow);

			var arImgClass = $(this).prev().attr('class').split('_');
			var newimg = arImgClass[1];

			if (activeimg != newimg) {

				$('.ce_imageslider_wrapper_all .IMG_1, .ce_imageslider_wrapper_all .IMG_2, .ce_imageslider_wrapper_all .IMG_3').fadeOut();
				$('.ce_imageslider_wrapper_all .IMG_' + newimg).fadeIn();

				$('.IS_BTN_1, .IS_BTN_2, .IS_BTN_3').removeClass('IS_BTN_SEL');
				$(this).addClass('IS_BTN_SEL');
				
				activeimg = newimg;
			}
		});
		/*$('.ce_imageslider_wrapper_all').mouseleave(function() {

			activeimg = 1;
			slideshow = window.setInterval("doTheSlideshow()", 7500);
		});*/

		slideshow = window.setInterval("doTheSlideshow()", 3000);
	}
}
function doTheSlideshow () {

	$('.ce_imageslider_wrapper_all .IMG_1, .ce_imageslider_wrapper_all .IMG_2, .ce_imageslider_wrapper_all .IMG_3').fadeOut();

	activeimg++;
	if (activeimg > numberimg) {
		activeimg = 1;
	}

	$('.IS_BTN_1, .IS_BTN_2, .IS_BTN_3').removeClass('IS_BTN_SEL');
	$('.IS_BTN_' + activeimg).addClass('IS_BTN_SEL');

	$('.ce_imageslider_wrapper_all .IMG_' + activeimg).fadeIn();
}

function selType() {

	if ($('.frmRentType:checked').attr('id') == 'selPrivate') {
		$('.private').css('display', 'block');
		$('.company').css('display', 'none');
		selSingleTotalPrice();
	}
	else if ($('.frmRentType:checked').attr('id') == 'selCompany') {
		$('.company').css('display', 'block');
		$('.private').css('display', 'none');
		formCalcPriceTotal();
	}

}


function observeFormRequestSent() {

	if ($('#apcoaParkingThankYouForSendingRequest').length > 0) {
		$('.SINGLE_VIEW_LEFT, .SINGLE_VIEW_RIGHT').remove();
	}
}


function observeCityDescSEO() {

	if ($('.LIST_VIEW_DESC').length > 0) {
		if ($('.LIST_VIEW_DESC').html() == '') {
			$('.LIST_VIEW_DESC').remove();
		}
		else {
			$('.CONTENT').after($('.LIST_VIEW_DESC'));
			$('.LIST_VIEW_DESC').css('display', 'block');
		}
	}
}


function observeParkinglotDescSEO() {

	if ($('.SINGLE_VIEW_DESC').length > 0) {
		if ($('.SINGLE_VIEW_DESC').html() == '') {
			$('.SINGLE_VIEW_DESC').remove();
		}
		else {
			$('.CONTENT').after($('.SINGLE_VIEW_DESC'));
			$('.SINGLE_VIEW_DESC').css('display', 'block');
		}
	}
}


function observeNavteqIFrame() {

	if (($('#maparea').length > 0) && ($('#mapUrl').length > 0) && ($('#mapDomain').length > 0)) {
		if ($('#mapUrl').attr('value') && $('#mapDomain').attr('value')) {
			$('<iframe src="' + ( $('#mapUrl').attr('value') + '#' + encodeURIComponent(document.location.href)) + 
                '" width="734" height="513" scrolling="no" frameborder="0"></iframe>').appendTo('#maparea');
		}
	}
}

function observeTicketTooltips() {

	if ($('.tickettypeActive, .pathTicketTypeInfo, .forminfo').length > 0) {

		$('.tickettypeActive, .pathTicketTypeInfo, .forminfo').tooltip({
			effect: 'slide',
			position: 'top right',
			offset: [0, -25]
		});
	}
}

function observeBookmarkLink() {

	if (window.opera) {
		if ($('a.jqbookmark').attr('rel') != '') {
			$('a.jqbookmark').attr('rel', 'sidebar');
		}
	}

	$('a.jqbookmark').click(function(event) {

		event.preventDefault();
		var url = this.href;
		var title = this.title;

		if (window.sidebar) {
			window.sidebar.addPanel(title, url, '');
		}
		else if (window.external) {
			window.external.AddFavorite(url, title);
		}
		else if (window.opera) {
			return false;
		}
		else {
			alert('Dieser Browser unterst�tzt leider keine automatische Bookmark-Funktion. Bitte f�gen Sie diese Seite manuell Ihren Favoriten hinzu.');
		}
	});
}

function observeDatePickerFields() {

	$.tools.dateinput.localize('de', {
	   months:        'Januar,Februar,M&auml;rz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember',
	   shortMonths:   'Jan,Feb,M&auml;r,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez',
	   days:          'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag',
	   shortDays:     'So,Mo,Di,Mi,Do,Fr,Sa'
	});
	$.tools.dateinput.localize('nl', {
	   months:        'Januari,Februari,Maart,April,Mei,Juni,Juli,Augustus,September,Oktober,November,December',
	   shortMonths:   'Jan,Feb,Mrt,Apr,Mei,Jun,Jul,Aug,Sep,Okt,Nov,Dec',
	   days:          'Zondag,Maandag,Dinsdag,Woensdag,Donderdag,Vrijdag,Zaterdag',
	   shortDays:     'Zon,Ma,Di,Woe,Do,Vrij,Zat'
	});
	$.tools.dateinput.localize('no', {
	   months:        'Januar,Februar,Mars,April,Mai,Juni,Juli,August,September,Oktober,November,Desember',
	   shortMonths:   'Jan,Feb,Mar,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Des',
	   days:          'Søndag,Mandag,Tirsdag,Onsdag,Torsdag,Fredag​​,Lørdag',
	   shortDays:     'Søn,Man,Tir,Ons,Tor,Fre,Lør'
	});
    
	if ($('#frmDatum').length > 0) {
		$('#frmDatum').dateinput({
			lang: lang,
			format: 'dd.mm.yyyy',
			min: 3,
			offset: [10, 20],
			speed: 'fast',
			firstDay: 1
		});
	}

	if ($('#frmDatum1, #frmDatum2').length > 0) {
		$('#frmDatum1, #frmDatum2').dateinput({
			lang: lang,
			trigger: true,
			format: 'dd.mm.yyyy',
			min: 3,
			offset: [10, 20],
			speed: 'fast',
			firstDay: 1
		});
	
		$('#frmDatum1').data('dateinput').change(function() {
			$('#frmDatum2').data('dateinput').setMin(this.getValue(), true);
			checkDatePickerThreeMonth();
			$('#frmTicketRequest').validator({lang: lang} );

            if(iceFree) {
                var date = new Date(this.getValue());

                var time1 = new Date(date.getFullYear(),date.getMonth(),0).getTime();
                var time2 = new Date(date.getFullYear(),date.getMonth()+5,0).getTime();
                var toDate = new Date(date.getTime() - time1 + time2);
                toDate.setTime(toDate.getTime());
                $('#frmDatum2').data('dateinput').setValue(toDate);
            }
		});
		$('#frmDatum2').data('dateinput').change(function() {
			checkDatePickerThreeMonth();
			$('#frmTicketRequest').validator({lang: lang} );
		});

        var iceFreeOnShow = function(){
            if (iceFree) {
                $('#calweeks .calweek a').each(function(){
                    if($(this).text() != 15 && $(this).text() != 1){
                        $(this).addClass('caldisabled');
                    }
                });
            }
        };
        $('#frmDatum1').data('dateinput').onShow(function(){
            iceFreeOnShow();
            $('#calnext,#calprev').click(iceFreeOnShow);
        });
        $('#frmDatum2').data('dateinput').onShow(function(){
            iceFreeOnShow();
            $('#calnext,#calprev').click(iceFreeOnShow);
        });
	}
}
function checkDatePickerThreeMonth() {

	var date1 = new Date($('#frmDatum1').data('dateinput').getValue());
	var date2 = new Date($('#frmDatum2').data('dateinput').getValue());

	if ((date2.getTime() - date1.getTime()) > (86400000 * 90)) {
		$('.dauerparker').css('display', 'block');
	}
	else {
		$('.dauerparker').css('display', 'none');
	}
}

function observeFormTicketRequest() {

	if ($('#frmTicketRequest, #frmTicketConfirmation').length > 0) {
		$.tools.validator.localize('de', {
			'*'  			: 'Bitte f&uuml;llen Sie dieses Feld aus',
			':email'  		: 'Bitte korrigieren Sie Ihre E-Mail',
			':number' 		: 'Geben Sie bitte nur Zahlen ein',
			'[max]'	 		: 'Bitte geben Sie eine Zahl kleiner oder gleich $1 ein',
			'[min]'	 		: 'Bitte geben Sie eine Zahl gr&ouml;&szlig;er oder gleich $1 ein',
			'[required]' 	: 'Bitte f&uuml;llen Sie dieses Pflichtfeld aus'
		});
		$.tools.validator.localize('nl', {
			'*'  			: 'Vul dan dit veld',
			':email'  		: 'Corrigeer uw e-mail',
			':number' 		: 'Voer alleen cijfers',
			'[max]'	 		: 'Vul een getal kleiner dan of gelijk aan $1',
			'[min]'	 		: 'Vul een getal groter dan of gelijk aan $1',
			'[required]' 	: 'Vul het gewenste veld in'
		});
		$.tools.validator.localize('no', {
			'*'  			: 'Vennligst fyll ut dette feltet',
			':email'  		: 'Vennligst korriger din e-post',
			':number' 		: 'Vennligst skriv kun tall',
			'[max]'	 		: 'Vennligst skriv inn et tall mindre enn eller lik $1 a ',
			'[min]'	 		: 'Vennligst skriv inn et tall større enn eller lik $1 a ',
			'[required]' 	: 'Vennligst fyll ut nødvendige felt'
		});

		if ($('#frmTicketRequest').length > 0) {
	
			if ($('.saisonTyp').length > 0) {
	
				observeDatePickerFields();
	
				$('.saisonTyp').click(function() {
					checkSaisonTyp($('.saisonTyp'), true);
				});
			}
            
            if ($('.iceFreePrice').length > 0) {
                $('#frmAnzahl').change(function(){
                    calculatePrice();
                });
            }
	
			$('.anfrageTyp').click(function() {
				checkAnrede($('.anfrageTyp'));
			});
			$('.zahlungsart').click(function() {
				checkZahlungsart($('.zahlungsart'), true);
			});
	
			checkAnrede($('.anfrageTyp'));

			if ($('#frmWert').length > 0 && $('#frmWertCent').length > 0) {
				checkWertFields();

				$('#frmWert, #frmWertCent').change(function() {
					checkWertFields();
				});
			}
			
		}

		if ($('#frmTicketConfirmation').length > 0) {
			$('#frmTicketConfirmation').validator({lang: 'de'} );
		}
	}
}

function checkWertFields() {

	if ($('#frmWert').val() == '30') {
		$('#frmWertCent').val('00');
	}
}

function checkAnrede(obj) {

	checkZahlungsart($('.zahlungsart'), false);

	if ($('.saisonTyp').length > 0) {
		checkSaisonTyp($('.saisonTyp'), false);
	}

	if (obj[1].checked) {
		$('.frmFirma').css('display', 'none');
		$('.frmFirma #frmFirma').removeAttr('required');
	}
	else {
		$('.frmFirma').css('display', 'block');
		$('.frmFirma #frmFirma').attr('required', 'required');
	}

	$('#frmTicketRequest').validator({lang: lang} );
}

function checkZahlungsart(obj, bValidator) {

	if (obj[0].checked) {
		$('.frmZahlart').css('display', 'block');
		$('.frmTicketRow #frmKontoinhaber').attr('required', 'required');
		$('.frmTicketRow #frmBankName').attr('required', 'required');
		$('.frmTicketRow #frmKontonummer').attr('required', 'required');
		$('.frmTicketRow #frmBankleitzahl').attr('required', 'required');
	}
	else {
		$('.frmZahlart').css('display', 'none');
		$('.frmTicketRow #frmKontoinhaber').removeAttr('required');
		$('.frmTicketRow #frmBankName').removeAttr('required');
		$('.frmTicketRow #frmKontonummer').removeAttr('required');
		$('.frmTicketRow #frmBankleitzahl').removeAttr('required');
	}

	if (bValidator) {
		$('#frmTicketRequest').validator({lang: lang} );
	}
}

function checkSaisonTyp(obj, bValidator) {

	if (obj.filter('[value="1"]').is(':checked')) {
		$('.calDay').css('display', 'block');
		$('.calDates').css('display', 'none');
		$('.frmTicketRow #frmDatum').attr('required', 'required');
		$('.frmTicketRow #frmDatum1').removeAttr('required');
		$('.frmTicketRow #frmDatum2').removeAttr('required');
	}
	else {
		$('.calDay').css('display', 'none');
		$('.calDates').css('display', 'block');
		$('.frmTicketRow #frmDatum').removeAttr('required');
		$('.frmTicketRow #frmDatum1').attr('required', 'required');
		$('.frmTicketRow #frmDatum2').attr('required', 'required');
	}
    
    // Eisfrei parken
	if (obj.filter('[value="4"]').is(':checked')) {
        iceFree = true;
        
        var date = new Date();
        var dayMS = 86400000; // milliseconds for one day
        date.setHours(10); // summer time workaround, static hours
        date.setTime(date.getTime() + 4 * dayMS);
        var days = new Date(date.getFullYear(),date.getMonth()+1,0).getDate();

        if (date.getMonth() > 8) {
            var maxTime = new Date(date.getFullYear() + 1, 1, 1, 23, 59, 59);
        } else {
            var maxTime = new Date(date.getFullYear(), 1, 1, 23, 59, 59);
        }

        if(date.getDate() > 15) {
            date.setTime(date.getTime() + (days - date.getDate() + 1) * dayMS);
        } else if (date.getDate() < 15 && date.getDate() > 1) {
            date.setTime(date.getTime() + (15 - date.getDate()) * dayMS);
        }

        $('#frmDatum1').data('dateinput').setValue(date);
        $('#frmDatum1').data('dateinput').setMax(maxTime);
            
        var time1 = new Date(date.getFullYear(),date.getMonth(),0).getTime();
        var time2 = new Date(date.getFullYear(),date.getMonth()+5,0).getTime();
        var toDate = new Date(date.getTime() - time1 + time2);
        toDate.setTime(toDate.getTime());
        $('#frmDatum2').data('dateinput').setValue(toDate);
        $('#frmDatum2').attr('readonly', 'readonly');
    } else {
        $('#frmDatum1').data('dateinput').setMax(365);
        iceFree = false;
        $('#frmDatum2').attr('readonly', null);
    }
    calculatePrice();

	if (bValidator) {
		$('#frmTicketRequest').validator({lang: lang} );
	}
}

function calculatePrice() {
	if ($('input.saisonTyp[value="4"]').is(':checked')) {
        var price = parseFloat($('#frmTicketPriceValue').text().replace(',', '.'));
        var count = parseInt($('#frmAnzahl').val());
        
        $('#frmTicketPrice').text((price * count).toFixed(2).replace('.', ','));
        $('.iceFreePrice').show();
    } else {
        $('#frmDatum2').attr('readonly', null);
        $('.iceFreePrice').hide();
    }
}

function observeOverlay() {
	if ($('a[rel]').length > 0) {
        $('a[rel]').attr('rel', '#overlay');
        
        if($('#overlay').length > 0) {
            $('#overlay').html('<iframe class="contentFrame" src="clear.gif" width="990" height="500" border="0" frameborder="0"></iframe>');
        } else {
            $('body').append('<div id="overlay"><iframe class="contentFrame" src="clear.gif" width="990" height="500" border="0" frameborder="0"></iframe></div>');
        }

		$('a[rel]').overlay({
			onBeforeLoad: function() {
                var href = this.getTrigger().attr('href');
                var ext = href.substr(href.lastIndexOf('.') + 1);
				var wrap = this.getOverlay().find('.contentFrame');

                switch (ext) {
                    case 'jpg':
                    case 'jpeg':
                    case 'gif':
                    case 'png':
                        $(wrap).replaceWith('<div class="contentFrame" style="width:990px;height:500px;position:relative;text-align:center;"><img src="' + href + 
                            '" alt="" style="max-height:100%;max-width:100%;vertical-align:middle;" border="0" /><span style="width:1px; height:100%;vertical-align:middle;display:inline-block;"></span></div>');
                        break;
                    default:
                        wrap.attr('src', href);
                        break;
                }
			}
		});
	}
}

