/*-----------------------------------------
 
 copyright 2020 by mmc:agentur
 
 Version: 1.0
 
 Author: David Rerych
 
 Author URI: http://www.mmc-agentur.at
 
 -------------------------------------------*/


$(document).ready(function(){
  
 // $('div.tx-indexedsearch div.tx-indexedsearch-browsebox div.browsebox div.browsebox_wrap ul.pager li:last a').addClass('next');
 
 $('div.tx-indexedsearch-browsebox').each(function(){
   $(this).find(' div.browsebox div.browsebox_wrap ul.pager li:last a').addClass('next');
 });
  $('.tx-indexedsearch .tx-indexedsearch-browsebox .pager li:last a').addClass('next');
  // for browsers that don't show placeholder text
  $('input[type="text"], input[type="email"], textarea').mmcFormDefaults();
  
  //$('[data-swf]').swfElement();
  
  // dynamische Sitemap
  $('.csc-sitemap ul').jQuerySitemap('open', 'vertical');
  
  // Formular-Element-Styling
  $('select, input[type="radio"], input[type="checkbox"]').uniform().addClass('uniform');
  
  
  // lightbox (prettyPhoto)
  $('a[rel^="prettyPhoto"], a.lightbox').prettyPhoto({
    theme: 'light_square',
    social_tools: '<div class="facebook"><iframe src="http://www.facebook.com/plugins/like.php?locale=de_DE&href={location_href}&amp;layout=button_count&amp;show_faces=false&amp;width=300&amp;action=like&amp;font&amp;colorscheme=light&amp;height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:23px;" allowTransparency="true"></iframe></div>'
  });


  // click on teaser image and on link "Fotogalerie" opens the first image in lightbox
  $('.house_teaser.detail a.image, .house_teaser.detail .actions .gallery a').click(function(e){
    e.preventDefault();
    $('.house_detail_gallery .thumbnails a').first().click();
    return false;
  });
  
  
  // Housefinder Widget
  $('#housefinder').housefinder();
  
  var $bdy = $("body");
  if($bdy.hasClass('page_244') || $bdy.hasClass('startpage')) {
	  $('.house_teaser ul.actions .like').click(function(){
	    var lin;
		if($(this).parent().siblings('a').attr('href')=='#') {
			lin = location.href;
			}
		else {
		    lin = encodeURI($(this).parent().siblings('a')[0].href);
			}
	    $(this).html('<iframe src="http://www.facebook.com/plugins/like.php?app_id=128332477262922&amp;href=' + lin + '&amp;send=false&amp;layout=button_count&amp;width=250&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:250px; height:21px;" allowTransparency="true"></iframe>');
	
	    return false;
	
	    });
  	
  	}
  
  
  // Servicefinder Widget (inkl. Mini Google Maps Initialisierung)
  $('#servicefinder').servicefinder();

  
  
  // Akkordeon
  $('.accordion').mmcAccordion({
    closeOthers: true
  });
  
  // Header Visual-Slideshow
  var $header_visual = $('#header_visual');
  if ($('.images', $header_visual).children().length > 1) {
    var $browsebox_wrap = $('.hv_browsebox_wrap', $header_visual);
    $browsebox_wrap.addClass('browsebox_enabled');
    var $pager = $('<div class="hv_browsebox" />').appendTo($browsebox_wrap);
    $('.images', $header_visual).cycle({
      pager: $pager,
      activePagerClass: 'active',
      pagerAnchorBuilder: function(idx, slide){
        var thumb_src = $(slide).attr('data-thumb');
        return '<a href="#"><img alt="" src="' + thumb_src + '" /><span></span></a>';
      },
      timeout: 5000,
      pauseOnPagerHover: true
    });
  }

  
  // Downloads-Link in News-Detail öffnet jQueryUI Dialog
  
  $('.news-single-item').each(function(){
      var $this = $(this);
      var $li_dl = $this.find('.news-single-additional-info li.dl');
      var $thisDialog = $li_dl.children('div').dialog({
         autoOpen: false,
         modal: true,
         resizable: false,
         title: 'Downloads'
      });
      $li_dl.children('a').click(function(e){
         e.preventDefault();
         $thisDialog.dialog('open');
         return false;
      });
      
  });
});







