// JavaScript Document

var debugmode = false;

$(document).ready(function() {
	debug('ready');

	$('.pics').cycle('fade');

	$('.language').selectbox().change(function(){
		var new_url = window.location;
		
		if ((new_url.search == "") || (new_url.search.indexOf("?locale") == 0))
		{
			new_url.search = "?locale="+this.options[this.selectedIndex].value;
		}
		else if (new_url.search.indexOf("&locale=") > 0)
		{
			new_url.search = new_url.search.substring(0, new_url.search.indexOf("&locale=")) + "&locale="+this.options[this.selectedIndex].value;
		}
		else			
		{
			new_url.search += "&locale="+this.options[this.selectedIndex].value;
		}
	});
	
	$('.filter').selectbox().change(function(){
		var new_url = window.location;
		new_url.search = "?filterid="+this.options[this.selectedIndex].value;
	});	

	//  Actie bij mouseover menu
	$('ul.icons li a').hover(
		function(){
			$(this).find('img').attr('src', $(this).find('img').attr('src').replace('-active.png','.png').replace('.png','-active.png'));
			$(this).attr('class', $(this).find('img').attr('class').replace('','active'));
		}, 
		function(){
			$(this).find('img').attr('src', $(this).find('img').attr('src').replace('-active.png','.png'));
			$(this).attr('class', '');
		}
	);

	$('#calendar').datepicker({
		weekHeader: 'wk', 
		showWeeks: true,
		firstDay: 1, 
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		prevText: '', 
		nextText: '',
		onSelect:function(date, elm){ 
			var curr_date = date.getDate();
			var curr_month = date.getMonth()+1;
			var curr_year = date.getFullYear();
				
			$.get('ajaxsales.php?y='+curr_year+'&m='+curr_month+'&d='+curr_date, function(data, status){		  
				$('#fragment-1').html(data);
				$('#duif .content, #member .content, #sale .content, #sales .content').qshadows({
					size:17,
					imagePath:'../images/shadows',
					insert: 'prepend',
					prefix: 'ctW'
				});	
				$('.content h3').qtekst({
					fontSize: 12,
					fontFile: 'TheSansBoldPlain.ttf', 
					color: "#3A92C5", 
					backgroundColor: '#FFFFFF', 
					spacing: 2,
					lineheight: 0,
					textShadow: false
				});					
				
				$tabs.tabs('select', 0);
			});
			
			ajax_getEventDays(date);		
		},
		onChangeMonthYear:function(date, elm){
			// ACTIE NA BLADEREN DOOR MAANDEN:: haal events op met ajax
			ajax_getEventDays(date);
		}
	});
	
	// code for current month
	ajax_getEventDays(new Date());
	
	$('#for_sale a').click(function(){
		// HAAL CONTENT OP VAN EEN SALES DUIF
		$.get( $(this).attr('href'), function(data, status){
											  
			$('#fragment-2').html(data);
			$('#fragment-2 .center h1, #fragment-2 .center2 h1').qtekst({
				fontSize: 32,
				fontFile: 'TheSansExtraBoldItalic.ttf', 
				color: "#3A92C5", 
				backgroundColor: '#FFFFFF', 
				spacing: 1,
				lineheight: 0,
				textShadow: false
			});
			
			$('#duif .content, #member .content, #sale .content, #sales .content').qshadows({
				size:17,
				imagePath:'../images/shadows',
				insert: 'prepend',
				prefix: 'ctW'
			});	
			
			$tabs.tabs('select', 1);
			
			for_saleHeight();
		});
		
		return false;
	});


	/*** TABSYSTEEM ***/
	if($('#duif > ul, #member > ul, #sale > ul, #sales > ul, #newsletter > ul').length > 0){
		$tabs = $('#duif > ul, #member > ul, #sale > ul, #sales > ul, #newsletter > ul').tabs();
	}
	
	/*** CREATE SHADOW EFFECTS ***/
	$('.header-big').qshadows({
		size:3,
		imagePath:'../images/shadows',
		insert: 'append',
		prefix: 'hdrShadow'
	});
	
	$('#duif .content, #member .content, #sale .content, #sales .content, #page .content, #newsletter .content').qshadows({
		size:17,
		imagePath:'../images/shadows',
		insert: 'prepend',
		prefix: 'ctW'
	});	
	
	/*** CREATE STYLED TEKST ***/
	$('#header h1').qtekst({
		fontSize: 40,
		fontFile: 'TheSansExtraBoldItalic.ttf', 
		color: "#FFFFFF", 
		backgroundColor: '#469DCB', 
		spacing: 1,
		lineheight: 0,
		textShadow: false
	});

	$('.content .center h1, .content .center2 h1').qtekst({
		fontSize: 32,
		fontFile: 'TheSansExtraBoldItalic.ttf', 
		color: "#3A92C5", 
		backgroundColor: '#FFFFFF', 
		spacing: 1,
		lineheight: 0,
		textShadow: false
	});
	
	$('.content h2').qtekst({
		fontSize: 14,
		fontFile: 'TheSansBoldPlain.ttf', 
		color: "#3A92C5", 
		backgroundColor: '#FFFFFF', 
		spacing: 2,
		lineheight: 0,
		textShadow: false
	});	
	
	$('.content h3').qtekst({
		fontSize: 12,
		fontFile: 'TheSansBoldPlain.ttf', 
		color: "#3A92C5", 
		backgroundColor: '#FFFFFF', 
		spacing: 2,
		lineheight: 0,
		textShadow: false
	});		
	
	/*** CREATE CAROUSEL ***/
	if($('#qmCarousel ul.carousel li').length > 0){

		$('.pageItems').selectbox().change(function(){
			location.search  = '?c='+$(this).val();
		});

		var qmItemW = $('#qmCarousel ul.carousel li').eq(0).width();
		var qmItemML = parseInt($('#qmCarousel ul.carousel li').eq(0).css('marginLeft'));
		var qmItemMR = parseInt($('#qmCarousel ul.carousel li').eq(0).css('marginRight'));
		var qmItemPL = parseInt($('#qmCarousel ul.carousel li').eq(0).css('paddingLeft'));
		var qmItemPR = parseInt($('#qmCarousel ul.carousel li').eq(0).css('paddingRight'));
		var qmItemWidth = qmItemW + qmItemML + qmItemMR + qmItemPL + qmItemPR;
		
		var qmItemH = $('#qmCarousel ul.carousel li a').eq(0).outerHeight();
		var qmItemMT = parseInt($('#qmCarousel ul.carousel li a').eq(0).css('marginTop'));
		var qmItemMB = parseInt($('#qmCarousel ul.carousel li a').eq(0).css('marginBottom'));
		var qmItemPT = parseInt($('#qmCarousel ul.carousel li a').eq(0).css('paddingTop'));
		var qmItemPB = parseInt($('#qmCarousel ul.carousel li a').eq(0).css('paddingBottom'));
		var qmItemHeight = qmItemH + qmItemMT + qmItemMB + qmItemPT + qmItemPB;
	
		var qmWidth = qmItemWidth * $('#qmCarousel ul.carousel li').length;
		var qmHeight = Math.max(qmItemHeight * Math.ceil($('#qmCarousel ul.carousel li:eq(0) a').length / 6), qmItemHeight);
		var activeIndex = 0;
		
		init();

	}
	
	function init(){
		index = setup();
		activeItem(index);
		
		$(window).resize(function(){
			setup();
		});

		$('#qmCarousel .next').click(function(){
			nextItem(1, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
			return false;
		});
		
		$('#qmCarousel .prev').click(function(){
			prevItem(1, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
			return false;
		});
	}
	
	function setup(){
		
		var qmLeft = 0;
		$('#qmCarousel').css({height:qmHeight+'px'});
		$('#qmCarousel ul.carousel').css({width:qmWidth+'px', left:qmLeft+'px', height:qmHeight+'px'});
		
		return activeIndex;
	}
	
	function prevItem(i, index){
		$('#qmCarousel ul.carousel').animate({ left:( parseInt($('#qmCarousel ul.carousel').css('left')) +  (i * qmItemWidth))+'px' }, 750);
		activeItem(index-i);
	}

	function nextItem(i, index){
		$('#qmCarousel ul.carousel').animate({ left:( parseInt($('#qmCarousel ul.carousel').css('left')) -  (i * qmItemWidth))+'px' }, 750);
		activeItem(index+i);
	}

	function activeItem(index){
		$('#qmCarousel ul.carousel li').removeClass('active');
		$('#qmCarousel ul.carousel li').eq(index).addClass('active');
		
		if(index < 1){
			$('#qmCarousel .prev').hide();	
		}
		else{
			$('#qmCarousel .prev').show();	
		}
		
		if(index > $('#qmCarousel ul.carousel li').length-2){
			$('#qmCarousel .next').hide();	
		}
		else{
			$('#qmCarousel .next').show();	
		}
		createNav(index);
	}
	
	function createNav(index){
		var vast	= 2;
		var page	= index+1;
		var total	= $('#qmCarousel ul.carousel li').length;
		var html = '';
		
		if($('#qmCarousel ul.carousel li').length > 1){
			
			if(page < total){ html += '<li class="next"><a href="?">volgende</a></li>'; }	
			
			if($('#qmCarousel ul.carousel li').length > ((vast*2)+3)){
				for(i=total; i>(total-vast); i--){
					if(page == i){ html += '<li class="active">'+i+'</li>'; }else{ html += '<li><a href="?">'+i+'</a></li>'; }
				}
				
				if(page == vast+1){ html+='<li>...</li><li class="active">'+page+'</li>'; }
				else if(page == total-vast){ html+='<li class="active">'+page+'</li><li>...</li>'; }
				else if(page > vast+1 && page < total-vast){ html += '<li>...</li><li class="active">'+page+'</li><li>...</li>'; }
				else{ html += '<li>...</li>'; }
				
				for(i=vast; i>=1; i--){
					if(page == i){ html += '<li class="active">'+i+'</li>'; }else{ html += '<li><a href="?">'+i+'</a></li>'; }
				}
			}
			else{
				for(i=((vast*2)+3);i>=1;i--){
					if(total >= i){
						if(page == i){ html += '<li class="active">'+i+'</li>'; }else{ html += '<li><a href="?">'+i+'</a></li>'; }
					}
				}
			}
	
			if(page > 1){ html += '<li class="prev"><a href="?">vorige</a></li>'; }	
			
			if( $('#qmCarousel ul.nav li').length > 0){
				$('#qmCarousel ul.nav').html(html);
			}
			else{			
				$('#qmCarousel').append('<ul class="nav">'+html+'</ul>');
			}
		
			$('#qmCarousel ul.nav li.next a').click(function(){
				nextItem(1, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
				return false;
			});
			
			$('#qmCarousel ul.nav li.prev a').click(function(){
				prevItem(1, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
				return false;
			});
			
			$('#qmCarousel ul.nav li:not(.prev):not(.next) a').click(function(){
				var current = $(this).text();														  
				if(page < current){
					nextItem(current-page, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
				}
				else{
					
					prevItem(page-current, $('#qmCarousel ul.carousel li').index( $('#qmCarousel ul.carousel li.active') ));
				}
				return false;
			});
		}
	}
	
	$('a[rel=gmaps]').click(function(){
		gmaps();
	});
	
	forms();
	
	$('a[rel="extern"]').attr('target', '_blank');
	
	$('table.table tr').hover(function(){
		$(this).find('td').addClass('hover');
		$(this).find('td').eq(0).addClass('first');
		$(this).find('td').eq( $(this).find('td').length-1 ).addClass('last');
	}, function(){
		$(this).find('td').removeClass('last').removeClass('first').removeClass('hover');
	});
	
	$('a.duif img, #header img').pngfix();
	
	$('#sale ul li a').click(function(){
		for_saleHeight();
	});
	
	for_saleHeight();
});

var for_saleHeight = function(){
	if( $('#for_sale').length > 0 ){
		var fsHeight = $('#for_sale').outerHeight();
		//alert(fsHeight);
		var ctHeight = $( $('.ui-tabs-nav .ui-tabs-selected a').attr('href') ).outerHeight();
		//alert(ctHeight-20);
		
		if(fsHeight > ctHeight-20){
			$( $('.ui-tabs-nav .ui-tabs-selected a').attr('href') ).css('height',fsHeight+'px');
		}
		else{
			$( $('.ui-tabs-nav .ui-tabs-selected a').attr('href') ).css('height','auto');
		}
	}
}

var ajax_getEventDays = function(d){
	var curr_date = d.getDate();
	var curr_month = d.getMonth()+1;
	var curr_year = d.getFullYear();

	jQuery.getScript('ajaxdays.php?y='+curr_year+'&m='+curr_month, function(){
		for(i=0; i<events.length; i++){
			if(events[i].start == events[i].end){
				$('.ui-datepicker-days-cell').each(function(){
					if( parseInt($(this).text()) == events[i].start){ $(this).addClass('eventDay'); }
				});
			}
			else{
				$('.ui-datepicker-days-cell').each(function(){
					if( parseInt($(this).text()) == events[i].start){ $(this).addClass('eventStart'); }
					if( parseInt($(this).text()) > events[i].start && $(this).text() < events[i].end){ $(this).addClass('eventRange'); }
					if( parseInt($(this).text()) == events[i].end){ $(this).addClass('eventEnd'); }
				});
			}
		}
	});		
}

var gmaps = function(){
	$('#gmaps').jmap('init', {
		'mapType':'hybrid',
		'mapZoom':7,
		'language': "en",
		'mapEnableType': true,
		'mapEnableDoubleClickZoom': true,
		'mapEnableScrollZoom': true,
		'mapEnableSmoothZoom': true,
		'mapCenter':[52.1580685, 5.49980555], 
		'mapShowjMapsIcon':false,
		'mapControl': 'large'
	}, function (map, element, options){
		
		$('table.table tr:has(td span.start, td span.end) td').click(function(){
			
			var address = $(this).parents('tr').find('.start').html();
			var end = $(this).parents('tr').find('.end').html().split(',');
			
			if (end[0].substr(0,1) == '-')
			{
				var latitude = parseInt(end[0].substr(0,3));
				latitude -= (parseInt(end[0].substr(3,7)) / 60000);
			}
			else
			{
				var latitude = parseInt(end[0].substr(0,2));
				latitude += (parseInt(end[0].substr(2,6)) / 60000);
			}
			
			var longtitude = parseInt(end[1].substr(0,2));
			longtitude += (parseInt(end[1].substr(2,6)) / 60000);						
			
      $('#gmaps').jmap('SearchAddress', {
          'query': address,
          'returnType': 'getLocations'
      }, function(result, options) {
          var valid = Mapifies.SearchCode(result.Status.code);
          if (valid.success) {
         	
	          jQuery.each(result.Placemark, function(i, point){

	
							$('#gmaps').jmap('AddPolyline', {
								'polylinePoints': [
									[point.Point.coordinates[1], point.Point.coordinates[0]],
									[longtitude, latitude]
								],
								'polylineStrokeColor': "#ff0000",
								'polylineStrokeWidth': 5,
								'polylineStrokeOpacity': .5,
								'polylineGeodesic': true,
								'polylineClickable': true								
							}, function( polyline, options){
								
								$('table.table tr:has(td span.start, td span.end) td').click(function(){
									$('#gmaps').jmap('RemovePolyline', polyline);
								});
							});	  

							$('#gmaps').jmap('SetZoomAndCenter', {
								'mapPoints': [
									[point.Point.coordinates[1], point.Point.coordinates[0]],
									[longtitude, latitude]
								]
							});
	          });
          } else {
              //jQuery('#address').val(valid.message);
          }
      });
		});
	});
}

var forms = function(){
	
	$('.input-search').focus(function(){
		if( $(this).val() == 'search' ){
			$(this).val('');	
		}
	});
	
	$('form').submit(function(){					
		var txt = '';

		// standaard form check
		$(this).find('input, textarea').each(function(){
			if( $(this).attr('title') && $(this).val().length == 0 ){
				txt += ' - ' + $(this).attr('title') + '\n';
			}
		});
		
		if(txt && txt.length > 0){
			var header = '___________________________________________________________\n\n De volgende velden zijn verplicht: \n\n';
			var footer = '___________________________________________________________\n\n ';
			alert(header + txt + footer);
			return false;
		}
		return true;
	});
}

var popup = function(url, name){
	var win = window.open( url, name, 'height=600, width=800, directories=no, location=no, menubar=no, scrollbars=yes, resizable=yes, status=no, titlebar=no, toolbar=no');
	win.focus();
}

var debug = function(text){
	if(debugmode == true){
		if(console){
			console.info(text);	
		}
	}	
	
}