
var immo = {
    imgBasePath : '/tl_files/westend_design/_base/img/content/legenden/haus_',

    showDefault : function() {

        this.hideAll();
        $('#legenden img[src*="'+this.imgBasePath+'default.gif"]').show();
    },

    showDefaultHouse : function(haus) {
        this.hideAll();
        $('#legenden img[src*="'+this.imgBasePath+''+haus+'_default.gif"]').show();
    },

    showWohnung : function(haus, geschoss, lage) {
        this.hideAll();
        $('#legenden img[src*="'+this.imgBasePath+''+haus+'_'+geschoss+'_'+lage+'.gif"]').show();
    },

    hideAll : function() {
        $('#legenden img').hide();
    }

};

var tableFilter = {
    tableData: [],
    filters: [],

    init: function() {
        var myTableData = this.tableData;
        $('#allHouses tbody tr .hausinfo').each(function() {
                var hausInfoStr  = $(this).attr('title');
                var hausInfo = hausInfoStr.split('|');        

                //var haus = hausInfo[0];
                //var geschoss = hausInfo[1];
                //var lage = hausInfo[2];
                //var zimmer = hausInfo[3];
                //var wohnflaeche = hausInfo[4];
                //var rowId = hausInfo[5];

                myTableData[hausInfo[5]] = hausInfo;
        });
        

        this.doFilters();
    },
    addFilter: function(func) {
        this.filters.push(func);
    },
    doFilters: function() {
        // zunaechst alle verstecken:
        $('#allHouses tbody tr').hide();

        var i;
        for(i=0;i<this.tableData.length;i++) {
            var x;
            var allValid = true;
            for (x=0;x<this.filters.length;x++) {
                var isValid = this.filters[x](this.tableData[i]);
                if (!isValid) {
                    allValid = false;
                    
                }
            }
            if (allValid === true) {
                $('#allHouses tbody .wohnung'+i).show();
            }
        }

        // Update tablesorter...
        $("#allHouses").trigger("update");
        $("#allHouses").trigger("appendCache");
    }
};

tableFilter.addFilter(function(row) {
    // Filtere anhand des selktierten hauses

    var selectedHaus = $('select[name="haus"]').val();

    if (selectedHaus === 'all') {
        return true;
    }

    if (selectedHaus === row[0]) {
        return true;
    }
    return false;
});

tableFilter.addFilter(function(row) {
    // Filtere anhand des Zimmers

    var selectedZimmer = $('select[name="zimmer"]').val();

    if (selectedZimmer === 'all') {
        return true;
    }

    if (selectedZimmer === row[3]) {
        return true;
        
    }
    return false;
});

tableFilter.addFilter(function(row) {
    // Filtere anhand der Wohnflaeche

    var selectedWohnflaechenRange = $('select[name="wohnflaeche"]').val();

    if (selectedWohnflaechenRange === 'all') {
        return true;
    }

    var wohnflaecheInfo = selectedWohnflaechenRange.split('|');   

    var von = wohnflaecheInfo[0];
    var bis = wohnflaecheInfo[1];
    
    if (von <= row[4] && bis > row[4]) {
        return true;
    }

    return false;
});

tableFilter.addFilter(function(row) {
    // Filtere anhand des Geschosses

    var selectedGeschoss = $('select[name="geschoss"]').val();

    if (selectedGeschoss === 'all') {
        return true;
    }

    if (selectedGeschoss === row[1]) {
        return true;
        
    }
    return false;
});