// HOUSEFINDER jQuery Plugin
(function( $ ){

  var methods = {
     init : function( options ) {
       return this.each(function(){
       var This = this;
      var $this = $(this);
      this.$hf = $(this);
      this.$right_col = $(this).find('.right_col');
      this.$results = this.$right_col.find('.results');
       this.$result_items = this.$results.children('ul').children('li');
      this.results_length = this.$result_items.length;
      this.currentFirstIndex = 0; 
      this.locked = false;
       var defaults = {
        lang: {
          results: 'Ergebnisse',
          of: 'von',
          next: 'weiter',
          previous: 'zurück'
        },
        expanded: {
          visible: 6,
          minVisible: 6,
          pagerCarousel: {
            visible: 9,
            scroll: 3
          }
        }
      };
      this.o = $.extend(true, defaults, options );
      
      this.mode = {};
      this.mode.perma = $this.hasClass('perma') ? true : false;
      this.mode.compact = $this.hasClass('compact') ? true : false;
      this.mode.expanded = $this.hasClass('expanded') ? true : false;
      //this.removed = [];
      
     
      if (!this.mode.perma) {
        this.$toggler = $('<div class="toggler" />').appendTo(this.$hf);
        this.$toggler.click(function(){
          if (This.mode.compact) {
            methods.resize.call(This.$hf, 'expanded');
			if ($('#servicefinder').hasClass('expanded')) {
				$('#servicefinder').servicefinder('resize','compact');
				}
            
          } else if (This.mode.expanded) {
            methods.resize.call(This.$hf, 'compact');
          }
        });
      }
      
      if (!This.mode.compact) {
        methods.buildPagination.call(this);
      }
      
      $('#housefinder_form button').click(function(){  /******* TAL ********/
        $hfn = $('#housefinder_form #hf_name');
        if ($hfn[0].value == $hfn.attr('placeholder')) $hfn[0].value='';//IE9 schickt ph-Text in value mit
        if($(this).parent()[0].className == "house_watchlist_wrap") {
          daten = new Array( {'name':'action', 'value':'newsearch'}, {'name':'watchlist', 'value':'1'});
          }
        else {
          if (This.mode.compact || This.mode.perma) {
            daten = $(this).parents('form').find('.housefinder_compact_search :input').serializeArray();
          }
          else {
            daten = $(this).parents('form').serializeArray();
            }
          daten.push( {'name':'action', 'value':'newsearch'});
      }

          if (This.mode.compact) {
            methods.resize.call(This.$hf, 'expanded');

            var vs="";
            $(this).parents('form').find('.housefinder_compact_search :input').each(function(i) { vs+= $(this).val(); });

            if(vs=="") return false;
          } 

			var ajurl = "index.php?id=250";
			
			if($("body").hasClass('page_64')) { ajurl = "index.php?id=143";}

	        $.ajax({
		        url: ajurl,
		        data: daten,
		        dataType: "json",
		        context: This,
		        error: function(jqXHR, textStatus, errorThrown){

					log(jqXHR);
					log(textStatus);
					log(errorThrown);
		        	},
		        success: function(jsondata){
		
		            // SAVE IN COOKIE? STORE IN SESSION?
		
		          $('#housefinder .results ul').eq(0).html(jsondata.searchresulthtml);
		
	              This.$result_items = This.$results.children('ul').children('li'); // Zeiger auf die Ergebnis-Items aktualisieren!
	              This.locked = false;
	              This.results_length = This.$result_items.length;
	              This.currentFirstIndex = 0; // Die Pagination soll wieder zum Anfang zurückspringen
	               
	              if (This.mode.compact) {
	                  methods.resize.call(This.$hf, 'expanded'); // wenn resize aufgerufen wird, wird buildPagniation automatisch ausgef�hrt
	              } else {
	                  methods.buildPagination.call(This);
	              }
		        }
	      	});

      		log($(this).parents('form').serialize());

        return false;

        });


      $('input[name="housefinder_options"]').change(function(){
        
        log($(this).val());
        if ($(this).val() == 'simplesearch') {
          if (This.$hf.data('originalMode') == 'perma') {
            methods.resize.call(This.$hf, 'perma');
          } else {
            This.$hf.find('.housefinder_teaser').fadeIn(700,function(){
              This.$hf.removeClass('expandedsearch');
            });
          }
          
          This.$hf.find('.expanded_search').slideUp();
        } else if ($(this).val() == 'extendedsearch') {
          if (This.mode.perma) {
            This.$hf.data('originalMode','perma');
            methods.resize.call(This.$hf, 'expanded');
          }
          if (This.mode.expanded) {
            This.$hf.find('.housefinder_teaser').fadeOut();
          }
          This.$hf.find('.expanded_search').slideDown();
          This.$hf.addClass('expandedsearch');
        }
      });      
     
     
       });

     },
   
   buildPagination : function () {
	    if (typeof this.$pager != 'undefined') this.$pager.remove();
	    
	    this.$results.mmcCarousel('destroy');
	    this.$result_items.find('.actions .remove').unbind('click');
	    this.$result_items.show();
	    
	    var This = this;
	    
	    if (this.mode.perma) {
	      buildPaginationPerma();
	    } else {
	      buildPaginationExpanded();
	    }
	    
	  $('div#housefinder ul.actions .remember, .house_teaser ul.actions .remember').click(function(){
	    ajaxResultAction(this);
	    return false;
	    });
	
	  $('div#housefinder ul.actions .view').click(function(){
	  	location.href = $(this).parent().prev('a')[0].href;
	  	return false;
	  	});
	
	  $('div#housefinder ul.actions .like').click(function(){
	    
	    var lin = encodeURI($(this).parents('li').find('a.image')[0].href);
	    $(this).html('<iframe src="http://www.facebook.com/plugins/like.php?app_id=128332477262922&amp;href=' + lin + '&amp;send=false&amp;layout=button_count&amp;width=250&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:250px; height:21px;" allowTransparency="true"></iframe>');
	
	    return false;
	
	    });
	
	  
	  if($(".housepage").length==1) {
	    var hid = $(".housepage")[0].id.replace(/house-/,'');
	    methods.showResultsBeginningAt.call(This.$hf,hid,true);

	    This.$hf[0].$hf[0].$results.find('>ul>li#res_' + hid).addClass("active");

	    }
	
	
	    function ajaxResultAction(el) {
	      var $el = $(el);
	      var htid = $el.parent().parent()[0].id;
	      if(htid=="") htid = htid = $el.parent().parent().parent().parent()[0].id.replace(/house-/,'');
			var ajurl = "index.php?id=250";
			
			if($("body").hasClass('page_64')) { ajurl = "index.php?id=143";}
	    $.ajax({
	    url: ajurl,
	    dataType: "json",
	    data: {'action':$el[0].className, 'haus':htid },
	    success: function(jsondata){
	      var j = jsondata;
	      if(j.action=='remember' && (j.success==true)) {
	        
	        var liEl = $('li#res_' + j.elemid + ',' + '#house-' + j.elemid + ' div.house_teaser');
	        if(j.merken == 1) liEl.addClass('remembered');
	       else liEl.removeClass('remembered');
	         
	        }
	      log(j);
	        }
	    });
	      }
	
	
	    function buildPaginationPerma() {
	      log('buildPaginationPerma called');
	      This.$pager = $('<div class="results_pager"><div>'
	                +'<span class="prev">'+This.o.lang.previous+'</span> '
	                +This.o.lang.results
	                +' <span class="results_from">1</span> - <span class="results_to">3</span> '
	                +This.o.lang.of
	                +' <span class="results_length">'
	                +This.results_length
	                +'</span> <span class="next">'+This.o.lang.next+'</span>'
	              +'</div></div><span class="prev far">'+This.o.lang.previous+'</span><span class="next far">'+This.o.lang.next+'</span>')
	          .insertAfter(This.$results);
	      
	      This.$results.mmcCarousel({
	        btnNext: This.$right_col.find('.next'),
	        btnPrev: This.$right_col.find('.prev'),
	        visible: 3,
	        speed: 600,
	        scroll: 3,
	        circular: false,
	        beforeStart: function(vis,curr) {
	          This.$pager.find('.results_from').text($(vis[0]).index()+1);
	          This.$pager.find('.results_to').text($(vis[vis.length-1]).index()+1);
	          This.currentFirstIndex = curr;
	          log('beforeStart says This.currentFirstIndex='+This.currentFirstIndex);
	        },
	        onReInit: function(vis, curr) {
	          This.$result_items = This.$results.children('ul').children('li');
	          This.results_length = This.$result_items.length;
	          This.$pager.find('.results_length').text(This.results_length);
	          This.$pager.find('.results_from').text($(vis[0]).index()+1);
	          This.$pager.find('.results_to').text($(vis[vis.length-1]).index()+1);
	          
	        }
	      });
	      
	      This.$result_items.each(function(){
	        var $this = $(this);
	        $this.find('.actions .remove').click(function(){
	          if (This.locked) {
	            return false;
	          }
	          $this.fadeOut(200, function(){
	            $this.css('visibility', 'hidden').show();
	            This.$results.mmcCarousel('removeItem', $this, 300);
	      });
	
	          ajaxResultAction(this);
	          return false;
	        });
	      });
	      
	      methods.showResultsBeginningAt.call(This.$hf,This.currentFirstIndex);
	    }
	    
	    function buildPaginationExpanded() {
	      /*
	      if (This.results_length <= 6) {
	        return false;
	      }
	      */
	      
	      This.$pager = $('<div class="results_pager"><div>'
	                +'<span class="prev">'+This.o.lang.previous+'</span> '
	                +'<div class="pager_carousel"><ul></ul></div>'
	                +'<span class="next">'+This.o.lang.next+'</span>'
	              +'</div></div>')
	          .insertAfter(This.$results);
	      
	      var i = 0;
	      This.$result_items.each(function(){
	        var $this = $(this);
	        var $carousel_li = $('<li />').appendTo('.pager_carousel ul',This.$pager);
	        $this.find('.image img').clone().appendTo($carousel_li);
			$('<div />').addClass($this[0].className).appendTo($carousel_li);
	        i++;
	      });
	
	      // Pagination is a mmcCarousel
	      $('.pager_carousel', This.$pager).mmcCarousel({
	        auto: false,
	        circular: false,
	        btnPrev: $('.prev', This.$pager),
	        btnNext: $('.next', This.$pager),
	        speed: 600,
	        visible: This.o.expanded.pagerCarousel.visible,
	        scroll: 8 //This.o.expanded.pagerCarousel.scroll
	      });
	      
	      $('.pager_carousel', This.$pager).find('li').click(function(){
	        var index = $(this).index();
	        
	        index -=3;
	        if(index<0) index=0;
	        
	        methods.showResultsBeginningAt.call(This.$hf,index);
	      });
	      
	      This.$result_items.each(function(){
	        var $this = $(this);
	        $this.find('.actions .remove').click(function(){
	          var index = $this.index();
	          $this.add($this.nextAll(':visible')).fadeOut(200);
	
	          setTimeout(function(){
	            $this.remove();
	            This.$result_items = This.$results.children('ul').children('li');
	            This.results_length = This.$result_items.length;
	            methods.showResultsBeginningAt.call(This.$hf, This.currentFirstIndex);
	          }, 250);
	          $('.pager_carousel', This.$pager).mmcCarousel('removeItem', index);    
	          
	          // SAVE IN COOKIE? STORE IN SESSION?
	          ajaxResultAction(this);
	        
	          return false;
	        });
	
	      });
	      //This.$result_items.hide();
	      methods.showResultsBeginningAt.call(This.$hf,This.currentFirstIndex, true);      
	    }
	    
   },
   
   showResultsBeginningAt : function(key, showWithoutFx) {
    
    showWithoutFx = typeof showWithoutFx != 'undefined' ? showWithoutFx : false; 

  if (typeof key == 'string') {
      var resTid = 'res_' + key;
    $('#housefinder')[0].$hf[0].$results.find('>ul>li').each(function(i) {
    if(this.id == resTid) {
      index = i;
       return i;
       }
      });
    
    }
  else index = key;
    
    return this.each(function(){
      var This = this;
      
      if (This.locked) {
        log('locked');
        return false;
      }
      
      log('showResultsBeginningAt: '+index);
      
      if (this.mode.perma) {
      
        This.$results.mmcCarousel('go', index, 0);
            
      } else {
      
        if ((index+This.o.expanded.minVisible) <= This.$result_items.length) {
          start = index;
        } else {
          start = This.$result_items.length - This.o.expanded.minVisible;
        }
        if (start < 0) start = 0;
        var stop = start + This.o.expanded.visible;
        /*
        if (stop > This.results_length) {
          stop = This.results_length;
        }
        */
        var oldStart = this.$result_items.index(this.$result_items.filter(':visible').first());
        
        var waitUntilFadeIn = 0;
        This.locked = true;
        if (start != oldStart && !showWithoutFx) {
          waitUntilFadeIn = 600;
          This.$result_items.fadeOut(400);
        } else {
          waitUntilFadeIn = 0;
        }
        
        setTimeout(function(){
          fadeItemsIn(This.$result_items.slice(start, stop), function(){
            This.locked = false;
            This.$result_items.not(This.$result_items.slice(start, stop)).hide();
          });
        }, waitUntilFadeIn);

        
        $('.pager_carousel li', This.$pager).removeClass('active').slice(start,stop).addClass('active');

//        $('.pager_carousel li.active img').each(function() { $(this).attr('src',$(this).attr('data-src')); });
        
        if (!$('.pager_carousel', This.$pager).mmcCarousel('vis', start)) {
          $('.pager_carousel', This.$pager).mmcCarousel('go', start);
        }
        else if (!$('.pager_carousel', This.$pager).mmcCarousel('vis', stop)) {
          $('.pager_carousel', This.$pager).mmcCarousel('go', stop - This.o.expanded.pagerCarousel.visible);
        }
        This.currentFirstIndex = start;

      }
      
      function fadeItemsIn(items, callbackFn) {
        var i = 0;
        var callbackFn = callbackFn || false;
        $(items).each(function(index){
          var $this = $(this);
          var is_last_item = (index == (items.length - 1));


          if (!$this.is(':visible')) {
            setTimeout(function(){
              $this.fadeIn(200, function(){
                if (is_last_item && callbackFn) {
                  callbackFn.call();
                }
              });
            }, i*100);
            i++;
          } else {

/*	        var $im = $(this).find('img');
	        $im.attr('src',$im.attr('data-src'));
*/
            if (is_last_item && callbackFn) {
              callbackFn.call();
            }        
          }
        });
      }
      
    });
    
    
   },
   
   resize : function( newMode ) {
     return this.each(function(){
      var This = this;

      var compactCss = {
        'width': '161px',
        'height': '176px',
        'padding-top': '10px',
        'padding-right': '0',
        'padding-bottom': '0',
        'padding-left': '25px'
      }

      var mediumCss = {
        'width': '920px',
        'height': '169px',
        'padding-top': '17px',
        'padding-right': '20px',
        'padding-bottom': '0',
        'padding-left': '40px'
      };
          
      var expandedCss = {
        'height': '388px',
        'padding-top': '17px',
        'padding-bottom': '0'        
      };
      
      var permaCss = {
        'height': '169px',
        'padding-top': '17px',
        'padding-bottom': '0'        
      };

      var elementsVisibleExpanded = [
                                     '.right_col',
                                     '.left_col .housefinder_teaser',
                                     '.left_col .expanded_title',
                                     '.left_col .housefinder_options',
                                     '.left_col .btns_wrap .house_watchlist_wrap',
                                     '.left_col .refresh_button'
                                     ];
                                     
      var elementsHiddenExpanded = [
                                    '.left_col .compact_title',
                                    '.left_col .compact_subtitle',
                                    '.left_col .compact_button'
                                    ];
      
      var elementsVisiblePerma = [
                    '.right_col',
                    '.left_col .expanded_title',
                    '.left_col .housefinder_options',
                    '.left_col .btns_wrap .house_watchlist_wrap',
                    '.left_col .refresh_button'
                                  ];
      var elementsHiddenPerma = [
                                   '.left_col .compact_title',
                                  '.left_col .compact_subtitle',
                                  '.left_col .compact_button',
                                   '.left_col .housefinder_teaser'
                                 ];
      
      var elementsVisibleCompact = [
                    '.left_col .compact_title',
                    '.left_col .compact_subtitle',
                    '.left_col .compact_button'
                                  ];
      var elementsHiddenCompact = [
                                   '.left_col .expanded_title',
                                  '.left_col .housefinder_options',
                                  '.left_col .expanded_search',
                                  '.left_col .refresh_button',
                                  '.left_col .btns_wrap .house_watchlist_wrap',
                                   '.left_col .housefinder_teaser',
                                   '.right_col'
                                 ];
      
      
	  $header_visual = $('#header_visual');      	
      
      if (This.mode.compact && (newMode == 'expanded')) {
        This.mode.compact = false;
        This.mode.expanded = true;
        compactToExpanded();
        $('.images', $header_visual).cycle('pause');
      }
      if (This.mode.expanded && (newMode == 'compact')) {
        This.mode.compact = true;
        This.mode.expanded = false;
        expandedToCompact();
        $('.images', $header_visual).cycle('resume');
      }
      if (This.mode.perma && (newMode == 'expanded')) {
        This.mode.perma = false;
        This.mode.expanded = true;
        permaToExpanded();
      }
      if (This.mode.expanded && (newMode == 'perma')) {
        This.mode.perma = true;
        This.mode.expanded = false;
        expandedToPerma();
      }

      
      function compactToExpanded() {
        
        This.$hf.find(elementsVisibleExpanded.join(',')).fadeIn();
        This.$hf.find('.right_col').hide();
        This.$hf.find(elementsHiddenExpanded.join(',')).hide();
        
        This.$toggler.hide();
        
        This.$hf.animate(
          mediumCss,
          700,
          expandedStepOne
        );
        
        function expandedStepOne() {
          This.$hf.addClass('expanded').removeClass('compact');
          This.$hf.find('.right_col').hide().fadeIn();
        }
        
        This.$hf.animate(
          expandedCss,
          700,
          expandedReady
        );
        
        function expandedReady() {
          This.$toggler.fadeIn();
          This.$hf.find(elementsVisibleExpanded.join(',')).add(elementsHiddenExpanded.join(',')).removeAttr('style');
          methods.buildPagination.call(This);
        }

      }
      
      function expandedToCompact(){
        
        This.$toggler.hide();

        This.$hf.find('#housefinder_options_simplesearch').click().change();
        $.uniform.update();
        
        
        This.$hf.find(elementsVisibleExpanded.join(',')).add(elementsHiddenExpanded.join(',')).removeAttr('style');
        
        This.$hf.animate(
          mediumCss,
          700,
          compactStepOne
        );
        
        This.$hf.find('.right_col').fadeOut();
        
        function compactStepOne() {
          This.$pager.remove();
          This.$hf.find(elementsHiddenCompact.join(',')).hide();
          This.$hf.find(elementsVisibleCompact.join(',')).fadeIn();
          This.$hf.addClass('compact').removeClass('expanded');
        }
        
        This.$hf.animate(
          compactCss,
          700,
          compactReady
        );
        
        function compactReady() {
          This.$toggler.fadeIn();
          This.$hf.find(elementsVisibleCompact.join(',')).add(elementsHiddenCompact.join(',')).removeAttr('style');
        }
      }
      
      
      function permaToExpanded() {
        
        This.$hf.animate(
          expandedCss,
          500,
          expandedReady
        );
        
        This.$pager.remove();
        
        This.$results.mmcCarousel('destroy');
        
        This.$hf.find('.right_col').fadeOut();
        
        function expandedReady() {
          This.$hf.addClass('expanded').removeClass('perma');
          This.$hf.find('.right_col').fadeIn();
          methods.buildPagination.call(This);
        }

      }
      
      function expandedToPerma(){
        
        This.$hf.animate(
          permaCss,
          500,
          permaReady
        );
        
        This.$hf.find('.right_col').fadeOut();
        
        This.$pager.remove();
        
        function permaReady() {
          This.$hf.addClass('perma').removeClass('expanded');
          This.$hf.find('.right_col').fadeIn();
          methods.buildPagination.call(This);
          This.$hf.find(elementsVisiblePerma.join(',')).add(elementsHiddenPerma.join(',')).removeAttr('style');
        }
      }
      
      
      
      
    });
   }
   
   
  };

  $.fn.housefinder = function( method ) {
    
    if ( methods[method] ) {
      return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.housefinder' );
    }    
  
  };

})( jQuery );



