// JavaScript Document
jQuery(document).ready(function() {
/* filter opener */
/*
    $("a.filterOpener").click(function () {
	load_filter_status();
	  $(".filterMenu").slideToggle(225,function () {
		  $('a.filterOpener').toggleClass('active');
		  });
    });

*/




var opene_list = false;
function slide_menu(slide_name, list_name){
    // 23
	// 32
   $(slide_name).click(function () {
     $(list_name).slideDown(10, function(){opene_list=list_name;}).parent().css({zIndex:99999});	 
   });	

    
	$(document).click(function(e) {
	  if(opene_list) {
       if ( $(opene_list).is(':visible') ) {
		   $(opene_list).slideUp(45).parent().css({zIndex:100});
		   opene_list=false;
	   }
	  }
   }); 

}
	
/* selecd day 
slide_menu(".activDay", "#slectDay ul");*/
/* selecd hotspot */
slide_menu(".hotspotActive", ".hotspotFilter ul");
/* selecd Lokal */
slide_menu(".activLokal", ".lokalList ul");

/*
    $(".activDay").click(function () {
	   $("#slectDay ul").slideToggle(425);
    });	
	$("#slectDay ul").mouseleave(function () {
	   $("#slectDay ul").slideUp(425);
	});
*/
/*

    $(".hotspotActive").click(function () {
	  $(".hotspotFilter ul").slideToggle(425);	  
    });	
	$(".hotspotFilter ul").mouseleave(function () {
	  $(".hotspotFilter ul").slideUp(425);
	});	
	
    $(".activLokal").click(function () {
	  $(".lokalList ul").slideToggle(425);	  
    });	
	$(".lokalList ul").mouseleave(function () {
	  $(".lokalList ul").slideUp(425);
	});		
	*/
/* map active */	

    /* filter */
	$('.innerFillter li').click(function(){
	
		  if ($(this).hasClass('checked') || $(this).hasClass('filterIstNull') ) {
			 $(this).removeClass('checked');
		  } else {
			 $(this).siblings().removeClass('checked');
			 $(this).addClass('checked');
		  }
		  
		  sfilter = '';
		  $('.innerFillter li.checked').each(function(index) {
			 sfilter = sfilter+':'+$(this).attr('id');
		  });
	  
			 $.getJSON(fbaseurl+'/filtercounts?filter='+sfilter, function(data) {
				$.each(data, function(key, val) {
				
				$('#y'+key+' span').html(val);
				if (val==0) {
				  $('#y'+key).addClass('filterIstNull');
				} else {
				  $('#y'+key).removeClass('filterIstNull');
				}
				
			 });
		  });	
	});	  
	
});

var map;
var map_loaded = false;
var geocoder = false; 
var marker = false;
var root_location = false;
var markersArray = [];


function initializeMap() {
  map_loaded = true;
  geocoder = new google.maps.Geocoder();
  var myLatlng = new google.maps.LatLng(47.801452,13.04605);
  var myOptions = {
    zoom: 17,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
	disableDefaultUI: true
  }
  map = new google.maps.Map(document.getElementById("mapPlaceholder"), myOptions);
  
  if (root_location) {
	  map_add_marker( root_location );
  }
}
  
function loadMap() {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initializeMap";
  document.body.appendChild(script);
}

