$(function() {
    // Nachzuladende Skripte
    Zo.load('EnteredAjaxForm', 'AjaxForm');
    Zo.loadPlugin('myAjaxLoadingImage');
    Zo.loadClass('Preisrechner');
    Zo.loadClass('VonBisListener');
    Zo.loadScript('/js/index.imageViewer.js');
    Zo.loadScript('/js/Nachladen.js');
    
    // Definitionen
    var objekt = $('#objekt_nr').val();

    
    // Von-Bis-Zusammengesetzt
    var vonbis = new VonBisListener('input[name="anreise"]', 'input[name="abreise"]', '.emailanfrage, .ob_emailanfrage');
    
    
    // Eigener Lageplan
    $('.eigener_lageplan').click(function(event) {
        event.preventDefault();
        $('.open_eigenen_lageplan').click();
        return false;
    });
    
    
    if($('#gm_lageplan').length > 0) {
        window.init_map = function() {
            // Google Map einbinden
            var lat = $('#gm_lageplan').attr('data-lat');
            var lon = $('#gm_lageplan').attr('data-lon');
            
            var map = new Map('#gm_lageplan')
                .center(lat, lon)
                .zoom(14)
                .icon(lat, lon, 'http://img.travanto.de/maps/haus.png')
                .load()
            ;
        }
        Zo.load('Map');
        $('head').append('<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&callback=init_map"></script>');
    }
    
    // Belegzeitenkalender nachladen
    //später: $('.belegzeitenkalender').load('/ferienwohnung/externer_belegzeitenkalender.php?nummer='+$('#objekt_nr').val()+' #belegzeitenkalender');
    var src = $('.belegzeitenkalender').attr('data-src');
    $('.belegzeitenkalender').html('<iframe name="belegzeitenkalender" id="belegzeitenkalender" src="'+url(src)+'" width="100%" height="700" style="border:none;" border="0" scrolling="no"></iframe>');
	$('#belegzeitenkalender').load(function() {
		if ($('.ob_button_img').length > 0)
		{
			Zo.loadScript('/js/index.einzelansicht.belegzeiten.js');
		}
    });
	// Telefonkontakt
    var TelefonDialog = Zo.get('AjaxDialog');
    TelefonDialog
        .option('width', 400)
        .open(url('/export/telefonkontakt?objekt='+objekt)+' .export_result')
        .when('click', '.telefonkontakt')
    ;
    
    // Video falls vorhanden
    if($('#einzelansichtbildgross1').length > 0)
    {
        Zo.loadScript('/js/flv_player/swfobject.js');
    }
    
        
    // Tell-A-Friend
    var TaFDialog = Zo.get('AjaxDialog');
    TaFDialog
        .option('width', 400)
        .option('title', $('.fewo_navi_tellafriend').text())
        .open(url('/export/tell_a_friend?objekt='+objekt)+' .export_result')
        .when('click', '.fewo_navi_tellafriend')
        .then(function() {
            var that = this;
            
            var form = new EnteredAjaxForm('#tell_a_friend_form', 'TellAFriend');
            form.registerField('receiver', 'input[name="receiver"]');
            form.registerField('name', 'input[name="name"]');
            form.registerField('from', 'input[name="from"]');
            form.registerField('nachricht', 'textarea');
            form.registerValue('objekt', objekt);
            form.listen();
            
            form.success(function() {
                $('.success_state', that).show();
                $('.formular', that).hide();
                $(that).delegate('.button_dialog_schliessen', 'click', function() {
                    TaFDialog.hide();
                });
            });   
            $('.error_state_list', that).hide();     
        })
    ;
    
    
    // Beschwerde
    var BeschwerdeDialog = Zo.get('AjaxDialog');
    BeschwerdeDialog
        .option('width', 400)
        .option('position', ["center", 20])
        .open(url('/export/beschwerde?objekt='+objekt)+' .export_result_beschwerde')
        .when('click', '.beschwerde')
        .then(function() {
            var that = this;
            
            var form = new EnteredAjaxForm('#beschwerde_form', 'Beschwerde');
            form.registerField('vorname',                     'input[name="vorname"]');
            form.registerField('nachname',                    'input[name="nachname"]');
            form.registerField('email',                       'input[name="email"]');
            form.registerField('belegzeitenkalender_falsch',  'input[name="belegzeitenkalender_falsch"]:checkbox:checked');
            form.registerField('anderes_objekt_angeboten',    'input[name="anderes_objekt_angeboten"]:checkbox:checked');
            form.registerField('keine_antwort_auf_anfrage',   'input[name="keine_antwort_auf_anfrage"]:checkbox:checked');
            form.registerField('preis_falsch',                'input[name="preis_falsch"]:checkbox:checked');
            form.registerField('ausstattungsmerkmale_falsch', 'input[name="ausstattungsmerkmale_falsch"]:checkbox:checked');
            form.registerField('sonstiges',                   'textarea');
            form.registerValue('objekt', objekt);
            form.listen();
            
            form.success(function() {
                $('.success_state', that).show();                
                $('.formular', that).hide();
                $('.exportheader', that).hide();
                $(that).delegate('.button_dialog_schliessen', 'click', function() {
                    BeschwerdeDialog.hide();
                });
            });
            $('.error_state_list').hide();
        })
    ;
      
    
    
    
    // Bewertung
    var BewertungsDialog = Zo.get('AjaxDialog');
    BewertungsDialog
        .option('width', 400)
        .option('position', ["center", 20])
        .open(url('/export/bewertung?objekt='+objekt)+' .export_result_bewertung')
        .when('click', '.bewertung_verfassen_link')
        .then(function() {
            var that = this;
            
            var form = new EnteredAjaxForm('#bewertung_form', 'Bewertung');
            form.registerField('name',          'input[name="name"]');
            form.registerField('anreisedatum',  'input[name="anreisedatum"]');
            form.registerField('abreisedatum',  'input[name="abreisedatum"]');
            form.registerField('nickname',      'input[name="nickname"]');
            form.registerField('telefon',       'input[name="telefon"]');
            form.registerField('email',         'input[name="email"]');
            form.registerField('stat_fam',      'select[name="stat_fam"]');
            form.registerField('text',          'textarea[name="text"]');
            form.registerField('checkbox',      'input[name="checkbox"]:checked');
            form.registerField('ersteindruck',  'input[name="ersteindruck"]');
            form.registerField('ausstattung',   'input[name="ausstattung"]');
            form.registerField('sauberkeit',    'input[name="sauberkeit"]');
            form.registerField('lage',          'input[name="lage"]');
            form.registerField('preisLeistung', 'input[name="preisLeistung"]');
            form.registerField('checkbox',      'input[name="checkbox"]:checkbox:checked');
            
            form.registerValue('obj_nr', objekt);
            form.listen();
            
            form.success(function() {
                $('.success_state', that).show();                
                $('.formular', that).hide();
                $('.exportheader', that).hide();
                $(that).delegate('.button_dialog_schliessen', 'click', function() {
                    BewertungsDialog.hide();
                });
            });
            
            $("#bewertung_form #anreise, #bewertung_form #abreise").datepicker({
                showOn: 'both',
                buttonImage: 'http://img.travanto.de/img/icon/calendar.png',
                buttonImageOnly: true,
                maxDate: '+0d'
            });
            
            $('.error_state_list').hide();
            
            $(".bewertung_sterne_linie img", that).click(function() {
                var url_star_empty = 'http://img.travanto.de/img/objektBewertung/star_empty.png';
                var url_star_full  = 'http://img.travanto.de/img/objektBewertung/star_full.png';
                var stern_wert = $(this).attr('data-value');
                $(this).parent().children('input').val( stern_wert);
                $(this).parent().children('img').attr('src', url_star_empty);
                $(this).parent().children('img:lt(' + (stern_wert) + ')').attr('src', url_star_full);
            });
        })
    ;
    
    
    
    // Merkzettel
    var MerkzettelDialog = Zo.get('AjaxDialog');
    MerkzettelDialog
        .option('width', 400)
        .open(url('/export/merkzettel?add=' + objekt)+' .export_result_merkzettel')
        .when('click', '.fewo_navi_merkzettel')
        .then(function() {
            Zo.loadClass('Merkzettel');
            
            $('*[data-action="loeschen"][data-objekt]', this).click(function() {
                Merkzettel.deleteObjekt($(this).attr('data-objekt'));
            });
        })
    ;
    
    // Linktausch
    $('#linktausch').click(function(event) {
        event.preventDefault();
        $.get(url('/service/DAO/LinktauschAufrufe/set_aufruf?nr='+$('#objekt_nr').val()));
        window.open(this.href);
        return false;
    });
    
    //Preisrechner
    var preisrechner = new Preisrechner('#preisrechner');
    preisrechner.load();
  
	//Mietwagen Angebote
	//$('#mietwagen_angebote').load('/export/mietwagen_angebote');
	
	// Rabatte
    $('.rabatt')
        .mouseenter(function() {        
            var rabatt_html = $(this).next('.rabatte_div').html();
            $(this).parents('tr').after('<tr class="rabatt_row"><td colspan="5">'+rabatt_html+'</td></tr>');        
        })
        .mouseleave(function() {        
            $(this).parents('table').find('tr.rabatt_row').remove();        
        })
    ;
    
    // Bewertungsübersicht
    $('.anfrage').click(function() {
        $('table.anfragetabelle', this).toggle();
        if($('table', this).is(":visible")) {
            $("img.open", this).hide();
            $("img.close", this).show();
        } else {
            $("img.open", this).show();
            $("img.close", this).hide();
        }
    });
	
	// Lageplan Flash (Sylt)
	$('.lageplan_flash').click(function() {
	
		Nachladen.nachladen('lageplan_flash?onr=' + objekt, '');
		return false;
		
	});
	
	// Anfrageformular OB
	$('#ob_anfrageform').click(function() {
		Nachladen.nachladen('ob_anfrage?onr=' + objekt, '', function() {

			var form = new EnteredAjaxForm('.ob_emailanfrage', 'OnlinebuchungAnfrage');
			form.registerField('objekt_nr', 'input[name="objekt_nr"]');
			form.registerField('ja', 'input[name="ja"]');
			form.registerField('nein', 'input[name="nein"]');
			form.registerField('Realname', 'input[name="Realname"]');
			form.registerField('vorname', 'input[name="vorname"]');
			form.registerField('nachname', 'input[name="nachname"]');
			form.registerField('telefon', 'input[name="telefon"]');
			form.registerField('email', 'input[name="email"]');
			form.registerField('anreise', 'input[name="anreise"]');
			form.registerField('abreise', 'input[name="abreise"]');
			form.registerField('personen', 'input[name="personen"]');
			form.registerField('anfrage', 'textarea');
			form.registerField('bestaetigung', 'input[name="bestaetigung"]');
			form.registerField('lmmail', 'input[name="lmmail"]');
			form.listen();
			
			form.success(function() {
				$('.success_state', '.ob_emailanfrage').show();
			});
		
		});
		
		return false;
	});
});