// SERVICEFINDER jQuery Plugin
(function( $ ){

  var methods = {
    init : function( options ) {
      return this.each(function(){
        var defaults = {
          lang: {
            results: 'Ergebnisse',
            of: 'von',
            next: 'weiter',
            previous: 'zurück'
          },
          expanded: {
            visible: 6,
            minVisible: 6,
            pagerCarousel: {
              visible: 9,
              scroll: 3
            }
          }
        };

        this.o = $.extend( defaults, options );
        var This = this;
        This.$sf = $(this);
/*
		This.$sf.find('#sf-myplz').change(function() { 
			log($(this).val());
			serviceGmap.ajaxAction({"action" : "setplz", 
									"plz": $(this).val(), 
									"nat": $("#lang_nav span").eq(1)[0].className.toUpperCase() 
									});

			});
*/			
		This.$sf.find('#sf-form').submit(function() { 
//			alert($(this).serialize());
			log($(this).serialize());
			return false;
			
			});
		This.$sf.find('#sf-myplzsubmit').click(function() { 
			methods.sf_ajax.call(This.$sf,{
									"action" : "setplz"
									});
			return false;
			});
			
		This.$sf.find('.btn').click(function() { 	
			methods.sf_ajax.call(This.$sf,{ 'action' : this.id });

			return false;
			});
			
			

        This.$toggler = $('<div class="toggler" />').appendTo(This.$sf);
        This.$toggler.click(function(){
          if (This.$sf.hasClass('expanded')) {
			methods.sf_bigexpand.call(This.$sf,false);
            methods.resize.call(This.$sf, 'compact');

          } else {
            methods.resize.call(This.$sf, 'expanded');
            if(This.$hf) methods.resize.call(This.$hf, 'compact');
          }
        });
        
        This.$sf.find('#modelhouse_gmap_chooser input[name="modelhouse_form_maptype"]').change(function(){
          if ($(this).val() == 'modelhouse') {
            serviceGmap.o.markerImage = '/fileadmin/system/assets/img/gmapMarker2.png';
            serviceGmap.generateMarkers(consultant_locations);
            serviceGmap.o.markerImage = '/fileadmin/system/assets/img/gmapMarker.png';
            serviceGmap.generateMarkers(modelhouse_locations);
          } else {
            serviceGmap.generateMarkers(consultant_locations);
          }
        });
        
        if (This.$sf.hasClass('expanded')) {
			methods.initGmap.call(This.$sf);
        }

        methods.initConsultants();

        methods.sf_chooser.call(This.$sf);
      });
    },
     
    sf_chooser : function() {

      this.each(function(){
        var This = this;


		if(This.$sf.sfchooser) return;
		$('#sf-form input:radio[name=sf_choose]').change(function() {
			This.$sf.find("#plzrange").hide();
			var mode = $(this).val();
			switch(mode) {
				case "map":
					methods.sf_bigexpand.call(This.$sf,false);
					This.$sf.find("#plzrange").fadeIn(200,function() {
						$(this).find("#sf-myplz").focus();
						});
					break;
				case "ordercatalogs":
				case "orderarchibuch":
				case "termin":
				case "message":
					methods.sf_ajax.call(This.$sf,{ "action" : mode });
					break;
				}
			});
		This.$sf.sfchooser = true;

      });
    },
     
    sf_bigexpand : function(onoff) {
    	if(onoff == null)
    		onoff=true;
      this.each(function(){
        var This = this;

        var bigCss = {'height': '440px'};
        var expCss = {'height': '235px'};

        $sf = $("#servicefinder");
        $exp = $sf.find("#sf-exexpanded");
		$sf.find(".btn").show();

	    if(onoff) {
		    $exp.hide();
		    
	        $sf.animate( bigCss, 400, function() {
		        $sf.addClass('exexpanded');
		        $exp.fadeIn();
	          });
	    	}
		else {
			$exp.empty();
	        $sf.animate( expCss, 400, function() {
		        $sf.removeClass('exexpanded').find('input:radio[name="sf_choose":checked]').each(function(){
      				this.checked = false;  
  					});
	          });
			}
      });

    },
    	


    sf_ajax : function (options) {

      this.each(function(){
        var This = this;

		  ajaxUrl = "index.php?id=182";
		  //ajaxUrl = "https://"+location.hostname+"/index.php?id=182";
		  ajaxType= "GET"
		  
	      var ajaxData = {"action":options.action};
	      if(options.action=="mapclick") {
	      	ajaxData.lat = options.event.latLng.lat();
	      	ajaxData.lng = options.event.latLng.lng();
	      	ajaxData.zoom =options.zoom;
	      	}
	
	      if(options.action=="verifypromocode") {
	      	ajaxType= "POST"
	      	ajaxData.pcode= options.pcode;
	      	ajaxData.sfcat= $(This).find("[name=sf_cat]").val();
	      	ajaxUrl += "&action=" + options.action;
	      	}
	
	      if("  setplz btn_message2 btn_termin2 btn_call_back2 btn_send_form btn_send_contactform ordercatalogs orderarchibuch termin message ".indexOf(' ' + options.action + ' ')>-1) {

	      	$sfform = This.$sf.find("#sf-form");
	      	
	      	plz		= This.$sf.find("#sf-myplz").val();
	      	ajaxData.nat		= $("#lang_nav span").eq(1)[0].className.toUpperCase();
	      	ajaxData.rootalias	= This.$sf.find("#sf-form").attr("data-rootlinealias");

			$(options).each(function() {
				ajaxData[this.name] = this.value
				});

		      if(options.action=="setplz") {
		      	if(plz.length<4) return false;
		      	ajaxData.plz = plz;
		      	}

	      	  if("  btn_call_back2 btn_termin2 btn_send_contactform btn_message2 ".indexOf(' ' + options.action + ' ')>-1) {
				
				if(pflichtfeld("Geben Sie einen Vor/-Zweitnamen ein.",$sfform.find("#sf-vorname")[0],3) == false) return (false);
				if(pflichtfeld("Geben Sie einen Namen ein.",$sfform.find("#sf-zuname")[0],3) == false) return (false);

				if(pflichtfeld("Geben Sie eine gültige Postleitzahl ein.",$sfform.find("#sf-plz")[0],4) == false) return (false);
				if(pflichtfeld("Geben Sie einen Wert in das Feld \"Wohnort\" ein.",$sfform.find("#sf-ort")[0],3) == false) return (false);
				if(pflichtfeld("Geben Sie eine Straßenbezeichnung ein.",$sfform.find("#sf-strasse")[0],3) == false) return (false);
				if(pflichtfeld("Geben Sie eine gültige Telefonnummer ein.",$sfform.find("#sf-tel")[0],6) == false) return (false);	
		
				if (isEmail($sfform.find("#sf-email")[0].value)!=true) {
					alert("Keine gültige Email-Adresse");
					$sfform.find("#sf-email")[0].select();
					return (false);
					}
				
				var daten = This.$sf.find("#sf-form").find(':input').serializeArray();
				$(daten).each(function() {
					
					if(ajaxData[this.name]) ajaxData[this.name] += ',' + this.value;
					else ajaxData[this.name] = this.value;
					});

				ajaxType = 'POST';
				ajaxUrl += "&action=" + options.action;
		      	}

	      	}

	    $.ajax({
		    url:	ajaxUrl,
		    data:	ajaxData,
		    type:	ajaxType,
		    dataType: "json",
		    success: function(j /*sondata*/){
		      if(j.success) {
				switch(j.action) {
					case 'mapclick':
						$(j.nextplzlist).each(function(index, el) {
//							serviceGmap.placeMarker(new google.maps.LatLng(el.lat, el.lng));
							})
						break;
					case 'setplz':
						if(j.consultants) $("#servicefinder #sf-persons").html(j.consultants);
						if(j.myplzpos) {
							myLoc = new google.maps.LatLng(j.myplzpos.lat, j.myplzpos.lng);
							myNO = new google.maps.LatLng(j.myplzpos.maxlat, j.myplzpos.maxlng);
							mySW = new google.maps.LatLng(j.myplzpos.minlat, j.myplzpos.minlng);
							var bounds = new google.maps.LatLngBounds(mySW,myNO);
		    				serviceGmap.map.fitBounds(bounds);
		    				serviceGmap.map.setCenter(myLoc);
		    
							}
							
						methods.sf_bigexpand.call(This.$sf);
						
						t="";
						for(var mhtid in j.mhs) {
							mh = j.mhs[mhtid];
							myurl = $("#servicefinder #sf-form").attr("data-servicedetaillink") + mhtid
							  
							t += '<li class="sf-mhitem"><a href="' + myurl + '"><h4>' + mh.mhart + ' ' + mh.mhname + '</h4></a>'
								+ '<p>' + mh.mhplz + ' ' + mh.mhort + '</p></li>';
							}
						
						$("#servicefinder #sf-exexpanded").html('<div class="col col_0"><h2>Musterhäuser + Büros</h2></div><div class="col col_1"><ul class="sf-mhlist">' + t + '</ul></div>');
						
				      	methods.initConsultants();
						break;
					case 'btn_send_form':
						$('#sf-exexpanded').html('<p>' + j.result + '</p>');
						break;
					case 'verifypromocode':
						$('#sf-exexpanded #sf-catalogs .infobox').html(j.infobox);
						if(j.prstatus == 'ok') {
							$('#sf-exexpanded #sf-catalogs .costs').html(j.costs);
							// $exp.find("#sf-promocode").attr('disabled','disabled');
							}
						
						break;
					case 'ordercatalogs':
					case 'orderarchibuch':
						methods.sf_bigexpand.call(This.$sf, '400');
				        $exp = $('#sf-exexpanded').html(j.contactform).prepend(j.orderform);
				        $exp.find('#sf-zuname').focus();
				        $exp.find('#sf-plz').val(This.$sf.find("#sf-myplz").val());

					  $exp.find('input[type="radio"], input[type="checkbox"]').uniform().addClass('uniform');

						if(j.action=='ordercatalogs') $exp.find("#sf-catalogs label")
							.mouseover(function() { $exp.find(".catpreview").html('<img src="' + $(this).attr('data-img') + '" />'); })
							.mouseout( function() { $exp.find(".catpreview").html(''); })
						else {
							$exp.find(".catpreview").html('<img src="' + $exp.find("#sf-catalogs label").attr('data-img') + '" />');
							$exp.find("#sf-promocode").keyup(function(event) {
								var c = event.keyCode;
								var v = this.value;
								if(c>=33 && c<=40 || (' 8 16 17 18 20 27 46 '.indexOf(' ' + c + ' ')>-1) ) { return; }
								if(c<48 || c>105 || (c>57 && c<65) || (c>90 && c<96) || event.shiftKey) {
									if(!this.alterWert2) { this.alterWert2 = ""; }
									this.value = this.alterWert2;
									return;
									}
								if(v.length > 8) { this.value = v.substring(0,8); }
								if(v.length == 8) {
									  if(v!=v.toUpperCase()) this.value=v.toUpperCase();
									  neu = true;
									  if(this.alterWert && this.alterWert == v) neu=false;
									  if(neu) {
									  	methods.sf_ajax.call(This.$sf,{ 'action' : 'verifypromocode', 'pcode':v });
									  	log(this.value);
									  	this.alterWert = this.value;
										}
								  	}
									this.alterWert2 = this.value;
								});
							}

						$exp.find('.btn').click(function() { 	
							methods.sf_ajax.call(This.$sf,{ 'action' : this.id });

							return false;
							});
			

						
						break;
					case 'btn_call_back':
					case 'termin':
					case 'message':
		
						window.clearInterval($('#sf-pers-next')[0].aktiv);
						methods.sf_bigexpand.call(This.$sf, '400');
				        $exp = $('#sf-exexpanded').html(j.contactform);
				        $exp.find('#sf-zuname').focus();
				        $exp.find('#sf-plz').val(This.$sf.find("#sf-myplz").val());
				        
				        $exp.prepend(j.col0);

						if(j.action=='btn_call_back') This.$sf.find("#btn_call_back").hide();
				        
					    $exp.find('#btn_send_contactform').attr('id','btn_' + j.action + '2');

						$exp.find('.btn').click(function() { 	
							methods.sf_ajax.call(This.$sf,{ 'action' : this.id });
							return false;
							});

						break;
					case 'btn_send_contactform':
					case 'btn_call_back2':
					case 'btn_termin2':
					case 'btn_message2':
						$('#sf-exexpanded').html('<p>' + j.result + '</p>');
						This.$sf.find("#btn_call_back").show();
						break;
					}
				}
		      log(j);
		        }
		    });
      });
      
    },
     
    resize : function (newMode) {
      
      this.each(function(){
        var This = this;
        
        var onlyVisibleIfExpanded = '.consultant #sf-pers-btns,.col_2,.col_3,.col_4';
        
        var compactCss = {
          'width': '181px',
          'height': '186px',
          'padding-left': '5px'
        };
        
        var expandedCss = {
          'width': '960px',
          'height': '235px',
          'padding-left': '20px'
        };
        
        var mediumCss = {
          'width': '960px',
          'height': '186px',
          'padding-left': '20px'
        };
        
        var bigCss = {
          'width': '960px',
          'height': '400px',
          'padding-left': '20px'
        };
        
       
	  $header_visual = $('#header_visual');      	
      
		switch(newMode) {
			case 'compact':
	          expandedToCompact();
	          $('.images', $header_visual).cycle('resume');
			  break;
			case 'big':
	          This.$sf
	          .animate( bigCss, 200, function() {
	              This.$sf.addClass('bigexpanded').removeClass('expanded');
	            }
	          );

			  break;
			default:
	          compactToExpanded();
	          $('.images', $header_visual).cycle('pause');
			}

        function expandedToCompact() {
          This.$sf
          .animate(
            mediumCss,
            200,
            function() {
              This.$sf.addClass('compact').removeClass('expanded');
            }
          );
          
          This.$sf
          .animate(
            compactCss,
            700,
            function(){
              This.$toggler.fadeIn();
            }
          );
          This.$sf.find(onlyVisibleIfExpanded).fadeOut();
          This.$toggler.hide();
          
          $('#sf-exexpanded').hide(200);	/*#sf-form-extname,*/
          
        }
        
        function compactToExpanded() {
          This.$sf
          .animate(
            mediumCss,
            700,
            function() {
              This.$sf.find(onlyVisibleIfExpanded).fadeIn(700);
            }
          );
          
          This.$sf
          .animate(
            expandedCss,
            200,
            function(){
              This.$toggler.fadeIn();
              methods.initGmap.call(This.$sf);
            }
          );
          This.$toggler.hide();
          This.$sf.addClass('expanded').removeClass('compact');
          This.$sf.find(onlyVisibleIfExpanded).hide();      

			methods.sf_chooser.call(This.$sf);

//			$('#sf-form input:radio[name=sf_choose]').change(function() {
//				if($("#sf-form #sf_choose_catalogues")[0].checked) {
//					methods.sf_ajax.call(This.$sf,{ "action" : "ordercatalogs" });
//					}
//				// else $('#sf-catalogs').hide(200);
//				});

        }

        
      });
      
    },
    
    initGmap : function() {
      var This = this;
      serviceGmap.init({
        mapContainer: $('#modelhouse_gmap .gmap', This.$sf),
        callbackFn: function(success) {
          $('#modelhouse_gmap .loading_indicator', This.$sf).hide();
          $('#modelhouse_gmap_chooser #modelhouse_form_maptype_modelhouse').attr('checked', 'checked').change();
          $.uniform.update();
        	}
      	});

	    serviceGmap.o.markerImage = '/fileadmin/system/assets/img/gmapMarker.png';
	    serviceGmap.generateMarkers(modelhouse_locations);
	    serviceGmap.o.markerImage = '/fileadmin/system/assets/img/gmapMarker2.png';
	    serviceGmap.generateMarkers(consultant_locations);

    },
    
    nextConsultant : function() {
		var $fbs = $("#servicefinder #sf-persons .consultant");
		var $fba = $fbs.filter('.active');
		i = parseInt($fba.attr("data-index"))+1;
		if (i>=$fbs.length) i=0;

		$fba.fadeOut(200, function() {  $(this).removeClass("active").hide(); });
		$fbs.eq(i).fadeIn(200, function() { $(this).addClass("active").show(); });

		$('sf-fbid').val($fbs.eq(i)[0].id);
    	},
    	
    initConsultants : function() {
		var $fbs = $("#servicefinder #sf-persons .consultant");
		$fbs.eq(0).show();
		var aktiv = $('#sf-pers-next')[0].aktiv;
		if(aktiv) window.clearInterval(aktiv);
		if($fbs.length > 1) {
			$('#sf-pers-next').show().click(function() { 
				window.clearInterval($('#sf-pers-next')[0].aktiv);
				methods.nextConsultant();
				});
			$('#sf-pers-next')[0].aktiv = window.setInterval('$("#servicefinder").servicefinder("nextConsultant")',7500);
			}
		else
			$('#sf-pers-next').hide();
    	}
	
  };

  $.fn.servicefinder = function( method ) {
    
    if ( methods[method] ) {
      return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.servicefinder' );
    }    
  
  };

})( jQuery );