function map_add_marker( obj ) {

	if (!map_loaded) { 
	    root_location = obj; 	
		loadMap(); 
		return;
	}
    
	$('.mapHl').removeClass('active');
	$('.hotspotItem [rel]').unbind();
	$('.listText [rel]').unbind();
	$(obj).addClass('active');	
	
	
/*
	google.maps.Map.prototype.clearMarkers = function() {
		  for(var i=0; i < this.markers.length; i++){
			  this.markers[i].setMap(null);
		  }
		  this.markers = new Array();
	};
*/
    clearOverlays();
	
	var pos_count = 0;
	var pos_lat = 0;
	var pos_lng = 0;
	
	$(obj).parent().parent().find('[rel]').each(function(itm){
													   
	     if ($(this).attr('rel')!=undefined) {
			 
		  $(this).hover(center_pos);
		 
		  /*geocoder.geocode( { 'address': $(this).attr('rel')}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
			  map.setCenter(results[0].geometry.location);
			  //if (marker) {
				 //marker.setMap(null);
			//	 marker.setPosition(results[0].geometry.location);
			 // } else {
				 var marker = new google.maps.Marker({
				   map: map, 
				   position: results[0].geometry.location
				 });	
				 markersArray.push(marker);

				 map.setZoom(14);
			//  }
			} else {
			  alert("Geocode was not successful for the following reason: " + status);
			}
		  });*/
		  var po = $(this).attr('rel');
		  var pos = po.split(',');
		  
		  pos_count += 1;
		  pos_lat += parseFloat(pos[0]);
		  pos_lng += parseFloat(pos[1]);
		  
		  var myLatLng = new google.maps.LatLng(pos[0], pos[1]);
		  var marker = new google.maps.Marker({
		    map: map, 
		    position: myLatLng,
			icon: fbaseurl+'/../images/mapIcons/'+pos[2]
		  });	
		  markersArray.push(marker);

		 	  		  
		 }		 
    });

	var myLatLng = new google.maps.LatLng((pos_lat / pos_count), (pos_lng / pos_count));
	
	map.setZoom(17-(pos_count>3 ? 3 : pos_count));
	map.setCenter(myLatLng);
	
}

function center_pos(){

	if (!map_loaded) { 
		return;
	}
    
    var po = $(this).attr('rel');
	var pos = po.split(',');
	var myLatLng = new google.maps.LatLng(pos[0], pos[1]);
	
	map.setCenter(myLatLng);	
	
}

function clearOverlays() {
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
  }
}

function map_addo_marker( address, img) {
    
	if (!map_loaded) { 
	    root_location = address; 
		root_img = img;
		loadMap(); 
	}
	
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
		if (marker) {
		   //marker.setMap(null);
		   marker.setPosition(results[0].geometry.location);
		} else {
		   marker = new google.maps.Marker({
             map: map, 
             position: results[0].geometry.location
           });	
		   map.setZoom(16);
		}
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
}
function multi_marker (markers) {
   var beaches = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];
   
   for (var i = 0; i < locations.length; i++) {

    var beach = locations[i];
    var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map,
       // shadow: shadow,
       // icon: image,
       // shape: shape,
        title: beach[0],
        zIndex: beach[3]
    });
   
   }
}
var floaded = false;
function load_filter_status() {
	if (floaded) return;
	floaded = true;
	/* get filter status */

    sfilter = '';
	  $('.innerFillter li.checked').each(function(index) {
		 sfilter = sfilter+':'+$(this).attr('id');
	});

    $.getJSON(fbaseurl+'/filtercounts?filter='+sfilter, function(data) {
		  $.each(data, function(key, val) {		  
				$('#y'+key+' span').html(val);
				if (val==0) {
				  $('#y'+key).addClass('filterIstNull');
				} else {
				  $('#y'+key).removeClass('filterIstNull');
				}		  
	      });
    });
}
function filter_result (){
	  sfilter = '';	  
	  $('.innerFillter li.checked').each(function(index) {
		 sfilter = sfilter+':'+$(this).attr('id');
	  });
	  document.location = fbaseurl+'/filter/?filter='+sfilter;
}
function merken(day, id) {

	$.getJSON(fbaseurl+'/site/Remember?id='+id+'&day_id='+day, function(data) {
	  $('.merken_anz').html(data.count);

	  if(data.status) {		  
	     $('#mark_'+data.day+'_'+data.id).html('Entfernen').addClass('delete');
	  } else {
	     $('#mark_'+data.day+'_'+data.id).html('Vormerken').removeClass('delete');
	  }
	});
}
function clear_marked(itm){
	$(itm).parent().parent().fadeOut(500, function(){
	     var _parent = $(this).parent();
		 $(this).remove(); 
		 if(jstrim($(_parent).text())=='') {
			 var _parentL2 = $(_parent).parent();
			 $(_parent).prev().remove();
			 
			 if(jstrim($(_parentL2).text())=='') {
				 $(_parentL2).html('<p class="hlLeftMrgin">Sie haben noch kein Menü vorgemerkt.</p>');
			 }
		 }															   
    });
}