$(document).ready(function() {

    $('meta[name="pagealias"]').each(function() {
        var currentPage = $(this).attr('content');        

        if (currentPage === 'startseite') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/intro.swf", 
                                "flashContainer", 
                                "960", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                {}, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'wohnkonzept') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_wohnkonzept.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'architektur') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_architektur.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'freianlagen') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_freianlagen.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'scharnhauserpark') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_scharnhauserpark.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'infrastruktur') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_infrastruktur.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'besichtigung') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_besichtigung.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'qualitaet-und-ausstattung') {
            swfobject.embedSWF("/tl_files/westend_design/_base/swf/gallery.swf", 
                                "flashContainer", 
                                "720", 
                                "300", 
                                "8.0.0", 
                                "expressInstall.swf", 
                                { host: "/tl_files/westend_design/_base/xml/gallery_qualitaetundausstattung.xml" }, 
                                { menu: "false", bgcolor: "FFFFFF" }, 
                                {});
        } else if (currentPage === 'individuelle-planung') {
        	var lastImage = 'a';
        	$('#mininavigation a').click(function() {
		    	var currentImage = $(this).attr('id');

		    	$('#'+lastImage).removeClass('mininav_current').addClass('mininav');
		    	$('#'+currentImage).removeClass('mininav').addClass('mininav_current');

		    	$('#'+lastImage+'_img').fadeOut();
		    	$('#'+currentImage+'_img').fadeIn();

		    	lastImage = currentImage;

		    	return false;
	        });
        } else if (currentPage === 'lageplan') {
            var lastVisibleHouse = "a";

        	$('area').bind('mouseover', function() {
                var drHouse = $(this).attr('alt');
                
                if (drHouse === lastVisibleHouse) {
                    return;
                } else {
                    $('.lph'+lastVisibleHouse).hide();
                    $('.lph'+drHouse).show();
                    lastVisibleHouse = drHouse;
                }
            });
        
            $('area').bind('click', function() {
                return false;
            });
        } else if (currentPage === 'partner') {
            $('ul#gallery').jwSlider({
						speed : 2500,
						pause : 3000
		    });
        } else if (currentPage === 'immobilienuebersicht') {
            $.tablesorter.addParser({ 
                // set a unique id 
                id: 'wohnflaeche', 
                is: function(s) { 
                    // return false so this parser is not auto detected 
                    return false; 
                 }, 
                 format: function(s) { 
                    // format your data for normalization 
                    return s.toLowerCase().replace(/\sqm/,'').replace(/,/,'.'); 
                }, 
                // set type, either numeric or text 
                type: 'numeric' 
            }); 

            $.tablesorter.addParser({ 
                // set a unique id 
                id: 'geschoss', 
                is: function(s) { 
                    // return false so this parser is not auto detected 
                    return false; 
                 }, 
                 format: function(s) { 
                    // format your data for normalization 
                    if (s.toLowerCase() === 'dachgeschoß') {
                        return '9';
                    } else if (s.toLowerCase() === 'erdgeschoß') {
                        return '0';
                    } else {
                        return s;
                    }
                }, 
                // set type, either numeric or text 
                type: 'text' 
            }); 

           
            $("#allHouses").tablesorter({
                        sortList: [[3,0]],
                        widgets: ['zebra'],
                        widgetZebra:  {css: ['color', '']},
                        headers: {
                            2: {sorter: 'wohnflaeche'},
                            3: {sorter: 'geschoss'},
                            4: {sorter: false},
                            5: {sorter: false}
                        }
            });

            tableFilter.init();
            $('select[name="haus"], select[name="zimmer"], select[name="wohnflaeche"], select[name="geschoss"]').bind('change', function() {
                tableFilter.doFilters();
            });


            $('#allHouses tbody tr').bind('mouseover', function() {
                
                $(this).children('.hausinfo').each(function() { 
                    var hausInfoStr  = $(this).attr('title');
                    var hausInfo = hausInfoStr.split('|');
                    var haus = hausInfo[0];
                    var geschoss = hausInfo[1];
                    var lage = hausInfo[2];
                    
                    immo.showWohnung(haus, geschoss, lage);
                });
            });

            $('#allHouses tbody').bind('mouseout', function() {
                var curSelection = $('select[name="haus"]').val();
                if (curSelection === 'all') {
                    immo.showDefault();
                } else {
                    immo.showDefaultHouse(curSelection);
                }
            });

          
        } else if (currentPage === 'kontakt') {
        
            $('#submitform').bind('click', function() {
                $('#f1').submit();
                return false;
            });
        
            $('#f1').validate({
                rules: {
                    vorname: {
                    required: true
                },
                    nachname: {
                    required: true
                },
                    telefon: {
                    required: true
                },
                    nachricht: {
                    required: true
                },
                    email: {
                    required: true,
                    email: true
                }
            },
            submitHandler: function (form) {

                $('#f1').ajaxSubmit();
                $('#contactForm').fadeOut(function() {
                    $('#contactForm').html('<h2>Nachricht versendet!</h2><p>Vielen Dank für Ihre Mitteilung, wir werden uns in Kürze melden.</p>');
                    $('#contactForm').fadeIn();
                });
                return false;
            },
            invalidHandler: function(form, validator) {
                //console.log('Form invalide');;
                return false;
            },
            messages: {
                vorname: "",
                nachname: "",
                telefon: "",
                nachricht: "",
                email: ""
            },
            errorClass: 'invalidate',
            validClass: ''
         });
        } else if (currentPage === 'news') {
          var currentMonth = $('#currentMonth').val();
          var currentYear = $('#currentMonth').val();

          $('.date > li > a').bind('click', function() {
            var linkContent = $(this).html();

            var monthYear =  linkContent.split(" ");

            var month = monthYear[0];
            var year = monthYear[1];

            if (year === currentYear && month === currentMonth) {
              return false;
            } else {
              $('.date .current~ul').slideUp();
              $('.date .current').removeClass('current');
              $(this).parent().children('ul:first').slideDown();
              $(this).addClass('current');

              currentYear = year;
              currentMonth = month;
            }

            return false;
          });
        }
    });
});