/******************************************************************/
// mmcAccordion
(function( $ ){
  var methods = {
    init : function( options ) {
      var $all = $(this);
      return this.each(function(){
        var defaults = {
          closeOthers: false,
          headerClass: 'acc_header',
          contentClass: 'acc_content',
          headerOpenClass: 'open',
          speed: 400
        };
        this.o = $.extend( defaults, options );
        var This = this;
        this.$instance = $(this);
        this.$header = this.$instance.find('.'+this.o.headerClass);
        this.$content = this.$instance.find('.'+this.o.contentClass);
        This.$header.click(function(){
          if (!$(this).hasClass(This.o.headerOpenClass)) {
            methods.open.call(This.$instance);
            if (This.o.closeOthers) {
              $all.not(This.$instance).each(function(){
                methods.close.call($(this));
              });
            }
          } else {
            methods.close.call(This.$instance);
          }
        });        
      });
    },
    open : function() {
      return this.each(function(){
        this.$content.slideDown(this.o.speed);
        this.$header.addClass(this.o.headerOpenClass);
      });
    },
    close : function() {
      return this.each(function(){
        this.$content.slideUp(this.o.speed);
        this.$header.removeClass(this.o.headerOpenClass);
      });    
    } 
  };
  $.fn.mmcAccordion = function( method ) {
    if ( methods[method] ) {
      return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.mmcAccordion' );
    }
  };
})( jQuery );