/* sidebar scroller */
$(window).scroll(function() {
//   console.log($('#sidebar').offset().top);
   if ($(window).scrollTop()>$('#sidebar').offset().top-39) {
	   $('#sidebar').addClass('fixed').addClass('notHome');
   } else {
      $('#sidebar').removeClass('fixed').removeClass('notHome');
   }
});

function jstrim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

/**
 * wSlide 0.1 - http://www.webinventif.fr/wslide-plugin/
 * 
 * Rendez vos sites glissant !
 *
 * Copyright (c) 2008 Julien Chauvin (webinventif.fr)
 * Licensed under the Creative Commons License:
 * http://creativecommons.org/licenses/by/3.0/
 *
 * Date: 2008-01-27
 */
(function($){$.fn.wslide=function(h){h=jQuery.extend({width:150,height:150,pos:1,col:1,effect:'swing',fade:false,horiz:false,autolink:true,duration:1500},h);function gogogo(g){g.each(function(i){var a=$(this);var e=a.attr('id');if(e==undefined){e='wslide'+i}$(this).wrap('<div class="wslide-wrap" id="'+e+'-wrap"></div>');a=$('#'+e+'-wrap');var b=a.find('ul li');var f=h.effect;if(jQuery.easing.easeInQuad==undefined&&(f!='swing'||f!='normal')){f='swing'}var g=h.width;var j=h.height;function resultante(a){var b=a;b=b.split('px');b=b[0];return Number(b)}var k=g-(resultante(b.css('padding-left'))+resultante(b.css('padding-right')));var l=j-(resultante(b.css('padding-top'))+resultante(b.css('padding-bottom')));var m=h.col;if(h.horiz){m=Number(b.length+1)}var n='';var o=Math.ceil(Number(b.length)/m);a.css('overflow','hidden').css('position','relative').css('text-align','left').css('height',j+'px').css('width',g+'px').css('margin','0').css('padding','0');a.find('ul').css('position','absolute').css('margin','0').css('padding','0').css('width',Number((m+0)*g)+'px').css('height',Number(o*j)+'px');b.css('display','block').css('overflow','hidden').css('float','left').css('height',l+'px').css('width',k+'px');b.each(function(i){var b=a.offset();var c=$(this).offset();$(this).attr('id',e+'-'+Number(i+1)).attr('rel',Number(c.left-b.left)+':'+Number(c.top-b.top));n+=' <a href="#'+e+'-'+Number(i+1)+'">'+Number(i+1)+'</a>'});if(typeof h.autolink=='boolean'){if(h.autolink){a.after('<div class="wslide-menu" id="'+e+'-menu">'+n+'</div>')}}else if(typeof h.autolink=='string'){if($('#'+h.autolink).length){$('#'+h.autolink).html(n)}else{a.after('<div id="#'+h.autolink+'">'+n+'</div>')}}var p='#'+e+'-';var q="";$('a[href*="'+p+'"]').click(function(){$('a[href*="'+q+'"]').removeClass("wactive");$(this).addClass("wactive");var b=$(this).attr('href');b=b.split('#');b='#'+b[1];q=b;var c=$(b).attr('rel');c=c.split(':');var d=c[1];d=-d;c=c[0];c=-c;if(h.fade){a.find('ul').animate({opacity:0},h.duration/2,f,function(){$(this).css('top',d+'px').css('left',c+'px');$(this).animate({opacity:1},h.duration/2,f)})}else{a.find('ul').animate({top:d+'px',left:c+'px'},h.duration,f)}return false});if(h.pos<=0){h.pos=1}$('a[href$="'+p+h.pos+'"]').addClass("wactive");var r=$('a[href*="'+p+'"]:eq('+Number(h.pos-1)+')').attr('href');r=r.split('#');r='#'+r[1];q=r;var s=$(r).attr('rel');s=s.split(':');var t=s[1];t=-t;s=s[0];s=-s;a.find('ul').css('top',t+'px').css('left',s+'px')})}gogogo(this);return this}})(jQuery);