/*********** 

var geocoder;
  var map;
  function initializeGeoCoder() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

  function codeAddress() {
    var address = document.getElementById("sf-myplz").value;
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
              map: map, 
              position: results[0].geometry.location
          });
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
  }
  
  /************** TEST ************/

/**************************************************************/
// Mini Google Maps im Servicefinder


 serviceGmap = {};
 
 serviceGmap.init = function( options ) {

  var This = this;
  
  if (typeof google == 'undefined' || !google) {
    return false;
  }
  
  
  var initialLocation;

  var strLatLng = $('#sf-myplz-latlng').val();
	if(strLatLng!=',') {
		initialLocation = new google.maps.LatLng(strLatLng.split(',')[0], strLatLng.split(',')[1]);
		}

  var vienna = new google.maps.LatLng(48.208173, 16.373813);
  var browserSupportFlag =  new Boolean();

    var defaults = {
      mapOptions: {
        zoom: 8,
/*        disableDefaultUI: true,*/
        mapTypeControl: false, 
        streetViewControl: false, 
        scaleControl: true,
        mapTypeId: google.maps.MapTypeId.HYBRID
    	},
    mapContainer: '#mapContainer',
    markerImage: '/fileadmin/system/assets/img/gmapMarker.png',
    callbackFn: null
    };
  
  this.o = $.extend(true, {}, defaults, options);
    
  this.map = new google.maps.Map($(this.o.mapContainer)[0], this.o.mapOptions);
  this.map.setZoom(7);
  this.markersArray = [];

	 google.maps.event.addListener(this.map, 'click', function(event) {
	    log(event.latLng);
		$("#servicefinder").servicefinder('sf_ajax',{"action" : "mapclick", "event": event, "zoom": This.map.zoom });
	  });     

  /*
  if(navigator.geolocation) {
  // Try W3C Geolocation (Preferred)
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      This.map.setCenter(initialLocation);
    This.o.callbackFn.call(This, true);
    }, function() {
      handleNoGeoLocation(browserSupportFlag);
    });
 
  } else if (google.gears) {
    // Try Google Gears Geolocation
  browserSupportFlag = true;
  var geo = google.gears.factory.create('beta.geolocation');
  geo.getCurrentPosition(function(position){
    initialLocation = new google.maps.LatLng(position.latitude, position.longitude);
    This.map.setCenter(initialLocation);
    This.o.callbackFn.call(This, true);
  }, function(){
    handleNoGeoLocation(browserSupportFlag);
  });
  
  } else {
    // Browser doesn't support Geolocation
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
  */
	if(typeof(initialLocation)=='undefined') {
	  $.get('geolocation/locate.php', function(data){
	    var lat = data.split(',')[0];
	    var lng = data.split(',')[1];
	    initialLocation = new google.maps.LatLng(lat, lng);
 	This.map.setCenter(initialLocation);
	This.o.callbackFn.call(This, true);
	  }).error(function() {
	     handleNoGeolocation(false);
	  });
 	}
	else {

 	This.map.setCenter(initialLocation);
	This.o.callbackFn.call(This, true);
	}
  
  function handleNoGeolocation(errorFlag) {
    initialLocation = vienna;
    This.o.callbackFn.call(This, false);
  if (errorFlag == false) {
    //alert("Geolocation service failed.");
    }
    This.map.setCenter(initialLocation);
  This.o.callbackFn.call(This, false);
  }


// initializeGeoCoder();	/*gmap*/
}

serviceGmap.placeMarker = function(location) {
  var clickedLocation = new google.maps.LatLng(location);
  var marker = new google.maps.Marker({
      position: location, 
      map: this.map
  });
}

serviceGmap.generateMarkers = function(locations_to_show) {
  var miorig = new google.maps.Point(11.5, 10.5);
  var misize = new google.maps.Size(24, 24,'px','px');
  var markerImage = new google.maps.MarkerImage( this.o.markerImage , misize/*, miorig , new google.maps.Point(2,2)*/); 
  
  markerImage.anchor =  miorig; 

//  this.deleteMarkers();

      
  for (var i = 0; i < locations_to_show.length; i++) {
    var loc = locations_to_show[i];
    var newLatLng = new google.maps.LatLng(loc.lat, loc.lng);
    var newMarker = new google.maps.Marker({
        position: newLatLng,
        map: this.map,
        title: loc.label,
        icon: markerImage,
        link: loc.link
    });

	google.maps.event.addListener(newMarker, 'click', function() {
	  myurl = $("#servicefinder #sf-form").attr("data-servicedetaillink");
	  myurl += this.link.replace(/#/, "");
	  
	  location.href= myurl;
	});
    
    this.markersArray.push(newMarker);

  }
}

serviceGmap.deleteMarkers = function() {
  if (this.markersArray) {
    for (i in this.markersArray) {
      this.markersArray[i].setMap(null);
    }
  this.markersArray.length = 0;
  }
}

  var modelhouse_locations = [
	{ label: 'Blaue Lagune, Musterhaus "Trend Villa 146"',	link: '#mh_lagune1',		lat: 48.10283,	lng: 16.317846  },
	{ label: 'Blaue Lagune, Musterhaus "Elegance 122"',		link: '#mh_lagune2',		lat: 48.101198,	lng: 16.317138	},
	{ label: 'Musterhaus "Graz 142"',						link: '#mh_graz',		lat: 47.03206,	lng: 15.424781	},
	{ label: 'Musterhaus Eugendorf, Haus "Trend 146"',		link: '#mh_eugendorf1',		lat: 47.857344,	lng: 13.127746	},
	{ label: 'Musterhaus Haid I, Haus "Elegance 122"',		link: '#mh_haid1',		lat: 48.195372,	lng: 14.251164	},
	{ label: 'Musterhaus Haid II, Haus "Trend 146" (mit Erker im EG u. DG)',link: '#mh_haid2',	lat: 48.195173,		lng: 14.251132	},
	{ label: 'Musterhaus Energy X, Echsenbach',				link: '#mh_ebach',	lat: 48.718525,	lng: 15.225796	},
	{ label: 'Werk Echsenbach',								link: '#vb_werk',	lat: 48.728483,	lng: 15.206827	}
  ];

  var consultant_locations = [
	{ label: 'Verkaufsbüro Wien Sonnleithnerg.', 			link: '#b_suva', 		lat: 48.178392, lng: 16.362913 }, 
	{ label: 'Verkaufsbüro Feldkirch - Tosters', 			link: '#b_raneburger', 	lat: 47.242073, lng: 9.580636 }, 
//	{ label: 'Verkaufsbüro Obergrafendorf', 				link: '#b_steinwan', 	lat: 48.133287, lng: 15.545526 }, 
	{ label: 'Verkaufsbüro Tirol - Allgäu', 				link: '#b_wertachat', 	lat: 47.603414, lng: 10.414803 }, 
	{ label: 'Gebietsvertretung Kärnten',					link: '#g_koefler', 	lat: 46.604351, lng: 14.258237 }, 
	{ label: 'Gebietsvertretung Tiroler Unterland',			link: '#g_scharnagl', 	lat: 47.650226, lng: 12.404659 }, 
	{ label: 'Verkaufsbüro Meran',							link: '#vb_meran', 		lat: 46.630232, lng: 11.179512 }, 
	{ label: 'Verkaufsbüro Aschheim',						link: '#b_ertl', 		lat: 48.169971, lng: 11.719623 }, 
	{ label: 'Verkaufsbüro Feldkirchen',					link: '#b_janson', 		lat: 48.150107, lng: 11.732331 }, 
	{ label: 'Verkaufsleitung Deutschland',					link: '#b_ottobrunn', 	lat: 48.055, 	lng: 11.675007 }, 
	{ label: 'Vertragsarchitekt archibau + partner gmbh',	link: '#b_erlinsbach', 	lat: 47.406165, lng: 8.007633 }, 
	{ label: 'Vertragsarchitekt Leuzinger Generalbau',		link: '#b_leuzinger', 	lat: 46.831416, lng: 9.457085 }, 
	{ label: 'Gebietsvertretung Oberbayern Süd-Ost', 	link: '#b_drexl', 	lat: 47.866473, 	lng: 12.646422 }, 
	{ label: 'Gebietsvertretung Niederbayern', 	link: '#g_bauer', 	lat: 48.572673, 	lng: 13.089459 }, 
	{ label: 'Gebietsvertretung Oberbayern Süd-West', 	link: '#g_geyer', 	lat: 48.080659, 	lng: 11.505733 }, 
	{ label: 'Gebietsvertretung Baden-Württemberg', 	link: '#g_beck', 	lat: 48.822816, 	lng: 9.301488 }, 
	{ label: 'Kancel&aacute;&#345; Praha', 	link: '#vb_prag', 	lat: 50.070896, 	lng: 14.382262 }, 
	{ label: 'Kancel&aacute;&#345; Markvartovice', 	link: '#b_reiska', 	lat: 49.901089, 	lng: 18.234537 } 
  ];


function pflichtfeld(meldung,feld,mindlaenge) {
  if (feld.value.length < mindlaenge && feld.className.indexOf('required')>-1 ) {
	alert(meldung);
	feld.select();
	return (false);
	}
  }

function isEmail(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true) {
  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
  }
 else {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
  }
 return(res);
 }

